The following Lexer class implements the lexer runtime. There are only
a few public methods and attributes:
input() - Store a new string in the lexer
token() - Get the next token
clone() - Clone the lexer
lineno - Current line number
lexpos - Current position in the input string