diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 52d2bf2..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,201 +0,0 @@ -0.7.0 (2012-04-18) ------------------- - -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] -* Implemented case-insensitive literal and class matching. [GH-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). - -Small Changes: - -* Fixed reported error position when part of the input is not consumed. [GH-48] -* Fixed incorrect disjunction operator in |computeErrorPosition| (original patch - by Wolfgang Kluge). -* Fixed regexp for detecting command-line options in /bin/pegjs. [GH-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] -* Fixed a typo in JavaScript example grammar. [GH-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 (2011-08-20) ------------------- - -Small Changes: - -* Reset parser position when action returns |null|. -* Fixed typo in JavaScript example grammar. - -0.6.1 (2011-04-14) ------------------- - -Small Changes: - -* Use --ascii option when generating a minified version. - -0.6.0 (2011-04-14) ------------------- - -Big Changes: - -* 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. - -Small Changes: - -* 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 (2010-11-28) ------------------- - -Small Changes: - -* Fixed a problem where "SyntaxError: Invalid range in character class." error - appeared when using command-line version on Widnows (GH-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 (2010-06-10) ----------------- - -Big Changes: - -* 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). -* Fixed bug causing incorrect error messages (issue #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 (2010-04-17) ----------------- - -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 (2010-03-14) ----------------- - -* 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 (2010-03-08) ------------------- - -* Added "pegjs-" prefix to the name of the minified runtime file. - -0.2 (2010-03-08) ----------------- - -* Added Rakefile that builds minified runtime using Google Closure Compiler API. -* Removed trailing commas in object initializers (Google Closure does not like - them). - -0.1 (2010-03-08) ----------------- - -* Initial release. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a41b9fe --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,240 @@ +0.7.0 +----- + +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`). + +### Small Changes + + * 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 +----- + +Released: August 20, 2011 + +### Small Changes + + * Reset parser position when action returns `null`. + * Fixed typo in JavaScript example grammar. + +0.6.1 +----- + +Released: April 14, 2011 + +### Small Changes + + * Use `--ascii` option when generating a minified version. + +0.6.0 +----- + +Released: April 14, 2011 + +### Big Changes + + * 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. + +### Small Changes + + * 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 +----- + +Released: November 28, 2010 + +### Small Changes + + * 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 +--- + +Released: June 10, 2010 + +### Big Changes + + * 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)). + * 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 +--- + +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 +--- + +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 +----- + +Released: March 8, 2010 + + * Added `pegjs-` prefix to the name of the minified runtime file. + +0.2 +--- + +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). + +0.1 +--- + +Released: March 8, 2010 + + * Initial release. diff --git a/package.json b/package.json index db6fb15..1c4aa36 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "url": "http://majda.cz/" }, "files": [ - "CHANGELOG", + "CHANGELOG.md", "LICENSE", "README.md", "VERSION",