Earlier quoted context omitted.
bison should be compared to https://github.com/tree-sitter/tree-sitter-ruby/blob/master/... probably?
No the JSON file there is generated (I believe?) from the JavaScript I linked, while the Bison file is hand-written. With tree-sitter you're hand-writing a 1k file. With Bison you're hand-writing a 13k file.
- https://github.com/tree-sitter/tree-sitter-ruby/blob/32cd5a0... - https://github.com/tree-sitter/tree-sitter-ruby/blob/32cd5a0...
So about 2k loc.
The trickiest (and most verbose) parts of the external scanner have to do with heredocs and the various ways to declare literals (strings, symbols, regexes, etc).