· Semantic predicates have access to preceding labels.
· Implemented case-insensitive literal and class matching.
· Rewrote the code generator -- split some computations into separate passes and based it on a proper templating system.
· Rewrote variable handling in generated parsers in a stack-like fashion, simplifying the code and making the parsers smaller and faster.
· Adapted to Node.js 0.6.6+ (no longer supported in older versions).
· Dropped support for IE < 8.
· Reset parser position when action returns |null|.
· Fixed typo in JavaScript example grammar.
Small Changes:
· Use --ascii option when generating a minified version.
· Rewrote the command-line mode to be based on Node.js instead of Rhino -- no more Java dependency. This also means that PEG.js is available as a Node.js package and can be required as a module.
· Version for the browser is built separately from the command-ine one in two flavors (normal and minified).
· Parser variable name is no longer required argument of bin/pegjs -- it is "module.exports" by default and can be set using the -e/--export-var option. This makes parsers generated by /bin/pegjs Node.js modules by default.
· Added ability to start parsing from any grammar rule.
· Added several compiler optimizations -- 0.6 is ~12% faster than 0.5.1 in the benchmark on V8.