RedParse version 0.8.2 has been released!
* <http://github.com/coatl/redparse/>
* <http://rubyforge.org/projects/redparse/>
RedParse is a ruby parser written in pure ruby. Instead of YACC or
ANTLR, it's parse tool is a home-brewed "compiler-interpreter". Currently,
RedParse can correctly parse in excess of 99.5% of existing ruby files.
The RedParse rule set is about a quarter the size of MRI's YACC-based
parser, and the parse tree format is much prettier than the nests of arrays
emitted by parse_tree or ruby_parser. (RedParse trees are both object-
oriented and a much closer reflection of the actual structure of the original
source.)
Changes:
### 0.8.2 / 2009-04-21
* 14 Minor Enhancements:
* should be no tokens left in Node tree now
* lots of code trying to make things faster (no luck so far)
* declare types and parameters of variation of all inputs
* to_parsetree now outputs 1.8.6 (new default) as well as 1.8.7 tree formats
* #parsetree takes a session arg instead of thread-local variables
* reduce number of warnings/noise in test output
* created #to_parsetree_and_warnings: returns warnings along with a tree
* (for now, no warnings are ever emitted, tho)
* some utilities for working with node trees
* split off rescue operator and begin..end from ParenedNode
* made a VarNode to replace VarNameToken in node trees
* Reg::Repeat#subregs was missing, had to hack one up
* Reg::LookBack/LookAhead#subregs were missing too
* unparse now tracks lines in the original src
* beginnings of support for 1.9 syntax
* 10 Bugfixes:
* don't panic if rubygems not available
* @lvalue is not useful to clients, so ignore it when comparing trees
* many improvements to unparser; most expressions now unparse correctly
* rescue and friends now work in modules, classes and metaclasses
* word array splitter is perfect now
* comma and unary star now have right precedence wrt = in all cases
* fixed miscellaneous minor misparsings
* some of the remaining ParseTree compatibility bugs removed
* string contents are now always left unaltered in Node tree output
* (so escape translation has to be done later, when Nodes are used)
* #to_parsetree of an empty source text should be happier now
* <http://github.com/coatl/redparse/>
* <http://rubyforge.org/projects/redparse/>