Commit Graph

354 Commits

Author SHA1 Message Date
rocky
d2ac293cf6 Merge branch 'master' into python-3.0 2016-11-05 21:01:50 -04:00
rocky
63e4c9343f Clean up annotation grammar a little 2016-11-01 15:50:19 -04:00
rocky
ccdd37611c More complete annotate handling
Still have a bit of work to do though.
2016-10-28 19:55:17 -04:00
rocky
2e355b6245 Expand annotate return to Python 3.4 2016-10-28 11:33:54 -04:00
rocky
0e7da031b2 Split out 3.1-3.3 parsers from parser3.py
This is anticipation of extending annotation to Python 3.2+
2016-10-28 07:07:18 -04:00
rocky
8feb472d51 Split out Python 3.1 parser from rest.
__pkginfo__.py: use Python 3.1 bytecode fixes
2016-10-25 21:47:02 -04:00
rocky
7a10917857 Handle Python 3.1 "with ... as" statement 2016-10-25 02:05:10 -04:00
rocky
aff920d87b Python 3.1 "with" statement bug 2016-10-24 20:47:12 -04:00
rocky
6319d33fa0 Python 3.1 compile bug. DRY Python 3.x rules ...
via inheritance
2016-10-24 08:50:34 -04:00
rocky
abb61a4d7d Fix some Python 3.1 bugs 2016-10-24 02:16:23 -04:00
rocky
b54a19c6ff Start Python 3.0 decoding
Fix some Python 3.1 bugs
2016-10-24 02:11:26 -04:00
rocky
0480455ae1 DRY Python 3.6 grammar rules 2016-10-22 12:29:36 -04:00
moagstar
cec80e696c further work on supporting single and multiple fstring decompilation 2016-10-20 20:44:27 +02:00
moagstar
7beaa9f36c urther work on fstrings for python 3.6 - there is a new opcode build_string which is used to improve fstring performance, but broke the fstring support in uncompyle 2016-10-19 23:32:15 +02:00
rocky
b52f341d46 Python 3: "or" doesn't have optional come_from 2016-10-05 22:54:50 -04:00
rocky
649e4518fe Python 3: "and" doesn't have optional come_from 2016-10-05 03:34:29 -04:00
rocky
a8f9f2170f Python 3 while1 grammar rules with COME_FROM_LOOP 2016-09-28 05:52:13 -04:00
rocky
fe46015b78 PY3 COME_FROM_LOOP bug
There are still more in sre...
2016-09-27 04:59:06 -04:00
rocky
051efb80f5 PY3: COME_FROM -> COME_FROM_FINALLY as appropriate
We now have all WITH_ op jumps associated in the grammar

Also, some COME_FROM_LOOP grammar fixes
2016-09-27 03:27:41 -04:00
rocky
1fc8ac4700 Interval order COME_FROMs in Python3
This bug had possibly caused lots of grammar pollution which may need
addressing.

We want to process COME_FROMs to the same offset to be in *descending*
order so we have the larger range or biggest instruction interval
last. (I think they are sorted in increasing order, but for safety
we sort them). That way, specific COME_FROM tags will match up
properly. For example, a "loop" with an "if" nested in it should have
the "loop" tag last so the grammar rule matches that properly

Adjust Python 3 grammar for more COME_FROM -> COME_FROM_LOOP. And
remove optional COME_FROM_LOOP where possible. Previously, the
optional-ness was a result of inner nestings gobbling up the
COME_FROM.

We'll probably want to go back and fix this up in Python2.
2016-09-26 09:26:51 -04:00
rocky
c87710dd4b Python 3 COME_FROM -> COME_FROM_WITH appropriately 2016-09-26 08:09:05 -04:00
rocky
c03a8186b5 Address whileTrue if cond .. -> while cond .. bug
Reinstate Python standard library bisect test
2016-09-25 16:59:32 -04:00
rocky
760532b218 Add COME_FROM_LOOP
Note: we have regressed in --verify and some tests,
but I believe that's because we are producing more equivalant
(if uglier) programs. That's a separate problem though.
2016-09-22 08:24:02 -04:00
rocky
88f2ad1f5a Merge branch 'master' into controlflow 2016-09-22 01:33:29 -04:00
rocky
d271e886d9 Fix pytest grammar test failure
dict and set comprehensions are only in 2.7+
2016-09-22 01:32:00 -04:00
rocky
c0b4a5e703 Fix some Test failures
Fix py.test pytest/test_grammar.py -

Comprehension sorts of things removed from parser that
don't exist in earlier pythons

scanners/tok.py Add back in "to" when needed
2016-09-22 01:27:58 -04:00
rocky
b6dee24289 First step towards managing control flow decoding 2016-09-21 21:30:57 -04:00
moagstar
bae3d2e361 merge fstring changes from moagstar 2016-09-21 22:04:46 +02:00
rocky
71591152ef 3.0 .. 3.4 bug in whileTrue 2016-09-09 22:27:13 -04:00
rocky
2d11ffb669 Python 3.0-3.2 *args processing 2016-09-08 03:54:57 -04:00
rocky
fecae9f902 Fix 3.3 named bug and ...
Parse 3.4 parameters correctly.
Allow test_pyenvlib to do 3.3.6
2016-09-06 02:15:47 -04:00
rocky
ddc5460030 Start to handle Python 3.1 bytecode 2016-08-26 20:50:08 -04:00
rocky
2e3e6658ee Small pypy LOOKUP_METHOD cleanups 2016-08-16 06:09:10 -04:00
DanielBradburn
004ce5c491 Fixed bug with FORMAT_VALUE where a sub expression would not be correctly interpreted 2016-08-16 08:24:06 +02:00
DanielBradburn
5d27832d6f resolve merge conflicts from pull request 2016-08-10 08:20:51 +02:00
Daniel Bradburn
d14865c1be Starting adding python 3.6 support to uncompyle 2016-07-28 09:07:12 +02:00
rocky
cd8cbf9200 Add 3.5 matrix mult ops
We now run 3.5 verifycation so we need to remove some
of the tests that fail to verify pending fixing.
2016-07-15 12:12:19 -04:00
rocky
c9d1f72424 Attempt to get 3.5 RETURN_END_IF working
This feels hacky and I'm not sure is quite right.
Untili we understand better what to do though, we'll
go with it.
2016-07-14 14:49:57 -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
bc86b73cf0 Document/correct hide_internal and store_locals 2016-07-12 12:07:48 -04:00
rocky
78f24f9c66 Python 3.2 & 3.3 handle STORE_NAME better 2016-07-11 23:24:52 -04:00
rocky
9fdf70f68d Python 3.(4?) while1 bug
Clean up while1 grammar a tad
2016-07-11 10:18:18 -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
3cd3f7ccdf Bugs caused by 3.x jump_forward misclasification 2016-07-10 08:05:18 -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
21da5e787e Start splitting off 3.4 grammar from rest 2016-07-09 21:11:14 -04:00
rocky
974b11ff55 Another 2.6 while stmt. Clean up grammar a little 2016-07-03 10:50:19 -04:00
rocky
9a2369830d Python 3.5 if handling...
Allow RETURN_END_IF in a return statement
May want to do this in other versions as well, but right now
we only need it here.
2016-06-22 22:09:06 -04:00
rocky
f999e6a33a Another kind of yield_from on 3.5 2016-06-22 16:48:03 -04:00
rocky
126af429fb differing ways to do "yield from" in 3.3-3.5 2016-06-22 16:29:58 -04:00