rocky
6f0a252693
Add Python3 marshal codes and start to handle cross-version Python code
...
object types, introducing scan.Code3
2015-12-28 14:17:28 -05:00
rocky
625feb0517
Possibly closer to getting 2.7 to read 3.4 bytecode
2015-12-27 22:24:30 -05:00
rocky
820fdb4771
Fix up Python 2.x's ability to get code from Python 3.x's bytecode
2015-12-27 19:36:02 -05:00
rocky
44cd349cc7
DRY Python3 scanner code. Some cross version handling fixed.
...
Some Python 3.2 and 3.3 deparse fixes.
2015-12-27 04:43:35 -05:00
rocky
4640e7dece
Running native on Python 3.3 needs more work
2015-12-26 19:32:32 -05:00
rocky
3ac3ef24ac
Add node and template code to cleanup "for" handling
2015-12-26 10:42:57 -05:00
rocky
008bd79719
Fix up Python 3.2, 3.3, and 3.4 cross-version scanners
...
Try travis 2.6 and 3.3
2015-12-26 10:19:26 -05:00
rocky
7a2703634f
Fix up looping by reinstating JUMP_ABSOLUTE -> JUMP_BACK or CONTINUE
...
get jump offsets into jump attributes. Fix up 3.2 scanner paritally
and use that in 3.4 for in cross version disassembly.
2015-12-26 03:06:03 -05:00
rocky
fe9c8d5734
Python3 try/except handling improvements. Add Walker exception and use
...
that: fixes erroneous uncompyle success message on parse error.
2015-12-26 00:12:02 -05:00
rocky
0409cee6a9
WIP redo try/except for Python3
2015-12-25 17:57:53 -05:00
rocky
39f0f7440b
Fix bugs in using pysource from fragments.
2015-12-25 10:47:07 -05:00
rocky
1d533cbb23
Two modes of disassembly, one where we show hidden code and one where we don't.
2015-12-25 10:08:12 -05:00
rocky
1088031335
Remove Python3 class __qualname__ assignment. Change LOAD_NAME to
...
LOAD_CLASSNAME to make parsing more reliable and intentional.
2015-12-24 22:31:24 -05:00
rocky
c0d50c4d96
Improve Python3 class definition handling
2015-12-24 19:21:36 -05:00
rocky
d2406e9d57
One more place for API change
2015-12-24 11:50:08 -05:00
rocky
e3a5d487eb
Show embeded timestamp of byte-decompiled file
2015-12-24 11:30:57 -05:00
rocky
484cd703bf
Lint
2015-12-23 20:11:06 -05:00
rocky
0c45fcfab9
WIP: Python3 exceptions
2015-12-23 20:08:07 -05:00
rocky
d47415a677
Start Python3 class(superclass) handling
2015-12-23 15:42:52 -05:00
rocky
f630fe15fb
parse2.py, pysource.py: add buildclass nonterminal to structure tree
...
better and make more similar to Python3
load.py: handle magic errors better
main.py: correct use when passing a .py instead of a .pyc better and a message
err when file not found.
pysource.py: fix up main docstring; code moved from main.py
2015-12-23 13:49:56 -05:00
rocky
46828cd769
Add fragmnet offsets for 'from x import..'
2015-12-23 07:34:18 -05:00
rocky
72acf4311f
Propogate offsets in imports. Added a new %x format specifier.
2015-12-22 18:00:45 -05:00
rocky
35592b50ed
Allow comments in grammar rules. Start working on Python3 class (not
...
finished). More test organization.
2015-12-22 11:44:04 -05:00
rocky
41cceb5931
Remove Python2 buitin "print" from Python3's grammr. Start class tests
2015-12-22 05:50:00 -05:00
rocky
217b1b6f54
main.py, pysource.py DRY deparse_code from main. Is better on showing
...
exception errrors such as when a pyc file is not found
uncompyle6: Hook in --grammar option to showing grammar.
rules. Default now does not show timestamp.
2015-12-22 05:15:00 -05:00
rocky
4f0fe90eef
Add spark option to show grammer. Revise uncompyle options. Start to reorganize
...
tests more
2015-12-22 03:56:50 -05:00
rocky
6a49cd2c69
Bug in for loop with try. Add more of 2.7's COME_FROM statements.
...
spark.py: add tracing reduce rules. main: reduce cutsines.
Start history
2015-12-21 21:08:08 -05:00
rocky
6b0bb124ea
Start Python3 execption handling
2015-12-21 15:41:21 -05:00
rocky
1456f820f2
Start Python3 slices. Split off token routine.
2015-12-21 12:17:57 -05:00
rocky
5dc3af3238
Start slice and build list on Python3. Do sanity check on marshal load
...
of code.
2015-12-21 06:41:02 -05:00
rocky
9cdcdfd305
Part of a much needed cleanup. Move semantics routines into its own
...
directory. Move out lots of stuff from __init__ to their own files.
Add file loading tests. Document AST handling a tad more complete.
2015-12-20 23:03:35 -05:00
rocky
6910e1b1b4
Python 3 decompilation from Python2
2015-12-20 18:18:40 -05:00
rocky
21920b5852
First list comprehensions from Python3. More test makefile hacking
2015-12-20 17:16:05 -05:00
rocky
ba5a6e790b
dissasemble_file output is needed for pytest
2015-12-20 12:18:13 -05:00
rocky
7880e0d7b1
Go over makefiles to make "make check" work. walker, deparser: use zip_longest
2015-12-20 12:07:49 -05:00
rocky
aa2fc0f5a5
3.4: correct picking up parameter names on oa function call
2015-12-19 20:53:33 -05:00
rocky
18ce905edf
Python3 compatiblity for getting precidence. n_mkfunc needs to key off
...
of bytecode version, not running Python version.
2015-12-19 18:58:30 -05:00
rocky
93ab1f0281
Python 3.4: MAKE_FUNCTION starts to work.
2015-12-19 11:17:17 -05:00
rocky
a75bd0bf97
Python 3 bytecode handles opcodes with varargs (better). Decompiling
...
assert works. Add more of the simple tests and their compiled bytecode.
2015-12-19 03:00:39 -05:00
rocky
f70641da5d
disas.py: track load_module API change
...
opcode_23.py: make it more like opcode_27.py
2015-12-18 23:03:47 -05:00
rocky
0a49c7a15b
verify.py: Don't try to verify bytecode against compiled code if
...
magics of running interpreter mismatch bytecode to be compared.
load_module() now returns the magic found in the code object file.
2015-12-18 22:04:50 -05:00
rocky
6bc425b45e
marshal.py: Python2 marshal code shouldn't try to turn a code object
...
into a string. parse3.py: handle both keyword and positional function
calls. scanner34.py: Remove extra level of quoting in LOAD_CONST.
Keyward handling now works cross Python 2/3. Some other spelling and doc fixes.
2015-12-18 21:20:12 -05:00
rocky
347219a009
Python3 postional arguments. Clean up code more along the lines of uncompyle3.
2015-12-18 17:07:35 -05:00
rocky
e5f58e8ecb
disas.py: Do better for finding/turning a .py file into a .pyc file
...
across supported versions of Python. Add for else list comprehension test
2015-12-18 08:47:30 -05:00
rocky
78847fe454
Restrict marshal.loads when magic is the same. This is more stringent than using the Python major/minor version
2015-12-17 22:34:13 -05:00
rocky
97f48f1322
Frank Ebersoll's grammar fix to make "assert isinstance(1, int)" work.
2015-12-17 21:41:47 -05:00
rocky
2fc2d6c699
Python 2.6 compatability via ericfrederich's patch. DRY version-checking code
2015-12-17 20:48:54 -05:00
rocky
a309a77ea7
Python3: remove "return None" at end of main for uncompyle. Fix up verify for Python3. First automated Python 3.4 tests via "makecheck-3.4" in test directory.
2015-12-17 18:53:30 -05:00
rocky
29f02edf79
Add spark grammar debugging. Start to comment grammer construct covered
...
by simple tests.
2015-12-17 12:44:40 -05:00
rocky
3604933a74
Python 3.4 correct grammar for some looping constructs
2015-12-17 10:30:01 -05:00