modify lexer and parser