From 9d452ec66a010757feb8576646f938cdfe55255a Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 15 Jun 2018 00:35:39 +0200 Subject: [PATCH] Use a set instead of dict if it's not necessary --- parso/pgen2/pgen.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/parso/pgen2/pgen.py b/parso/pgen2/pgen.py index d0912cf..d1503fa 100644 --- a/parso/pgen2/pgen.py +++ b/parso/pgen2/pgen.py @@ -123,7 +123,7 @@ class ParserGenerator(object): if label in self._first: fset = self._first[label] if fset is None: - raise ValueError("recursion for rule %r" % name) + raise ValueError("left recursion for rule %r" % name) else: self._calcfirst(label) fset = self._first[label] @@ -145,7 +145,7 @@ class ParserGenerator(object): class DFAState(object): def __init__(self, from_rule, nfa_set, final): - assert isinstance(nfa_set, dict) + assert isinstance(nfa_set, set) assert isinstance(next(iter(nfa_set)), NFAState) assert isinstance(final, NFAState) self.from_rule = from_rule @@ -215,12 +215,12 @@ def _make_dfas(start, finish): assert isinstance(state, NFAState) if state in base: return - base[state] = 1 + base.add(state) for nfa_arc in state.arcs: if nfa_arc.label_or_string is None: addclosure(nfa_arc.next, base) - base = {} + base = set() addclosure(start, base) states = [DFAState(start.from_rule, base, finish)] for state in states: # NB states grows while we're iterating @@ -228,7 +228,7 @@ def _make_dfas(start, finish): for nfa_state in state.nfa_set: for nfa_arc in nfa_state.arcs: if nfa_arc.label_or_string is not None: - addclosure(nfa_arc.next, arcs.setdefault(nfa_arc.label_or_string, {})) + addclosure(nfa_arc.next, arcs.setdefault(nfa_arc.label_or_string, set())) for label_or_string, nfa_set in arcs.items(): for st in states: if st.nfa_set == nfa_set: