rocky
66741d16ba
Start to add 3.5+ await and async
2017-01-07 21:36:37 -05:00
rocky
99fce6dfd7
Fix some errors in deparsing Python 3 annotations
2017-01-07 03:03:53 -05:00
rocky
6c546fe6e1
WIP : Add THEN to disambigute from "and"
2016-12-27 22:45:08 -05:00
jiangpch
9aa4e2b9ae
tupples which contain only 1 element need a comma
2016-12-26 15:23:50 +08:00
rocky
2f51067a9d
Scanner call fixes. NAME_MODULE removal for <=2.4
2016-12-25 09:20:57 -05:00
rocky
e3f4beeb74
Lint
2016-12-24 07:45:02 -05:00
rocky
7d58dcf6dd
Remove stray debug hook
2016-12-24 04:10:31 -05:00
rocky
bfff1b4e9f
Bang on 3.6 build_map_unpack_with_call
...
Probably will fix better in the future.
2016-12-20 19:42:23 -05:00
rocky
08dcc7d820
Start to handle 3.5 build_map_unpack_with_call
...
3.6 also started but needs even more work
2016-12-16 20:39:24 -05:00
rocky
d22931cb49
Get ready for release 2.9.7
...
Some of the many lint things. Linting is kind of stupid though.
2016-12-04 09:36:30 -05:00
rocky
abecb21671
2.7 grammar bug workaround. Fix docstring bug
2016-11-24 21:57:39 -05:00
rocky
8be6369bdf
Better line number tracking
...
Indent Python 2 list comprehensions, albeit badly.
DRY code a little via indent_if_source_nl
2016-11-24 10:31:38 -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
805e17988e
Fix bug in docstring triple quotes
...
Problem was not escaping """ inside """.
Use ''' when possible; and when not, use: \"\"\".
2016-11-20 12:21:56 -05:00
rocky
94719918d4
A little closesr in PyPy 2.7 list comprehensions
...
pysource.py: note need to handle line breaks in list comprehensions
2016-11-20 03:17:49 -05:00
rocky
31d387749b
More AST checking
...
Small fixes in output format
2016-11-16 07:28:19 -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
f4999f6300
augassign semantic action bug
2016-11-11 08:41:55 -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
411eaaeafb
Remove unused imports
2016-11-10 20:10:56 -05:00
rocky
cd3cf5ec29
Use L. for line number prefix in asm and AST
2016-11-03 21:26:12 -04:00
rocky
1574bf4e1e
More annotation processing in to make_function
...
Move return-value annotation determination from n_mkfunc_annotate to
make_function_annotate which is where other kinds of annotation handling
will also need to be done.
2016-10-29 16:03:02 -04: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
ccdd37611c
More complete annotate handling
...
Still have a bit of work to do though.
2016-10-28 19:55:17 -04:00
rocky
2e355b6245
Expand annotate return to Python 3.4
2016-10-28 11:33:54 -04:00
rocky
9849f06ff6
Expand annotate handling to 3.3
...
(and possibly 3.2)
- DRY Python 3.1-3.3 grammar a little
2016-10-28 09:01:41 -04:00
rocky
25dd67a135
Clean and fix Python 3 annotate arg return
2016-10-27 13:52:07 -04:00
rocky
7daec3352c
Start to attack Python 3.1 def() -> xx construct
...
Start to localize make_function routines by Python version
2016-10-26 08:20:19 -04:00
rocky
9b7d978944
Move fstring rules inside a 3.6+ check
2016-10-22 11:48:52 -04:00
moagstar
cec80e696c
further work on supporting single and multiple fstring decompilation
2016-10-20 20:44:27 +02:00
moagstar
7beaa9f36c
urther work on fstrings for python 3.6 - there is a new opcode build_string which is used to improve fstring performance, but broke the fstring support in uncompyle
2016-10-19 23:32:15 +02:00
rocky
6d3b934bf2
Pretty-print constant tuples
2016-10-13 22:59:59 -04:00
rocky
7eb9210b0c
Start to track line breaks on lists
2016-10-13 06:37:53 -04:00
rocky
52691c4e8a
Map expression with source-directed linebreaks ...
...
for Python 3.4 and 3.5
2016-10-10 21:12:44 -04:00
rocky
f067148b6c
Start using source linebreaks in formatting...
...
.. large literals like maps and dicts, and tuples
2016-10-10 18:28:02 -04:00
rocky
97ce330b00
Python 1.5 scanner and parser and ..
...
.. slightly improved Forgot to check in files before.
Handle Python pre 2.2. classes
2016-10-10 12:09:00 -04:00
rocky
f41426e94b
Simpify python 2.1 grammar Fix bug with -t ...
...
Wasn't showing source text when -t option was given
2016-10-08 21:52:10 -04:00
rocky
056f600da1
Start Python 2.1 bytecode decompile
2016-10-07 22:42:30 -04:00
rocky
d2b477ae7d
Add tuple comma when not in BUILD_LIST_n
...
Fixes issue #57
bin/uncompile.py: --verify now works on a single bytecode file. We will
set the output to be something created by tempfile.mktemps
2016-10-04 23:58:35 -04:00
moagstar
f3b9a5936e
fixed generation of FSTRING_CONVERSION_MAP in < python 2.7
2016-09-21 22:13:25 +02:00
moagstar
bae3d2e361
merge fstring changes from moagstar
2016-09-21 22:04:46 +02:00
rocky
c119965d96
Small changes
2016-09-18 17:23:49 -04:00
rocky
03e8995d18
ret_cond adjustment for < 2.7 and ...
...
"<= 2.6" -> "< 2.7" since python 2.6's version is 2.6000001
2016-09-09 15:55:15 -04:00
rocky
2d11ffb669
Python 3.0-3.2 *args processing
2016-09-08 03:54:57 -04:00
rocky
b7f1f1b028
3.2 (and down to 3.0?) bug in fn name and kwargs
2016-09-08 02:35:06 -04:00
rocky
fecae9f902
Fix 3.3 named bug and ...
...
Parse 3.4 parameters correctly.
Allow test_pyenvlib to do 3.3.6
2016-09-06 02:15:47 -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
979bca4fe0
Small cleanup/code optimization
2016-09-04 10:02:20 -04:00
rocky
647248dfc8
A couple more 2.6 (and below) bugs fixed
...
* Detect "return None" inside if statement
* another case of triple ==, ==, ==
scanner2.py: detect_structure: descriminate more on parent type
2016-09-04 04:10:08 -04:00