rocky
152935ab26
while1 bug applied to Python 2.3 and 2.4
2016-07-28 01:23:29 -04:00
rocky
04ae94ee9e
Add python 3.4 grammar checking
...
DRY grammar testing
2016-07-27 18:32:15 -04:00
rocky
3f7c4209d9
Start to segregate and clean up grammar
2016-07-27 17:35:21 -04:00
rocky
5ffd9b2be7
2.6 and 2.7 while1 grammar rule
...
Fixes issue #40
2016-07-27 13:19:42 -04:00
rocky
3a78332d59
tok.format -> tok.__str__; simplify pypy code
2016-07-27 09:26:39 -04:00
rocky
6dc9d3ab2f
Small code clean up
2016-07-27 06:01:49 -04:00
rocky
ecbbc7dfea
Custom PyPy rules for tryfinallysmt, assign{2,3}
2016-07-26 16:49:14 -04:00
rocky
6c5bd6289f
More PyPy grammar rules
...
* assert one and two-arg form
* trystmt
Simplify adding multiple grammar rules
2016-07-26 10:21:12 -04:00
rocky
f0a8505887
Add grammar for PyPy 2-arg assert
2016-07-25 22:36:02 -04:00
rocky
04cc80b0d6
PyPy BUILD_MAP_n. Reinstate bytecode tests
2016-07-25 21:53:56 -04:00
rocky
281f429223
Handle PyPy BUILD_MAP_0 where actual kw_args > 0
2016-07-25 17:50:19 -04:00
rocky
8cfecff9c4
Clean up PyPy load_attr grammar rules
2016-07-25 16:05:08 -04:00
rocky
a3e10db8dc
Handle PyPy CALL_METHOD op more correctly
...
Start testing pypy2.7 and 3.2 bytecodes
2016-07-25 13:05:54 -04:00
rocky
7e1aa6a34d
add_custom_rules() in 2.x and 3.x are more alike
2016-07-25 09:33:11 -04:00
rocky
476eb50868
Handle PyPy JUMP_IF_NOT_DEBUG
...
Update README.rst to note PyPY and reorganize a little
2016-07-25 09:18:03 -04:00
rocky
aed4d23c34
More PyPy LOOKUP_METHOD rules
2016-07-24 20:59:44 -04:00
rocky
1c50e34c30
PyPy support
...
* Use proper PYPY 32 opcodes
* handle opcodes LOOKUP_METHOD and CALL_METHOD
* Administrative stuff for PyPy
2016-07-24 18:54:51 -04:00
rocky
0ee52aeeef
Isolate pseudo op IMPORT_NAME_CONT
...
I think this is a holdover from pre 2.3 days. Possibly it can be dropped altogether.
2016-07-14 21:05:09 -04:00
rocky
65b9ecee31
Fix some 2.3 bugs; add more 2.3-6. tests
2016-07-09 17:33:54 -04:00
rocky
ac45e5757c
Redo Python 2.3 to be more like the rest
2016-07-09 09:11:04 -04:00
rocky
bec1524c5a
2.6.9 tryelsestmt
2016-07-02 22:53:58 -04:00
rocky
12d22c055f
Python 2.6 with as stmt
2016-07-02 22:24:28 -04:00
rocky
7772243ac7
CONTINUE handling in 2.6.9
2016-06-30 05:32:57 -04:00
rocky
d7f7748000
2.6.9 assert 2-arg bug
2016-06-29 22:28:52 -04:00
rocky
fa84f4277a
WIP deal with JUMP_IF_{TRUE,FALSE} vs with POP version
2016-06-24 20:06:10 -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
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