Ejemplo n.º 1
0
 def test_rule_with_no_collision(self) -> None:
     grammar_source = """
     start: bad_rule
     sum:
         | NAME '-' NAME
         | NAME '+' NAME
     """
     grammar: Grammar = parse_string(grammar_source, GrammarParser)
     validator = SubRuleValidator(grammar)
     for rule_name, rule in grammar.rules.items():
         validator.validate_rule(rule_name, rule)
Ejemplo n.º 2
0
 def test_rule_with_simple_collision(self) -> None:
     grammar_source = """
     start: bad_rule
     sum:
         | NAME '+' NAME
         | NAME '+' NAME ';'
     """
     grammar: Grammar = parse_string(grammar_source, GrammarParser)
     validator = SubRuleValidator(grammar)
     with self.assertRaises(ValidationError):
         for rule_name, rule in grammar.rules.items():
             validator.validate_rule(rule_name, rule)