コード例 #1
0
ファイル: bnfgrammar.py プロジェクト: pombredanne/pydsl-1
symbol3 = StringTerminalSymbol(":")
symbol4 = WordTerminalSymbol("Integer", {"grammarname":"integer"}, br)
symbol5 = WordTerminalSymbol("Generic", {"grammarname":"cstring"}, br)
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 = StringTerminalSymbol("A")
symbolb = StringTerminalSymbol("B")
nonterminal = NonTerminalSymbol("res")
rulea = Production ([nonterminal], [symbola, NullSymbol(), symbolb])
productionset2 = BNFGrammar(nonterminal, [rulea, symbola, symbolb])
productionsetlr = strlist_to_production_set(leftrecursive)
productionsetrr = strlist_to_production_set(rightrecursive)
productionsetcr = strlist_to_production_set(centerrecursive)


#tokenlist definition
string1 = "S:a"
string2 = "S:"
string3 = "AB"
string4 = "ACB"
dots = "....."
コード例 #2
0
 def setUp(self):
     from pydsl.Grammar.Tool.Symbol import SymbolGrammarTools
     from pydsl.Memory.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)