Update hacky hard coded paths to pilex/pitree, fix a bug in skel_py_element.py
authorNick Downing <nick.downing@lifx.co>
Sat, 18 Jan 2020 23:46:01 +0000 (10:46 +1100)
committerNick Downing <nick.downing@lifx.co>
Sat, 18 Jan 2020 23:46:01 +0000 (10:46 +1100)
skel/skel_py_element.py
tests/Makefile
tests_ast/Makefile
tests_ast/cal_py.l
tests_ast/cal_py.t
tests_ast/cal_py.y

index 5cf5674..4750ca9 100644 (file)
@@ -26,7 +26,7 @@
 import bisect
 import element
 import lex_yy
-#import xml.etree.ElementTree
+#import sys
 
 # this can be redefined in SECTION1
 class YYLTYPE:
@@ -88,15 +88,19 @@ def yyparse(factory, *args, **kwargs):
   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)
       ]
@@ -125,7 +129,7 @@ def yyparse(factory, *args, **kwargs):
       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
index 3d9747b..e76b1f7 100644 (file)
@@ -2,7 +2,7 @@ all: lex_yy.py y_tab.py cal cal2
 
 # Python scanner and parser test
 lex_yy.py: cal_py.l
-       ../../pilex.git/pilex.py --python $<
+       ../../pilex/pilex.py --python $<
 
 y_tab.py: cal_py.y
        ../piyacc.py --python $<
index ea3c53c..5d54fb2 100644 (file)
@@ -1,13 +1,13 @@
 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 $<
index e434a24..a1f343e 100644 (file)
@@ -17,9 +17,9 @@
  */
 
 %{
-import t_def
-import element
-import y_tab
+  import t_def
+  import element
+  import y_tab
 %}
 
 DIGIT (?E{t_def.AST.Num.Mantissa}[0-9]+)\.?|(?E{t_def.AST.Num.Mantissa}[0-9]*)\.(?E{t_def.AST.Num.Fraction}[0-9]+)
index 557d68d..9807fa7 100644 (file)
  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+%{
+  import element
+%}
+
 %%
 
 class Text;
index 4ec2399..8c66253 100644 (file)
@@ -17,8 +17,8 @@
  */
 
 %{
-import t_def
-import sys
+  import t_def
+  import sys
 %}
 
 %locations