|
|
@ -6,30 +6,41 @@ Released: April 18, 2012 |
|
|
|
### Big Changes |
|
|
|
|
|
|
|
* Added ability to pass options to `PEG.buildParser`. |
|
|
|
|
|
|
|
* Implemented the `trackLineAndColumn` option for `PEG.buildParser` (together |
|
|
|
with the `--track-line-and-column` command-line option). It makes the |
|
|
|
generated parser track line and column during parsing. These are made |
|
|
|
available inside actions and predicates as `line` and `column` variables. |
|
|
|
|
|
|
|
* Implemented the `cache` option for `PEG.buildParser` (together with the |
|
|
|
`--cache` command-line option). This option enables/disables the results |
|
|
|
cache in generated parsers, resulting in dramatic speedup when the cache is |
|
|
|
disabled (the default now). The cost is breaking the linear parsing time |
|
|
|
guarantee. |
|
|
|
|
|
|
|
* The current parse position is visible inside actions and predicates as the |
|
|
|
`offset` variable. |
|
|
|
|
|
|
|
* Exceptions thrown by the parser have `offset`, `expected` and `found` |
|
|
|
properties containing machine-readable information about the parse failure |
|
|
|
(based on a patch by Marcin Stefaniuk). |
|
|
|
|
|
|
|
* Semantic predicates have access to preceding labels. |
|
|
|
[[GH-69](https://github.com/dmajda/pegjs/issues/69)] |
|
|
|
|
|
|
|
* Implemented case-insensitive literal and class matching. |
|
|
|
[[GH-34](https://github.com/dmajda/pegjs/issues/34)] |
|
|
|
|
|
|
|
* Rewrote the code generator — split some computations into separate passes |
|
|
|
and based it on a proper templating system (Codie). |
|
|
|
|
|
|
|
* 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. |
|
|
|
|
|
|
|
* As a result of several optimizations, parsers generated by 0.7.0 are ~6.4 |
|
|
|
times faster and ~19% smaller than those generated by 0.6.2 (as reported by |
|
|
|
`/tools/impact`). |
|
|
@ -38,28 +49,42 @@ Released: April 18, 2012 |
|
|
|
|
|
|
|
* Fixed reported error position when part of the input is not consumed. |
|
|
|
[[GH-48](https://github.com/dmajda/pegjs/issues/48)] |
|
|
|
|
|
|
|
* Fixed incorrect disjunction operator in `computeErrorPosition` (original |
|
|
|
patch by Wolfgang Kluge). |
|
|
|
|
|
|
|
* Fixed regexp for detecting command-line options in `/bin/pegjs`. |
|
|
|
[[GH-51](https://github.com/dmajda/pegjs/issues/51)] |
|
|
|
|
|
|
|
* Generate more efficient code for empty literals (original patch by Wolfgang |
|
|
|
Kluge). |
|
|
|
|
|
|
|
* Fixed comment typos (patches by Wolfgang Kluge and Jason Davies). |
|
|
|
[[GH-59](https://github.com/dmajda/pegjs/issues/59)] |
|
|
|
|
|
|
|
* Fixed a typo in JavaScript example grammar. |
|
|
|
[[GH-62](https://github.com/dmajda/pegjs/issues/62)] |
|
|
|
|
|
|
|
* Made copy & paste inclusion of the PEG.js library into another code easier |
|
|
|
by changing how the library is exported. |
|
|
|
|
|
|
|
* Improved the copyright comment and the “Generated by...” header. |
|
|
|
|
|
|
|
* Replaced `Jakefile` with `Makefile`. |
|
|
|
|
|
|
|
* Added `make hint` task that checks all JavaScript files using JSHint and |
|
|
|
resolved all issues it reported. All JavaScript files and also generated |
|
|
|
parsers are JSHint-clean now. |
|
|
|
|
|
|
|
* Fixed output printed during test failures (expected value was being printed |
|
|
|
instead of the actual one). Original patch by Wolfgang Kluge. |
|
|
|
|
|
|
|
* Added a `/tools/impact` script to measure speed and size impact of commits. |
|
|
|
|
|
|
|
* Various generated code improvements and fixes. |
|
|
|
|
|
|
|
* Various internal code improvements and fixes. |
|
|
|
|
|
|
|
* Improved `README.md`. |
|
|
|
|
|
|
|
0.6.2 |
|
|
@ -70,6 +95,7 @@ Released: August 20, 2011 |
|
|
|
### Small Changes |
|
|
|
|
|
|
|
* Reset parser position when action returns `null`. |
|
|
|
|
|
|
|
* Fixed typo in JavaScript example grammar. |
|
|
|
|
|
|
|
0.6.1 |
|
|
@ -91,13 +117,17 @@ Released: April 14, 2011 |
|
|
|
* 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-line 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. |
|
|
|
|
|
|
@ -105,16 +135,25 @@ Released: April 14, 2011 |
|
|
|
|
|
|
|
* Split the source code into multiple files combined together using a build |
|
|
|
system. |
|
|
|
|
|
|
|
* Jake is now used instead of Rake for build scripts — no more Ruby |
|
|
|
dependency. |
|
|
|
|
|
|
|
* Test suite can be run from the command-line. |
|
|
|
|
|
|
|
* Benchmark suite can be run from the command-line. |
|
|
|
|
|
|
|
* Benchmark browser runner improvements (users can specify number of runs, |
|
|
|
benchmarks are run using `setTimeout`, table is centered and fixed-width). |
|
|
|
|
|
|
|
* Added PEG.js version to “Generated by...” line in generated parsers. |
|
|
|
|
|
|
|
* Added PEG.js version information and homepage header to `peg.js`. |
|
|
|
|
|
|
|
* Generated code improvements and fixes. |
|
|
|
|
|
|
|
* Internal code improvements and fixes. |
|
|
|
|
|
|
|
* Rewrote `README.md`. |
|
|
|
|
|
|
|
0.5.1 |
|
|
@ -127,8 +166,11 @@ Released: November 28, 2010 |
|
|
|
* Fixed a problem where “SyntaxError: Invalid range in character class.” error |
|
|
|
appeared when using command-line version on Widnows |
|
|
|
([GH-13](https://github.com/dmajda/pegjs/issues/13)). |
|
|
|
|
|
|
|
* Fixed wrong version reported by `bin/pegjs --version`. |
|
|
|
|
|
|
|
* Removed two unused variables in the code. |
|
|
|
|
|
|
|
* Fixed incorrect variable name on two places. |
|
|
|
|
|
|
|
0.5 |
|
|
@ -140,31 +182,49 @@ Released: June 10, 2010 |
|
|
|
|
|
|
|
* Syntax change: Use labeled expressions and variables instead of `$1`, `$2`, |
|
|
|
etc. |
|
|
|
|
|
|
|
* Syntax change: Replaced `:` after a rule name with `=`. |
|
|
|
|
|
|
|
* Syntax change: Allow trailing semicolon (`;`) for rules |
|
|
|
|
|
|
|
* Semantic change: Start rule of the grammar is now implicitly its first rule. |
|
|
|
|
|
|
|
* Implemented semantic predicates. |
|
|
|
|
|
|
|
* Implemented initializers. |
|
|
|
|
|
|
|
* Removed ability to change the start rule when generating the parser. |
|
|
|
|
|
|
|
* Added several compiler optimizations — 0.5 is ~11% faster than 0.4 in the |
|
|
|
benchmark on V8. |
|
|
|
|
|
|
|
### Small Changes |
|
|
|
|
|
|
|
* `PEG.buildParser` now accepts grammars only in string format. |
|
|
|
|
|
|
|
* Added “Generated by ...” message to the generated parsers. |
|
|
|
|
|
|
|
* Formatted all grammars more consistently and transparently. |
|
|
|
|
|
|
|
* Added notes about ECMA-262, 5th ed. compatibility to the JSON example |
|
|
|
grammar. |
|
|
|
|
|
|
|
* Guarded against redefinition of `undefined`. |
|
|
|
* Made `bin/pegjs` work when called via a symlink ([issue |
|
|
|
#1](https://github.com/dmajda/pegjs/issues/1)). |
|
|
|
* Fixed bug causing incorrect error messages ([issue |
|
|
|
#2](https://github.com/dmajda/pegjs/issues/2)). |
|
|
|
|
|
|
|
* Made `bin/pegjs` work when called via a symlink |
|
|
|
([issue #1](https://github.com/dmajda/pegjs/issues/1)). |
|
|
|
|
|
|
|
* Fixed bug causing incorrect error messages |
|
|
|
([issue #2](https://github.com/dmajda/pegjs/issues/2)). |
|
|
|
|
|
|
|
* Fixed error message for invalid character range. |
|
|
|
|
|
|
|
* Fixed string literal parsing in the JavaScript grammar. |
|
|
|
|
|
|
|
* Generated code improvements and fixes. |
|
|
|
|
|
|
|
* Internal code improvements and fixes. |
|
|
|
|
|
|
|
* Improved `README.md`. |
|
|
|
|
|
|
|
0.4 |
|
|
@ -175,25 +235,38 @@ Released: April 17, 2010 |
|
|
|
### Big Changes |
|
|
|
|
|
|
|
* Improved IE compatibility — IE6+ is now fully supported. |
|
|
|
|
|
|
|
* Generated parsers are now standalone (no runtime is required). |
|
|
|
|
|
|
|
* Added example grammars for JavaScript, CSS and JSON. |
|
|
|
|
|
|
|
* Added a benchmark suite. |
|
|
|
|
|
|
|
* Implemented negative character classes (e.g. `[^a-z]`). |
|
|
|
|
|
|
|
* Project moved from BitBucket to GitHub. |
|
|
|
|
|
|
|
### Small Changes |
|
|
|
|
|
|
|
* Code generated for the character classes is now regexp-based (= simpler and |
|
|
|
more scalable). |
|
|
|
|
|
|
|
* Added `\uFEFF` (BOM) to the definition of whitespace in the metagrammar. |
|
|
|
|
|
|
|
* When building a parser, left-recursive rules (both direct and indirect) are |
|
|
|
reported as errors. |
|
|
|
|
|
|
|
* When building a parser, missing rules are reported as errors. |
|
|
|
|
|
|
|
* Expected items in the error messages do not contain duplicates and they are |
|
|
|
sorted. |
|
|
|
|
|
|
|
* Fixed several bugs in the example arithmetics grammar. |
|
|
|
|
|
|
|
* Converted `README` to GitHub Flavored Markdown and improved it. |
|
|
|
|
|
|
|
* Added `CHANGELOG`. |
|
|
|
|
|
|
|
* Internal code improvements. |
|
|
|
|
|
|
|
0.3 |
|
|
@ -202,17 +275,26 @@ Released: April 17, 2010 |
|
|
|
Released: March 14, 2010 |
|
|
|
|
|
|
|
* Wrote `README`. |
|
|
|
|
|
|
|
* Bootstrapped the grammar parser. |
|
|
|
|
|
|
|
* Metagrammar recognizes JavaScript-like comments. |
|
|
|
|
|
|
|
* Changed standard grammar extension from `.peg` to `.pegjs` (it is more |
|
|
|
specific). |
|
|
|
|
|
|
|
* Simplified the example arithmetics grammar + added comment. |
|
|
|
|
|
|
|
* Fixed a bug with reporting of invalid ranges such as `[b-a]` in the |
|
|
|
metagrammar. |
|
|
|
|
|
|
|
* Fixed `--start` vs. `--start-rule` inconsistency between help and actual |
|
|
|
option processing code. |
|
|
|
|
|
|
|
* Avoided ugliness in QUnit output. |
|
|
|
|
|
|
|
* Fixed typo in help: `parserVar` → `parser_var`. |
|
|
|
|
|
|
|
* Internal code improvements. |
|
|
|
|
|
|
|
0.2.1 |
|
|
@ -229,6 +311,7 @@ Released: March 8, 2010 |
|
|
|
|
|
|
|
* Added `Rakefile` that builds minified runtime using Google Closure Compiler |
|
|
|
API. |
|
|
|
|
|
|
|
* Removed trailing commas in object initializers (Google Closure does not like |
|
|
|
them). |
|
|
|
|
|
|
|