public TreeNode<T> parse(final Supplier<? extends T> tokens) {
		return parse(tokens, (token, type) -> token);
	}
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
@return the parsed formula as a tree
@throws NullPointerException if 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