Commit Graph

61 Commits

Author SHA1 Message Date
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
rocky
bdfe14069c Add class offset of Python3 2016-06-06 17:26:08 -04:00
rocky
70d4841a6a Fix python 3 set comprehension and ...
Add a few set/list comprehension offsets for Python 3
2016-06-06 17:04:59 -04:00
rocky
4f8714ff4c include offset for starting listcomp 2016-06-06 10:10:19 -04:00
Daniel Bradburn
b3182e804d showasm and showast now accept file like objects which are used for writing the the asm or ast to. 2016-06-01 10:02:04 +02:00
rocky
4398b5b2e0 Use xdis for code, magics, and marshal 2016-05-27 19:18:06 -04:00
Daniel Bradburn
ebee84228b Fixed bug in pysource / fragments where the use of deparse_code from fragments could break subsequent calls to deparse_code from pysource due to amending to the global TABLE_DIRECT. 2016-05-25 20:48:35 +02:00
rocky
79593d6ef1 Small change
0 shouldn't be used as False.
2016-05-24 12:38:44 -04:00
rocky
68ff878b3e Small pyflakes stuff 2016-05-20 21:37:46 -04:00
rocky
f834b46b84 Fragment fixes
fragments.py:
 * Use "%x" specifier if for iterators
 * Add '%D' interpretation

pysource.py:
  TABLE_DIRECT can get messed up from running fragments
  duplicate "%x" specifier to igore fragment stuff
2016-05-20 06:18:41 -04:00
rocky
9462e33f48 Fix Python 3.x bugs
* class definitions made via closures
* Add "make check-short" to top-level
* parse3.py: Python 3.3 uses STORE_LOGALS
2016-05-17 04:00:54 -04:00
rocky
09a01dc783 Correct bugs in Python 3.2 source generation 2016-05-16 15:50:45 -04:00
rocky
6be6632e96 Bug in Python 3.x genexpr 2016-05-15 19:35:45 -04:00
rocky
2fdcdcb154 Fix bug in kvlist handling on Python 2.7
Created from previous DRY code in Python 3
2016-05-15 03:47:30 -04:00
rocky
b9692c9b1f DRY scanner34 and scanner35
handle 3.0..3.4 build maps as key/value pairs
2016-05-15 03:29:08 -04:00
rocky
2db380a77f More fragment bugs 2016-05-13 23:55:27 -04:00
rocky
de0ec195b7 More packaging crap.
Did I tell you how much I hate python packaging?

fragments.py: track recent change in class decorators.
2016-05-13 23:35:31 -04:00
rocky
6f6f1db576 Misc fixups/cleanups
* parse3.py Had botched if-for-else test by grammar addition
* semantics/*.py: Show errorstack in failed parse when -g (requires sparck 1.2.0)
* some optimization in scanner3
2016-05-12 09:27:25 -04:00
rocky
631d7be921 Redo make_function for *, arg
main(*, file='foo') and things like that now work
2016-05-11 20:34:20 -04:00
rocky
41f9e9e53e Track recent lc changes in fragment semantics 2016-05-09 06:57:13 -04:00
rocky
debb46b0fe Semantic routine nonterminal typo 2016-05-08 13:49:15 -04:00
rocky
36ffd4c31f Handle Python 3 yield from
Start dealing with MAKE_FUNCTION flags - not done yet.
2016-05-07 11:33:18 -04:00
rocky
039c115679 More Python3 deparsing
- grammar rule genexpr
- More Python3 docstring formatted
2016-05-06 23:51:25 -04:00
rocky
163dfd888d Minor tweaks 2016-05-05 22:09:22 -04:00
rocky
feec241da8 Misc: long lists, DRY 2/3 grammars, '%' count
parse{2,3,r}.py: DRY Python expressions between Python 2 and 3
pysource.py, fragment.py, parser.py: handle long lists by grouping in chunks of 32
and 256
bin/uncompyle6: count %s properly
2016-05-02 21:25:16 -04:00
rocky
3e49aa56bb spark -> spark_parser 2016-04-28 19:03:51 -04:00
rocky
40badefe9d Use external spark now. 2016-04-27 23:04:31 -04:00
rocky
f0cc2df543 Track recent source class semantic actions in fragment actions 2016-01-02 13:11:19 -05:00
rocky
b89177d234 track source deparsing superclass bug fix 2015-12-31 15:24:24 -05:00
rocky
8d90e33832 Handle Python 3.3 > dotted class names 2015-12-31 10:56:12 -05:00
rocky
d3a32b6877 Show details on parsing assert failures. 2015-12-30 23:17:57 -05:00
rocky
2e91de8355 Start using our replacement for inspect.iscode 2015-12-30 18:44:27 -05:00
rocky
5bbe2c4a45 Doc changes. 2015-12-30 18:20:50 -05:00
rocky
b3ede4b64b Walker->SourceWalker Traverser->FragmentsWalker 2015-12-30 17:04:18 -05:00
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