def __init__(self, initialsymbol, fulllist, options=None): Grammar.__init__(self) self._initialsymbol = initialsymbol for rule in fulllist: if fulllist.count(rule) > 1: raise ValueError("Duplicated rule: " + str(rule)) self.fulllist = tuple(fulllist) self.options = options or {}
def __init__(self, rules, root_rule="expr", repository=None): import parsley Grammar.__init__(self) repo=dict(repository or {}) for key in repo: if isinstance(repo[key], Grammar): repo[key] = checker_factory(repo[key]) self.grammar=parsley.makeGrammar(rules, repo) self.root_rule=root_rule