Added debug statements to simulation
Removed small bit of unused code
Augmented sheep grammar

Now contains Goal symbol so accepting will work correctly.
Fixed bug in simulation

Now (correctly) only pulls from input lexeme queue on shift action. Leaves top
lexeme in place on reduce (for later shift)
Fixed another bug in simulation

Simulation of Sheep grammar now runs correctly.
Rewrote FIRST code to handle left recursion

Now implements the FIRST function as given in the textbook. Repeatedly
loops over currently stored first sets of nonterminals and modifies them
according to productions, rather than trying to do it all in one
recursive pass.

Only tested on Sheep grammar, haven't actually tried anything left recursive.
Generator now calls goal's semantic action

Stores index of goal production in accept state, and calls its
semantic action on all remaining ASTs at end of simulation.