Пример #1
0
 def __init__(self, parent, is_distinct, kind, operands, name):
     super(DIValue, self).__init__(parent,
                                   types.MetaDataType(),
                                   name=name)
     self.is_distinct = is_distinct
     self.kind = kind
     self.operands = tuple(operands)
     parent.metadata.append(self)
Пример #2
0
 def _fix_metadata_operands(self, operands):
     fixed_ops = []
     for op in operands:
         if op is None:
             # A literal None creates a null metadata value
             op = types.MetaDataType()(None)
         elif isinstance(op, str):
             # A literal string creates a metadata string value
             op = values.MetaDataString(self, op)
         elif isinstance(op, (list, tuple)):
             # A sequence creates a metadata node reference
             op = self.add_metadata(op)
         fixed_ops.append(op)
     return fixed_ops
Пример #3
0
 def __init__(self, value):
     assert isinstance(value, Value)
     assert not isinstance(value.type, types.MetaDataType)
     self.type = types.MetaDataType()
     self.wrapped_value = value
Пример #4
0
 def __init__(self, parent, values, name):
     super(MDValue, self).__init__(parent,
                                   types.MetaDataType(),
                                   name=name)
     self.operands = tuple(values)
     parent.metadata.append(self)
Пример #5
0
 def __init__(self, parent, string):
     super(MetaDataString, self).__init__(parent,
                                          types.MetaDataType(),
                                          name="")
     self.string = string