Release notes for 0.14¶
Parenthesized groups¶
RHS in grammar rules now can used parentheses to group element. These groups behave similar to any other rule reference. E.g. repetitions and assignments can be applied.
Previously:
S: a_then_b*[comma] c;
a_then_b: a b;
...
Now you can write:
S: (a b)*[comma] c;
...
You can nest groups, combine with choice operator etc.
S: ( (a c)+ | b)*[comma] c;
For more info see a new section in the docs.
GLR forest¶
GLR now returns Forest
object. This object represents all the possible solutions.
Forest can be iterated, indexed, yielding lazy parse trees.
Extensions to pglr
command¶
pglr trace
now provides --frontier
flag to organize GSS nodes into
frontiers. See the docs.
pglr parse
is added for parsing input strings and files and producing forests
and trees as either string or graphical dot representation. See the
docs.
Support for visitor¶
Visitor pattern is supported as a visitor
function enabling depth-first
processing of tree-like structures. See the
docs.
New examples¶
Several new examples are added:
Performance tests¶
New performance tests based on new example grammars are provided in
tests/perf.
Run runall.sh
and read the reports in
tests/perf/reports.