Custom grammar with case insensitive move

I found the XML parser’s ExternalTokenizer pretty straightforward to understand (after converting it to TypeScript and making minor changes, ref). For me with Lezer (and maybe all parser generators, IDK I’ve only used Lezer) I find the best way to learn is to just do the thing. Either start out with a minimal example, or take a working piece of code and deconstruct it (with a lot of console logging).

I’ll be writing a new ExternalTokenizer for my own query language (ref) in the coming days, I can let you know how that goes if you’re interested.