Name | Written in | Usable in | API and notes |
---|---|---|---|
CRuby parse.y | C | usable from C (maybe) | no official API, not easily reusable/not standalone |
Ripper |
C | Ruby | awkward API |
RubyVM::AbstractSyntaxTree |
C | Ruby | awkward API, not portable API |
whitequark/parser | Ruby | Ruby | Nice API |
ruby_parser | Ruby | Ruby | up-to-date? |
lib-ruby-parser | Rust | C/C++/Ruby (see bindings | |
natalie_parser | C++ | C++/C | |
JRuby's parser | Java | Java | depends on quite a few JRuby internals |
jruby-parser | Java | Java | does not depend on JRuby internals, but infrequently updated |
Lesser known/WIP:
- https://github.com/qnighy/rbbardiche (Rust, usable from Rust)
Moved to https://docs.google.com/spreadsheets/d/1zDZDK8WIk1oJgdvofbGvhZrBr4kFr926ZrvKHYDdnFQ/edit?usp=sharing