Initial version of new shift reduce parser
Terminals now know their token
Tokens now have a Location; currently column only, as everything in the input is considered to be a single line