* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
-%{
- import element
- #import xml.etree.ElementTree
-%}
-
%%
class AST {
['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):
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
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
)
)
)
)
@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(
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(
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
return ' '.join(
[
'\'{0:s}\''.format(
- element.get_text(i, 0).
+ i.text[0].
replace('\\"', '"').
replace('\'', '\\\'')
)
@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