# Pycalc **Pycalc** is a simple expression calculator. It can evaluate mathematical expressions, and output the result of the evaluation. ## How it works 1. Scan the expression - Check for malformed expression and invalid characters - Tokenize the expression (I wrote a custom parser to do this) 2. If there are any parantheses, replace the parantheses with the result of the sub-expression. 3. Evaluate the overall expression (which should no longer have any parantheses) Rather than building a tree from the expression (which is the recommended approach), I have opted to perform the substitutions in-place. This means that the result of an operation replaces the operation itself. The reason I chose to do this, is that my parsing algorithm considers everything inside parantheses as a single token. Therefore, it is fairly easy to replace this token with the result of the expression within the parantheses. ## Features - Order of operations - Arbitrary whitespace - Parantheses - Simple error checking ## To-do - ~~Simple algebraic parsing (assign values to variables, etc.)~~ - More robust error-checking