Skip to content
John Gietzen edited this page Dec 3, 2016 · 4 revisions

4.0

  • Significantly improved the memory usage and performance of grammars that use left-recursion.
  • Re-implemented code expressions using the .NET Compiler Platform, allowing for unbalanced curly braces.
  • Positive assertions (&expr) now return the parse result rather than an empty string. BREAKING
  • Added composite grammar support:
    • #parse{} expressions
    • -export and -public flags
  • Added tracing support:
    • @trace setting
    • ITracer interface
    • NullTracer and DiagnosticsTracer implementations
  • Implemented grammar-wide case-insensitivity:
    • @ignorecase setting
    • Explicit case-sensitivity for strings and character classes ("NASA"s and [A-Z]s)
  • Simplified the syntax of #state{} expressions to simply #{}.
  • Improved MSBuild integration:
    • Regenerate parser classes when Pegasus is upgraded.
    • Generate parser classes into the intermediate path (the obj/ folder). BREAKING
    • Generate parser classes using the .g.cs file extension BREAKING
    • Resolved some incremental build issues and added clean support.
    • Specify multiple files to the same Pegasus.exe process.
  • Improved the Workbench:
    • Fixed/improved error messages.
    • Included the Workbench in NuGet package, under tools.
  • Relaxed some errors to warnings when they won't crash the parser.
  • Relaxed the restriction on #error{} expressions requiring them to appear at the end of a sequence.
  • Exposed the syntax highlighting classes used for the Workbench and the Visual Studio extension.
Clone this wiki locally