Lexer is no longer a class
replaced integers with rational numbers
added support for real numbers
renamed the token constants so that they reflext what token
they represent rather than what the token will mean during
parsing.  It was sort of a layering violation before.