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).
With tree-sitter you're hand-writing a 1k file. With Bison you're hand-writing a 13k file.