部分整理自 Parsing Techniques
##考古
- How to replace failure by a list of successes
- Higher-Order Functions for Parsing
- Constructing programs as executable attribute grammars
- Efficient Combinator Parsers
- Polish Parsers, Step by Step
- Garbage Collection, and Memory Efficiency, in Lazy Functional Languages
- Parser combinators for ambiguous left-recursive grammars
- Accelerating Parser Combinators with Macros