An object-oriented expression tree evaluator program on top of an existing framework that can provide the user a calculator style input to perform advanced arithmetic, while interpreting white-space and order of operations. Implements in-order, post-order, and pre-order evaluation expression tree traversal styles.
The framework of this program is separated into five parts, commands, core, interpreter, tree, and visitors. The foundation of these individual components was provided. Based around traversing an expression tree with both binary and unary node capabilities. Each individual component contains over many functionalities separated into .h and .cpp files. In total the program contains roughly 7000 lines of code. Raw code is not available to the public due this project being acadmic.
This first picture is the prompt that the calculator gives the user.

This second picture demonstrates some of the many capabilities of this calculator including but not limited to
- Smart whitespace interpreting
- Smart parenthesis
- Order of operations
- Event handling
- Error detection and reporting
- Decimal arithmetic
- Smart negation vs subtraction detection
- Multiplication, Division, Addition, Subtraction, Floor Operations, Exponents, Factorials, and Modulus
