public <V> TreeNode<V> parse(
		final Supplier<? extends T> tokens,
		final TokenConverter<? super T, ? extends V> mapper
	) {
		requireNonNull(tokens);
		requireNonNull(mapper);

		return _term.expr(new Parser<T>(tokens::get, 1), mapper);
	}
Parses the given token sequence according {@code this} formula definition.
If the given {@code tokens} supplier returns null, no further token is
available.

@param tokens the tokens which form the formula
@param mapper the mapper function which maps the token type to the parse
       tree value type
@return the parsed formula as a tree
@throws NullPointerException if one of the arguments is {@code null}
@throws IllegalArgumentException if the given {@code tokens} can't be
        parsed
jenetics.ext/src/main/java/io/jenetics/ext/internal/util/FormulaParser.java