converted to basic combined lexer/parser emitting a simple AST