Esempio n. 1
0
    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)
Esempio n. 2
0
 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()
Esempio n. 3
0
    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
Esempio n. 4
0
 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)