def setUp(self): from pydsl.Grammar.Symbol import StringTerminalSymbol, WordTerminalSymbol, NonTerminalSymbol, BoundariesRules, NullSymbol from pydsl.Grammar.BNF import TerminalProduction, NonTerminalProduction, BNFGrammar br = BoundariesRules("max", 1) #productionset1 definition symbol1 = StringTerminalSymbol("S") symbol2 = StringTerminalSymbol("R") symbol3 = StringTerminalSymbol(":") symbol4 = WordTerminalSymbol("Integer", {"grammarname":"integer"}, br) symbol5 = WordTerminalSymbol("Generic", {"grammarname":"cstring"}, br) final1 = NonTerminalSymbol("storeexp") final2 = NonTerminalSymbol("retrieveexp") final3 = NonTerminalSymbol("exp") rule1 = NonTerminalProduction([final1], [symbol1, symbol3, symbol5]) rule2 = NonTerminalProduction([final2], [symbol2, symbol3, symbol4]) rule3 = NonTerminalProduction([final3], [final1]) rule4 = NonTerminalProduction([final3], [final2]) rule5 = TerminalProduction(symbol1) rule6 = TerminalProduction(symbol2) rule7 = TerminalProduction(symbol3) rule8 = TerminalProduction(symbol4) rule9 = TerminalProduction(symbol5) rulelist = [rule1, rule2, rule3, rule4, rule5, rule6, rule7, rule8, rule9] self.productionset1 = BNFGrammar(final3, rulelist) #productionset2 definition symbola = StringTerminalSymbol("A") symbolb = StringTerminalSymbol("B") terminala = TerminalProduction(symbola) terminalb = TerminalProduction(symbolb) nonterminal = NonTerminalSymbol("res") rulea = NonTerminalProduction ([nonterminal], [symbola, NullSymbol(), symbolb]) self.productionset2 = BNFGrammar(nonterminal, [rulea, terminala, terminalb]) from pydsl.Memory.Storage.File.BNF import strlist_to_production_set self.productionsetlr = strlist_to_production_set(leftrecursive) self.productionsetrr = strlist_to_production_set(rightrecursive) self.productionsetcr = strlist_to_production_set(centerrecursive) #tokenlist definition self.tokelist1 = "S:a" self.tokelist2 = "S:" self.tokelist3 = "AB" self.tokelist4 = "ACB" self.dots = "....."
def setUp(self): from pydsl.Grammar.Tool.Symbol import SymbolGrammarTools from pydsl.Memory.Storage.File.BNF import strlist_to_production_set productionset = strlist_to_production_set(["#parser=descent","S ::= dayofmonth separator number separator number", "separator := String,/","number := Word,integer,max,1","dayofmonth := Word,DayOfMonth,max,1"]) self.g1 = SymbolGrammarTools(productionset)