Code checked to match Brad's lexer and miniJava, XXX comments removed because they no longer apply