mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2025-12-26 14:18:36 +00:00
allow attributes on channel elements in .proto files
We want to be able to add an @ifdef annotation to optional messages For example, we want to compile in the smartcard messages only if libcacard is available
This commit is contained in:
parent
eb01d2fc46
commit
7307fccb71
@ -915,12 +915,14 @@ class ChannelMember(Containee):
|
||||
return "%s (%s)" % (str(self.name), str(self.message_type))
|
||||
|
||||
class ChannelType(Type):
|
||||
def __init__(self, name, base, members):
|
||||
def __init__(self, name, base, members, attribute_list):
|
||||
Type.__init__(self)
|
||||
self.name = name
|
||||
self.base = base
|
||||
self.member_name = None
|
||||
self.members = members
|
||||
for attr in attribute_list:
|
||||
self.attributes[attr[0][1:]] = attr[1:]
|
||||
|
||||
def __str__(self):
|
||||
if self.name == None:
|
||||
|
||||
@ -124,7 +124,7 @@ def SPICE_BNF():
|
||||
enumDef = Group(enum_ + identifier + enumBody + attributes - semi).setParseAction(lambda toks: ptypes.EnumType(toks[0][0], toks[0][1], toks[0][2], toks[0][3]))
|
||||
flagsDef = Group(flags_ + identifier + flagsBody + attributes - semi).setParseAction(lambda toks: ptypes.FlagsType(toks[0][0], toks[0][1], toks[0][2], toks[0][3]))
|
||||
messageDef = Group(message_ + identifier + messageBody + attributes - semi).setParseAction(lambda toks: ptypes.MessageType(toks[0][1], toks[0][2], toks[0][3]))
|
||||
channelDef = Group(channel_ + identifier + channelBody - semi).setParseAction(lambda toks: ptypes.ChannelType(toks[0][1], toks[0][2], toks[0][3]))
|
||||
channelDef = Group(channel_ + identifier + channelBody + attributes - semi).setParseAction(lambda toks: ptypes.ChannelType(toks[0][1], toks[0][2], toks[0][3], toks[0][4]))
|
||||
structDef = Group(struct_ + identifier + structBody + attributes - semi).setParseAction(lambda toks: ptypes.StructType(toks[0][1], toks[0][2], toks[0][3]))
|
||||
typedefDef = Group(typedef_ + identifier + typeSpec + attributes - semi).setParseAction(lambda toks: ptypes.TypeAlias(toks[0][1], toks[0][2], toks[0][3]))
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user