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?
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.
disas.py:
- disassembles *all* code objects found
scanner*.py:
- no longer need to pass in version numbers; this
is obtained from the class name
- no longer pass in opcodes; this is done at
initialization from the scanner name
- all Pythoin 3 scanners support native disassembly
* tok.py:
- add arg value when it is an integer
* pydisassemble.py:
- add option -U --uncomplyle for which flavor of disassembly
- remove -o option
* scanner27.py:
- allow for native (non-uncompyle6) output
into a string. parse3.py: handle both keyword and positional function
calls. scanner34.py: Remove extra level of quoting in LOAD_CONST.
Keyward handling now works cross Python 2/3. Some other spelling and doc fixes.
Remove duplicate disassembly printing from scanners and
put common code in caller(s). Show source-code line numbers in disassembly output
and fix alignment of byte offsets.
disas.py: workaround Python 2/3 different layouts before we get to
bytecodes in a code object.