Commit Graph

347 Commits

Author SHA1 Message Date
rocky
6b78677a74 Work on 3.5+ BUILD_MAP_UNPACK...
bugs still remain, just reduced.
2018-04-01 13:41:16 -04:00
rocky
ab1dba1536 Handle 3.5+ BUILD_MAP_UNPACK used in dictionaries
A number of weaknesses have been uncovered though
2018-04-01 12:56:58 -04:00
rocky
710c950965 Bang on 3.4 CALL_FUNCTION_VAR 2018-03-26 00:19:39 -04:00
rocky
7fb94176b1 Less ambigouus 2.x grammar rule for BUILD_MAP 2018-03-25 12:09:42 -04:00
rocky
e3c7afb94d Towards handling 3.x' CALL_FUNCTION_VAR correctly 2018-03-24 08:26:45 -04:00
rocky
0d327ab0ce Fix bug introduced in last commit 2018-03-24 06:29:35 -04:00
rocky
35a60e0274 Fix parser slowness in decompiling 3.x locale.py..
And remove grammar inefficiency in adding extraneous kwargs in <= 3.2
kwargs was nullable so it might not have been wasn't wrong, just inefficient.
2018-03-23 11:59:04 -04:00
rocky
d41a858f80 Messed up API compatibility 2018-03-21 17:38:38 -04:00
rocky
da06d83a87 3.6 subclass extraction bug 2018-03-21 15:14:23 -04:00
rocky
925b6667d7 3.6 CALL_FUNCTION_KW handling 2018-03-21 08:01:45 -04:00
rocky
5c662b334e Handle 3.x "nonlocal" statement 2018-03-19 07:57:25 -04:00
rocky
1896c40202 Type comp_ifnot -> comp_if_not...
By the way, the sense of comp_if and list_if is reversed.
Will fix later...
2018-03-06 09:53:55 -05:00
rocky
5d24367ef6 Small changes...
pysource.py: Bug fix for relative imports.

scanner2.py: Remove a debug expression
2018-03-05 21:53:49 -05:00
rocky
61534ceed5 Need to back off set_comp change a little...
There was set_comp already. So what had been setcomp_func is now
merely set_comp_func rather than set_comp. Small improvement but
in the right direction, still
2018-03-05 11:41:21 -05:00
rocky
9f66694056 dictcomp_func -> dict_comp_func...
to match AST better. Also adds a correction in last commit,
including set_comp -> set_comp_expr where apprpriate

Note: can't use dict_comp as that was already used.
But dict_comp_func is matches AST better than dictcomp_func
2018-03-05 11:12:15 -05:00
rocky
2bdfd76635 setcomp_func -> set_comp ...
to match AST name more closely
2018-03-05 10:20:14 -05:00
rocky
02b1554da3 grammar and semantics for dict comp with "if"
Fixes #162
2018-03-05 07:52:02 -05:00
rocky
ffbce9cb77 3.6 class signature problems...
This time getting the class name in when a "load_closure" is added.
2018-03-04 17:25:42 -05:00
rocky
778f92b6f4 Fix a 3.6 CALL_FUNCTION_EX_KW problem..
and remove 3.6 customization from pysource.
2018-03-04 09:18:57 -05:00
rocky
a8260edded 3.6 function/class prototype fixes..
Had got the order backwards in: class Foo(a=B.c)
String defaults in default parameter tuples need to be quoted
2018-03-03 09:12:02 -05:00
rocky
2edc757b6f more deparse_code -> code_deparse API additions 2018-03-01 16:55:45 -05:00
rocky
ef076c065b Imports yet again 2018-03-01 08:45:31 -05:00
rocky
257c3ca454 Exclude early versions of Python in last change 2018-03-01 00:00:23 -05:00
rocky
e23315b2e6 Fallout from more precise token attributes 2018-02-28 23:35:52 -05:00
rocky
413df51dfa Token.format(), shows CONST values better...
We were not showing the proper value for None, or False.

Start a unit test for Token().

I think this cleans the Token class up a little more.

More work is needed for MAKE_FUNCTION...

Note: Some debug stuff is commented out in make_funciton.py for upcoming work.
2018-02-28 22:05:12 -05:00
rocky
1fe432585e Keep pre-3.6 listcomp code patterns in 3.6 2018-02-28 16:22:33 -05:00
rocky
b128e4fde6 Fix 3.6+ nested list comprehensions
Modified "load_closure" rule and
changed semantic actions since LOAD_CLOSUREs are stored
inside a MAKE_TUPLE.

FIXME: Not sure if we have additional "if" clauses correct. Test and correct
2018-02-28 11:13:52 -05:00
rocky
68692abaf6 Start changing API to make version optional...
and use debug option dictionary
2018-02-27 11:42:29 -05:00
rocky
55a10d9e20 Remove trepan debug 2018-02-27 11:16:27 -05:00
rocky
e9d1b86a5b Revise comprehension walking in 3.x...
less rigidly and with less magic and more verbiage as to what's going on
2018-02-27 11:13:55 -05:00
Yiming Wang
3545c7dc6f Keep global statements in fixed order 2018-02-24 22:22:50 +08:00
rocky
8463221527 yield before 2.4 may need "None" 2018-02-22 22:26:56 -05:00
rocky
a2b6ebc669 grammar tree -> parse tree 2018-02-22 14:34:42 -05:00
rocky
09efb24a3e Start distinguishing AST from grammar tree 2018-02-22 11:17:09 -05:00
rocky
a1b2a91d88 == -> is 2018-02-21 18:09:24 -05:00
rocky
859ce2206d version=None in deparse_code() uses sys.version...
(the current interpreter version) as the version to decompile.

Fixes #159.
2018-02-21 17:40:43 -05:00
rocky
fa4f614295 Wierd comprehension bug seen via new loctraceback 2018-02-15 12:15:49 -05:00
rocky
576ab98319 List comprehension fragment bugs in 3.4 2018-02-01 09:08:46 -05:00
rocky
a753e2c08f fragments gen_ast more like pysource gen_ast
Skip deparse test for now
2018-01-30 10:28:32 -05:00
rocky
835124eba2 DRY fragments by using OO more effectively
Split grammar customization to its own file. It's quite large now.
2018-01-27 11:02:42 -05:00
rocky
4725624d46 More linestart hacking.
Not very successful though
2018-01-27 01:47:56 -05:00
rocky
98f9a7d009 Add --weak-verify and --linemap options...
Fix bugs in --verify not finding tempfile; remove tempfile
on exit.
2018-01-20 21:55:02 -05:00
rocky
4dbcf0400d Correct 3.6+ calls with kwargs 2018-01-19 06:38:19 -05:00
rocky
2126e4cf32 Fix bug in 3.5+ async stmt ..
and in verification status message
2018-01-19 03:15:08 -05:00
rocky
71a64299e8 Simplify remove slop in CALL_FUNCTION_VAR on 3.5 2018-01-11 10:13:42 -05:00
rocky
7883e00b44 Correct 3.6 FUNCTION_EX handling, somewhat
Some Python 2.4 compatibility snuck in but I suppose that is not so bad
2018-01-08 23:20:22 -05:00
rocky
0692727605 Stronger while 1 testing...
Make instructions available in reduce tests.
Back off of a while test that was semantically different.
2018-01-08 21:54:28 -05:00
rocky
892be78927 correct 3.5 CALL_FUNCTION_VAR handling
Sigh, 3.6 changes this so this fix is just for this version
2018-01-08 12:24:00 -05:00
rocky
9cb99e3290 3.6 FUNCTION_EX_KW fixes 2017-12-15 19:18:27 -05:00
rocky
b736e0a0e2 Grammar rule for 3.6 with .. return 2017-12-15 08:25:34 -05:00