Add Sexp::for shortcut for Sexp.from_array ParseTree.translate(...).
Add parens for :block nodes as appropriate. May be overzealous.
Made add_to_parse_tree global for reuse by other C extensions.
Made test_ruby2ruby MUCH more rigorous with circular testing.
6 bug fixes:
Added $TESTING = true to pt_testcase.rb. OOPS!
Fixed some circular bugs, mostly by hacking them out, wrt operator
precidence.
Fixed splat arg processing when arg has no name.
Fixed trinary operator.
Fixed BMETHOD with no arguments.
Removed hacky "self." thing for defs at top level PT use.
1.7.1 / 2007-06-05
3 minor enhancements:
Added begin/rescue/ensure test.
Added block_pass_args_and_splat.
Allow methods to be pulled from unparsed files.
1 bug fix:
Compatibility fixed across 1.8.
1.7.0 / 2007-02-13
2 major enhancements:
rewrite extracted and intended to be run before (or in front of) process.
rewrite is now recursive as well, so children rewritings should be done
independently of their parents. This should make complex rewriting layers
much cleaner and allow me to eventually collect and publish a single
"standard" rewriting layer.
1 minor enhancement:
Iters are now {} if short and one line. YAY!
1 bug fix:
Added test cases brought out by ruby2ruby/heckle.
1.6.4 / 2007-01-15
1 minor enhancement:
Switched short if/unless to 1 line expressions.
2 bug fixes:
Fixed the nested case/when bug. YAY!
Added dasgn_curr and defn_rescue test cases.
1.6.3 / 2006-12-20
1 bug fix:
ParseTree::translate was trying to translate inherited class methods.
1.6.2 / 2006-12-19
2 minor enhancements:
ParseTree::translate can now take :"self.method".
Improved PT tests for [], []=
1 bug fixes:
Fixed a bug in ParseTree where
cases w/o exprs were malformed.
1.6.1 / 2006-11-11
2 minor enhancements:
Have been going insane on the tests, expect more soon.
Cleaned up using named nodes, now do: args = exp.scope.block.args(:delete).
2 bug fixes:
Fixed parse_tree to return superclass in :const node.
Fixed while/until with no bodies (now nil).
1.6.0 / 2006-10-11
2 major enhancements:
PTTC just got a major enema. 2k lines o’ diff.
All in all, removed 829 lines of code and made it a lot more solid.
6 minor enhancements:
Added sort rake task.
Added a basic front-end method to ParseTree: translate, takes string or
Class and optional method name.
Class now has nil for unspecified
superclass. No way to tell if it is being reopened.
SexpProcessor‘s unsupported array now defaults to all the internal
nodes.
Added Unique from ruby2c project.
something.rb got slimmed down to near nothing. About to be retired.
3 bug fixes:
Added changeset to Hoe spec.
Fixed up description to use paragraphs_of.
Fixed op_asgn1, alias, undef, dsym, match.
1.5.0 / 2006-09-24
5 minor enhancements:
Added parse_tree_audit.
Added reporting of unsupported nodes that have processors.
YAY! class method support! generated as :"self.blah"
Add parse_tree_for_string.
Converted Rakefile+gemspec to Hoe-based Rakefile.
6 bug fixes:
Did some preliminary work on 1.9 compatibility.
Fixed tests for some changes/clarifications.
Fixed resbody: should have nil exceptions list when no exception rescued.
Fixed op_asgn1 and op_asgn2.
Fixed incompatibility with new inline changes.
Fixed VALUE decl in parse_tree.rb
1.4.1 / 2006-04-10
4 minor enhancements:
parse_tree_show -f output is much cleaner now.
ParseTree does a much more elegant
job of handling different versions.
ParseTree now has all node names in
ParseTree::NODE_NAMES.
ParseTree now raises exceptions
instead of freakin’.
3 bug fixes:
Used multiruby to test against 1.8.2-4, 1.8 cvs, and 1.9 cvs.
Fixed incompatibilites introduced in ruby 1.8.4.
Fixed some incompatibilites introduced in ruby 1.9.x.
1.4.0 / 2005-10-15
5 minor enhancements
Improved Makefile‘s install rule, uninstall, and added FILTER to all.
Fixed minor issues w/ Makefile.
Added -I=loadpath to parse_tree_abc.
Added *args support for methods.
Split out sexp to its own file.
2 bug fixes
Fixed weird bug in parse_tree_deps where sort was failing on deps.
! Fixed fatal bug in parse_tree.rb caused by safe_level fix in ruby 1.8.3.
1.3.8 / 2005-09-27
1 bug fix:
Our private version of struct METHOD went out of sync w/ latest ruby.
Only use this if you are on 1.8.3+.
1.3.7 / 2005-07-13
3 bug fixes:
Fixed rubygem requires for non-gem systems.
Renamed on to on_error_in to make more clear.
Moved exceptions to their own tree to make catching cleaner.
1.3.6 / 2005-05-19
2 minor enhancements:
Improved debugging capability when $DEBUG.
Allowed for selective debugging output by node type.
3 bug fixes:
Minor fixes to Makefile and parse_tree_show.
Improved error messages in parse_tree when newlines are included.
Improved method coverage for parse_tree.
1.3.5 / 2005-04-19
2 minor enhancement
Added dynamic exception handling on a per node-type basis (BIG).
Added -c=classname to parse_tree_show to help w/ core classes.
1 bug fix
Fixed dependency specification error in gemspec.
1.3.4 / 2005-02-09
2 bug fixes
bug:1459: Cleaned up and corrected superclass naming code.
bug:1458: Fixed while to support post-conditional while/until nodes.
1.3.3 / 2005-02-01
3 minor enhancement
Cleaned up parse_tree_abc output
Patched up null class names (delegate classes are weird!)
Added UnknownNodeError and switched SyntaxError over to it.
2 bug fixes
Fixed BEGIN node handling to recurse instead of going flat.
FINALLY fixed the weird compiler errors seen on some versions of gcc 3.4.x
related to type punned pointers.
1.3.2 / 2005-01-04
1 minor enhancement
Added total line to end of ABC metric report.
1 bug fix
Updates for ruby 1.8.2 parse tree changes.
1.3.1 / 2004-12-09
1 minor enhancement
Added rewrite_<type> processing.
2 bug fixes
Renamed SexpProcessor‘s exclude to unsupported.
Fixed a bus error when an attrasgn uses self.
Added support for cfunc now that we found a repro.
1.3.0 / 2004-12-06
3 minor enhancements
Finished supporting pretty much all nodes (that we can figger out).
If $DEBUG, or true passed to new, then we now output the :newline nodes.
We output much better extra debugging info if $DEBUG.
1 bug fixes
Fixed README for new output style.
1.2.0 / 2004-11-29
9 minor enhancements
ParseTree now returns symbols for
all data except in :str and :lit.
* This WILL break existing code! (as if any exists)
ParseTree.parse_tree now takes a list of classes, no optional method.