Added README
parent
de08192d0f
commit
ce514df6a6
@ -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
|
Loading…
Reference in New Issue