~/talk

Parsing Ruby

Talkat RubyConf 2021 · 2021-11-08..11-10· [ruby]

Builds a simple grammar, implements lexical tokenization and shift/reduce parsing, and shows concrete tradeoffs: the standard-library Ripper hooks scanner and reduction events (about 200 handlers) so comment extraction and token streams work out of the box, but node values like a super call with args are nil unless handler logic or the sexp builder subclass is used. Compares yak/bison parser generators, parser gem, reparser, Tree-sitter and how each stays current or breaks with new Ruby syntax.

AI-written summary · about

  1. 0:00Start
  2. 0:43Kevin Newton
  3. 1:58Game Plan
  4. 3:23Addition
  5. 5:08Parentheses
  6. 10:31Parser Generator
  7. 10:45Operator Precedence
  8. 11:33Building Up a Syntax Tree
  9. 12:09Syntax Tree
  10. 12:35History of the Repressor
  11. 14:08Ruby 1 0
  12. 15:31Streaming Concatenation
  13. 18:53Parse Tree
  14. 19:57Ruby Parser
  15. 20:38Ruby Intermediate Language
  16. 21:17Parser Gen
  17. 23:04Ruby Issue Tracker
  18. 24:50How Ripper Works
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.