Example code demonstrating how to do operator-precedence
parsing directly to an abstract syntax tree (rather than
to prefix or postfix like the shunting yard algorithm,
which is better for you want to perform the operations
immediately) with dynamic operator, precedence, and
associativity definitions.