This is a simple recursive descent parser, that builds a parse tree for a mathmatical expression. Each operation is represented as a node with two children, and each value in the expression is a leaf node in the tree.