Changed token_with_position type to a record instead of a tuple.
The lexer now returns a stream.
Updated the parser to use the stream parser syntax extension.