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/>