[ An LR parser in Python ] http://blog.erezsh.com/how-to-write-a-calculator-in-50-python-lines-without-eval/ http://blog.erezsh.com/how-to-write-a-calculator-in-70-python-lines-by-writing-a-recursive-descent-parser/