示例#1
0
 def test_simpleTestShouldNotChange(self):
     g = Grammar(terminals=[0, 1],
                 nonterminals=[S, A, B],
                 rules=[RuleSto0, RuleStoA, RuleAtoAB, RuleBto1],
                 start_symbol=S)
     ContextFree.remove_useless_symbols(g)
     self.assertTrue(g.have_term([0, 1]))
     self.assertTrue(g.have_nonterm([S, A, B]))
 def setUp(self):
     self.g = Grammar(terminals=[My],
                      nonterminals=[S],
                      rules=[R],
                      start_symbol=S)
     ContextFree.remove_useless_symbols(self.g, transform_grammar=True)
     ContextFree.remove_rules_with_epsilon(self.g, transform_grammar=True)
     ContextFree.remove_unit_rules(self.g, transform_grammar=True)
     ContextFree.remove_useless_symbols(self.g, transform_grammar=True)
     ContextFree.transform_to_chomsky_normal_form(self.g, transform_grammar=True)
示例#3
0
 def test_simpleTestShouldChange(self):
     g = Grammar(terminals=[0, 1],
                 nonterminals=[S, A, B],
                 rules=[RuleSto0, RuleStoA, RuleAtoAB, RuleBto1],
                 start_symbol=S)
     ContextFree.remove_useless_symbols(g, transform_grammar=True)
     self.assertTrue(g.have_term(0))
     self.assertFalse(g.have_term(1))
     self.assertTrue(g.have_nonterm(S))
     self.assertFalse(g.have_nonterm(A))
     self.assertFalse(g.have_nonterm(B))
示例#4
0
 def test_simpleTest(self):
     g = Grammar(terminals=[0, 1],
                 nonterminals=[S, A, B],
                 rules=[RuleSto0, RuleStoA, RuleAtoAB, RuleBto1],
                 start_symbol=S)
     com = ContextFree.remove_useless_symbols(g)
     self.assertTrue(com.have_term(0))
     self.assertFalse(com.have_term(1))
     self.assertTrue(com.have_nonterm(S))
     self.assertFalse(com.have_nonterm(A))
     self.assertFalse(com.have_nonterm(B))