From b87acedac43a89bc2883c944febda4c9ece579eb Mon Sep 17 00:00:00 2001 From: Erez Sh Date: Sun, 23 Aug 2020 16:07:07 +0300 Subject: [PATCH] Fixed docs. Added support for hashing ParserPuppet --- docs/grammar.md | 2 +- lark/parsers/lalr_puppet.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/grammar.md b/docs/grammar.md index e532297..1cd72dd 100644 --- a/docs/grammar.md +++ b/docs/grammar.md @@ -204,7 +204,7 @@ Each item is one of: * `TERMINAL` * `"string literal"` or `/regexp literal/` * `(item item ..)` - Group items -* `[item item ..]` - Maybe. Same as `(item item ..)?`, but generates `None` if there is no match +* `[item item ..]` - Maybe. Same as `(item item ..)?`, but when `maybe_placeholders=True`, generates `None` if there is no match. * `item?` - Zero or one instances of item ("maybe") * `item*` - Zero or more instances of item * `item+` - One or more instances of item diff --git a/lark/parsers/lalr_puppet.py b/lark/parsers/lalr_puppet.py index 40cc0c1..35b2250 100644 --- a/lark/parsers/lalr_puppet.py +++ b/lark/parsers/lalr_puppet.py @@ -88,6 +88,9 @@ class ParserPuppet(object): self._start == other._start ) + def __hash__(self): + return hash((tuple(self._state_stack), self._start)) + def pretty(self): """Print the output of ``choices()`` in a way that's easier to read.""" out = ["Puppet choices:"]