README.md in ripper_ruby_parser-1.4.2 vs README.md in ripper_ruby_parser-1.5.0

- old
+ new

@@ -1,37 +1,69 @@ # RipperRubyParser by Matijs van Zuijlen -http://www.github.com/mvz/ripper_ruby_parser - ## Description Parse with Ripper, produce sexps that are compatible with RubyParser. ## Features/Notes -* Drop-in replacement for RubyParser. -* Should handle 1.9 and later syntax gracefully. -* Requires MRI 2.2 or higher +* Drop-in replacement for RubyParser +* Should handle 1.9 and later syntax gracefully +* Requires MRI 2.3 or higher +* Compatible with RubyParser 3.12.0 +## Known incompatibilities + +RipperRubyParser has some incompatibilities with RubyParser. For some of these, +the behavior can be changed by turning on extra-compatible mode. + +The following incompatibilities cannot be changed: + +* RipperRubyParser won't handle non-UTF-8 files without an encoding comment, + just like regular Ruby +* RipperRubyParser keeps carriage return characters in heredocs that include them +* RipperRubyParser does not attempt to match RubyParser's line numbering bugs + +The following incompatibilities can be made compatible by turning on +extra-compatible mode: + +* RipperRubyParser handles unicode escapes without braces correctly, while + RubyParser absorbs trailing hexadecimal characters +* RipperRubyParser handles the rescue modifier correctly, while RubyParser + still contains a bug that was fixed in Ruby 2.4. See RubyParser + [issue #227](https://github.com/seattlerb/ruby_parser/issues/227). +* RubyParser handles byte sequences in second and further literal parts of a + strings with interpolations differently. RipperRubyParser will convert these + to unicode if possible. +* RubyParser handles byte sequences in heredocs and interpolating word lists + differently. RipperRubyParser will convert these to unicode if possible. + ## Install -* gem install ripper_ruby_parser + gem install ripper_ruby_parser ## Synopsis require 'ripper_ruby_parser' parser = RipperRubyParser::Parser.new - result = parser.parse "puts 'Hello World'" - p result + parser.parse "puts 'Hello World'" # => s(:call, nil, :puts, s(:arglist, s(:str, "Hello World!"))) + parser.parse '"foo\u273bbar"' + # => s(:str, "foo✻bar") + + parser.extra_compatible = true + + parser.parse '"foo\u273bbar"' + # => s(:str, "foo✻r") + ## Requirements * Ruby 2.2 or higher -* sexp_processor +* `sexp_processor` ## Hacking and contributing If you want to send pull requests or patches, please: