To use the math lexer, you should define a context first:
val context = Context()
Then, call the lexer with this context:
val result = MathLexer("1 + 2").execute(context) // 3
Thanks to the context, you can pass variables:
val context = Context(mapOf(
"x" to IntegerFactory.instantiate(2)
))
val result = MathLexer("x + 3").execute(context) // 5