+ print '%s = Struct(%r, [' % (name, name)
+ for type, name in self.parse_members():
+ print ' (%s, %r),' % (type, name)
+ print '])'
+ print
+
+ def parse_union(self):
+ self.consume('union')
+ if not self.match('{'):
+ name = self.consume()
+ else:
+ name = None
+ members = self.parse_members()
+ return 'Union(%r, [%s])' % (name, ', '.join('%s, %r' % member for member in members))