lexer and slr parse