import bisect
import element
import lex_yy
-#import xml.etree.ElementTree
+#import sys
# this can be redefined in SECTION1
class YYLTYPE:
while True:
state = yystack[-1][0]
#print('state', state, 'yystack', yystack)
+ #print('yy_element_stack')
+ #for i in range(len(yy_element_stack)):
+ # print(f' {i:d} ', end = '')
+ # element.serialize(yy_element_stack[i], sys.stdout)
reduce = yy_lr1dfa_states[state][4]
if reduce == -1:
if yychar == -1:
yychar = lex_yy.yylex()
#print('yychar', yychar, 'yylval', yylval, 'yylloc', yylloc, 'lex_yy.yytext', lex_yy.yytext)
- #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)
+ #print('lex_yy.yy_element_space ', end = '')
+ #element.serialize(lex_yy.yy_element_space, sys.stdout)
+ #print('lex_yy.yy_element_token ', end = '')
+ #element.serialize(lex_yy.yy_element_token, sys.stdout)
action = yy_lr1dfa_states[state][1][
bisect.bisect_right(yy_lr1dfa_states[state][0], yychar)
]
break
# action creates empty space in yy_element_stack[base * 2] if needed
- base = len(yystack) - len_symbols
+ base = len(yystack)
assert len(yy_element_stack) >= base * 2 - 1
# concatenate yy_element_stack[base * 2 - 1:] to a single AST element
all: element.py lex_yy.py t_def.py y_tab.py
-element.py: ../../pitree.git/skel/element.py
+element.py: ../../pitree/ndcode/pitree/skel/element.py
cat $< >$@
lex_yy.py: cal_py.l
- ../../pilex.git/pilex.py --element --python $<
+ ../../pilex/pilex.py --element --python $<
t_def.py: cal_py.t
- ../../pitree.git/pitree.py --python $<
+ PYTHONPATH=../../pitree ../../pitree/ndcode/pitree/cli.py --python $<
y_tab.py: cal_py.y
../piyacc.py --element --python $<