rocky
c68b74a9c6
new dis - Python compisons involving tuples
2021-10-15 23:39:59 -04:00
rocky
f374485e93
Another fragment fix for 3.8
2021-07-29 14:23:17 -04:00
rocky
fe7df87288
Sync 3.8 and Makefile changes with decompyle3
...
Makefile: pyston 2.3 tolerance
fragments: 3.8 comprehension adjustments
2021-07-29 13:16:03 -04:00
rocky
cfbb25df3d
Fix some small bugs
2021-07-08 05:40:43 -04:00
rocky
96b1e435c2
Fixes #360
2021-06-15 22:42:55 -04:00
rocky
5c16c73a6c
Fix annotation transform for 3.7+
...
We were producing:
```
z: z: int = 5 on bytecode_3.7_run/02_var_annotate.pyc
```
because grammar went
5. sstmt
ann_assign (4) transformed by n_stmts: ('%|%[2]{attr}: %c\n', 0)
0. ann_assign_init (3): ('%|%[2]{attr}: %c = %c\n', 0, 1)
The "ann_assign" added "z:". Instead we have now:
```
5. sstmt
ann_assign_init (3) transformed by n_stmts: ('%|%[2]{attr}: %c = %c\n', 0, 1)
```
Also, in the previous statement which appears in the listing (but is not
actually in the finaly tree) we had:
4. sstmt
assign (2): ('%|%c = %p\n', -1, (0, 200))
0. expr
L. L. 7 26 LOAD_CONST 5
1. store
So we now preface the node type with "deleted", e.g.:
4. deleted sstmt
assign (2): ('%|%c = %p\n', -1, (0, 200))
0. expr
L. L. 7 26 LOAD_CONST 5
1. store
to reduce confusion
2020-12-27 22:50:46 -05:00
rocky
78dbc8ae0f
Adjust ann_assign_init rule...
...
We've reduced spurious `sstmt` reductions. The `ann_assign_init` rule needs
to adjust accordingly.
2020-11-03 18:07:42 -05:00
rocky
8eb4d6a576
Fix bit rot in fragments.py
...
build_ast() added a code argument
n_dict(): was out of sync with corresponding pysource routine
pysource.py: small doc typo
2020-09-04 19:30:48 -04:00
rocky
b4db22d525
Narrow precedence for call statement
2020-09-03 04:35:59 -04:00
rocky
8879708da7
del_stmt -> delete to match Python AST better
2020-09-02 07:14:56 -04:00
rocky
67c45467c3
little sync with decompyle3
...
Add another forelsestmt (found only in a loop)
Add precidence on walrus operator
2020-09-01 17:10:33 -04:00
rocky
71c17c4e53
Fragment api changed...
...
sync with pysource.
Simplify pysource a little
2020-08-23 19:27:52 -04:00
rocky
024a81c053
Fix condition sense in except_handler.py reduction
2020-07-23 11:03:43 -04:00
rocky
a215ee2f00
Use "co_consts" in docstring detection.
...
Note: this is an upheaval because we need to pass "code" or at least
"code.co_consts" to the docstring detection routine
2020-07-21 10:31:07 -04:00
rocky
0f80c38530
Better doc string detection
...
A bug in 2.7 test_descr.py revealed a problem with the way we were
detecting docstrings.
__doc__ = DocDescr()
was getting confused with a docstring.
This program also reveals other bugs in 3.2+ but we'll deal with that
in another commit.
2020-07-19 20:31:50 -04:00
rocky
11be90758f
Workaround bug detecting MAKE_FUNCTION docstrings
2020-06-26 07:17:31 -04:00
rocky
2a8daca25d
Fix broken __doc__ transform yet again...
...
Hopefully by using first_child() we have something more robust now.
2020-06-17 10:12:56 -04:00
rocky
d357898bbf
Towards fixing a 3.8 try except-as bug
2020-06-15 06:03:28 -04:00
rocky
acdd025162
ast-check "for" is a loop; sync "withas" test ..
...
with decompyle3.
2020-06-04 05:34:19 -04:00
rocky
9acb3cf068
Fix bug in 3.8 with .. as
2020-06-04 05:24:22 -04:00
rocky
5a83c7c643
Simplify imports again using xdis 4.6.0
2020-05-19 00:53:53 -04:00
rocky
7fa851765d
Regularize "or" so args are in 1..2 and ...
...
correct "return None" semantic action
2020-05-18 22:55:26 -04:00
rocky
d7c3b8454b
3.8 needs call_stmt -> call
...
Simplify/regularize how "return" works
2020-05-18 22:26:18 -04:00
rocky
3fb8d90407
Revise for xdis 3.6.0 ...
...
Simplify xdis imports where we can.
Blacken (most) of those buffers too
2020-05-18 21:49:16 -04:00
rocky
4365022f40
Adapt decompyle3's 3.8 try/return grammar rules
2020-05-17 10:18:10 -04:00
rocky
a72163f6f9
lint
2020-04-30 18:00:04 -04:00
rocky
3e1300eb23
Bugs in nested async for...
...
* Generalize asyc_for rule
Fix bug in picking out comprehension iterator in async for
* fix bug in getting expression in such a comprehension
* Add %[n]{%x} pattern to template_engine()
2020-04-29 10:12:54 -04:00
rocky
ab6b12be56
Small fixes in fragment parser
2020-04-21 19:58:03 -04:00
rocky
badfe5456f
Track "or" grammar changes...
...
Remove re deprecation warning
2020-04-16 15:25:42 -04:00
rocky
869e48877c
Convert to use xdis 4.3.0 or greater
2020-04-16 08:41:53 -04:00
rocky
7ed40d5f6e
Adjust _mklambda vs. yield precedence
2020-04-11 09:54:03 -04:00
rocky
5c6365d8a1
Go over "yield" and other precedence
2020-04-09 20:27:07 -04:00
rocky
9caac7fc84
Small tweaks ...
...
* Remove unneeded Makefile
* sync n_ifelsesmt transform with decompyle3
2020-04-01 11:00:25 -04:00
rocky
a616e1e1c7
"withstmt" -> "with" and fix async for
2020-04-01 09:48:34 -04:00
rocky
e2d349f781
Handle nested async for in for...
...
and Better async comprehension detection.
Still more work is needed. See commented-out section in
test/simple_source/bug37/02_async_for_generator.py
2020-03-31 12:05:39 -04:00
rocky
af8add9df4
Bug in finding annotation in fn with docstring
2020-03-31 11:13:12 -04:00
rocky
63d6054640
One more ParserError() upgrade
2020-03-31 10:29:52 -04:00
rocky
5fde4f2e05
Show token number in parser error listing...
...
But only if -g is given
2020-03-31 10:12:52 -04:00
rocky
e90455dcb8
transform ifelseif bugs
2020-02-13 04:31:16 -05:00
rocky
bf288b1871
Fix bug introduced by ast "tranform" change
2020-02-10 16:13:57 -05:00
rocky
76287162da
Fix ifelif transformation for earlier Pythons
2020-02-10 11:16:32 -05:00
rocky
727dabff6a
is_docsting needs to test for sstmts
2020-02-10 09:19:03 -05:00
rocky
946d74ad36
Fix bug in 3.0 name module detection
2020-02-10 08:58:48 -05:00
rocky
339b4c56ee
Typo
2020-02-09 07:38:32 -05:00
rocky
6cbb631aa6
In lambda code we, no stinking bogus yield
2020-02-09 07:32:06 -05:00
rocky
5355cb5404
async with rules back to 3.5 and ...
...
add precidence on cascaded "await" expressions
2020-02-08 20:31:06 -05:00
rocky
8495d208fb
3.7+ "async with" handling from decompyle3
2020-02-08 19:48:09 -05:00
rocky
7c73536b4a
3.6 "assert" and "or" handling bugs
2020-02-08 07:27:31 -05:00
rocky
946d46a574
Fix Python 3.6 "if" parse failures in loops...
...
This fixes all the pyenv parse errors that were introduced in the last refactor.
2020-02-08 05:21:42 -05:00
rocky
cb35ad906c
One more if_exp use (ret_cond)
2020-02-07 16:34:48 -05:00