Commit Graph

118 Commits

Author SHA1 Message Date
rocky
eafb32b9a0 NT trystmt -> try_except to match AST 2017-12-02 22:20:45 -05:00
rocky
dfdd5c6c1c NT build_list -> list to match AST 2017-12-01 03:55:31 -05:00
rocky
01b5ed2304 NT mapexpr -> dict to match AST 2017-11-30 15:59:15 -05:00
rocky
ac4d4d1da9 NT dictcomp -> dict_comp to match AST 2017-11-30 08:50:00 -05:00
rocky
0b284f8230 NT setcomp -> set_comp to match AST 2017-11-30 07:14:29 -05:00
rocky
fcdea73b4f list_compr -> list_comp to match AST...
more Python 3 custom rule cleanup
2017-11-29 21:26:31 -05:00
rocky
34117522b2 NT importstmt -> import to match AST 2017-11-29 20:20:54 -05:00
rocky
11e2637eeb NT augassign -> aug_assign to match AST 2017-11-29 10:51:38 -05:00
rocky
7775bdabd5 import_as -> alias; and reinstate rule 2017-11-29 10:38:18 -05:00
rocky
43c3154a55 NT designatore -> store to match AST 2017-11-29 05:05:15 -05:00
rocky
c81b4df8b7 NT binary_subscr -> subscript to match AST 2017-11-29 00:08:08 -05:00
rocky
fb695616a6 NT call_function -> call to match AST 2017-11-28 22:13:23 -05:00
rocky
071207ce48 NT genexpr -> generate_exp to match AST 2017-11-28 17:53:33 -05:00
rocky
af38064a1b remove unpack_list rule and ...
tidy things a bit more
2017-11-25 00:32:13 -05:00
rocky
4f0a668b7c Add flag to tolerate deparse errors...
and keep going. The fragment parser should ignore errors
in nested function definitions
2017-11-04 12:29:27 -04:00
rocky
6746e5167d Add Python 3.6.3 scanner lookup 2017-11-04 11:13:55 -04:00
rocky
9dd881fae1 Start allowing node names in template engine
These are now used to assert we have the right node type.

Simplify import_from
2017-10-13 11:16:58 -04:00
rocky
1392b18bd7 Adjust for spark-parser 2.7.0 incompatabilities 2017-10-10 14:14:26 -04:00
rocky
86305097d2 Go over table-semantics description yet again 2017-10-03 05:42:14 -04:00
rocky
aadea7224d Unit test for format-specifiers
And in the process we catch some small bugs
2017-09-21 11:25:51 -04:00
rocky
da7421da1c Tidy pysource and fragments a little more 2017-09-20 19:02:56 -04:00
rocky
3003070acb engine -> template_engine 2017-09-17 11:56:51 -04:00
rocky
51ad3fb36e Revert one of the changes pending a better fix 2017-09-10 03:01:19 -04:00
rocky
f017acce21 More semantic action cleanup 2017-09-10 02:56:47 -04:00
rocky
0cbafa6e3a Adjust nodeInfo if it is a Token 2017-06-13 04:41:32 -04:00
rocky
4afaee2a36 Add nonterminal node in extractInfo 2017-06-13 04:17:23 -04:00
rocky
daea3c348c Fragment tag more expressions
Revise make_function3 comment wrt args and kwargs
2017-06-10 16:31:56 -04:00
rocky
bf45260588 Fragment tag array subscripts 2017-06-10 08:05:18 -04:00
rocky
2e05137f2b Set YIELD_VALUE offset in a <yield> expr 2017-06-10 02:09:58 -04:00
rocky
7b2217fda4 Mark "pass" offsets.
Start routine to find previous node.
2017-06-07 22:14:38 -04:00
rocky
5ca219f3d3 Remove hacky fragments try fixup...
hacky call_function code is also not needed or will be reinstated
properly. Better grammar structure for Python 3.6 call_function.
2017-06-06 21:58:47 -04:00
rocky
4615cda03f Important fragments bug fix...
start, finish that had been adjusted wasn't getting reflected in final
returned deparsed.offsets dictionary. Redo keeping API compatibility,
i.e we still use namedtuple NodeInfo.
2017-06-05 21:17:17 -04:00
rocky
844221cd43 Small changes.
fragment tag EXEC_STMT
2017-06-03 23:29:46 -04:00
rocky
9a3e11a957 Fragment bugs
fragment.py:
* deparse_code_aorund_offset: was sometimes returning the wrong type
* capture function name offset
* lint imports

pysource.py: use a clearer variable name
2017-06-03 05:18:40 -04:00
rocky
966a4bc7dc Track changes in ifelstmtr..
in fragments from pysource
2017-06-02 21:15:23 -04:00
rocky
cbbf64ccd0 Python 3.6 makefunction handling for fragments 2017-05-30 01:25:33 -04:00
rocky
cf3c07e047 Add fuzzy offset deparse lookup 2017-05-23 06:10:31 -04:00
rocky
bb24df596d Bang on 3.x annotations 2017-04-11 17:09:10 -04:00
rocky
66518baed0 Misc cleanups
Favor "decompile" over "uncompyle" since "decompile" is in common use
Reduce size of pysource.py by splitting out constants
2017-01-08 09:26:19 -05:00
rocky
e3f4beeb74 Lint 2016-12-24 07:45:02 -05:00
rocky
b43cbc050d Was passing wrong type 2016-12-13 20:05:08 -05:00
rocky
c8550d5c9e Split out print_docstring
move from pysource.py to new helper.py
2016-11-22 05:29:50 -05:00
rocky
80a4ad4f1b Python 3.0 while1 if bug...
Is a workaround. We really need more tagging in of SETUP_LOOP and COME_FROM.
2016-11-13 01:28:36 -05:00
rocky
50c2e1bda9 Revert augassign change but..
Make note of what's going on and add grammar test for bad
situations we have in Python 2.6 (and perhaps others)
2016-11-11 09:08:02 -05:00
rocky
0f536b18fa Bug in detecting 3.3 default value in lambda 2016-11-10 23:59:51 -05:00
rocky
6fb879d0d8 Detect some erroneous decompilations
Until we can actually prevent these in grammar rules, we will warn of
improper decompilations.

Also, we now stop when we hit a decompile error. Previously we were not.
2016-11-10 22:29:39 -05:00
rocky
2328ca7a55 Break out make_function() into its own file.
It is already too complex and will get worse in Python 3.6.

Note: make_function in fragments.py is still inside and
probably needs fixup.
2016-10-29 07:22:58 -04:00
rocky
fe072d8b57 DRY fragments.py preorder code
pysource.py: doc typo
2016-10-11 22:24:00 -04:00
rocky
c7788e4545 disassemble -> ingest where appropriate
As part of tokenization for (de)parsing, we need to do something like a
disassembly, but is is really a little different.

Disassembly, strictly speaking, is done by the xdis module now.
What "ingestion" does is massage the instruction tokens to a form that is
more amenable for parsing.

In sum, ingestion is different than disassembly, although disassembly is
generally the first part of ingestion.
2016-09-04 11:43:02 -04:00
rocky
3ef0325cb8 Small changes 2016-07-29 19:54:16 -04:00