=== 4.6.0 / 2015-05-28

* 2 minor enhancements:

  * Extended generate_test to deal with 19 and up.
  * Extended pt_testcase.rb so add_19tests means 19 and up.

* 1 bug fix:

  * Added and normalized tests to deal with canonicalized block args from ruby_parser.

=== 4.5.1 / 2015-04-27

* 1 minor enhancement:

  * Cache processors and rewriters. Significant speedup. (presidentbeef)

=== 4.5.0 / 2015-03-09

* 1 minor enhancement:

  * Added SexpProcessor::expand_dirs_to_files as a utility to cmdline tools.

=== 4.4.5 / 2015-01-16

* 1 bug fix:

  * Removed shebangs in tests because of bugs (aka 'features') in RPM packaging tools.

=== 4.4.4 / 2014-08-14

* 1 bug fix:

  * MethodBasedSexpProcessor#in_klass clears out the method_stack for the duration of the block.

=== 4.4.3 / 2014-03-24

* 1 bug fix:

  * Fixed a bunch of pt_testcase entries for 1.9/2.0 wrt ruby2ruby.

=== 4.4.2 / 2014-03-14

* 2 minor enhancements:

  * Changed skipped versioned tests to return, not skip. Reduces noise so you can focus on real skips.
  * Extended versioned tests to include 2.0 and 2.1.

=== 4.4.1 / 2013-12-13

* 1 bug fix:

  * Added parenthesis to fix the structure_remove_begin_1 testcase. (bocete)

=== 4.4.0 / 2013-10-18

* 1 minor enhancement:

  * Added MethodBasedSexpProcessor, extracted from Flog.

=== 4.3.0 / 2013-08-19

* 1 minor enhancement:

  * Switched ParseTreeTestCase to minitest 5.

=== 4.2.1 / 2013-04-09

* 1 bug fix:

  * Removed structure_unused_literal_wwtt because I just don't care anymore

=== 4.2.0 / 2013-03-18

* 2 minor enhancements:

  * Added SexpInterpreter since it is such a common pattern
  * Added aliases Sexp#head & Sexp#rest for readability

=== 4.1.5 / 2013-02-14

* 2 bug fixes:

  * Clarified role of s method. Fixes #12.
  * maglev: Workaround for bug in Array#shift

=== 4.1.4 / 2013-01-22

* 1 minor enhancement:

  * Gave Sexp#structure a ~10% boost

* 2 bug fixes:

  * Fixed Sexp#mass lying when using auto_shifted sexps.
  * Stupid fix for ruby 2.0 method_missing 'bug'.

=== 4.1.3 / 2012-12-06

* 2 bug fixes:

  * Code cleanup... what was I thinking???
  * Explicitly setting pt_testcase.rb to US-ASCII to avoid encoding hell

=== 4.1.2 / 2012-11-03

* 1 bug fix:

  * Sexp#structure should grep for Sexps, not Arrays

=== 4.1.1 / 2012-11-02

* 1 minor enhancement:

  * iter args revamp for ruby_parser 3 changes.

=== 4.1.0 / 2012-10-22

* 1 minor enhancement:

  * Added Environment#current so you can explicitly shadow variables. (meh)

=== 4.0.1 / 2012-07-03

* 4 minor enhancements:

  * 1.9: Had to version split all my 'not' tests since 1.9 is insane.
  * 1.9: f (args) is not allowed in 1.9.
  * 1.9: f(hash, *splat) is not allowed in 1.9.
  * Added module2 test to verify module w/ 2+ entities

* 2 bug fixes:

  * 1.9: Changed !@ to ! since that is what you implement
  * True to my wtf comment, there was a bug in my case_splat test

=== 4.0.0 / 2012-06-07

* 5 major enhancements:

  * Removed :arglist from everything except :op_asgn1.
  * Removed block from resbody
  * Removed block from when node
  * Removed block nodes inside of scope nodes (defn/defs/class/sclass).
  * Removed scope nodes in defn/defs/class/sclass nodes.

* 1 minor enhancement:

  * Added Sexp#deep_each and Sexp#each_sexp. Refactored from Flay

=== 3.2.0 / 2012-04-15

* 5 minor enhancements:

  * Added a ton of block arg tests.
  * Added add19_edgecases to help refactor a bunch of tests that all have the same output.
  * Added better debugging output for rewrites.
  * Cleaned and added a bunch of stabby proc tests.
  * Moved RawParseTree test data to ParseTree project.

* 2 bug fixes:

  * Fixed a bunch of entries for r2r changes against edgecase parse/lex tests
  * Fixes for R2R

=== 3.1.0 / 2012-02-29

* 4 minor enhancements:

  * Added test_call_arglist_trailing_comma__19 (presidentbeef)
  * Added test_fcall_inside_parens. (presidentbeef)
  * Added test_if_args_no_space_symbol__18. (presidentbeef)
  * Added tests for new hash syntax and ternaries in 1.9 (lastobelus)

=== 3.0.10 / 2012-01-04

* 1 minor enhancement:

  * Added test for bare hash at end of array in 1.9. (presidentbeef)

* 1 bug fix:

  * Fixed 1.9.3 warnings

=== 3.0.9 / 2011-12-07

* 1 minor enhancement:

  * Add missing test for a ternary with nil without a space before the colon (brynary)

=== 3.0.8 / 2011-11-16

* 4 minor enhancements:

  * Add 6 missing ruby 1.9 tests (brynary)
  * Added new 1.9 hash tests to pt_testcase.rb
  * Version specific tests are now skipped at runtime, not test creation time
  * Added new block arg tests.

=== 3.0.7 / 2011-09-21

* 2 bug fixes:

  * Fixed and test to not have mandatory parens
  * Fixed r2r's handling of dregexp options

=== 3.0.6 / 2011-08-16

* 5 minor enhancements:

  * Added ParseTreeTestCase#add_19tests
  * Added a bunch of FAILING 1.9 tests stolen from presidentbeef's repo! yay!
  * Added add_19tests and add_18tests to segregate version specific parsing.
  * Moved pt_testcase.rb to sexp_processor
  * Segregated a bunch of 1.8 specific tests using add_18tests.

=== 3.0.5 / 2010-09-01

* 2 minor enhancements:

  * Added in_context to clean up code.
  * optimize inspect to avoid needlessly caching @line

=== 3.0.4 / 2010-03-27

* 1 minor enhancement:

  * Added line number to pretty_print output if $VERBOSE

=== 3.0.3 / 2009-08-14

* 1 minor enhancement:

  * Pulled #mass up from flog/flay

=== 3.0.2 / 2009-06-23

* 2 minor enhancements:

  * Pulled unique.rb from ParseTree to sexp_processor.
  * Switched to minitest.

=== 3.0.1 / 2009-01-20

* 3 minor enhancements:

  * Filled out README
  * Promoted file/line/comments from ruby_parser.
  * Added sexp_type to compliment sexp_body.

=== 3.0.0 / 2008-10-22

* 2 major enhancements:

  * Released as its own project, splitting from ParseTree
  * Added Environment to SexpProcessor and built it in. YAY!

* 6 minor enhancements:

  * Allowed CompositeSexpProcessor to be more ducktypey.
  * Refactored Sexp#method_missing into find_node and find_nodes.
  * Removed Sexp#for and other PT specific code.
  * SexpProcessor#process now runs rewriters before everything else.
  * SexpProcessor#rewrite context only for subs, EMPTY for top level rewrites.
  * SexpProcessor#rewrite will stop iterating if the result isn't another Sexp.
