def add_local_symbol(self, field, value):
if len(field.component) == 1:
self.stack[-1][field.component[0].name] = value
else:
components = list(reversed([component.name for component in field.component]))
atom = self.lookup_local_key(components.pop())
parent, base, p = self.traverse_atom(atom, components)
if isinstance(p, Message):
result = parse_proto(value.literal.proto.value, value.literal.proto.field.component[0].name)
getattr(parent, field.component[-1].name).CopyFrom(result)
self.stack[-1][field.component[0].name].literal.proto.value = text_format.MessageToString(base)
else:
setattr(parent, field.component[-1].name, value)
self.stack[-1][field.component[0].name].literal.proto.value = text_format.MessageToString(base)
评论列表
文章目录