lexer
Visitor sketch