Update to pitree.git commit 71dd736
authorNick Downing <nick@ndcode.org>
Tue, 29 Jan 2019 09:55:49 +0000 (20:55 +1100)
committerNick Downing <nick@ndcode.org>
Tue, 29 Jan 2019 09:55:49 +0000 (20:55 +1100)
piyacc.t
skel_lex_yy.py
tests_ast/cal_py.t

index 4cc8775..f2ade59 100644 (file)
--- a/piyacc.t
+++ b/piyacc.t
@@ -173,7 +173,7 @@ class AST {
 %%
 
 def factory(tag, *args, **kwargs):
-  return tag_to_class.get(tag, element.Element)(tag, *args, **kwargs)
+  return tag_to_class[tag](*args, **kwargs)
 
 @method(Item)
 def post_process(
index 2c19629..688fc95 100644 (file)
@@ -131,8 +131,8 @@ def yy_group_end():
 def yy_group_end_element():
   yy_element_stack.append([])
 
-def yy_group_element(pos0, pos1, stack, factory, *args, **kwargs):
-  _element = factory(*args, **kwargs)
+def yy_group_element(pos0, pos1, stack, _class, *args, **kwargs):
+  _element = _class(*args, **kwargs)
   del _element.text[:]
   for pos2, pos3, i in reversed(stack):
     _element.text.append(yy_group_text[pos0:pos2])
@@ -165,7 +165,7 @@ def yy_set_bol(at_bol):
 
 # GENERATE SECTION2
 
-def yylex(factory = element.Element, *args, **kwargs):
+def yylex(_class = element.Element, *args, **kwargs):
   global \
     yyin, \
     yy_threads0, \
@@ -182,8 +182,8 @@ def yylex(factory = element.Element, *args, **kwargs):
 
   # GENERATE SECTION2INITIAL
 
-  yy_element_space = factory(*args, **kwargs)
-  yy_element_token = factory(*args, **kwargs)
+  yy_element_space = _class(*args, **kwargs)
+  yy_element_token = _class(*args, **kwargs)
   while True:
     while yytext_len:
       block = yy_buffer_stack[-1].next
@@ -326,7 +326,7 @@ def yylex(factory = element.Element, *args, **kwargs):
         0,
         yytext_len,
         yy_element_stack.pop(),
-        factory,
+        _class,
         *args,
         **kwargs
       )
index e1255c9..557d68d 100644 (file)
  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-%{
-  import element
-%}
-
 %%
 
 class Text;
@@ -54,8 +50,8 @@ class AST {
 # this program; if not, write to the Free Software Foundation, Inc., 51
 # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
-def factory(tag, attrib = {}, *args, **kwargs):
-  return tag_to_class.get(tag, element.Element)(tag, attrib, *args, **kwargs)
+def factory(tag, *args, **kwargs):
+  return tag_to_class[tag](*args, **kwargs)
 
 @method(Text)
 def get_text(self):