import bisect
import element
-import xml.etree.ElementTree
+import lex_yy
+#import xml.etree.ElementTree
# GENERATE SECTION1
yylloc = None
yy_element_stack = None
-yy_element_space = None
-yy_element_token = None
# GENERATE SECTION2
def yyparse(factory, *args, **kwargs):
- global yystack, yytoken, yyval, yyloc, yylval, yylloc
- global yy_element_stack, yy_element_space, yy_element_token
+ global yystack, yytoken, yyval, yyloc, yylval, yylloc, yy_element_stack
# GENERATE INITIALACTION
if yytoken == -1:
yylval = None
yylloc = None
- yytoken = yylex()
+ yytoken = lex_yy.yylex()
#print('yytoken', yytoken, 'yylval', yylval, 'yylloc', yylloc)
+ #print('lex_yy.yy_element_space')
+ #xml.etree.ElementTree.dump(lex_yy.yy_element_space)
+ #print('lex_yy.yy_element_token')
+ #xml.etree.ElementTree.dump(lex_yy.yy_element_token)
action = yy_lr1dfa_states[state][1][
bisect.bisect_right(yy_lr1dfa_states[state][0], yytoken)
]
# push space then AST element contiguously onto yy_element_stack
# even numbered elements are spaces, odd numbered elements are AST
- yy_element_stack.append(yy_element_space)
- yy_element_stack.append(yy_element_token)
+ yy_element_stack.extend(
+ [lex_yy.yy_element_space, lex_yy.yy_element_token]
+ )
state = action >> 1
#print('shift', state)
i = base * 2
#print('i', i, 'len(yy_element_stack)', len(yy_element_stack))
if i >= len(yy_element_stack):
- yy_element_stack.append(element.Element('root'))
- yy_element_stack.append(element.Element('root'))
+ yy_element_stack.extend(
+ [element.Element('root'), element.Element('root')]
+ )
else:
#print('yy_element_stack[i]')
#xml.etree.ElementTree.dump(yy_element_stack[i])