Replace the current chumsky lexer with a handwritten lexer.
This is done for the following reasons:
The existing lexer, especially the number-parsing logic was getting extremely long and with many many branches. The rewrite has much less branching and supports more valid notations.
The preprocessor parsing was only half functional, and it didn't deal with newline escapes. This was something that'd be difficult to implement. I was running into numerous cases where chumsky didn't like the ambiguity of the patterns, and the rewrite fixes this.
Replace the current
chumsky
lexer with a handwritten lexer.This is done for the following reasons: