Pidgin v3.0.0 Release Notes
-
✂ 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.