Presets

Expression

Parse Tree

## About Math Evaluator This interactive evaluator parses mathematical expressions into an abstract syntax tree (**AST**) and computes numerical results. ### Key Parser Features - **ExpressionBuilder Combinator**: Uses PetitParser's `ExpressionBuilder` to define operator precedence and associativity rules concisely. - **Associativity and Precedence**: Differentiates standard left-associative operations (addition, subtraction, multiplication, division) and right-associative operations (exponentiation `^`). - **Function and Constant Support**: Parses multi-argument function calls (`sin(x)`, `atan2(y, x)`, `sqrt(x)`) and mathematical constants (`pi`, `e`). - **Separation of Parsing and Evaluation**: Builds an immutable `Expression` AST hierarchy that evaluates against arbitrary variable dictionaries.