Keep track of columns and token lengths in the lexer
Change lexer API to allow accessing lines of source
Keep track of the maximum position of the lexer
Much better error handling in the parser, with tracking of source positions