def la_not_in_set(self, lookahead_exclusions): if all(len(excl) == 1 for excl in lookahead_exclusions): return grammar.LookaheadRule( OrderedFrozenSet(excl[0] for excl in lookahead_exclusions), False) raise ValueError("unsupported: lookahead > 1 token, {!r}".format( lookahead_exclusions))
def la_not_in_set(self, notin, ob, lookahead_exclusions, cb): assert (notin, ob, cb) == ("<!", '{', '}') if all(len(excl) == 1 for excl in lookahead_exclusions): return grammar.LookaheadRule( OrderedFrozenSet(excl[0] for excl in lookahead_exclusions), False) raise ValueError("unsupported: lookahead > 1 token, {!r}".format( lookahead_exclusions))
def la_not_in_nonterminal(self, nt): return grammar.LookaheadRule(OrderedFrozenSet([nt]), False)
def la_ne(self, t): return grammar.LookaheadRule(OrderedFrozenSet([t]), False)
def la_eq(self, t): return grammar.LookaheadRule(OrderedFrozenSet([t]), True)
def la_ne(self, ne, t): assert ne == "!=" return grammar.LookaheadRule(OrderedFrozenSet([t]), False)
def la_eq(self, eq, t): assert eq == "==" return grammar.LookaheadRule(OrderedFrozenSet([t]), True)