Add Ripper-based parser and ast printer script for comparison against tree-sitter-ruby output. #210
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds a script named
script/print-ast.rb
which uses the Ruby::Ripper parserto parse a Ruby file and prints its AST in the same form as tree-sitter. It can be used to
generate expected output for inclusion in test cases.
The PR also adds the script
script/compare-ast.sh
which can be used to compare the AST's producedby
script/print-ast.rb
against the ones produced bytree-sitter parse
. These "back-to-back" comparisonof tree-sitter-ruby against Ruby::Ripper can help find cases where the two parsers diverge, likely indicating
bugs in the tree-sitter-ruby grammar.
The PR also integrates the "back-to-back" tests to the CI job to test for regressions. This makes the CI job quite a bit slower . It now takes 7 minutes to complete instead of 1 minute. However, I think the improved regression testing is worth it.
@maxbrunsfeld @nickrolfe
Checklist: