示例#1
0
def zig_enum(name):
    items = gdb.types.make_enum_dict(gdb.lookup_type(name))
    res = Enum(name, items)

    # Cast constructor argument to int.
    # Note that, confusingly, Enum requires you to override __new__
    # rather than __init__.
    res.__new__ = lambda cls, val: Enum.__new__(cls, int(val))

    return res
示例#2
0
 def __new__(cls, value, slots=None, types=None):
     if slots == None and types == None: # value lookup instead of creation
         return Enum.__new__(cls, value)
         
     latent = object.__new__(cls)
     latent._value_ = value
     latent._slots = slots
     latent._types = types
     return latent
示例#3
0
def _PoCEntityTypes_parser(cls, value):
    if not isinstance(value, str):
        return Enum.__new__(cls, value)
    else:
        # map strings to enum values, default to Unknown
        return {
            'src': EntityTypes.Source,
            'tb': EntityTypes.Testbench,
            'nl': EntityTypes.NetList
        }.get(value, EntityTypes.Unknown)
示例#4
0
文件: Entity.py 项目: krabo0om/PoC
def _PoCEntityTypes_parser(cls, value):
	if not isinstance(value, str):
		return Enum.__new__(cls, value)
	else:
		# map strings to enum values, default to Unknown
		return {
			'src':      EntityTypes.Source,
			'tb':        EntityTypes.Testbench,
			'nl':        EntityTypes.NetList
		}.get(value,	EntityTypes.Unknown)