vanilla shunting yard algorithm. lacks unary operators, assignment and conditionals
Proper exception handling
conditionals
shunting yard is too restrictive, implemented a Pratt parser