Right now, we do all our type inference in SymbolTableCreator.java, and the algorithm itself is rather clunky. We should switch to a simpler algorithm where we just start at the root production prog() and traverse the program top to bottom, inferring types along the way.