add lexer and grammar