peggyjs/peggy (peggy)
### [`v4.0.3`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#403)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.2...v4.0.3)
Released: 2024-06-19
##### New features
- [#509](https://togithub.com/peggyjs/peggy/pull/509) Add and implement ES6 export button
##### Bug fixes
- [#493](https://togithub.com/peggyjs/peggy/issues/493) Allow use of an empty
array, null, or undefined as allowedStartRules option
- [#505](https://togithub.com/peggyjs/peggy/pull/505) Fix vscode-eslint settings
to work with eslint flat config
- [#507](https://togithub.com/peggyjs/peggy/pull/507) Remove stray semicolon in CSS
- [#508](https://togithub.com/peggyjs/peggy/pull/508) Fix broken text input in
web version
- [#512](https://togithub.com/peggyjs/peggy/issues/512) Add "StartRules" to peg.d.ts
- [#513](https://togithub.com/peggyjs/peggy/issues/513) Allow whitespace between
plucked word and its pattern.
- [#520](https://togithub.com/peggyjs/peggy/issues/520) Grammar with token "constructor" fails to generate
- [#522](https://togithub.com/peggyjs/peggy/issues/522) Switched from puppeteer
to playwright for web tests, and added them to CI.
##### Documentation
- [#506](https://togithub.com/peggyjs/peggy/pull/506) Added END OF INPUT (`!.`).
### [`v4.0.2`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#402)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.1...v4.0.2)
Released: 2024-02-26
##### Bug fixes
- [#490](https://togithub.com/peggyjs/peggy/issues/490) Throw error when imports are used in unsupported formats. Supported formats are now only "es" and "commonjs".
- [#494](https://togithub.com/peggyjs/peggy/pull/494) Updated docs to make `--allowedRules *` more clear
- [#495](https://togithub.com/peggyjs/peggy/issues/495) from-mem inadvertantly
made the minimum supported node version v20.8. Updated to latest from-mem.
### [`v4.0.1`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#401)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.0...v4.0.1)
Released: 2024-02-23
##### Bug fixes
- [#478](https://togithub.com/peggyjs/peggy/issues/478) Add "npx" to some doc
examples.
- [#479](https://togithub.com/peggyjs/peggy/issues/479)
Refactor `cli/fromMem.js` into separate project
[from-mem](https://togithub.com/peggyjs/from-mem/).
- [#481](https://togithub.com/peggyjs/peggy/issues/481) Add CLI test for
\--library
- [#483](https://togithub.com/peggyjs/peggy/issues/483) fix errors in
typescript file.
### [`v4.0.0`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#400)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v3.0.2...v4.0.0)
Released: 2024-02-13
##### Major Changes
- [#379](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/peggyjs/peggy/pull/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 form `npm:/` 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](https://togithub.com/peggyjs/peggy/pull/420) BREAKING: Node v16+ is now
required for running the CLI or using Peggy as a library. Generated code
still targets older runtimes.
- [#456](https://togithub.com/peggyjs/peggy/pull/456) BREAKING: Allow imports
from external compiled grammars inside a source grammar, using `import
{rule} from "external.js"`. Note that this syntax will generate either
`import` or `require` in the JavaScript output, depending on the value of
the `format` parameter. This will need explicit support from
plugins, with a few new AST node types and a few visitor changes.
- [#463](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/peggyjs/peggy/pull/400) Use `@generated` in generated
code
- [#404](https://togithub.com/peggyjs/peggy/issues/404) Add support for -w/--watch
to the command line interface.
- [#415](https://togithub.com/peggyjs/peggy/issues/415) Added `browser` key to package.json, pointing to Webpack output.
- [#420](https://togithub.com/peggyjs/peggy/pull/420) Updated dependencies to
avoid audit warnings.
- [#425](https://togithub.com/peggyjs/peggy/pull/425) Add a pass to simplify single-character choices
- [#427](https://togithub.com/peggyjs/peggy/pull/427) Avoid double extraction of
substrings in various MATCH\_ bytecodes
- [#430](https://togithub.com/peggyjs/peggy/pull/430) Make generate-js.js ts clean
- [#432](https://togithub.com/peggyjs/peggy/pull/432) Add peggy.code-workspace
- [#435](https://togithub.com/peggyjs/peggy/pull/435) Setup tsconfig to detect use of library functions from es6 or later
- [#436](https://togithub.com/peggyjs/peggy/pull/436) Get rid of tsd
- [#437](https://togithub.com/peggyjs/peggy/pull/437) Better type checking for visitor
- [#438](https://togithub.com/peggyjs/peggy/pull/438) Make test build deterministic
- [#439](https://togithub.com/peggyjs/peggy/pull/439) Make peg$computePosDetails a little faster
- [#440](https://togithub.com/peggyjs/peggy/issues/440) Create directories for
output and source-map if they do not exist, rather than erroring.
- [#446](https://togithub.com/peggyjs/peggy/pull/446) Add a right-associative `ExponentiationExpression` rule (operator `**`) to `javascript.pegjs` example grammar.
- [#451](https://togithub.com/peggyjs/peggy/pull/451) Make stack.js ts clean
- [#452](https://togithub.com/peggyjs/peggy/pull/452) Fixes to prepare generate-bytecode.js for ts-check
- [#453](https://togithub.com/peggyjs/peggy/pull/453) Make generate-bytecode.js ts-clean
- [#460](https://togithub.com/peggyjs/peggy/pull/453) Allow `-t` and `-T` testing
from the CLI with `--format es`.
##### Bug Fixes
- [#405](https://togithub.com/peggyjs/peggy/pull/405) Doc example doesn't correspond to code example. From [@hildjj](https://togithub.com/hildjj)
- [#415](https://togithub.com/peggyjs/peggy/issues/415) Make docs match reality with `import`.
- [#426](https://togithub.com/peggyjs/peggy/pull/426) Fix typo in XML example.
- [#434](https://togithub.com/peggyjs/peggy/issues/434) Fixed bad example in docs.
- [#445](https://togithub.com/peggyjs/peggy/issues/415) Fix indentation in `examples/javascript.pegjs`.
- [#450](https://togithub.com/peggyjs/peggy/issues/450) Fixed misleading documentation.
- [#466](https://togithub.com/peggyjs/peggy/issues/466) Add docs for developers.
### [`v3.0.2`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#302)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v3.0.1...v3.0.2)
Released: 2023-03-21
##### Minor Changes
- [#392](https://togithub.com/peggyjs/peggy/issues/392) Removed the --optimize
command line argument, which has been invalid since v1.2. From [@hildjj](https://togithub.com/hildjj).
##### Bug Fixes
- [#371](https://togithub.com/peggyjs/peggy/issues/371) Error using online Peggy - "Can't find variable: util". From [@hildjj](https://togithub.com/hildjj).
- [#374](https://togithub.com/peggyjs/peggy/issues/374) CLI throws exception
on grammar errors. From [@hildjj](https://togithub.com/hildjj)
- [#381](https://togithub.com/peggyjs/peggy/issues/381) Repetitions with code blocks
for min or max not handling non-integer returns correctly. From [@hildjj](https://togithub.com/hildjj).
- [#382](https://togithub.com/peggyjs/peggy/pull/382) Update grammarSource
documentation. From [@AndrewRayCode](https://togithub.com/AndrewRayCode).
- [#384](https://togithub.com/peggyjs/peggy/issues/384) Improve the error.format()
documentation. From [@AndrewRayCode](https://togithub.com/AndrewRayCode).
- [#386](https://togithub.com/peggyjs/peggy/issues/386) Ensure '\*' as
allowed-start-rule is documented for CLI. From [@hildjj](https://togithub.com/hildjj).
### [`v3.0.1`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#301)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v3.0.0...v3.0.1)
Released: 2022-03-05
##### Minor Changes
- [#329](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/hildjj).
##### Bug Fixes
- [#329](https://togithub.com/peggyjs/peggy/issues/329) Allow type definition for ParserBuildOptions to include plugin options. From [@hildjj](https://togithub.com/hildjj).
- [#346](https://togithub.com/peggyjs/peggy/issues/346) Allow extra semicolons
between rules. From [@hildjj](https://togithub.com/hildjj).
- [#347](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/hildjj).
- [#354](https://togithub.com/peggyjs/peggy/pull/354) Various minor nits in the
docs, including indentation and ensuring that the CNAME file is correct.
- [#357](https://togithub.com/peggyjs/peggy/issues/357) Fix infinite recursion
possibility in repetition delimeters. From [@hildjj](https://togithub.com/hildjj) and [@Mingun](https://togithub.com/Mingun).
- [#359](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/nene).
- [#364](https://togithub.com/peggyjs/peggy/issues/364) Fix passing an incorrect
external label to the expression inside the `repeated` node. From [@Mingun](https://togithub.com/Mingun).
### [`v3.0.0`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#300)
[Compare Source](https://togithub.com/peggyjs/peggy/compare/v2.0.1...v3.0.0)
Released: 2023-02-21
##### Major Changes
- [#280](https://togithub.com/peggyjs/peggy/issues/280) Add inline examples to
the documentation, from [@hildjj](https://togithub.com/hildjj)
- [#240](https://togithub.com/peggyjs/peggy/issues/240) Generate SourceNodes for
bytecode, from [@hildjj](https://togithub.com/hildjj)
- [#338](https://togithub.com/peggyjs/peggy/pull/338) BREAKING CHANGE. Update
dependencies, causing minimum supported version of node.js to move to 14.
Generated grammar source should still work on older node versions and some
older browsers, but testing is currently manual for those. from [@hildjj](https://togithub.com/hildjj)
- [#291](https://togithub.com/peggyjs/peggy/pull/291): Add support for
repetition operator `expression|min .. max, delimiter|`, from [@Mingun](https://togithub.com/Mingun)
- [#339](https://togithub.com/peggyjs/peggy/pull/339): BREAKING CHANGE. Updated
the list of JavaScript reserved words. This will break existing grammars
that use any of the new words in their rule or label names. from [@hildjj](https://togithub.com/hildjj)
Important information for plug-in authors: PR \[[#291](https://togithub.com/peggyjs/peggy/issues/291)] added 4 new opcodes to the bytecode:
- `IF_LT`
- `IF_GE`
- `IF_LT_DYNAMIC`
- `IF_GE_DYNAMIC`
and added a new AST node and a visitor method `repeated`. Do not forget to update your plug-ins.
Important information for grammar authors: the following words, which used to
be valid identifiers for rules and labels, are now treated as JavaScript
reserved words, and will cause errors at compile time if you are using them:
- abstract
- arguments
- as
- async
- boolean
- byte
- char
- double
- eval
- final
- float
- from
- get
- goto
- int
- long
- native
- of
- set
- short
- synchronized
- throws
- transient
- volatile
##### Minor Changes
- [#274](https://togithub.com/peggyjs/peggy/issues/274) `"*"` is now a valid `allowedStartRule`, which means all rules are allowed, from [@hildjj](https://togithub.com/hildjj)
- [#229](https://togithub.com/peggyjs/peggy/issues/229) new CLI option
`-S ` or `--start-rule ` to specify the start rule when testing,
from [@hildjj](https://togithub.com/hildjj)
- [#236](https://togithub.com/peggyjs/peggy/issues/236) Website: show line numbers
in parser input textarea, from [@Mingun](https://togithub.com/Mingun)
- [#280](https://togithub.com/peggyjs/peggy/issues/280) new output type
`source-with-inline-map`, which generates source text with an inline map,
from [@hildjj](https://togithub.com/hildjj)
- [#285](https://togithub.com/peggyjs/peggy/issues/285) Require that a non-empty
string be given as a grammarSource if you are generating a source map, from
[@hildjj](https://togithub.com/hildjj)
- [#206](https://togithub.com/peggyjs/peggy/pull/206): New output type `ast` and
an `--ast` flag for the CLI to get an internal grammar AST for investigation
(can be useful for plugin writers), from [@Mingun](https://togithub.com/Mingun)
- [#294](https://togithub.com/peggyjs/peggy/pull/294) Website: show errors in the
editors, from [@Mingun](https://togithub.com/Mingun)
- [#297](https://togithub.com/peggyjs/peggy/pull/297) Website: add Discord widget,
from [@hildjj](https://togithub.com/hildjj)
- [#299](https://togithub.com/peggyjs/peggy/issues/299) Add example grammar for a
[SemVer.org](https://semver.org) semantic version string, from [@dselman](https://togithub.com/dselman)
- [#307](https://togithub.com/peggyjs/peggy/issues/307) Allow grammars to have
relative offsets into their source files (e.g. if embedded in another doc),
from [@hildjj](https://togithub.com/hildjj).
- [#308](https://togithub.com/peggyjs/peggy/pull/308) Add support for reading test
data from stdin using `-T -`, from [@hildjj](https://togithub.com/hildjj).
- [#313](https://togithub.com/peggyjs/peggy/pull/313) Create the website using
eleventy, from [@camcherry](https://togithub.com/camcherry)
##### Bug Fixes
- [#283](https://togithub.com/peggyjs/peggy/issues/283) Fix incorrect type
information for DiagnosticCallback, from [@hildjj](https://togithub.com/hildjj)
- [#287](https://togithub.com/peggyjs/peggy/issues/287) Allow large outputs
to be received without blocking on the CLI tests, from [@hildjj](https://togithub.com/hildjj)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^2.0.1
->^4.0.0
Release Notes
peggyjs/peggy (peggy)
### [`v4.0.3`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#403) [Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.2...v4.0.3) Released: 2024-06-19 ##### New features - [#509](https://togithub.com/peggyjs/peggy/pull/509) Add and implement ES6 export button ##### Bug fixes - [#493](https://togithub.com/peggyjs/peggy/issues/493) Allow use of an empty array, null, or undefined as allowedStartRules option - [#505](https://togithub.com/peggyjs/peggy/pull/505) Fix vscode-eslint settings to work with eslint flat config - [#507](https://togithub.com/peggyjs/peggy/pull/507) Remove stray semicolon in CSS - [#508](https://togithub.com/peggyjs/peggy/pull/508) Fix broken text input in web version - [#512](https://togithub.com/peggyjs/peggy/issues/512) Add "StartRules" to peg.d.ts - [#513](https://togithub.com/peggyjs/peggy/issues/513) Allow whitespace between plucked word and its pattern. - [#520](https://togithub.com/peggyjs/peggy/issues/520) Grammar with token "constructor" fails to generate - [#522](https://togithub.com/peggyjs/peggy/issues/522) Switched from puppeteer to playwright for web tests, and added them to CI. ##### Documentation - [#506](https://togithub.com/peggyjs/peggy/pull/506) Added END OF INPUT (`!.`). ### [`v4.0.2`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#402) [Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.1...v4.0.2) Released: 2024-02-26 ##### Bug fixes - [#490](https://togithub.com/peggyjs/peggy/issues/490) Throw error when imports are used in unsupported formats. Supported formats are now only "es" and "commonjs". - [#494](https://togithub.com/peggyjs/peggy/pull/494) Updated docs to make `--allowedRules *` more clear - [#495](https://togithub.com/peggyjs/peggy/issues/495) from-mem inadvertantly made the minimum supported node version v20.8. Updated to latest from-mem. ### [`v4.0.1`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#401) [Compare Source](https://togithub.com/peggyjs/peggy/compare/v4.0.0...v4.0.1) Released: 2024-02-23 ##### Bug fixes - [#478](https://togithub.com/peggyjs/peggy/issues/478) Add "npx" to some doc examples. - [#479](https://togithub.com/peggyjs/peggy/issues/479) Refactor `cli/fromMem.js` into separate project [from-mem](https://togithub.com/peggyjs/from-mem/). - [#481](https://togithub.com/peggyjs/peggy/issues/481) Add CLI test for \--library - [#483](https://togithub.com/peggyjs/peggy/issues/483) fix errors in typescript file. ### [`v4.0.0`](https://togithub.com/peggyjs/peggy/blob/HEAD/CHANGELOG.md#400) [Compare Source](https://togithub.com/peggyjs/peggy/compare/v3.0.2...v4.0.0) Released: 2024-02-13 ##### Major Changes - [#379](https://togithub.com/peggyjs/peggy/issues/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](https://togithub.com/peggyjs/peggy/pull/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 form `npm:Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.