parser and lexer updated