bolt-gen: handle enums

Add parsing know-how for enum fields. This is necessary for
internally defined wire generators. Enums are denoted by prefixing
the field with an `e:`.

Ex:

   msgdata,msg_name,field_name,e:enum_type,
This commit is contained in:
lisa neigut
2019-07-23 15:53:44 -05:00
committed by Rusty Russell
parent cfd56d86ee
commit b30d7d26ea
5 changed files with 46 additions and 6 deletions

View File

@@ -238,13 +238,16 @@ class Type(FieldSet):
def __init__(self, name):
FieldSet.__init__(self)
self.name = name
self.name, self.is_enum = self.parse_name(name)
self.depends_on = {}
# FIXME: internal msgs can be enums
self.is_enum = False
self.type_comments = []
self.tlv = False
def parse_name(self, name):
if name.startswith('e:'):
return name[2:], True
return name, False
def add_data_field(self, field_name, type_obj, count=1,
is_extension=[], comments=[], optional=False):
FieldSet.add_data_field(self, field_name, type_obj, count,