def add_rule(self, rule: Rule): if (self.aaa_rules_handling_type is not AaaRulesHandlingType.NO_AAA_RULES or not rule.is_non_terminal_to_terminal_terminal_rule()) and \ rule not in self.forbidden_rules: self.rules.add(rule) if rule.is_terminal(self.aaa_rules_handling_type): self.terminal_rules.add(rule) else: self.non_terminal_rules.add(rule)
def test_is_non_terminal_to_terminal_terminal_rule_failure(self): rule = Rule([self.left, self.rightTerminal]) self.assertFalse(rule.is_non_terminal_to_terminal_terminal_rule())
def test_is_non_terminal_to_terminal_terminal_rule(self): rule = Rule([self.left, self.rightTerminal, self.rightTerminal]) self.assertTrue(rule.is_non_terminal_to_terminal_terminal_rule())