Skip to content

Releases: benjamin-hodgson/Pidgin

v3.2.3

26 Feb 16:44
e9a7f74
Compare
Choose a tag to compare

Fixed

  • Overloads for parsing from ITokenStreams and ParseStates have been made public as originally intended. Thanks @katherinefluxinc!

v3.2.2

13 Jul 04:14
1f20a74
Compare
Choose a tag to compare

Added

  • Support for AOT/trimming deployment scenarios.

v3.2.1

28 Dec 18:41
afa28f0
Compare
Choose a tag to compare

Fixed

  • A critical bug in Try() which had been broken in 3.2.0.

Added

  • Support for Source Link

v3.2.0

09 Jul 21:18
4a3fccc
Compare
Choose a tag to compare

Added

  • Four new combinators: ManyThen, AtLeastOnceThen, SkipManyThen, and SkipAtLeastOnceThen
    • These are versions of Until, AtLeastOnceUntil, SkipUntil, and SkipAtLeastOnceUntil which return the terminator.
    • Thanks to @chyyran and @atrauzzi, who asked for this in #121

Changed

  • Improved documentation for ExpressionParser, now including an example.
  • Removed some Nuget dependencies which are no longer required (since they are part of .NET 5).

v3.1.0

13 Apr 23:33
Compare
Choose a tag to compare

Added

  • A pair of parsers for enum values, Enum and CIEnum. Thanks @RomanSoloweow!

v3.0.0

03 Nov 03:18
Compare
Choose a tag to compare

Removed

  • Removed support for .NET 4 and .NET Core 3.1. Pidgin is now a .NET 5 library.

Added

  • Published the (previously internal) TokenStream API. You can now write parsers which consume custom input streams.
  • Support for resumable parsing, through the ResumableTokenStream class.
  • An experimental API for writing your own parsers by subclassing Parser.

Changed

  • Parser.Real is now a property and not a method.
  • A new design for computing source positions. posCalculator now returns a SourcePosDelta struct representing the amount of text covered by a token, rather than updating the current source position in place.
    • Performance improvements in the code which computes source positions.
  • The Parse methods in ParseExtensions now take an IConfiguration object as an optional parameter (instead of a posCalculator func).
    • If you were using posCalculator, you can instead subclass DefaultConfiguration and override the PosCalculator property.
  • Performance improvements across the board thanks to a new Span-based implementation.
  • Performance improvements in SkipWhitespaces.
  • A new CI build system based on GitHub Actions.