def testFileLoader(self): repository = { 'integer': RegularExpression("^[0123456789]*$"), 'DayOfMonth': load_python_file('pydsl/contrib/grammar/DayOfMonth.py') } self.assertTrue( load_bnf_file("pydsl/contrib/grammar/Date.bnf", repository))
def testDate(self): from pydsl.file.parsley import load_parsley_grammar_file repository = {'DayOfMonth':load_python_file('pydsl/contrib/grammar/DayOfMonth.py')} #DayOfMonth loaded as checker G=load_parsley_grammar_file("pydsl/contrib/grammar/Date.parsley", "expr", repository) C=checker_factory(G) T=translator_factory(G) self.assertTrue(C("2/4/12")) self.assertEqual(T("2/4/12"),(2,4,12)) self.assertRaises(parsley.ParseError,T, "40/4/12")
def setUp(self): self.integer = RegularExpression("^[0123456789]*$") self.date = load_bnf_file( "pydsl/contrib/grammar/Date.bnf", { 'integer': self.integer, 'DayOfMonth': load_python_file('pydsl/contrib/grammar/DayOfMonth.py') })
def testFileLoader(self): repository = {'integer':RegularExpression("^[0123456789]*$"), 'DayOfMonth':load_python_file('pydsl/contrib/grammar/DayOfMonth.py')} self.assertTrue(load_bnf_file("pydsl/contrib/grammar/Date.bnf", repository))
def setUp(self): self.integer = RegularExpression("^[0123456789]*$") self.date = load_bnf_file("pydsl/contrib/grammar/Date.bnf", {'integer':self.integer, 'DayOfMonth':load_python_file('pydsl/contrib/grammar/DayOfMonth.py')})
symbol1 = TerminalSymbol(String("S")) symbol2 = TerminalSymbol(String("R")) final1 = NonTerminalSymbol("exp") rule1 = Production([final1], (symbol1, symbol2)) productionset0 = BNFGrammar(final1, (rule1,symbol1,symbol2)) p0good = "SR" p0bad = "RS" #productionset1 definition symbol1 = TerminalSymbol(String("S")) symbol2 = TerminalSymbol(String("R")) symbol3 = TerminalSymbol(String(":")) symbol4 = TerminalSymbol(RegularExpression("^[0123456789]*$")) symbol5 = TerminalSymbol(load_python_file('pydsl/contrib/grammar/cstring.py')) final1 = NonTerminalSymbol("storeexp") final2 = NonTerminalSymbol("retrieveexp") final3 = NonTerminalSymbol("exp") rule1 = Production([final1], (symbol1, symbol3, symbol5)) rule2 = Production([final2], (symbol2, symbol3, symbol4)) rule3 = Production([final3], [final1]) rule4 = Production([final3], [final2]) rulelist = (rule1, rule2, rule3, rule4, symbol1, symbol2, symbol3, symbol4, symbol5) productionset1 = BNFGrammar(final3, rulelist) #productionset2 definition symbola = TerminalSymbol(String("A")) symbolb = TerminalSymbol(String("B")) nonterminal = NonTerminalSymbol("res") rulea = Production ((nonterminal,), (symbola, NullSymbol(), symbolb))
#productionset0 definition symbol1 = TerminalSymbol(String("S")) symbol2 = TerminalSymbol(String("R")) final1 = NonTerminalSymbol("exp") rule1 = Production([final1], (symbol1, symbol2)) productionset0 = BNFGrammar(final1, (rule1, symbol1, symbol2)) p0good = "SR" p0bad = "RS" #productionset1 definition symbol1 = TerminalSymbol(String("S")) symbol2 = TerminalSymbol(String("R")) symbol3 = TerminalSymbol(String(":")) symbol4 = TerminalSymbol(RegularExpression("^[0123456789]*$")) symbol5 = TerminalSymbol(load_python_file('pydsl/contrib/grammar/cstring.py')) final1 = NonTerminalSymbol("storeexp") final2 = NonTerminalSymbol("retrieveexp") final3 = NonTerminalSymbol("exp") rule1 = Production([final1], (symbol1, symbol3, symbol5)) rule2 = Production([final2], (symbol2, symbol3, symbol4)) rule3 = Production([final3], [final1]) rule4 = Production([final3], [final2]) rulelist = (rule1, rule2, rule3, rule4, symbol1, symbol2, symbol3, symbol4, symbol5) productionset1 = BNFGrammar(final3, rulelist) #productionset2 definition symbola = TerminalSymbol(String("A")) symbolb = TerminalSymbol(String("B")) nonterminal = NonTerminalSymbol("res")
def testCalculator(self): G=load_python_file("pydsl/contrib/translator/calculator.py") T=translator_factory(G) self.assertEqual(T("1+1"),2)