137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
-
-
-
|
def createTokenList (sTokBlock, dDeclensions):
"return a list of tokens from a block of tokens"
lToken = []
for sToken in sTokBlock[1:-1].split("|"):
if "+" in sToken and not sToken.startswith("+"):
print("\n", sToken)
for sCode in dDeclensions:
if sToken.endswith(sCode):
sToken = sToken[:-len(sCode)]
lToken.append(sToken)
print(dDeclensions[sCode])
for sSuffix in dDeclensions[sCode]:
lToken.append(sToken+sSuffix)
break
print(lToken)
else:
lToken.append(sToken)
return lToken
def createRule (iLine, sRuleName, sTokenLine, iActionBlock, sActions, nPriority, dOptPriority, dDef, dDecl):
"generator: create rule as list"
|