diff --git a/uncompyle6/scanners/scanner2.py b/uncompyle6/scanners/scanner2.py index bd1f2769..4bcb30fd 100644 --- a/uncompyle6/scanners/scanner2.py +++ b/uncompyle6/scanners/scanner2.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015-2023 by Rocky Bernstein +# Copyright (c) 2015-2024 by Rocky Bernstein # Copyright (c) 2005 by Dan Pascu # Copyright (c) 2000-2002 by hartmut Goebel # @@ -36,13 +36,13 @@ Finally we save token information. from __future__ import print_function from copy import copy - -from xdis import code2num, iscode, op_has_argument, instruction_size -from xdis.bytecode import _get_const_info -from uncompyle6.scanner import Scanner, Token - from sys import intern +from xdis import code2num, instruction_size, iscode, op_has_argument +from xdis.bytecode import _get_const_info + +from uncompyle6.scanner import Scanner, Token + class Scanner2(Scanner): def __init__(self, version, show_asm=None, is_pypy=False): @@ -206,7 +206,7 @@ class Scanner2(Scanner): bytecode = self.build_instructions(co) if show_asm in ("both", "before"): - print("\n# ---- before tokenization:") + print("\n# ---- disassembly:") bytecode.disassemble_bytes( co.co_code, varnames=co.co_varnames, @@ -235,7 +235,6 @@ class Scanner2(Scanner): # 'LOAD_ASSERT' is used in assert statements. self.load_asserts = set() for i in self.op_range(0, codelen): - # We need to detect the difference between: # raise AssertionError # and @@ -327,9 +326,14 @@ class Scanner2(Scanner): "BUILD_SET", ): t = Token( - op_name, oparg, pattr, offset, + op_name, + oparg, + pattr, + offset, self.linestarts.get(offset, None), - op, has_arg, self.opc + op, + has_arg, + self.opc, ) collection_type = op_name.split("_")[1] next_tokens = self.bound_collection_from_tokens( @@ -490,7 +494,7 @@ class Scanner2(Scanner): pass if show_asm in ("both", "after"): - print("\n# ---- after tokenization:") + print("\n# ---- tokenization:") for t in new_tokens: print(t.format(line_prefix="")) print() @@ -540,14 +544,17 @@ class Scanner2(Scanner): for s in stmt_list: if code[s] == self.opc.JUMP_ABSOLUTE and s not in pass_stmts: target = self.get_target(s) - if target > s or (self.lines and self.lines[last_stmt].l_no == self.lines[s].l_no): + if target > s or ( + self.lines and self.lines[last_stmt].l_no == self.lines[s].l_no + ): stmts.remove(s) continue j = self.prev[s] while code[j] == self.opc.JUMP_ABSOLUTE: j = self.prev[j] if ( - self.version >= (2, 3) and self.opname_for_offset(j) == "LIST_APPEND" + self.version >= (2, 3) + and self.opname_for_offset(j) == "LIST_APPEND" ): # list comprehension stmts.remove(s) continue @@ -924,7 +931,6 @@ class Scanner2(Scanner): # Is it an "and" inside an "if" or "while" block if op == self.opc.PJIF: - # Search for other POP_JUMP_IF_...'s targeting the # same target, of the current POP_JUMP_... instruction, # starting from current offset, and filter everything inside inner 'or' @@ -1116,7 +1122,6 @@ class Scanner2(Scanner): # Is this a loop and not an "if" statement? if (if_end < pre_rtarget) and (pre[if_end] in self.setup_loop_targets): - if if_end > start: return else: diff --git a/uncompyle6/scanners/scanner26.py b/uncompyle6/scanners/scanner26.py index 208e94b1..b15c0d2f 100755 --- a/uncompyle6/scanners/scanner26.py +++ b/uncompyle6/scanners/scanner26.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015-2017, 2021-2022 by Rocky Bernstein +# Copyright (c) 2015-2017, 2021-2022, 2024 by Rocky Bernstein # Copyright (c) 2005 by Dan Pascu # Copyright (c) 2000-2002 by hartmut Goebel # @@ -80,7 +80,7 @@ class Scanner26(scan.Scanner2): # show_asm = 'after' if show_asm in ("both", "before"): - print("\n# ---- before tokenization:") + print("\n# ---- disassembly:") for instr in bytecode.get_instructions(co): print(instr.disassemble(self.opc)) @@ -346,7 +346,7 @@ class Scanner26(scan.Scanner2): pass if show_asm in ("both", "after"): - print("\n# ---- after tokenization:") + print("\n# ---- tokenization:") for t in tokens: print(t.format(line_prefix="")) print() diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 634417af..6804b04c 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -418,7 +418,7 @@ class Scanner3(Scanner): # show_asm = 'both' if show_asm in ("both", "before"): - print("\n# ---- before tokenization:") + print("\n# ---- disassembly:") bytecode.disassemble_bytes( co.co_code, varnames=co.co_varnames, @@ -788,7 +788,7 @@ class Scanner3(Scanner): pass if show_asm in ("both", "after"): - print("\n# ---- after tokenization:") + print("\n# ---- tokenization:") for t in new_tokens: print(t.format(line_prefix="")) print()