=== 3.2.2 / 2013-07-11
* 5 bug fixes:
* 1.9/2.0: fixed assocs in return args. (presidentbeef)
* Fixed handling of parse error when class is nested in multiple defs. (whitequark)
* Fixed lexing of %w[] w/ funny whitespace separators. (whitequark)
* Fixed more call nodes that have trailing comma syntax. (presidentbeef)
* Fixed more call_args slippage.
=== 3.2.1 / 2013-07-03
* 1 bug fix:
* 1.9/2.0: Trailing assocs were being munged into arrays. (presidentbeef)
=== 3.2.0 / 2013-07-02
* 1 major enhancement:
* Added (rough draft) 2.0 support. Still missing some small / rare things.
* 12 minor enhancements:
* Added %i(symbol-names...) support. (%I too)
* Added 140 more tests, jumping test count from 1376 to 2143. Yay for test reuse!
* Added RubyLexer#brace_nest.
* Added compare20 rake task to diff the grammar architecture against MRI.
* Added lpar_beg and paren_nest to lexer to track state of parens in stabbies
* Added shadow nodes for scoped block args.
* Compound RubyParser now defaults to 2.0.
* Fixed rake to < 10, because 10's file dependency handling is so very broken.
* Made it possible to specify version in bin/ruby_parse_extract_error w/ -v 18|19|20
* Refactored to RubyParserStuff::ENCODING_ORDER to allow custom tweaking of encoding guessing. (samlown)
* Switched `rake debug` to default to 2.0.
* Translated some fixes across 1.8 and 1.9 from 2.0.
* 42 bug fixes:
* 2.0: Fixed a number of block args scenarios w/ kwargs
* 2.0: Fixed args_tail mismatching against lexer.
* 2.0: Fixed assocs to return a hash node.
* 2.0: Fixed f_block_kw production.
* 2.0: Fixed f_block_kwarg production.
* 2.0: Fixed handling of stabby proc args in parens.
* 2.0: Fixed lexing of kwsplat nodes.
* 2.0: Implemented kwsplat nodes.
* Added tUBANG to lexer.
* Apparently ruby doesn't warn for escaped octal that goes above 7. wtf.
* Cleaned up a LOT of arg handling (block and defn, not calls) by using #args.
* ESC_RE is set to unicode. This seems problematic. *shrug*
* Either found a bug in MRI and/or fixed paren_nest count for []=? methods.
* Extended IDENT_CHAR_RE on 1.9+ to top out at \u{10ffff}... because we NEED a million unicode chars.
* Fixed % strings with interpolation.
* Fixed BEGIN {} to return a sexp.
* Fixed a[] += b. (stormbrew)
* Fixed arg_blk_pass to allow for sub-args nodes.
* Fixed assignable to allow for sexps to be passed to it.
* Fixed assoc args in 1.9.
* Fixed block_command and block_call (eg a.b c d) to #to_sym their args properly.
* Fixed bug in compound RubyParser so it rescues RubyParser::SyntaxError.
* Fixed env registration of cdecls.
* Fixed lex value for { when expr_endfn.
* Fixed lex_state for close paren/brace/bracket.
* Fixed lex_state transition for 1.9 if we lexed a defn name. Only 1.8 is odd.
* Fixed lexer problem with state mgmt of identifiers that also have registered var name.
* Fixed lexing of "1 *\n" to have the correct lex_state.
* Fixed lexing of heredocs vs chevron for some lex_states.
* Fixed op_asgn nodes to #to_sym their args properly.
* Fixed optional value block args.
* Fixed parsing of __ENCODING__ on ruby 1.8 (vcall).
* Fixed some oddity where 1.9 lexing was blowing up on "0o". Seems invalid now.
* Fixed strings with escaped octals > 128. Also... wtf.
* Fixed support for empty symbol (wtf?).
* Lexer is now declared UTF-8 internally. Hopefully this will fix the encoding mess.
* Made UTF_8 the default guess on encodings when it isn't explicit.
* Parsing of __ENCODING__ on ruby 1.9+ (in ruby 1.9+) is now colon2 sexp. (whitequark)
* Renamed RubyLexer#nest to string_nest
* RubyLexer#unescape ignores bad octal/hex and returns unicode strings.
* Switched a number of lexical constructs to use IDENT_CHAR_RE instead of \w. I wish there were something cleaner for regexps + unicode.
* Switched ruby_parse_extract_error to use binread.
=== 3.1.1 / 2012-12-19
* 1 minor enhancement:
* Added MOVE_TIMEOUT env var for ruby_parse_extract_error to move slow files to a sibling directory
* 4 bug fixes:
* 1.9: Fixed lexing of "0o". (whitequark)
* 1.9: Fixed parsing of unary plus on literals. (whitequark)
* Added timeout arg to RubyParser#process to pass through to the real parser
* Updated Synopsis to reflect new options for running RP. (louismullie)
=== 3.1.0 / 2012-12-06
* 2 minor enhancements:
* Added RubyParser.for_current_ruby to provide a parser that matches your runtime. (neilconway)
* Duck-typed IDENT_CHAR_RE instead of using RUBY_VERSION
* 3 bug fixes:
* Cleared out body comments in class/module/defn/defs
* Flipped lexer tests to US-ASCII to avoid encoding hell
* yyerror is now an alias for syntax_error
=== 2.3.1 / 2011-09-21
* 2 bug fixes:
* Fixed line numbers at end of special var+whitespace (larsch)
* Holy crap I was smokin' something good... Fixed 1.9.3 warning
=== 2.3.0 / 2011-09-06
* 2 minor enhancements:
* Add -g flag to parser compile if DEBUG
* Lexer now embeds line number in yacc_value for keywords, helping fix up line numbers
* 3 bug fixes:
* Fix method line numbers when no args and no parens (quix)
* Fixed line numbers on return/break/next w/ result expr. (pjnz)
* Fixed some lexing state in order to parse: 'f (1), 2' as 'f(1, 2)'. (invernizzi)
=== 2.2.0 / 2011-08-23
* 2 minor enhancements:
* Moved Keyword, Environment, and StackState inside of RubyParser
* Added proper dsym and dsym->sym support.
* 3 bug fixes:
* Added extra (failing) tests for call/iter line number checking (quix)
* Fixed line numbers for certain call/iter edge cases
* Fixed parsing of: alias :"<<" :">>".
=== 2.1.0 / 2011-08-15
* 2 minor enhancements:
* Added new accessor canonicalize_conditions to toggle conditional canonicalization (on by default). (confused)
* Awesome cleanup: Replaced call to append_block by block_append. (Confusion)
* 2 bug fixes:
* Fixed handling last line of =begin/=end. (raybaxter)
* Fixed source line numbers after heredocs. (jbarreneche)
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Remove default value of GEM_BUILD.
=== 2.0.5 / 2010-09-01
* 1 minor enhancement:
* Started merging like lexical cases to try to squeeze some optimization out