Commit Graph

42 Commits

Author SHA1 Message Date
Daniel Bradburn
b3182e804d showasm and showast now accept file like objects which are used for writing the the asm or ast to. 2016-06-01 10:02:04 +02:00
rocky
4398b5b2e0 Use xdis for code, magics, and marshal 2016-05-27 19:18:06 -04:00
Daniel Bradburn
ebee84228b Fixed bug in pysource / fragments where the use of deparse_code from fragments could break subsequent calls to deparse_code from pysource due to amending to the global TABLE_DIRECT. 2016-05-25 20:48:35 +02:00
rocky
79593d6ef1 Small change
0 shouldn't be used as False.
2016-05-24 12:38:44 -04:00
rocky
68ff878b3e Small pyflakes stuff 2016-05-20 21:37:46 -04:00
rocky
f834b46b84 Fragment fixes
fragments.py:
 * Use "%x" specifier if for iterators
 * Add '%D' interpretation

pysource.py:
  TABLE_DIRECT can get messed up from running fragments
  duplicate "%x" specifier to igore fragment stuff
2016-05-20 06:18:41 -04:00
rocky
9462e33f48 Fix Python 3.x bugs
* class definitions made via closures
* Add "make check-short" to top-level
* parse3.py: Python 3.3 uses STORE_LOGALS
2016-05-17 04:00:54 -04:00
rocky
09a01dc783 Correct bugs in Python 3.2 source generation 2016-05-16 15:50:45 -04:00
rocky
6be6632e96 Bug in Python 3.x genexpr 2016-05-15 19:35:45 -04:00
rocky
2fdcdcb154 Fix bug in kvlist handling on Python 2.7
Created from previous DRY code in Python 3
2016-05-15 03:47:30 -04:00
rocky
b9692c9b1f DRY scanner34 and scanner35
handle 3.0..3.4 build maps as key/value pairs
2016-05-15 03:29:08 -04:00
rocky
2db380a77f More fragment bugs 2016-05-13 23:55:27 -04:00
rocky
de0ec195b7 More packaging crap.
Did I tell you how much I hate python packaging?

fragments.py: track recent change in class decorators.
2016-05-13 23:35:31 -04:00
rocky
6f6f1db576 Misc fixups/cleanups
* parse3.py Had botched if-for-else test by grammar addition
* semantics/*.py: Show errorstack in failed parse when -g (requires sparck 1.2.0)
* some optimization in scanner3
2016-05-12 09:27:25 -04:00
rocky
631d7be921 Redo make_function for *, arg
main(*, file='foo') and things like that now work
2016-05-11 20:34:20 -04:00
rocky
41f9e9e53e Track recent lc changes in fragment semantics 2016-05-09 06:57:13 -04:00
rocky
debb46b0fe Semantic routine nonterminal typo 2016-05-08 13:49:15 -04:00
rocky
36ffd4c31f Handle Python 3 yield from
Start dealing with MAKE_FUNCTION flags - not done yet.
2016-05-07 11:33:18 -04:00
rocky
039c115679 More Python3 deparsing
- grammar rule genexpr
- More Python3 docstring formatted
2016-05-06 23:51:25 -04:00
rocky
163dfd888d Minor tweaks 2016-05-05 22:09:22 -04:00
rocky
feec241da8 Misc: long lists, DRY 2/3 grammars, '%' count
parse{2,3,r}.py: DRY Python expressions between Python 2 and 3
pysource.py, fragment.py, parser.py: handle long lists by grouping in chunks of 32
and 256
bin/uncompyle6: count %s properly
2016-05-02 21:25:16 -04:00
rocky
3e49aa56bb spark -> spark_parser 2016-04-28 19:03:51 -04:00
rocky
40badefe9d Use external spark now. 2016-04-27 23:04:31 -04:00
rocky
f0cc2df543 Track recent source class semantic actions in fragment actions 2016-01-02 13:11:19 -05:00
rocky
b89177d234 track source deparsing superclass bug fix 2015-12-31 15:24:24 -05:00
rocky
8d90e33832 Handle Python 3.3 > dotted class names 2015-12-31 10:56:12 -05:00
rocky
d3a32b6877 Show details on parsing assert failures. 2015-12-30 23:17:57 -05:00
rocky
2e91de8355 Start using our replacement for inspect.iscode 2015-12-30 18:44:27 -05:00
rocky
5bbe2c4a45 Doc changes. 2015-12-30 18:20:50 -05:00
rocky
b3ede4b64b Walker->SourceWalker Traverser->FragmentsWalker 2015-12-30 17:04:18 -05:00
rocky
6f0a252693 Add Python3 marshal codes and start to handle cross-version Python code
object types, introducing scan.Code3
2015-12-28 14:17:28 -05:00
rocky
44cd349cc7 DRY Python3 scanner code. Some cross version handling fixed.
Some Python 3.2 and 3.3 deparse fixes.
2015-12-27 04:43:35 -05:00
rocky
3ac3ef24ac Add node and template code to cleanup "for" handling 2015-12-26 10:42:57 -05:00
rocky
39f0f7440b Fix bugs in using pysource from fragments. 2015-12-25 10:47:07 -05:00
rocky
1d533cbb23 Two modes of disassembly, one where we show hidden code and one where we don't. 2015-12-25 10:08:12 -05:00
rocky
1088031335 Remove Python3 class __qualname__ assignment. Change LOAD_NAME to
LOAD_CLASSNAME to make parsing more reliable and intentional.
2015-12-24 22:31:24 -05:00
rocky
c0d50c4d96 Improve Python3 class definition handling 2015-12-24 19:21:36 -05:00
rocky
484cd703bf Lint 2015-12-23 20:11:06 -05:00
rocky
46828cd769 Add fragmnet offsets for 'from x import..' 2015-12-23 07:34:18 -05:00
rocky
72acf4311f Propogate offsets in imports. Added a new %x format specifier. 2015-12-22 18:00:45 -05:00
rocky
35592b50ed Allow comments in grammar rules. Start working on Python3 class (not
finished). More test organization.
2015-12-22 11:44:04 -05:00
rocky
9cdcdfd305 Part of a much needed cleanup. Move semantics routines into its own
directory. Move out lots of stuff from __init__ to their own files.
Add file loading tests. Document AST handling a tad more complete.
2015-12-20 23:03:35 -05:00