All Versions
16
Latest Version
Avg Release Cycle
94 days
Latest Release
-
Changelog History
Page 1
Changelog History
Page 1
-
v3.2.0 Changes
โ Added
- Four new combinators:
ManyThen
,AtLeastOnceThen
,SkipManyThen
, andSkipAtLeastOnceThen
- These are versions of
Until
,AtLeastOnceUntil
,SkipUntil
, andSkipAtLeastOnceUntil
which return the terminator. - Thanks to @chyyran and @atrauzzi, who asked for this in #121
- These are versions of
๐ Changed
- ๐ Improved documentation for
ExpressionParser
, now including an example.- Thanks to @hswami, who asked for this in #113
- โ Removed some Nuget dependencies which are no longer required (since they are part of .NET 5).
- Four new combinators:
-
v3.1.0 Changes
โ Added
- ๐ A pair of parsers for enum values,
Enum
andCIEnum
. Thanks @RomanSoloweow!
- ๐ A pair of parsers for enum values,
-
v3.0.0 Changes
โ 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 aSourcePosDelta
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 inParseExtensions
now take anIConfiguration
object as an optional parameter (instead of aposCalculator
func).- If you were using
posCalculator
, you can instead subclassDefaultConfiguration
and override thePosCalculator
property.
- 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.
-
v2.5.0 Changes
๐ Changed
- Pidgin's assembly is now strong named.
- ๐ Performance improvements to
CurrentPos
. - Internal simplifications to the error handling machinery.
- Pidgin's PDBs are now distributed through nuget.org as a snupkg (not from smbsrc.net).
-
v2.4.0 Changes
June 02, 2020โ Added
CurrentOffset
, which returns the number of tokens consumed- ๐ A new overload of
Rec
:Func<Parser<TToken, T> Rec(Func<Parser<TToken, T>, Parser<TToken, T>>)
Slice
, a synonym ofMapWithInput
๐ Fixed
- ๐ The
Real
parser now uses the invariant culture. Thank you @SigridAndersen for the contribution!
-
v2.3.0 Changes
February 27, 2020โ Added
- Nullability checks
๐ Fixed
- A bug in
HexNum
. Thank you @comaid for the contribution! - Some
ArrayPool
leaks. - A bug causing
Sequence
to fail when its type argument wasIComparable
but notIEquatable
๐ Changed
- ๐ Significant performance improvements when parsing from a non-chunked in-memory source such as a string or an array.
SkipWhitespaces
has been rewritten --- it should now run much faster
โ Removed
- ๐ Support for netstandard1.3
-
v2.2.0 Changes
September 26, 2019โ Added
- ๐
MapWithInput
, giving access to aSpan
containing the input tokens which were matched by the parser. - An infix version of
Map
(synonym ofSelect
). - ๐
Real
, a parser for floating point values in the format+1.23e4
๐ Changed
- ๐ Under-the-hood performance improvements to the way
SourcePos
is handled - A faster implementation of
CIString
- ๐
-
v2.1.0 Changes
February 15, 2019โ Added
- ๐ Overloads of
ExpressionParser.Build
to make recursive grammars more convenient
- ๐ Overloads of
-
v2.0.1 Changes
February 08, 2019๐ Fixed
- ๐ An
ArrayPool
leak when certain parsers failed
- ๐ An
-
v2.0.0 Changes
January 22, 2019โ Added
- ๐ A
ParserExtensions.Parse
overload which accepts aReadOnlySpan
. - A compile target for
netstandard2.0
. This should simplify installation into .NET Framework projects. - ๐ Performance improvements across the board
๐ Changed
- Error handling was rewritten.
ParseError
is now a class and not a struct.- Fewer items are reported in
Expected
.
- ๐
Parser<TToken>.End
is now a property and not a method. Result<TToken, T>
is now a class and not a struct.- ๐ When parsing from streaming inputs like
Stream
orTextReader
, the stream will now usually advance beyond the last character consumed by the parser
๐ Fixed
- ๐ Fixed an internal potential memory leak due to the use of pooled memory
- ๐ A