Base of parser copied from the Mini-PL interpreter
Checkpoint, starting to mess around the grammar