tooling with lexer