github lark-parser/lark 0.7.0
Major Release: New Earley implementation with SPPF support

latest releases: 1.1.9, 1.1.8, 1.1.7...
5 years ago

This new version includes a brand new Earley implementation, with support for a Shared Packed Parse Forest (or SPPF), providing much better performance for ambiguous grammars, both in terms of run time and memory consumption.

Users might notice a small degradation in Earley's run-time performance for deterministic grammars. Hopefully future releases will take care of that as well.

Big thanks to @night199uk for his great contribution.

Other features worth mentioning (though they exist in the previous release):

  • Added support for importing rules between grammars. The import mechanism is namespace-aware.

  • Added the maybe_placeholders option, which causes optionals of the form [expr] to return None when not matched, instead of just not appearing. (optionals of the form expr? maintain the previous behavior of not appearing unless matched)

  • Plenty of bugfixes, better errors, and better docs

Don't miss a new lark release

NewReleases is sending notifications on new releases.