children
)
self.unary_operator = unary_operator
- self.postfix = (
- element.deserialize_bool(postfix)
- if isinstance(postfix, str) else
- postfix
- )
+ self.postfix = postfix
def serialize(self, ref_list):
AST.Expression.serialize(self, ref_list)
self.set('unary_operator', element.serialize_str(self.unary_operator))
children
)
self.binary_operator = binary_operator
- self.precedence = (
- element.deserialize_int(precedence)
- if isinstance(precedence, str) else
- precedence
- )
- self.right_to_left = (
- element.deserialize_bool(right_to_left)
- if isinstance(right_to_left, str) else
- right_to_left
- )
+ self.precedence = precedence
+ self.right_to_left = right_to_left
def serialize(self, ref_list):
AST.Expression.serialize(self, ref_list)
self.set('binary_operator', element.serialize_str(self.binary_operator))
text,
children
)
- self.signed = (
- element.deserialize_bool(signed)
- if isinstance(signed, str) else
- signed
- )
- self.bits = (
- element.deserialize_int(bits)
- if isinstance(bits, str) else
- bits
- )
+ self.signed = signed
+ self.bits = bits
def serialize(self, ref_list):
AST.Type.serialize(self, ref_list)
self.set('signed', element.serialize_bool(self.signed))
text,
children
)
- self.complex = (
- element.deserialize_int(complex)
- if isinstance(complex, str) else
- complex
- )
- self.bits = (
- element.deserialize_int(bits)
- if isinstance(bits, str) else
- bits
- )
+ self.complex = complex
+ self.bits = bits
def serialize(self, ref_list):
AST.Type.serialize(self, ref_list)
self.set('complex', element.serialize_int(self.complex))
children
)
self.element_type = element_type
- self.element_count = (
- element.deserialize_int(element_count)
- if isinstance(element_count, str) else
- element_count
- )
+ self.element_count = element_count
def serialize(self, ref_list):
AST.Type.serialize(self, ref_list)
self.set('element_type', element.serialize_ref(self.element_type, ref_list))
children
)
self.return_type = return_type
- self.varargs = (
- element.deserialize_bool(varargs)
- if isinstance(varargs, str) else
- varargs
- )
+ self.varargs = varargs
def serialize(self, ref_list):
AST.Type.serialize(self, ref_list)
self.set('return_type', element.serialize_ref(self.return_type, ref_list))
text,
children
)
- self.varargs = (
- element.deserialize_bool(varargs)
- if isinstance(varargs, str) else
- varargs
- )
+ self.varargs = varargs
def serialize(self, ref_list):
AST.Declarator.serialize(self, ref_list)
self.set('varargs', element.serialize_bool(self.varargs))
text,
children
)
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
+ self.n = n
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set('n', element.serialize_int(self.n))
text,
children
)
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
+ self.n = n
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set('n', element.serialize_int(self.n))
text,
children
)
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
+ self.n = n
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set('n', element.serialize_int(self.n))
text,
children
)
- self.n = (
- element.deserialize_int(n)
- if isinstance(n, str) else
- n
- )
+ self.n = n
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set('n', element.serialize_int(self.n))
'AST_ExpressionIdentifier': AST.ExpressionIdentifier,
'AST_ExpressionIndex': AST.ExpressionIndex,
'AST_ExpressionIntLiteral': AST.ExpressionIntLiteral,
- 'AST_Identifier': AST.Identifier,
'AST_ExpressionLeftShiftAssignment': AST.ExpressionLeftShiftAssignment,
'AST_ExpressionLessThan': AST.ExpressionLessThan,
'AST_ExpressionLessThanOrEqual': AST.ExpressionLessThanOrEqual,
'AST_GenericAssociation': AST.GenericAssociation,
'AST_GenericAssociationList': AST.GenericAssociationList,
'AST_GenericSelection': AST.GenericSelection,
+ 'AST_Identifier': AST.Identifier,
'AST_IdentifierEmpty': AST.IdentifierEmpty,
'AST_IdentifierList': AST.IdentifierList,
'AST_InitDeclarator': AST.InitDeclarator,
#!/usr/bin/env python3
-# Copyright (C) 2018 Nick Downing <nick@ndcode.org>
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
import re
import sys
{16:s} text,
{17:s} children{18:s}
{19:s} )
-'''.format(
+{20:s}'''.format(
indent,
params,
indent,
indent,
name
)
- for type, name in base_classes[-2][class_name][:i]
+ for _, name in base_classes[-2][class_name][:i]
]
),
- indent
+ indent,
+ ''.join(
+ [
+ '{0:s} self.{1:s} = {2:s}\n'.format(
+ indent,
+ name,
+ name
+ )
+ for _, name in fields
+ ]
+ )
)
)
- for type, name in fields:
- if type == 'ref' or type == 'list(ref)' or type == 'set(ref)' or type == 'str':
- sys.stdout.write(
- '''{0:s} self.{1:s} = {2:s}
-'''.format(indent, name, name)
- )
- elif type[:5] == 'list(' and type[-1:] == ')':
- subtype = type[5:-1]
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} [element.deserialize_{3:s}(i) for i in {4:s}.split()]
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- subtype,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
- elif type[:4] == 'set(' and type[-1:] == ')':
- subtype = type[4:-1]
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} set([element.deserialize_{3:s}(i) for i in {4:s}.split()])
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- subtype,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
- else:
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} element.deserialize_{3:s}({4:s})
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- type,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
if len(fields):
sys.stdout.write(
'''{0:s}def serialize(self, ref_list):