lexer written; need to rewrite parser to use token stream