Configurable Expression Parser
open class ConfigurableExpressionParser<S : Scanner<*>, C, R>(val parsePrimary: (S, C) -> R, operators: ConfigurableExpressionParser.Operators<S, C, R>)
A simple configurable expression parser.
S is the scanner type
C is the type of the parsing context, typically holding variable definitions etc.
R is the type of the parsed expression.
The parser is primarily configured by defining operators using the prefix, infix and suffix companion functions, defining operator names, types and precedences.