Token Lookahead

Changed lexer to support support parsing an arbitrary number of
lookahead tokens.