Grammars, Parsers, and Interpreters, In Ruby
summary
Argues that parsing expression grammars (PEG) beat sprawling regular expressions for well defined formats, demonstrates two Ruby tools Citrus and Treetop, and shows a working calculator interpreter implemented in ~100 lines that reproduces Ruby operator semantics. Reports a benchmark where Citrus is about 50% faster than Treetop on ruby 1.9.2, explains match objects that extend with Ruby modules, shows decent parse error diagnostics, and cautions PEGs are poor for ambiguous natural language.
AI-written summary · about
chapters (10)
- 0:00Start
- 3:43Parser What Is a Parser
- 9:45Parsing Expressions
- 13:23Treetop
- 16:07Case-Insensitive Strings
- 17:41Star Number Notation
- 22:17Demonstrations
- 25:31Abstract Syntax Tree
- 26:59Addition Grammar
- 31:43Semantic Data
related talks
38mParsing Expressions in Ruby
52mTreetop: Syntactic Analysis with Ruby
32mTime flies like an arrow; Fruit flies like a banana: Parsers for Great Good
32mParsing Ruby
46mGrammar a BNF like Ruby DSL Parsing
51mForbidden Fruit: A Test of Ruby's Parse Tree
33mWriting DSL's with Parslet
30m(Re)make Regexp in Ruby: Democratizing internals for the JIT
