+class Using():
+ def __init__(self, name, flags, alias):
+ self.name = name
+ self.vla = False
+ self.block = []
+ self.manual_print = True
+ self.manual_endian = True
+
+ self.manual_print = False
+ self.manual_endian = False
+ for f in flags:
+ if f == 'manual_print':
+ self.manual_print = True
+ elif f == 'manual_endian':
+ self.manual_endian = True
+
+ if isinstance(alias, Array):
+ a = {'type': alias.fieldtype,
+ 'length': alias.length}
+ else:
+ a = {'type': alias.fieldtype}
+ self.alias = a
+ self.crc = str(alias).encode()
+ global_type_add(name, self)
+
+ def __repr__(self):
+ return self.name + str(self.alias)
+
+
+class Union():
+ def __init__(self, name, flags, block):
+ self.type = 'Union'
+ self.manual_print = False
+ self.manual_endian = False
+ self.name = name
+
+ for f in flags:
+ if f == 'manual_print':
+ self.manual_print = True
+ elif f == 'manual_endian':
+ self.manual_endian = True
+
+ self.block = block
+ self.crc = str(block).encode()
+ self.vla = vla_is_last_check(name, block)
+
+ global_type_add(name, self)
+
+ def __repr__(self):
+ return str(self.block)
+
+