Skip to content

Releases: peggyjs/peggy

v4.1.1

03 Oct 20:07
v4.1.1
cdf0caf
Compare
Choose a tag to compare

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 run peggy.
  • #538 Fixed error in TS types for peg$maxFailExpected and peg$maxFailPos.
  • #551 Moved to package-extract instead of a custom script for version file generation.

v4.1.0

03 Oct 19:56
v4.1.0
e15f3aa
Compare
Choose a tag to compare

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 run peggy.
  • #538 Fixed error in TS types
    for peg$maxFailExpected and peg$maxFailPos.
  • #551 Moved to package-extract
    instead of a custom script for version file generation.

v4.1.0-pre.2

03 Oct 19:49
v4.1.0-pre.2
27bc697
Compare
Choose a tag to compare
v4.1.0-pre.2 Pre-release
Pre-release

Testing what I hope is the final release process. This should not get the
@latest tag.

v4.1.0-pre.1

03 Oct 15:11
v4.1.0-pre.1
b42861b
Compare
Choose a tag to compare
v4.1.0-pre.1 Pre-release
Pre-release

Checking publish process.

v4.1.0-pre.0

03 Oct 05:28
v4.1.0-pre.0
4faf9a4
Compare
Choose a tag to compare
v4.1.0-pre.0 Pre-release
Pre-release

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 run peggy.
  • #538 Fixed error in TS types
    for peg$maxFailExpected and peg$maxFailPos.
  • #551 Moved to package-extract
    instead of a custom script for version file generation.

Bug fixes

19 Jun 22:02
ff7ec97
Compare
Choose a tag to compare

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

23 Feb 20:58
7906d7b
Compare
Choose a tag to compare

Bug fixes

  • #478 Add "npx" to some doc examples.
  • #479 Refactor cli/fromMem.js into separate project from-mem.
  • #481 Add CLI test for --library
  • #483 fix errors in typescript file.

External grammar libraries

13 Feb 16:45
9449913
Compare
Choose a tag to compare

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 form npm:<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, 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 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 **) to javascript.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

  • #405 Doc example doesn't correspond to code example. From @hildjj
  • #415 Make docs match reality with import.
  • #426 Fix typo in XML example.
  • #434 Fixed bad example in docs.
  • #445 Fix indentation in examples/javascript.pegjs.
  • #450 Fixed misleading documentation.
  • #466 Add docs for developers.

More cleanups

21 Mar 18:58
a9ae574
Compare
Choose a tag to compare

3.0.2

Released: 2023-03-21

Minor Changes

  • #392 Removed the --optimize command line argument, which has been invalid since v1.2. From @hildjj.

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

05 Mar 16:59
408e094
Compare
Choose a tag to compare

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.