diff --git a/README.md b/README.md new file mode 100644 index 0000000..a09d091 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# 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