Releases: peggyjs/peggy
Releases · peggyjs/peggy
v4.1.1
v4.1.0 did not actually get published due to a workflow issue that should
be sorted out now.
New features
- #477 Option to output .d.ts files next to .js from CLI.
- #530 Allow es6 plugins from CLI
- #532 Allow es6 options files from the CLI
Bug fixes
- #531 Clean up rollup hacks from CLI code.
- #514 Allow execution of the
peggy
binary on Windows by handling node runtime flags manually, executing a sub-instance of node to actually runpeggy
. - #538 Fixed error in TS types for
peg$maxFailExpected
andpeg$maxFailPos
. - #551 Moved to package-extract instead of a custom script for version file generation.
v4.1.0
New features
- #477 Option to output .d.ts
files next to .js from CLI. - #530 Allow es6 plugins from CLI
- #532 Allow es6 options files
from the CLI
Bug fixes
- #531 Clean up rollup hacks
from CLI code. - #514 Allow execution of
thepeggy
binary on Windows by handling node runtime flags manually,
executing a sub-instance of node to actually runpeggy
. - #538 Fixed error in TS types
forpeg$maxFailExpected
andpeg$maxFailPos
. - #551 Moved to package-extract
instead of a custom script for version file generation.
v4.1.0-pre.2
Testing what I hope is the final release process. This should not get the
@latest
tag.
v4.1.0-pre.1
Checking publish process.
v4.1.0-pre.0
New features
- #477 Option to output .d.ts
files next to .js from CLI. - #530 Allow es6 plugins from CLI
- #532 Allow es6 options files
from the CLI
Bug fixes
- #531 Clean up rollup hacks
from CLI code. - #514 Allow execution of
thepeggy
binary on Windows by handling node runtime flags manually,
executing a sub-instance of node to actually runpeggy
. - #538 Fixed error in TS types
forpeg$maxFailExpected
andpeg$maxFailPos
. - #551 Moved to package-extract
instead of a custom script for version file generation.
Bug fixes
4.0.3
Released: 2024-06-19
New features
- #509 Add and implement ES6 export button
Bug fixes
- #493 Allow use of an empty
array, null, or undefined as allowedStartRules option - #505 Fix vscode-eslint settings
to work with eslint flat config - #507 Remove stray semicolon in CSS
- #508 Fix broken text input in
web version - #512 Add "StartRules" to peg.d.ts
- #513 Allow whitespace between
plucked word and its pattern. - #520 Grammar with token "constructor" fails to generate
- #522 Switched from puppeteer
to playwright for web tests, and added them to CI.
Documentation
- #506 Added END OF INPUT (
!.
).
Fix types
External grammar libraries
4.0.0
Released: 2024-02-13
Major Changes
- #379 Fix infinite recursion
issue by moving reportInfiniteRecursion to the new prepare pass, and having
it fail after finding the first issue. This will require plugin authors
to ensure that reportInfiniteRecursion is in the new pass correctly. - #417 BREAKING: change to AST to
allow topLevelInitializer and initializer to be arrays, in support of
multi-file inputs. This will require plugin updates. The CLI and API now
take multiple files as input, where the first file is your main library, and
subsequent files consist of a library of other rules. The CLI can take file
names of the formnpm:<package-name>/<filename>
to load library rules from
an NPM package that is installed relative to the previous non-npm file name,
or to the current working directory if this is the first file name. - #420 BREAKING: Node v16+ is now
required for running the CLI or using Peggy as a library. Generated code
still targets older runtimes. - #456 BREAKING: Allow imports
from external compiled grammars inside a source grammar, usingimport {rule} from "external.js"
. Note that this syntax will generate either
import
orrequire
in the JavaScript output, depending on the value of
theformat
parameter. This will need explicit support from
plugins, with a few new AST node types and a few visitor changes. - #463 Drop support for
Internet Explorer. Move to eslint flat configs in order to lint minimized
browser code for compatibility with
defaults, maintained node versions, not op_mini all
.
Minor Changes
- #400 Use
@generated
in generated
code - #404 Add support for -w/--watch
to the command line interface. - #415 Added
browser
key to package.json, pointing to Webpack output. - #420 Updated dependencies to
avoid audit warnings. - #425 Add a pass to simplify single-character choices
- #427 Avoid double extraction of
substrings in various MATCH_ bytecodes - #430 Make generate-js.js ts clean
- #432 Add peggy.code-workspace
- #435 Setup tsconfig to detect use of library functions from es6 or later
- #436 Get rid of tsd
- #437 Better type checking for visitor
- #438 Make test build deterministic
- #439 Make peg$computePosDetails a little faster
- #440 Create directories for
output and source-map if they do not exist, rather than erroring. - #446 Add a right-associative
ExponentiationExpression
rule (operator**
) tojavascript.pegjs
example grammar. - #451 Make stack.js ts clean
- #452 Fixes to prepare generate-bytecode.js for ts-check
- #453 Make generate-bytecode.js ts-clean
- #460 Allow
-t
and-T
testing
from the CLI with--format es
.
Bug Fixes
More cleanups
3.0.2
Released: 2023-03-21
Minor Changes
Bug Fixes
- #371 Error using online Peggy - "Can't find variable: util". From @hildjj.
- #374 CLI throws exception on grammar errors. From @hildjj
- #381 Repetitions with code blocks for min or max not handling non-integer returns correctly. From @hildjj.
- #382 Update grammarSource documentation. From @AndrewRayCode.
- #384 Improve the error.format() documentation. From @AndrewRayCode.
- #386 Ensure '*' as allowed-start-rule is documented for CLI. From @hildjj.
Minor cleanups
Minor Changes
- #329 Allow plugin options in
generate. This change loosens type checking strictness to allow for options
unknown to Peggy, but used by plugins such as ts-pegjs. From @hildjj.
Bug Fixes
- #329 Allow type definition for ParserBuildOptions to include plugin options. From @hildjj.
- #346 Allow extra semicolons between rules. From @hildjj.
- #347 Disallow '$' as an initial character in identifiers. This is not a breaking change because no grammar could have successfully used these in the past. From @hildjj.
- #354 Various minor nits in the docs, including indentation and ensuring that the CNAME file is correct.
- #357 Fix infinite recursion possibility in repetition delimeters. From @hildjj and @Mingun.
- #359 Do not treat as many words as reserved. Clarify the documentation about identifiers. Ensure that it is more clear that the target language being generated determines what words are reserved. Clarify that reserved word checking is only done for labels. From @nene.
- #364 Fix passing an incorrect external label to the expression inside the
repeated
node. From @Mingun.