rocky
f6f0e344d0
Python 3.6+ specialization
2021-11-03 02:23:19 -04:00
rocky
ed34bf9d4a
use xdis.PYTHON3 not uncompyle.PYTHON3
2021-11-02 06:53:11 -04:00
rocky
8ac7a75372
Use tuples not floats in Python release comparison
2021-10-18 11:59:02 -04:00
rocky
e8e006bb8c
More Python version comparison conversions
2021-10-16 11:33:03 -04:00
rocky
e8e7d2086d
whileelse in 3.6 sometimes has come froms...
...
also remove extra "L. " in token printing
2020-04-04 10:12:12 -04:00
rocky
24afe072b7
LOAD_CONST -> LOAD_CODE where appropriate
2019-06-19 14:43:07 -04:00
rocky
1cd2d1e915
DRY scanner code more...
...
Expand 2.6 testing
2018-04-03 10:35:02 -04:00
rocky
fad43feb3d
DRY instruction building code...
...
There is a little more that could be done with self.offset2inst_index
2018-04-03 04:41:36 -04:00
rocky
f18ce71e91
Replace all_instrs with inst_matches...
...
which works on 3.6+. Still should write a pytest for this.
2018-03-29 21:23:26 -04:00
rocky
e23315b2e6
Fallout from more precise token attributes
2018-02-28 23:35:52 -05:00
rocky
296fcd89ce
Add self.offset2inst_index and document more
2018-02-04 09:13:49 -05:00
rocky
b0d18cae6a
Fix bug in 2.5- try/else inside ifelsestmt
2018-01-06 22:19:44 -05:00
rocky
15057bed1d
Fix bugs in scanner.last_instr()...
...
And ave instruction stream self.insts like we do in Python 3 so we
can start simplifying code.
2017-12-15 20:34:34 -05:00
rocky
a7005f6a77
2.7 exec stmt grammar rule isolation/reduction
2017-12-02 09:23:18 -05:00
rocky
17f5b35b1d
More grammar isolation
2017-11-26 16:34:10 -05:00
rocky
b7003914c9
localize 2 and 3 argument BUILD_SLICE...
...
Nontermninal name matches AST anme now. Add test.
2017-11-25 21:10:11 -05:00
rocky
dea17cd7f1
xdis _disassemble->disassemble
2017-11-06 00:38:22 -05:00
rocky
1392b18bd7
Adjust for spark-parser 2.7.0 incompatabilities
2017-10-10 14:14:26 -04:00
rocky
7b38d2f1f8
Adjust for xdis opcode JUMP_OPS. release 2.12.0
2017-09-25 20:01:31 -04:00
rocky
27ab6fe2f5
Use xdis 3.5.0's opcode sets
2017-07-08 20:41:46 -04:00
rocky
c7f8edd5ef
Simplify access to L65536 ...
...
and fix use in scanner26.py. Thanks to AnythingTechPro
2017-06-09 18:22:02 -04:00
rocky
49fd430505
EXTENDED_ARG is implemented in 2.6
2017-05-19 19:29:56 -04:00
rocky
597d51951e
Improve Python 2.6 & 2.7 verification
2017-01-23 02:32:09 -05:00
rocky
6c546fe6e1
WIP : Add THEN to disambigute from "and"
2016-12-27 22:45:08 -05:00
rocky
1e324e0e8d
Misc changes
...
scanner26.py: make scanner2.py and scanner26.py more alike
scanner2.py: check that return stmt is last in list. (May change)
main.py: show filename on verify error
test/*: add more
2016-11-26 21:41:45 -05:00
rocky
195bbc746b
Pass debug in scanner26 find_targets
2016-11-20 03:42:30 -05:00
rocky
f2a3721d7d
Start to improve detect_structure for 2.7 and 2.x
...
Add debug flag to find_jump_targets to show the structure we found.
When there are control-flow bugs, it's often reflected here.
scanner3.py: make code make more similar to 2.x code
2016-11-20 02:38:59 -05:00
rocky
6073c77921
Show line numbers in 2.6 "after" asm ..
...
start to understand some of the Python 2.6 bytecode parse failures.
2016-11-14 00:30:23 -05:00
rocky
0826129112
DRY Python 2.x unmangle_classname
...
main.py: small typo: Disassembled -> Decompiled
2016-10-20 06:35:01 -04:00
rocky
5703ccd8b8
2.6 try statement (and below)
...
They may neeed arbitrary come_froms for each except clause
2016-10-13 19:37:38 -04:00
rocky
9ef670c872
Fix Python 1.5 bytecode deparse
...
Need xdis 3.0.2 though since the bug is really there.
2016-10-11 02:39:09 -04:00
rocky
8b240a80e7
Get ready for release 2.9.0 ...
...
- Use xdis 3.0.0 protocol load_module. Needs bump in requirements.txt
and _pkg_info_.py
- Start Python 1.5 decompiling - another round of work is needed to remove
bugs
- small cleanups
2016-10-10 09:33:49 -04:00
rocky
4f83a87a00
Python 2 & 3 scanner code ever so slightly closer
2016-09-21 07:06:30 -04:00
rocky
c119965d96
Small changes
2016-09-18 17:23:49 -04:00
rocky
318311818e
Python 2.6- try/except control flow detection
2016-09-05 04:02:37 -04:00
rocky
c7788e4545
disassemble -> ingest where appropriate
...
As part of tokenization for (de)parsing, we need to do something like a
disassembly, but is is really a little different.
Disassembly, strictly speaking, is done by the xdis module now.
What "ingestion" does is massage the instruction tokens to a form that is
more amenable for parsing.
In sum, ingestion is different than disassembly, although disassembly is
generally the first part of ingestion.
2016-09-04 11:43:02 -04:00
rocky
f5eeed6759
2.6- bug: while..and: stmt - on one line
...
If 2.6 or before POP_BLOCK after a JUMP_IF_FALSE does not
constitute a new statement. The POP_BLOCK is really part
of the JUMP_IF_FALSE. In Python 2.7+ it's a single op.
2016-09-01 20:44:17 -04:00
rocky
98a6f47ad6
Python 2.2 scanner bug: don't mung IMPORT_NAME op
2016-08-16 06:38:09 -04:00
rocky
285444e19a
Better assembly formatting of jump instructions
2016-07-25 00:36:39 -04:00
rocky
21377f3b43
Merge branch 'master' into pypy
...
Conflicts:
uncompyle6/scanners/scanner2.py
2016-07-23 10:57:58 -04:00
rocky
942b15e3c6
Suppress arg in dissassembly if there is none
2016-07-16 14:12:31 -04:00
rocky
0ee52aeeef
Isolate pseudo op IMPORT_NAME_CONT
...
I think this is a holdover from pre 2.3 days. Possibly it can be dropped altogether.
2016-07-14 21:05:09 -04:00
rocky
7b7a9fa4cf
Python 3.4 assertion handling. Improve verify
...
3.4 has jump optimization like 3.5.
verify.py: show mismatch on verification mismatch
2016-07-14 05:20:30 -04:00
rocky
59ba8a65cd
Structure detection bugs +
...
Had borked 3.4 grammar rules in
previous refactor
2016-07-10 19:21:55 -04:00
rocky
44dba42a40
Remove JA. Use standard JUMP_ABSOLUTE instead
2016-07-10 08:21:17 -04:00
rocky
52b71bb01a
Python 3 better CONTINUE op classification
...
Also document what's up with JUMP_ABSOLUTE
classification
2016-07-10 06:47:34 -04:00
rocky
65b9ecee31
Fix some 2.3 bugs; add more 2.3-6. tests
2016-07-09 17:33:54 -04:00
rocky
d6b35d57e4
DRY scanner code. Allow 2.4 decompile from 3.x
2016-07-08 21:37:09 -04:00
rocky
e31f829a56
Python 2.4 generator expressions and gen_comp_body
2016-07-08 18:00:13 -04:00
rocky
e020f8f9a9
2.5/2.6 RETURN_VALUE bug
2016-07-08 12:02:28 -04:00