renamed lexer to parser, we'll use JavaCC to generate the AST