Commit Graph

115 Commits

Author SHA1 Message Date
rocky
071207ce48 NT genexpr -> generate_exp to match AST 2017-11-28 17:53:33 -05:00
rocky
05ab491d2e Small Python 2 grammar reduction 2017-11-28 11:18:11 -05:00
rocky
1fcfadb9c8 Grammar reduction inch by inch 2017-11-27 07:27:50 -05:00
rocky
f1a98e94da Grammar isolation 2017-11-27 06:38:00 -05:00
rocky
169e4681c3 Grammar isolation 2017-11-27 05:26:43 -05:00
rocky
2674ec893a Grammar reduction 2017-11-27 04:56:01 -05:00
rocky
2e6f2cac27 Remove some unused grammar rules 2017-11-26 19:43:37 -05:00
rocky
d72ee71368 localize Python2 ifelsetmtr, compare_chained: 2.7 2017-11-26 19:08:20 -05:00
rocky
17f5b35b1d More grammar isolation 2017-11-26 16:34:10 -05:00
rocky
6db5c63307 More specific 2.7 dictcomp and setcomp rules 2017-11-26 15:06:45 -05:00
rocky
bfac9a6260 Back of build_set/build_list separation 2017-11-26 09:25:37 -05:00
rocky
dd329f9c03 Isolate build_set from build_list in Python 2...
More work is needed. Not done in Python 3 yet
2017-11-26 09:15:35 -05:00
rocky
566ef37ecc back off of build_slice{2,3} ->slice{2,3}
There is another slice rule that interferes with this.
2017-11-25 21:49:03 -05:00
rocky
b7003914c9 localize 2 and 3 argument BUILD_SLICE...
Nontermninal name matches AST anme now. Add test.
2017-11-25 21:10:11 -05:00
rocky
af38064a1b remove unpack_list rule and ...
tidy things a bit more
2017-11-25 00:32:13 -05:00
rocky
85d65e25ba cmp_list -> compare_chained ...
to better match the Python AST name Compare. Relates to Issue #29
2017-11-24 06:58:07 -05:00
rocky
340ac7407f Start another kind of testing...
And fix a bug found in that with 3-way equal
2017-11-24 00:10:12 -05:00
rocky
1823513841 3.x Grammar reduction of custom rules...
by looking for token patterns GET_ITER CALL_FUNCTION_1
2017-11-23 07:47:38 -05:00
rocky
b8f74c23f4 2.x Grammar reduction/isolation 2017-11-22 19:13:21 -05:00
rocky
b00c59bdd7 Grammar reduction for load_attrs 2017-11-22 14:41:23 -05:00
rocky
c0f0485754 Reduce unecessary grammar rules in 2.x 2017-11-22 13:06:05 -05:00
rocky
288516d8c2 Increase grammar coverage 2017-11-22 11:28:05 -05:00
rocky
58ee49159e More grammar isolation. narrow custom rules...
Specifically: _mklambda with load_closure is Python2 only
Add classdefdeco2 rule only when we have seen a LOAD_BUILD_CLASS
2017-11-17 00:51:03 -05:00
rocky
f1004e6445 Bump copyright 2017-11-16 11:23:04 -05:00
rocky
2f218fe9bf More grammar isolation: assert2 in Python3 2017-11-16 11:20:35 -05:00
rocky
c28f2f2e56 More 2.7/2.7- grammer separation & cleanup 2017-11-15 23:01:33 -05:00
rocky
f274ac0e3b Grammar cleanup: separate some 2.7 from 2.7- rules 2017-11-15 21:04:06 -05:00
rocky
ee6db130ec grammar cleanup: dict/set comprehensions 2.7+ 2017-11-15 09:38:48 -05:00
rocky
9a141a3144 Guard around null ast
This can happen in profiling
2017-11-14 10:58:41 -05:00
rocky
adc9b99106 More spark-parser 2.7.0 compatabilithy changes 2017-10-10 15:11:08 -04:00
rocky
1392b18bd7 Adjust for spark-parser 2.7.0 incompatabilities 2017-10-10 14:14:26 -04:00
rocky
9be9abc682 handle newer parser reduction behavior 2017-10-03 11:53:05 -04:00
rocky
c8d15e7654 spark-parser induced changes...
reduce rules can be called without token streams.
2017-10-02 03:09:28 -04:00
rocky
41343c27b7 Misc bugs
parse2.py: restore accidently-removed while1stmt rule
scanner27.py: grammar typo
check_ast: add while1else to list of looping constructs
pysource.py: CALL_FUNCTION_VAR_KW_ARGS with positional args rule is different?
2017-04-10 07:57:56 -04:00
rocky
9e34654b38 Add more while1else grammar rules
Towards addressing issue #93
2017-04-10 02:47:46 -04:00
rocky
9ec312ba5e More 2.6, 2.7 control-flow bugs
Wasn't limiting exception clause to try finally. Probably still has bugs
in try-finally nesting

Add another 2.6/2.7 COME_FROM to try to limit if/end scope better
2017-01-24 00:53:30 -05:00
rocky
e3f4beeb74 Lint 2016-12-24 07:45:02 -05:00
rocky
e6761e13bb Python flake8 crap
Was testing realgud's C-x!8 (goto flake8 warning/error)
2016-12-18 20:18:19 -05:00
rocky
a5a0f45dde Try new spark 2.5.1 grammar syntax shortcuts
This package I now declare stable
2016-11-28 07:55:00 -05:00
rocky
1e324e0e8d Misc changes
scanner26.py: make scanner2.py and scanner26.py more alike
scanner2.py: check that return stmt is last in list. (May change)
main.py: show filename on verify error
test/*: add more
2016-11-26 21:41:45 -05:00
rocky
7ab4e1fbdb Start grammar reduction checks 2016-11-26 15:38:00 -05:00
rocky
260ddedbfd More detailed COME_FROMs
For now we only add COME_FROM_FINALLY and COME_FROM_WITH
and even here only on 2.7
2016-11-22 19:42:26 -05:00
rocky
f8917aaf88 Remove redundant 2.7 (and 2.x) grammar rules 2016-11-22 17:31:36 -05:00
rocky
8b240a80e7 Get ready for release 2.9.0 ...
- Use xdis 3.0.0 protocol load_module. Needs bump in requirements.txt
  and _pkg_info_.py
- Start Python 1.5 decompiling - another round of work is needed to remove
  bugs
- small cleanups
2016-10-10 09:33:49 -04:00
rocky
056f600da1 Start Python 2.1 bytecode decompile 2016-10-07 22:42:30 -04:00
rocky
b52f341d46 Python 3: "or" doesn't have optional come_from 2016-10-05 22:54:50 -04:00
rocky
649e4518fe Python 3: "and" doesn't have optional come_from 2016-10-05 03:34:29 -04:00
rocky
fe46015b78 PY3 COME_FROM_LOOP bug
There are still more in sre...
2016-09-27 04:59:06 -04:00
rocky
1fc8ac4700 Interval order COME_FROMs in Python3
This bug had possibly caused lots of grammar pollution which may need
addressing.

We want to process COME_FROMs to the same offset to be in *descending*
order so we have the larger range or biggest instruction interval
last. (I think they are sorted in increasing order, but for safety
we sort them). That way, specific COME_FROM tags will match up
properly. For example, a "loop" with an "if" nested in it should have
the "loop" tag last so the grammar rule matches that properly

Adjust Python 3 grammar for more COME_FROM -> COME_FROM_LOOP. And
remove optional COME_FROM_LOOP where possible. Previously, the
optional-ness was a result of inner nestings gobbling up the
COME_FROM.

We'll probably want to go back and fix this up in Python2.
2016-09-26 09:26:51 -04:00
rocky
c0b4a5e703 Fix some Test failures
Fix py.test pytest/test_grammar.py -

Comprehension sorts of things removed from parser that
don't exist in earlier pythons

scanners/tok.py Add back in "to" when needed
2016-09-22 01:27:58 -04:00