Update CHANGELOG.md
This commit is contained in:
parent
d74f9df7dd
commit
7d761e9aae
110
CHANGELOG.md
110
CHANGELOG.md
|
@ -1,3 +1,113 @@
|
|||
0.8.0
|
||||
-----
|
||||
|
||||
Released: December 24, 2013
|
||||
|
||||
### Big Changes
|
||||
|
||||
* Completely rewrote the code generator. Among other things, it allows
|
||||
optimizing generated parsers for parsing speed or code size using the
|
||||
`optimize` option of the `PEG.buildParser` method or the `--optimize`/`-o`
|
||||
option on the command-line. All internal identifiers in generated code now
|
||||
also have a `peg$` prefix to discourage their use and avoid conflicts.
|
||||
[[#35](https://github.com/dmajda/pegjs/issues/35),
|
||||
[#92](https://github.com/dmajda/pegjs/issues/92)]
|
||||
|
||||
* Completely redesigned error handling. Instead of returning `null` inside
|
||||
actions to indicate match failure, new `expected` and `error` functions can
|
||||
be called to trigger an error. Also, expectation inside the `SyntaxError`
|
||||
exceptions are now structured to allow easier machine processing.
|
||||
[[#198](https://github.com/dmajda/pegjs/issues/198)]
|
||||
|
||||
* Implemented a plugin API. The list of plugins to use can be specified using
|
||||
the `plugins` option of the `PEG.buildParser` method or the `--plugin`
|
||||
option on the command-line. Also implemented the `--extra-options` and
|
||||
`--extra-options-file` command-line options, which are mainly useful to pass
|
||||
additional options to plugins.
|
||||
[[#106](https://github.com/dmajda/pegjs/issues/106)]
|
||||
|
||||
* Made `offset`, `line` and `column` functions, not variables. They are now
|
||||
available in all parsers and return lazily-computed position data. Removed
|
||||
now useless `trackLineAndColumn` option of the `PEG.buildParser` method and
|
||||
the `--track-line-and-column` option on the command-line.
|
||||
|
||||
* Added a new `text` function. When called inside an action, it returns the
|
||||
text matched by action's expression.
|
||||
[[#131](https://github.com/dmajda/pegjs/issues/131)]
|
||||
|
||||
* Added a new `$` operator. It extracts matched strings from expressions.
|
||||
|
||||
* The `?` operator now returns `null` on unsuccessful match.
|
||||
|
||||
* Predicates now always return `undefined`.
|
||||
|
||||
* Replaced the `startRule` parameter of the `parse` method in generated
|
||||
parsers with more generic `options` parameter. The start rule can now be
|
||||
specified as the `startRule` option. The `options` parameter can be also
|
||||
used to pass custom options to the parser because it is visible as the
|
||||
`options` variable inside parser code.
|
||||
[[#37](https://github.com/dmajda/pegjs/issues/37)]
|
||||
|
||||
* The list of allowed start rules of a generated parser now has to be
|
||||
specified explicitly using the `allowedStartRules` option of the
|
||||
`PEG.buildParser` method or the `--allowed-start-rule` option on the
|
||||
command-line. This will make certain optimizations like rule inlining easier
|
||||
in the future.
|
||||
|
||||
* Removed the `toSource` method of generated parsers and introduced a new
|
||||
`output` option of the `PEG.buildParser` method. It allows callers to
|
||||
specify whether they want to get back the parser object or its source code.
|
||||
|
||||
* The source code is now a valid npm package. This makes using development
|
||||
versions easier.
|
||||
[[#32](https://github.com/dmajda/pegjs/issues/32)]
|
||||
|
||||
* Generated parsers are now ~25% faster and ~62%/~3% smaller (when optimized
|
||||
for size/speed) than those generated by 0.7.0.
|
||||
|
||||
* Requires Node.js 0.8.0+.
|
||||
|
||||
### Small Changes
|
||||
|
||||
* `bin/pegjs` now outputs just the parser source if the value of the
|
||||
`--export-var` option is empty. This makes embedding generated parsers into
|
||||
other files easier.
|
||||
[[#143](https://github.com/dmajda/pegjs/issues/143)]
|
||||
|
||||
* Changed the value of the `name` property of `PEG.GrammarError` instances
|
||||
from “PEG.GrammarError” to just “GrammarError”. This better reflects the
|
||||
fact that PEG.js can get required with different variable name than `PEG`.
|
||||
|
||||
* Setup prototype chain for `PEG.GrammarError` correctly.
|
||||
|
||||
* Setup prototype chain for `SyntaxError` in generated parsers correctly.
|
||||
|
||||
* Fixed error messages in certain cases with trailing input
|
||||
[[#119](https://github.com/dmajda/pegjs/issues/119)]
|
||||
|
||||
* Fixed code generated for classes starting with `\^`.
|
||||
[[#125](https://github.com/dmajda/pegjs/issues/125)]
|
||||
|
||||
* Fixed too eager proxy rules removal.
|
||||
[[#137](https://github.com/dmajda/pegjs/issues/137)]
|
||||
|
||||
* Added a license to all vendored libraries.
|
||||
[[#207](https://github.com/dmajda/pegjs/issues/207)]
|
||||
|
||||
* Converted the test suite from QUnit to Jasmine, cleaning it up on the way.
|
||||
|
||||
* Travis CI integration.
|
||||
|
||||
* Various internal code improvements and fixes.
|
||||
|
||||
* Various generated code improvements and fixes.
|
||||
|
||||
* Various example grammar improvements and fixes.
|
||||
|
||||
* Improved `README.md`.
|
||||
|
||||
* Converted `CHANGELOG` to Markdown.
|
||||
|
||||
0.7.0
|
||||
-----
|
||||
|
||||
|
|
Loading…
Reference in a new issue