lexer:
- Un-stringify errors
- Reserve more words
- Doc the comments
parser:
- MASSIVE changes to peek, peek_if, next_if, consume_if=>expect.
- Keep track of when EOF is allowable
- TKind is stupidly cheap with >100 niches, so we can fit like 4 of them in a single ParseError lmao
- TODO: make sure EOF/UnexpectedEOF propagation is correct. It seems... Kinda Not correct.
- Add meta-expressions
ast:
- `let Pat (= Expr (else Expr)?)?`,
- `fn (args) -> Ty`, coagulating `do`, `if/while` formatting fixes
parser:
- int cleanup,
- fn rety parsing,
- experimental `for` desugar,
- experimental semicolon elision (TODO: it sucks),
- let-else parsing
- `do` coagulation impl (still not 100% there)
TODO:
- Fix `do` coagulation
- codify `do` elision rules
- `for` needs lib support
- this is fine because we have no codegen yet
- Ty matching in macro_matcher
- Or rip out macro_matcher? Who knows what the future holds.