rocky
982a6010a1
WIP 2.6 redo bytecode handling
...
Don't try to convert 2.6 bytecode to 2.7 psuedo bytecode.
Instead adjust grammar and semantic actions.
Down the line we should to segregate version changes in
semantic code better.
2016-06-24 09:23:30 -04:00
rocky
dc88bcf69f
DRY parse grammar a little
...
More LOAD_CONST grammar removal in 3.2
2016-06-22 08:36:01 -04:00
rocky
f215888374
DRY redundant custom rule checking code
2016-06-20 19:06:45 -04:00
rocky
5c268ee2a6
2.7 and 3.x bug in dict comprehensions
2016-06-19 13:45:07 -04:00
rocky
5d86a4e536
Python 3 except clause parsing bug
2016-06-19 10:30:39 -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
724faf9a3a
Go over grammars..
...
* Reduce duplication
* Remove unused grammar rules
* Add grammar checking when parsers run as standalone
2016-06-17 22:59:17 -04:00
rocky
167f5af5e6
Misc refactorings
2016-06-02 16:58:42 -04:00
rocky
09f6286bec
Fix 3.x generator bug...
...
found by Daniel Brandburn. See
af61622960
2016-05-21 05:09:27 -04:00
rocky
6be6632e96
Bug in Python 3.x genexpr
2016-05-15 19:35:45 -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
b134d08e91
add pos_arg ::= expr to make params of fns clear
2016-05-10 18:05:25 -04:00
rocky
8b9e0eca42
Some grammar cleanup
2016-05-09 11:58:05 -04:00
rocky
196495c40e
Python 3 DUP_TOP_TWO bug
2016-05-08 18:41:59 -04:00
rocky
dddb486d78
DRY parse{2,3} code
...
Add test for last bug.
2016-05-08 18:15:07 -04:00
rocky
ce2ae463c4
Fix another if/loop parse bug
2016-05-08 18:07:04 -04:00
rocky
a65a8bb68e
Fix 3.2 for/if loopback bug
...
problem was handling in Python 3.2
for ...
if ...
else:
....
jump for
come from if
jump for
In later Python 3's a "come from" is removed.
Also, start to DRY parser{,2,3} grammar rules.
2016-05-08 12:09:50 -04:00
rocky
c58481a9eb
More Python 2 and 3 deparsing bugs fixed
...
* while + if break
* try + finall /pass
2016-05-05 20:56:41 -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
dc80b140c6
Start to DRY Python2 and Python3 grammars
...
Separate out 3.2, and 3.5+ specific grammar code
2016-05-01 07:13:36 -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
76768c889a
Start to DRY Python 2 and Python 3 grammar code
...
Move common code to parser.py
2016-04-18 05:32:30 -04:00
rocky
8ae7e22f2e
Add simgle-mode compilation
2016-04-18 05:14:47 -04:00
rocky
7e0526d627
Towards single compilation
2016-04-17 22:47:03 -04:00
rocky
9f7d36f8fb
Handle Ternary "or". Remove mention of uncompyle3
...
uncompyle3 removed per Mysterie's request
[Fixes Issue #5 ]
2016-04-07 07:18:46 -04: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
0409cee6a9
WIP redo try/except for Python3
2015-12-25 17:57:53 -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
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
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
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
93ab1f0281
Python 3.4: MAKE_FUNCTION starts to work.
2015-12-19 11:17:17 -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
97f48f1322
Frank Ebersoll's grammar fix to make "assert isinstance(1, int)" work.
2015-12-17 21:41:47 -05:00
rocky
87a3c5d687
Python 3.4 if ifelse decompyling now works.
2015-12-17 08:10:43 -05:00
rocky
2dc8375ed0
Supoer multiple parsers, specifically for Python2 and Python3. In the
...
process some OO cleanup and some global variable hacks removed.
2015-12-16 22:08:29 -05:00