vanilla shunting yard algorithm. lacks unary operators, assignment and conditionals