Update to pitree.git commit e4f3cdd
authorNick Downing <nick@ndcode.org>
Tue, 29 Jan 2019 05:21:12 +0000 (16:21 +1100)
committerNick Downing <nick@ndcode.org>
Tue, 29 Jan 2019 05:21:12 +0000 (16:21 +1100)
ansi_c.t

index ceebf1f..3083146 100644 (file)
--- a/ansi_c.t
+++ b/ansi_c.t
  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-%{
-  import element
-  #import xml.etree.ElementTree
-%}
-
 %%
 
 class AST {
@@ -269,8 +264,8 @@ octal_prefix = set(
   ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09']
 )
 
-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.get(tag, element.Element)(tag, *args, **kwargs)
 
 @method(AST.DeclarationOrStatement)
 def translate_declaration_or_statement(self, context):
@@ -354,7 +349,7 @@ def translate_declaration_or_statement(self, context):
 def translate_declaration_or_statement(self, context):
   if (
     isinstance(self.children[1], AST.ExpressionIntLiteral) and
-    element.get_text(self.children[1], 0) == '0'
+    self.children[1].text[0] == '0'
   ):
     self.children[0].translate_declaration_or_statement(context)
     return
@@ -546,8 +541,8 @@ def get_type_and_name(self, base_type):
       if isinstance(self.children[2], AST.ExpressionEmpty) else
         # kludgey way, assuming not calculated size
         int(
-          element.get_text(self.children[2], 0),
-          8 if element.get_text(self.children[2], 0)[:2] in octal_prefix else 0
+          self.children[2].text[0],
+          8 if self.children[2].text[0][:2] in octal_prefix else 0
         )
       )
     )
@@ -567,7 +562,7 @@ def get_type_and_name(self, base_type):
   )
 @method(AST.DeclaratorIdentifier)
 def get_type_and_name(self, base_type):
-  return base_type, element.get_text(self.children[0], 0)
+  return base_type, self.children[0].text[0]
 @method(AST.DeclaratorPointer)
 def get_type_and_name(self, base_type):
   return self.children[1].get_type_and_name(
@@ -657,7 +652,7 @@ def translate_expression(self, context, precedence):
   return text
 @method(AST.ExpressionCharConstant)
 def translate_expression(self, context, precedence):
-  return 'ord(\'{0:s}\')'.format(element.get_text(self.children[0], 0))
+  return 'ord(\'{0:s}\')'.format(self.children[0].text[0])
 @method(AST.ExpressionConditional)
 def translate_expression(self, context, precedence):
   text = '{0:s} if {1:s} else {2:s}'.format(
@@ -703,7 +698,7 @@ def translate_expression(self, context, precedence):
   return text
 @method(AST.ExpressionIntLiteral)
 def translate_expression(self, context, precedence):
-  text = element.get_text(self, 0)
+  text = self.text[0]
   if text[:2] in octal_prefix:
     text = '0o' + text[1:]
   return text
@@ -716,7 +711,7 @@ def translate_expression(self, context, precedence):
   return ' '.join(
     [
       '\'{0:s}\''.format(
-        element.get_text(i, 0).
+        i.text[0].
         replace('\\"', '"').
         replace('\'', '\\\'')
       )
@@ -910,7 +905,7 @@ del get_type
 
 @method(AST.Identifier)
 def translate_identifier(self, context):
-  text = element.get_text(self, 0)
+  text = self.text[0]
   return context.translate_identifier.get(text, text)
 del translate_identifier