Skip to content

Version 6.0.0-alpha.3

Pre-release
Pre-release
Compare
Choose a tag to compare
@teo-tsirpanis teo-tsirpanis released this 25 Nov 21:24
  • Breaking change: .NET Framework 4.5 is no longer supported. The library targets .NET Standard 2.0, .NET Standard 2.1 and .NET 5.
  • Breaking change: Logging parser events is no longer supported. The logging function was removed from the signatures of parser APIs.
  • Breaking change: The function LALRParser.parseLALR was renamed to LALRParser.parse.
  • Breaking change: The Farkle.Parser.OptimizedOperations type was made internal.
  • Breaking change: Transformers no longer take the position of a terminal, but an ITransformerContext type containing more information.
  • Breaking change: Farkle's exception types were refactored. They inherit from FarkleException.
  • Breaking change: Post-processor exceptions are wrapped inside a PostProcessorException and thrown to user code.
  • Breaking change: Only objects of type PrecompilableDesigntimeFarkle can be marked for precompilation.
  • Minor breaking change: The Transformers and Fusers properties were removed from the Farkle.Builder.GrammarDefinition type.
  • Farkle will now optimize precompilable designtime Farkles using dynamic code generation. This feature is only supported on .NET Standard 2.1 if the runtime supports dynamic code compilation.
  • An API for the CharStream type was published.
  • An API for getting precompiled grammars was published.
  • The tokenizer can be extended by user code. TODO: write documentation
  • The runtime Farkle's extension methods became regular methods.
  • Exceptions that might occur when a precompiled grammar fails to be loaded can be suppressed with an AppContext switch.