work on abstract grammar parser and lexer