rocky
1cd2d1e915
DRY scanner code more...
...
Expand 2.6 testing
2018-04-03 10:35:02 -04:00
rocky
fad43feb3d
DRY instruction building code...
...
There is a little more that could be done with self.offset2inst_index
2018-04-03 04:41:36 -04:00
rocky
f18ce71e91
Replace all_instrs with inst_matches...
...
which works on 3.6+. Still should write a pytest for this.
2018-03-29 21:23:26 -04:00
rocky
d90c44b454
3.5+ handle then before "if" jump going to loop
2018-03-27 19:24:29 -04:00
rocky
c5f8bbf32d
Remove hacky 3.x offset address arithmetic
2018-03-26 14:50:17 -04:00
rocky
631940887f
Additional Python 2.x assert vs raise testing
2018-03-25 17:35:18 -04:00
rocky
51dec051df
Slightly better assert detection
2018-03-08 08:31:50 -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
9e815d8d79
2.6 and before COME_FROM handling...
...
also, add in some of the test bytecode from the python-2.4 branch
2018-03-04 21:42:59 -05:00
rocky
26e1df835c
Better "continue" detection for 2.7
2018-03-01 23:34:26 -05:00
rocky
6807015526
Better CONTINUE detection on 3.x
...
Helps when line numbers have been stripped say in optimization
2018-03-01 22:47:36 -05:00
rocky
f7439f506a
Fix 3.6 MAKE_FUNCTION for kw params...
...
and remove duplicated attributies in pattr of MAKE_FUNCITON token.
2018-03-01 07:14:46 -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
c43c9a19aa
Move to GPL3 license
2018-02-27 06:40:36 -05:00
rocky
d3f5ec6f30
Fix Bug in recalculating prev_op ...
...
in removing EXTENDED_ARG
2018-02-27 06:15:37 -05:00
rocky
d09e820d89
Use get_inst() to paper around EXTENDED_ARG
2018-02-25 23:02:23 -05:00
rocky
493835b8cd
bild_lines API changed. Adjust test for change
2018-02-25 21:27:09 -05:00
rocky
f6aa775d58
EXTENDED_ARG in 3.6 fixes
...
3.6 uses EXTENDED_ARG more often appearing as the targets of jump
instructions at the beginning of line statements. All of this wreaks
havoc in the current way that our instruction processing works
2018-02-25 21:06:57 -05:00
rocky
2f6a85d538
Merge branch 'master' into extended_args
2018-02-25 19:19:32 -05:00
rocky
8c0f256b78
Sync python2 and python3 scanner/injest code more
2018-02-25 09:42:04 -05:00
rocky
6e2ca8f53d
Add another guard on a test
2018-02-25 08:59:12 -05:00
rocky
c1ed6dea62
Merge branch 'master' into extended_args
2018-02-25 08:57:11 -05:00
rocky
e3d0b1b9ce
move more toward instruction-based ingest...
...
rather than bytecode-based. This cleans up code
up a little bit better by using more general instructions
2018-02-25 08:51:50 -05:00
rocky
aaf83ea35d
WIP: Handle EXTENDED_ARGS better
2018-02-25 08:22:07 -05:00
rocky
67ad08fd4a
Beter 2.7 end_if and COME_FROM determination
...
Fixes #149
... Add more tests too
2018-02-17 07:16:14 -05:00
rocky
730b0549d5
Handle 3.6+ FUNCTION_EX a little more generally
2018-02-12 04:26:52 -05:00
rocky
50e9a9102b
One more change to revert
2018-02-04 17:02:58 -05:00
rocky
a8051f049f
Revert most of last change
2018-02-04 15:08:23 -05:00
rocky
4cbba3d46e
2.7 control flow futzing.
...
Some overall cleanup. But again we need to attack all of this more head on.
Closes Issue #149
2018-02-04 14:20:11 -05:00
rocky
296fcd89ce
Add self.offset2inst_index and document more
2018-02-04 09:13:49 -05:00
rocky
106a325ef1
Fix Python 2.7 try: try: else: bug
2018-01-29 08:47:53 -05:00
rocky
71e7120501
JUMP_BACK and CONTINUE need to be treated more similar...
...
fixes 148
2018-01-22 23:08:20 -05:00
rocky
b2dfe0889a
Mark more 3.6+ code that needs to be fixed
2018-01-20 08:09:18 -05:00
rocky
8194595ec9
Handle 3.6+ EXTENDED_ARGs for POP_JUMP_IF... instructions
2018-01-19 16:56:21 -05:00
rocky
185ec4e306
Fix 2.6 IF/THEN misclassification..
...
with an exception condition
2018-01-13 00:58:16 -05:00
rocky
f59174575e
Fix 3.5+ bug in if's with pass bodies
...
Fixes #104 in a somewhat hacky way.
2018-01-08 10:21:53 -05:00
rocky
6aa4376fca
Fix another 2.5- try/else (in loop) bug
2018-01-07 08:44:54 -05:00
rocky
b0d18cae6a
Fix bug in 2.5- try/else inside ifelsestmt
2018-01-06 22:19:44 -05:00
rocky
15057bed1d
Fix bugs in scanner.last_instr()...
...
And ave instruction stream self.insts like we do in Python 3 so we
can start simplifying code.
2017-12-15 20:34:34 -05:00
rocky
3ce5e0ab0e
Update comment
2017-12-14 05:22:59 -05:00
rocky
63820c4300
Continue parse2/scanner2 refactor
2017-12-14 04:00:22 -05:00
rocky
94a18c1a95
Back off of previous refactor a little bit
2017-12-13 21:26:52 -05:00
rocky
303e134359
Simplify scanner2 so it relies less on custimize dict
2017-12-13 21:02:40 -05:00
rocky
acc3e441ac
Fix "or" bug in 2.6- seen via chained comparisons
2017-12-13 07:27:10 -05:00
rocky
b139e21ca3
Isolation of <= 3.5 bogus COME_FROM workaround
...
Fixes #144
2017-12-12 12:12:29 -05:00
rocky
36fbafa0f8
Bang on 3.6 CALL_FUNCTION(_VAR)_KW
2017-12-12 11:01:34 -05:00
rocky
3705f6d096
Start to handle CALL_FUNCTION_EX more accurately
2017-12-11 08:24:27 -05:00
rocky
41bfa3fc01
Back off 3.5 control flow for now
2017-12-07 15:25:32 -05:00
rocky
b6413b6e6e
Skirt around control-flow problems...
...
Tag some of the weaknesses if we can't address them now
2017-12-07 08:55:45 -05:00