v0.11.1November 16, 2020
📜 LALR parser
📜 The LALR parser now supports priority in rules, as a way to resolve collision errors
👌 Improvements to the standalone tool, including more command-line options, like optional compression for the json data.
👌 Improvements to the puppet error handling interface
👍 Better error reporting on LALR collisions
🛠 Bugfixes in Earley
➕ Added support for syntax highlighting in Atom
🛠 Fixes and improvements for the
cache=Truenow uses a temporary directory instead of working directory.
👀 Lark can now be imported directly from a zip (See: ed5c8ec)
➕ Added more terminals to the grammar library (available for %import).
👍 Nearley tools now supports case insensitive strings
🗄 Deprecated some interfaces
👌 Improvements to docs, stubs, and various bugfixes
- Many improvements and additions to documentation
➕ Added the
🛠 Various Bugfixes to improve the handling of ambiguous results.
✅ Read the docs here: https://lark-parser.readthedocs.io/en/latest/forest.html
📜 Lark now loads faster from cache (commit 7dc0017)
📜 Terminals can now be composed of regexps and strings with different flags, if using Python 3.6+ (commit e6fc3c9)
➕ Added support for parsing byte-strings, with the
use_bytesflag (commit 9ee8428).
UnexpectedTokenexception now has the
acceptsattribute, which contains a list of terminals that would be accepted by the parser instead (in addition to the
expectsattribute, which is guided by the lexer and may include terminals that won't be accepted by the parser) (commit a7bcd0b)
👍 Allow multiline regexes with the
xflag (commit 9923987)
0️⃣ Lark no longer uses the default logger. Instead uses
lark.LOGGER. (commit 7010f96)
🌲 Lark now notifies on unused terminals/rules through
📜 Standalone generator now creates smaller files (without comments and docstrings). Also undergone various fixes. (commit bf2d9bf)
Wheel distribution due to (somewhat) popular demand.
🛠 Lots of small bugfixes and improvements!
🛠 Many thanks to @MegaIng for his continued work on many of these new features and fixes, and to everyone else who contributed to Lark and helped make it even better.
➕ Added error handling to LALR!
✅ Read here: https://lark-parser.readthedocs.io/en/latest/classes/#larkparse
- Parser now comes with a puppet for advanced error handling.
✅ Read here: https://lark-parser.readthedocs.io/en/latest/classes/#parserpuppet
👌 Support for better regexps with the
regexmodule, when using
✅ Read here: https://lark-parser.readthedocs.io/en/latest/classes/#using-unicode-character-classes-with-regex
🚀 The last two releases were wrong. I apologize.
🚀 Hopefully that's the last of it, and we'll be back on track with periodic and accurate releases.
v0.8.8June 13, 2020
v0.8.7June 13, 2020
🚀 The main features for this release:
Grammar caching : It's now possible to cache the results of the LALR grammar analysis, for x2 to x3 faster loading. Use
Lark(..., cache=True)or specify a file name. See here: https://lark-parser.readthedocs.io/en/latest/classes/
Grammar templates : Added support for grammar "functions" that expand in preprocessing. No docs yet, but see here for examples:
Lark online IDE : Technically not a feature, but it's possible to run Lark in the browser. Now we also have a simple IDE on github pages: https://lark-parser.github.io/lark/ide/app.html
👌 Improved performance for large grammars
🖨 More debug prints when in debug mode
👍 Better support for PyInstaller
🛠 Lots of bugfixes: mypy stubs, v_args, docs, and more.
v0.8.5March 29, 2020
- Added the
g_regex_flagsoption, to allow applying flags to all terminals.
end_posfor Earley, when using
- 🛠 Fixes for mypy
- 👍 Better docs
- Added the