You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.1 KiB

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