- 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).
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
- The
Real
parser now uses the invariant culture. Thank you @SigridAndersen for the contribution!
- Nullability checks
- 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
- 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
- Support for netstandard1.3
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
- Under-the-hood performance improvements to the way
SourcePos
is handled - A faster implementation of
CIString
- Overloads of
ExpressionParser.Build
to make recursive grammars more convenient
- An
ArrayPool
leak when certain parsers failed
- 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
- 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 an internal potential memory leak due to the use of pooled memory