many tests + gradually augmenting the complexity of the grammer
made a result parse tree clearer by removing tags that do not add semantic value