ClassOrFieldDef if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.ClassOrFieldDef({0:s})'.format(', '.join(params))
# GENERATE END
def generate_class_or_field_def(self, context):
raise NotImplementedError
Expression if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Expression({0:s})'.format(', '.join(params))
# GENERATE END
class Type(element.Element):
# GENERATE ELEMENT() BEGIN
Type if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Type({0:s})'.format(', '.join(params))
# GENERATE END
def generate_serialize(self, context, expr):
return 'element.serialize_{0:s}({1:s})'.format(
BaseClass if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.BaseClass({0:s})'.format(', '.join(params))
# GENERATE END
class ClassBody(element.Element):
# GENERATE ELEMENT() BEGIN
ClassBody if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.ClassBody({0:s})'.format(', '.join(params))
# GENERATE END
class ClassName(element.Element):
# GENERATE ELEMENT() BEGIN
ClassName if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.ClassName({0:s})'.format(', '.join(params))
# GENERATE END
class DefaultValue(element.Element):
# GENERATE ELEMENT() BEGIN
DefaultValue if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.DefaultValue({0:s})'.format(', '.join(params))
# GENERATE END
class Identifier(element.Element):
# GENERATE ELEMENT() BEGIN
Identifier if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Identifier({0:s})'.format(', '.join(params))
# GENERATE END
def get_text(self):
return element.get_text(self, 0)
self.value = value
def serialize(self, ref_list):
AST.Expression.serialize(self, ref_list)
- self.set('value', element.serialize_bool(self.value))
+ self.set(
+ 'value',
+ element.serialize_bool(self.value)
+ )
def deserialize(self, ref_list):
AST.Expression.deserialize(self, ref_list)
self.value = element.deserialize_bool(self.get('value', 'false'))
)
result.value = self.value
return result
- def repr_serialize(self, params):
- AST.Expression.repr_serialize(self, params)
- if self.value != False:
- params.append(
- 'value = {0:s}'.format(repr(self.value))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralBool({0:s})'.format(', '.join(params))
# GENERATE END
class LiteralInt(Expression):
# GENERATE ELEMENT(str sign, int base, str digits) BEGIN
self.digits = digits
def serialize(self, ref_list):
AST.Expression.serialize(self, ref_list)
- self.set('sign', element.serialize_str(self.sign))
- self.set('base', element.serialize_int(self.base))
- self.set('digits', element.serialize_str(self.digits))
+ self.set(
+ 'sign',
+ element.serialize_str(self.sign)
+ )
+ self.set(
+ 'base',
+ element.serialize_int(self.base)
+ )
+ self.set(
+ 'digits',
+ element.serialize_str(self.digits)
+ )
def deserialize(self, ref_list):
AST.Expression.deserialize(self, ref_list)
self.sign = element.deserialize_str(self.get('sign', ''))
result.base = self.base
result.digits = self.digits
return result
- def repr_serialize(self, params):
- AST.Expression.repr_serialize(self, params)
- if self.sign != '':
- params.append(
- 'sign = {0:s}'.format(repr(self.sign))
- )
- if self.base != -1:
- params.append(
- 'base = {0:s}'.format(repr(self.base))
- )
- if self.digits != '':
- params.append(
- 'digits = {0:s}'.format(repr(self.digits))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralInt({0:s})'.format(', '.join(params))
# GENERATE END
class LiteralList(Expression):
# GENERATE ELEMENT() BEGIN
LiteralList if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralList({0:s})'.format(', '.join(params))
# GENERATE END
class LiteralRef(Expression):
# GENERATE ELEMENT() BEGIN
LiteralRef if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralRef({0:s})'.format(', '.join(params))
# GENERATE END
class LiteralSet(Expression):
# GENERATE ELEMENT() BEGIN
LiteralSet if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralSet({0:s})'.format(', '.join(params))
# GENERATE END
class LiteralStr(Expression):
# GENERATE ELEMENT() BEGIN
LiteralStr if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.LiteralStr({0:s})'.format(', '.join(params))
# GENERATE END
class Text(element.Element):
class Escape(element.Element):
self.value = value
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
- self.set('value', element.serialize_int(self.value))
+ self.set(
+ 'value',
+ element.serialize_int(self.value)
+ )
def deserialize(self, ref_list):
element.Element.deserialize(self, ref_list)
self.value = element.deserialize_int(self.get('value', '-1'))
)
result.value = self.value
return result
- def repr_serialize(self, params):
- element.Element.repr_serialize(self, params)
- if self.value != -1:
- params.append(
- 'value = {0:s}'.format(repr(self.value))
- )
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Text.Escape({0:s})'.format(', '.join(params))
# GENERATE END
# GENERATE ELEMENT() BEGIN
def __init__(
Text if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Text({0:s})'.format(', '.join(params))
# GENERATE END
class TypeBool(Type):
# GENERATE ELEMENT() BEGIN
TypeBool if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeBool({0:s})'.format(', '.join(params))
# GENERATE END
class TypeInt(Type):
# GENERATE ELEMENT() BEGIN
TypeInt if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeInt({0:s})'.format(', '.join(params))
# GENERATE END
class TypeList(Type):
# GENERATE ELEMENT() BEGIN
TypeList if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeList({0:s})'.format(', '.join(params))
# GENERATE END
def generate_serialize(self, context, expr):
indent_save = context.indent
TypeRef if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeRef({0:s})'.format(', '.join(params))
# GENERATE END
def generate_serialize(self, context, expr):
return 'element.serialize_ref({0:s}, ref_list)'.format(expr)
TypeSet if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeSet({0:s})'.format(', '.join(params))
# GENERATE END
def generate_serialize(self, context, expr):
indent_save = context.indent
TypeStr if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.TypeStr({0:s})'.format(', '.join(params))
# GENERATE END
class Section1(element.Element):
class CodeBlock(element.Element):
CodeBlock if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Section1.CodeBlock({0:s})'.format(', '.join(params))
# GENERATE END
# GENERATE ELEMENT() BEGIN
def __init__(
Section1 if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Section1({0:s})'.format(', '.join(params))
# GENERATE END
class Section2(element.Element):
class ClassDef(element.Element):
ClassDef if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Section2.ClassDef({0:s})'.format(', '.join(params))
# GENERATE END
def generate_class_or_field_def(self, context):
class_name = self[0].get_text()
FieldDef if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Section2.FieldDef({0:s})'.format(', '.join(params))
# GENERATE END
def generate_class_or_field_def(self, context):
context.fields.append(self)
Section2 if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST.Section2({0:s})'.format(', '.join(params))
# GENERATE END
# GENERATE ELEMENT() BEGIN
def __init__(
AST if factory is None else factory
)
return result
- def __repr__(self):
- params = []
- self.repr_serialize(params)
- return 'ast.AST({0:s})'.format(', '.join(params))
# GENERATE END
# GENERATE FACTORY(element.Element) BEGIN
sys.stdout.write(
'''{0:s}def serialize(self, ref_list):
{1:s} {2:s}.serialize(self, ref_list)
-'''.format(indent, indent, full_base_class)
+'''.format(
+ indent,
+ indent,
+ full_base_class
+ )
)
for type, name in fields:
if type[:5] == 'list(' and type[-1:] == ')':
sys.stdout.write(
'''{0:s} self.set(
{1:s} '{2:s}',
-{3:s} ' '.join([element.serialize_{4:s}(i{5:s}) for i in self.{6:s}])
-{7:s} )
+{3:s} ' '.join(
+{4:s} [
+{5:s} element.serialize_{6:s}(i{7:s})
+{8:s} for i in self.{9:s}
+{10:s} ]
+{11:s} )
+{12:s} )
'''.format(
indent,
indent,
name,
indent,
+ indent,
+ indent,
subtype,
', ref_list' if subtype == 'ref' else '',
+ indent,
name,
+ indent,
+ indent,
indent
)
)
sys.stdout.write(
'''{0:s} self.set(
{1:s} '{2:s}',
-{3:s} ' '.join([element.serialize_{4:s}(i{5:s}) for i in sorted(self.{6:s})])
-{7:s} )
+{3:s} ' '.join(
+{4:s} [
+{5:s} element.serialize_{6:s}(i{7:s})
+{8:s} for i in sorted(self.{9:s})
+{10:s} ]
+{11:s} )
+{12:s} )
'''.format(
indent,
indent,
name,
indent,
+ indent,
+ indent,
subtype,
', ref_list' if subtype == 'ref' else '',
+ indent,
name,
+ indent,
+ indent,
indent
)
)
else:
sys.stdout.write(
- '''{0:s} self.set('{1:s}', element.serialize_{2:s}(self.{3:s}{4:s}))
+ '''{0:s} self.set(
+{1:s} '{2:s}',
+{3:s} element.serialize_{4:s}(self.{5:s}{6:s})
+{7:s} )
'''.format(
+ indent,
indent,
name,
+ indent,
type,
name,
- ', ref_list' if type == 'ref' else ''
+ ', ref_list' if type == 'ref' else '',
+ indent
)
)
sys.stdout.write(
'''{0:s}def deserialize(self, ref_list):
{1:s} {2:s}.deserialize(self, ref_list)
-'''.format(indent, indent, full_base_class)
+'''.format(
+ indent,
+ indent,
+ full_base_class
+ )
)
for type, name in fields:
if type[:5] == 'list(' and type[-1:] == ')':
indent
)
)
- if len(fields):
- sys.stdout.write(
- '''{0:s}def repr_serialize(self, params):
-{1:s} {2:s}.repr_serialize(self, params)
-'''.format(
- indent,
- indent,
- full_base_class
- )
- )
- for type, name in fields:
- if type[:5] == 'list(' and type[-1:] == ')':
- subtype = type[5:-1]
- sys.stdout.write(
- '''{0:s} if len(self.{1:s}):
-{2:s} params.append(
-{3:s} '{4:s} = [{{0:s}}]'.format(
-{5:s} ', '.join([repr(i) for i in self.{6:s}])
-{7:s} )
-{8:s} )
-'''.format(
- indent,
- name,
- indent,
- indent,
- name,
- indent,
- name,
- indent,
- indent
- )
- )
- elif type[:4] == 'set(' and type[-1:] == ')':
- subtype = type[4:-1]
- sys.stdout.write(
- '''{0:s} if len(self.{1:s}):
-{2:s} params.append(
-{3:s} '{4:s} = set([{{0:s}}])'.format(
-{5:s} ', '.join([repr(i) for i in sorted(self.{6:s})])
-{7:s} )
-{8:s} )
-'''.format(
- indent,
- name,
- indent,
- indent,
- name,
- indent,
- name,
- indent,
- indent
- )
- )
- else:
- sys.stdout.write(
- '''{0:s} if self.{1:s} != {2:s}:
-{3:s} params.append(
-{4:s} '{5:s} = {{0:s}}'.format(repr(self.{6:s}))
-{7:s} )
-'''.format(
- indent,
- name,
- default_value[type],
- indent,
- indent,
- name,
- name,
- indent
- )
- )
sys.stdout.write(
- '''{0:s}def __repr__(self):
-{1:s} params = []
-{2:s} self.repr_serialize(params)
-{3:s} return '{4:s}{5:s}({{0:s}})'.format(', '.join(params))
-{6:s}# GENERATE END
+ '''{0:s}# GENERATE END
'''.format(
- indent,
- indent,
- indent,
- indent,
- package_name,
- '.'.join([i for _, i, _, _ in stack]),
indent
)
)