begin to implement the parser and evaluator