rocky
9a3e11a957
Fragment bugs
...
fragment.py:
* deparse_code_aorund_offset: was sometimes returning the wrong type
* capture function name offset
* lint imports
pysource.py: use a clearer variable name
2017-06-03 05:18:40 -04:00
rocky
966a4bc7dc
Track changes in ifelstmtr..
...
in fragments from pysource
2017-06-02 21:15:23 -04:00
rocky
d4dab54c7b
Merge branch 'master' into python-2.4
2017-05-30 02:18:57 -04:00
rocky
cbbf64ccd0
Python 3.6 makefunction handling for fragments
2017-05-30 01:25:33 -04:00
rocky
cf3c07e047
Add fuzzy offset deparse lookup
2017-05-23 06:10:31 -04:00
rocky
e56ab2dcd5
Sync with master
2017-05-06 07:17:04 -04:00
rocky
a06e9bf32e
Merge branch 'master' into python-2.4
2017-04-14 05:45:53 -04:00
rocky
7e8f7ba674
namedtuple25 -> namedtuple24
2017-04-14 05:42:44 -04:00
rocky
bb24df596d
Bang on 3.x annotations
2017-04-11 17:09:10 -04:00
rocky
89429339fa
Merge branch 'master' into python-2.4
2017-01-11 19:25:44 -05:00
rocky
66518baed0
Misc cleanups
...
Favor "decompile" over "uncompyle" since "decompile" is in common use
Reduce size of pysource.py by splitting out constants
2017-01-08 09:26:19 -05:00
rocky
012ff91cfb
Merge branch 'master' into python-2.4
2016-12-25 07:57:17 -05:00
rocky
e3f4beeb74
Lint
2016-12-24 07:45:02 -05:00
rocky
e2fb7ca3d2
Python 2.6/2.7 tolerance in Python 2.4 branch
2016-12-17 06:51:47 -05:00
rocky
b3bda76582
Merge branch 'master' into python-2.4
2016-12-16 22:56:07 -05:00
rocky
b43cbc050d
Was passing wrong type
2016-12-13 20:05:08 -05:00
rocky
7133540c23
Make work on 2.4
2016-11-23 08:26:12 -05:00
rocky
a9349b8f3d
Making it run on Python 2.4 and 2.5
2016-11-23 07:53:51 -05:00
rocky
c8550d5c9e
Split out print_docstring
...
move from pysource.py to new helper.py
2016-11-22 05:29:50 -05:00
rocky
80a4ad4f1b
Python 3.0 while1 if bug...
...
Is a workaround. We really need more tagging in of SETUP_LOOP and COME_FROM.
2016-11-13 01:28:36 -05:00
rocky
50c2e1bda9
Revert augassign change but..
...
Make note of what's going on and add grammar test for bad
situations we have in Python 2.6 (and perhaps others)
2016-11-11 09:08:02 -05:00
rocky
0f536b18fa
Bug in detecting 3.3 default value in lambda
2016-11-10 23:59:51 -05:00
rocky
6fb879d0d8
Detect some erroneous decompilations
...
Until we can actually prevent these in grammar rules, we will warn of
improper decompilations.
Also, we now stop when we hit a decompile error. Previously we were not.
2016-11-10 22:29:39 -05:00
rocky
2328ca7a55
Break out make_function() into its own file.
...
It is already too complex and will get worse in Python 3.6.
Note: make_function in fragments.py is still inside and
probably needs fixup.
2016-10-29 07:22:58 -04:00
rocky
fe072d8b57
DRY fragments.py preorder code
...
pysource.py: doc typo
2016-10-11 22:24:00 -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
3ef0325cb8
Small changes
2016-07-29 19:54:16 -04:00
rocky
f33f425692
Add is_pypy parameter to places that need it
2016-07-27 16:08:40 -04:00
rocky
c3f6fa32db
Customize tables better for specific Python versions
2016-07-27 06:56:02 -04:00
rocky
74f440bd0b
Usuability fixes
...
* try using format for __str__
* Explicitly nuke self.attr and self.pattr when no arg
* Sync pysource and format wrt make_function
2016-07-26 20:49:41 -04:00
rocky
7c4316d4fb
Start handling pypy 2.7
...
Need to understand whether we care compiling pypy.
Pypy 2.7 list comprehensions are different and use
its own opcode.
2016-07-21 02:58:50 -04:00
rocky
4e6e38358d
3.x list comprehenions list_if_not, comp_ifnot bug
...
Saw only list_if_not bug, but might also be applicable
to comp_ifnot
2016-07-14 11:30:42 -04:00
rocky
bc86b73cf0
Document/correct hide_internal and store_locals
2016-07-12 12:07:48 -04:00
rocky
694e1edd00
More offsets captrued Add %b specifer
...
%b - associate text before specifier
pysource.py: small doc correction
2016-07-03 21:57:46 -04:00
rocky
fa7d8f955a
WIP Python-2.6 but don't remove opcodes
...
The scheme for turning 2.6 bytecode into 2.7 psuedo bytecode
I think is a lose.
I won't work for fragment handling.
Instead, change the grammar and syntax rules
This also has the benefits:
* We see how code generation changed over releases
by looking at grammar and semantic rules rather
than arbitrary code
* We can better assocate with what's running
(in a sense this is a restatement of broken fragment
handling)
* With the right structure in place we are in a better position to
handle 2.5, 2.4, etc. That is, after a while, the incremental changes
to get say from python 2.3 bytecode to python 2.7 are great.
Conflicts:
uncompyle6/parsers/astnode.py
2016-06-24 18:15:59 -04:00
rocky
493ffa62fe
Python 3.5 and setcomp_func's
...
A comprehension walk in Python 3.5 needs to include
setcomp_func's.
2016-06-22 22:21:54 -04:00
rocky
480e6a125f
Add Python 3.5 yield from and ...
...
* fragments.py: Handle pass stmt sometimes
* scanners: regularize Python 2 scanners some
* test/test_pyenvlib.py: add python 3.5.1 option
2016-06-22 13:08:11 -04:00
rocky
faa630902d
Python 3 comprehension fixes
...
Sync up fragments.py
2016-06-22 10:50:11 -04:00
rocky
75592795b3
Python 2.6 tolerance
2016-06-22 00:05:19 -04:00
rocky
649da8fbc0
Btter Python 3 fragment set comprehensions ...
...
fragment handling for "break" and "continue"
2016-06-21 23:40:26 -04:00
rocky
cdb02fa591
Handle fragment key/value offsets better
2016-06-21 04:08:36 -04:00
rocky
24d4cfb150
Python 3 set comprehension bug
2016-06-20 18:47:03 -04:00
rocky
8c374904f5
3.x make closure kw args handling bug
2016-06-20 10:01:18 -04:00
rocky
078f15013e
Python 3.x class decorator bug
2016-06-20 00:32:00 -04:00
rocky
efb4012087
Correct kw+pos args semantics on 3.3
...
Sync fragment make_function code
2016-06-19 21:41:40 -04:00
rocky
5c268ee2a6
2.7 and 3.x bug in dict comprehensions
2016-06-19 13:45:07 -04:00
rocky
ff014a8393
Cover more offsets
2016-06-19 04:22:55 -04:00
rocky
d7b79c2b59
3.4 dictionary comprehension bug
...
Sync up fragment code with recent changesa
2016-06-19 00:49:22 -04:00
rocky
fe56ca96c2
Add fragment offsets for more instructions
...
Save and restore class name across switches
2016-06-07 23:21:01 -04:00
rocky
e9c8c11071
Set comprehension code is not in 2.6
...
So we need more care in test programs.
2016-06-06 18:06:44 -04:00