def __init__(self, manager): self._manager = manager name = "_recobs_grammar" Grammar.__init__(self, name, description=None, context=None) rule = Rule(element=Impossible(), exported=True) self.add_rule(rule)
def test_reference_names_with_spaces(self): """ Verify that reference names with spaces are accepted. """ lst = List("my list", ["test list"]) grammar = Grammar("My dragonfly grammar") grammar.add_rule(CompoundRule(name="my rule", spec="test rule")) grammar.add_rule(Rule(element=ListRef("my list", lst), exported=True)) try: grammar.load() self.assert_mimic_success("test rule") self.assert_mimic_success("test list") finally: grammar.unload()
def compile_grammar(self, grammar, context): self._log.debug("%s: Compiling grammar %s." % (self, grammar.name)) grammar_handle = context.CreateGrammar() fake_rule = Rule(name="_FakeRule", element=Literal("impossible " * 20), exported=True) self._compile_rule(fake_rule, grammar, grammar_handle) for rule in grammar.rules: self._compile_rule(rule, grammar, grammar_handle) grammar_handle.Rules.Commit() return grammar_handle
def __init__(self, name, element, default=None): rule_name = "_%s_%02d" % (self.__class__.__name__, RuleWrap._next_id) RuleWrap._next_id += 1 rule = Rule(name=rule_name, element=element, exported=False) RuleRef.__init__(self, rule=rule, name=name, default=default)