Using C#'s Type System Effectively
summary
Implements a minimal JQL compiler in C#: immutable AST types for Tag/And/Not, a continuation-style match method for pattern dispatch, and a parser-combinator library where a parser is a function from string to list of (result,leftover). Finds naive closure-based matching allocates heavily and runs ~10x slower, so generates a compiler plugin that rewrites match calls into switch/casts, and optimizes parsing by using an index pointer instead of substring copies (pigeon on GitHub).
AI-written summary · about
chapters (12)
- 0:00Start
- 3:06The Swiss Cheese Model
- 4:57Advanced Search
- 6:35Abstract Syntax Tree
- 8:20Syntactic Constructs
- 9:38What Does an Abstract Syntax Tree
- 10:40Abstract Syntax Trees
- 30:41The Expression Problem
- 32:27Parser
- 50:13Combining Parsers
- 51:34Linq Query Syntax
- 54:34Pausing Expressions








