Releases: benjamin-hodgson/Pidgin
Releases · benjamin-hodgson/Pidgin
v3.5.1
Fixed
- Fixed a bug in the way
CIStringhandles Unicode inputs. Thank you to @fubar-coder for the bug report!
v3.5.0
Added
- Support for incremental parsing - reusing parts of a previous parse when the input has not changed. The new APIs live in the
Pidgin.Incrementalnamespace. - Made
Expected's constructors public. Thank you to @StringEpsilon for the feature request!
Fixed
- A performance improvement for
String(and other APIs that useSequenceTokenParser). Thank you to @StringEpsilon for the contribution!
Removed
- Removed support for .NET versions older than .NET 7.
v3.4.0
Fixed
- A performance optimisation for
AnyCharExceptwhen using only one character. Thank you to @textGamex!
v3.2.3
Fixed
- Overloads for parsing from
ITokenStreams andParseStates have been made public as originally intended. Thanks @katherinefluxinc!
v3.2.2
Added
- Support for AOT/trimming deployment scenarios.
v3.2.1
v3.2.0
Added
- Four new combinators:
ManyThen,AtLeastOnceThen,SkipManyThen, andSkipAtLeastOnceThen
Changed
v3.1.0
Added
- A pair of parsers for enum values,
EnumandCIEnum. Thanks @RomanSoloweow!
v3.0.0
Removed
- Removed support for .NET 4 and .NET Core 3.1. Pidgin is now a .NET 5 library.
Added
- Published the (previously internal)
TokenStreamAPI. You can now write parsers which consume custom input streams. - Support for resumable parsing, through the
ResumableTokenStreamclass. - An experimental API for writing your own parsers by subclassing
Parser.
Changed
Parser.Realis now a property and not a method.- A new design for computing source positions.
posCalculatornow returns aSourcePosDeltastruct 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
Parsemethods inParseExtensionsnow take anIConfigurationobject as an optional parameter (instead of aposCalculatorfunc).- If you were using
posCalculator, you can instead subclassDefaultConfigurationand override thePosCalculatorproperty.
- If you were using
- 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.