def ingest(self, co, classname=None, code_objects={}, show_asm=None): tokens, customize = Scanner37Base.ingest(self, co, classname, code_objects, show_asm) for t in tokens: # The lowest bit of flags indicates whether the # var-keyword argument is placed at the top of the stack if t.op == self.opc.CALL_FUNCTION_EX and t.attr & 1: t.kind = "CALL_FUNCTION_EX_KW" pass elif t.op == self.opc.BUILD_STRING: t.kind = "BUILD_STRING_%s" % t.attr elif t.op == self.opc.CALL_FUNCTION_KW: t.kind = "CALL_FUNCTION_KW_%s" % t.attr elif t.op == self.opc.FORMAT_VALUE: if t.attr & 0x4: t.kind = "FORMAT_VALUE_ATTR" pass elif t.op == self.opc.BUILD_MAP_UNPACK_WITH_CALL: t.kind = "BUILD_MAP_UNPACK_WITH_CALL_%d" % t.attr elif t.op == self.opc.BUILD_TUPLE_UNPACK_WITH_CALL: t.kind = "BUILD_TUPLE_UNPACK_WITH_CALL_%d" % t.attr pass return tokens, customize
def __init__(self, show_asm=None): Scanner37Base.__init__(self, (3, 7), show_asm) return
def __init__(self, show_asm=None): Scanner37Base.__init__(self, 3.8, show_asm) self.debug = False return