'/* Execute compiled code */' Comment.Multiline '\n' Text '\n' Text '/* XXX TO DO:\n XXX speed up searching for keywords by using a dictionary\n XXX document it!\n */' Comment.Multiline '\n' Text '\n' Text '/* enable more aggressive intra-module optimizations, where available */' Comment.Multiline '\n' Text '#' Comment.Preproc 'define PY_LOCAL_AGGRESSIVE' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"Python.h"' Comment.PreprocFile '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"code.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"frameobject.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"eval.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"opcode.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"structmember.h"' Comment.PreprocFile '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '' Comment.PreprocFile '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifndef WITH_TSC' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'define READ_TIMESTAMP(var)' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '\n' Text 'typedef' Keyword ' ' Text 'unsigned' Keyword.Type ' ' Text 'long' Keyword.Type ' ' Text 'long' Keyword.Type ' ' Text 'uint64' Name ';' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'if defined(__ppc__) ' Comment.Preproc "/* <- Don't know if this is the correct symbol; this\n\t\t\t section should work for GCC on any PowerPC platform,\n\t\t\t irrespective of OS. POWER? Who knows :-) */" Comment.Multiline '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'define READ_TIMESTAMP(var) ppc_getcounter(&var)' Comment.Preproc '\n' Comment.Preproc '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type '\n' Text 'ppc_getcounter' Name '(' Punctuation 'uint64' Name ' ' Text '*' Operator 'v' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'register' Keyword ' ' Text 'unsigned' Keyword.Type ' ' Text 'long' Keyword.Type ' ' Text 'tbu' Name ',' Punctuation ' ' Text 'tb' Name ',' Punctuation ' ' Text 'tbu2' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'loop' Name.Label ':' Punctuation '\n' Text '\t' Text 'asm' Keyword ' ' Text 'volatile' Keyword ' ' Text '(' Punctuation '"' Literal.String 'mftbu %0' Literal.String '"' Literal.String ' ' Text ':' Operator ' ' Text '"' Literal.String '=r' Literal.String '"' Literal.String ' ' Text '(' Punctuation 'tbu' Name ')' Punctuation ' ' Text ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'asm' Keyword ' ' Text 'volatile' Name.Function ' ' Text '(' Punctuation '"' Literal.String 'mftb %0' Literal.String '"' Literal.String ' ' Text ':' Operator ' ' Text '"' Literal.String '=r' Literal.String '"' Literal.String ' ' Text '(' Punctuation 'tb' Name ')' Punctuation ' ' Text ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'asm' Keyword ' ' Text 'volatile' Name.Function ' ' Text '(' Punctuation '"' Literal.String 'mftbu %0' Literal.String '"' Literal.String ' ' Text ':' Operator ' ' Text '"' Literal.String '=r' Literal.String '"' Literal.String ' ' Text '(' Punctuation 'tbu2' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation '__builtin_expect' Name '(' Punctuation 'tbu' Name ' ' Text '!' Operator '=' Operator ' ' Text 'tbu2' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ' ' Text 'goto' Keyword ' ' Text 'loop' Name ';' Punctuation '\n' Text '\n' Text '\t' Text '/* The slightly peculiar way of writing the next lines is\n\t compiled better by GCC than any other way I tried. */' Comment.Multiline '\n' Text '\t' Text '(' Punctuation '(' Punctuation 'long' Keyword.Type '*' Operator ')' Punctuation '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text 'tbu' Name ';' Punctuation '\n' Text '\t' Text '(' Punctuation '(' Punctuation 'long' Keyword.Type '*' Operator ')' Punctuation '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text 'tb' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'else ' Comment.Preproc '/* this is for linux/x86 (and probably any other GCC/x86 combo) */' Comment.Multiline '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'define READ_TIMESTAMP(val) \\' Comment.Preproc '\n' Comment.Preproc ' __asm__ __volatile__("rdtsc" : "=A" (val))' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text 'void' Keyword.Type ' ' Text 'dump_tsc' Name '(' Punctuation 'int' Keyword.Type ' ' Text 'opcode' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'ticked' Name ',' Punctuation ' ' Text 'uint64' Name ' ' Text 'inst0' Name ',' Punctuation ' ' Text 'uint64' Name ' ' Text 'inst1' Name ',' Punctuation '\n' Text '\t ' Text 'uint64' Name ' ' Text 'loop0' Name ',' Punctuation ' ' Text 'uint64' Name ' ' Text 'loop1' Name ',' Punctuation ' ' Text 'uint64' Name ' ' Text 'intr0' Name ',' Punctuation ' ' Text 'uint64' Name ' ' Text 'intr1' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'uint64' Name ' ' Text 'intr' Name ',' Punctuation ' ' Text 'inst' Name ',' Punctuation ' ' Text 'loop' Name ';' Punctuation '\n' Text '\t' Text 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ' ' Text '=' Operator ' ' Text 'PyThreadState_Get' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'tstate' Name '-' Operator '>' Operator 'interp' Name '-' Operator '>' Operator 'tscdump' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ';' Punctuation '\n' Text '\t' Text 'intr' Name ' ' Text '=' Operator ' ' Text 'intr1' Name ' ' Text '-' Operator ' ' Text 'intr0' Name ';' Punctuation '\n' Text '\t' Text 'inst' Name ' ' Text '=' Operator ' ' Text 'inst1' Name ' ' Text '-' Operator ' ' Text 'inst0' Name ' ' Text '-' Operator ' ' Text 'intr' Name ';' Punctuation '\n' Text '\t' Text 'loop' Name ' ' Text '=' Operator ' ' Text 'loop1' Name ' ' Text '-' Operator ' ' Text 'loop0' Name ' ' Text '-' Operator ' ' Text 'intr' Name ';' Punctuation '\n' Text '\t' Text 'fprintf' Name '(' Punctuation 'stderr' Name ',' Punctuation ' ' Text '"' Literal.String 'opcode=%03d t=%d inst=%06lld loop=%06lld' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation '\n' Text '\t\t' Text 'opcode' Name ',' Punctuation ' ' Text 'ticked' Name ',' Punctuation ' ' Text 'inst' Name ',' Punctuation ' ' Text 'loop' Name ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Turn this on if your compiler chokes on the big switch: */' Comment.Multiline '\n' Text '/* #define CASE_TOO_BIG 1 */' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'ifdef Py_DEBUG' Comment.Preproc '\n' Comment.Preproc '/* For debugging the interpreter: */' Comment.Multiline '\n' Text '#' Comment.Preproc 'define LLTRACE 1\t' Comment.Preproc '/* Low-level trace feature */' Comment.Multiline '\n' Comment.Preproc '#' Comment.Preproc 'define CHECKEXC 1\t' Comment.Preproc '/* Double-check exception checking */' Comment.Multiline '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text 'typedef' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator '(' Punctuation '*' Operator 'callproc' Name ')' Punctuation '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\n' Text '/* Forward declarations */' Comment.Multiline '\n' Text '#' Comment.Preproc 'ifdef WITH_TSC' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'call_function' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'uint64' Name '*' Operator ',' Punctuation ' ' Text 'uint64' Name '*' Operator ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'call_function' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'fast_function' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'do_call' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'ext_do_call' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'update_keyword_args' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'update_star_args' Name '(' Punctuation 'int' Keyword.Type ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'load_args' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'define CALL_FLAG_VAR 1' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define CALL_FLAG_KW 2' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifdef LLTRACE' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'lltrace' Name ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'prtrace' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'call_trace' Name '(' Punctuation 'Py_tracefunc' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyFrameObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'call_trace_protected' Name '(' Punctuation 'Py_tracefunc' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t\t\t ' Text 'PyFrameObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'call_exc_trace' Name '(' Punctuation 'Py_tracefunc' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyFrameObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'maybe_call_line_trace' Name '(' Punctuation 'Py_tracefunc' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t\t\t ' Text 'PyFrameObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'apply_slice' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'assign_slice' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t\t' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'cmp_outcome' Name '(' Punctuation 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'import_from' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'import_all_from' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'build_class' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'exec_statement' Name '(' Punctuation 'PyFrameObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t\t ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'set_exc_info' Name '(' Punctuation 'PyThreadState' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'reset_exc_info' Name '(' Punctuation 'PyThreadState' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'format_exc_check_arg' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator ' ' Text 'string_concatenate' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation '\n' Text '\t\t\t\t ' Text 'PyFrameObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'unsigned' Keyword.Type ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'define NAME_ERROR_MSG \\' Comment.Preproc '\n' Comment.Preproc '\t"name \'%.200s\' is not defined"' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define GLOBAL_NAME_ERROR_MSG \\' Comment.Preproc '\n' Comment.Preproc '\t"global name \'%.200s\' is not defined"' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define UNBOUNDLOCAL_ERROR_MSG \\' Comment.Preproc '\n' Comment.Preproc '\t"local variable \'%.200s\' referenced before assignment"' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define UNBOUNDFREE_ERROR_MSG \\' Comment.Preproc '\n' Comment.Preproc '\t"free variable \'%.200s\' referenced before assignment" \\' Comment.Preproc '\n' Comment.Preproc ' " in enclosing scope"' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Dynamic execution profile */' Comment.Multiline '\n' Text '#' Comment.Preproc 'ifdef DYNAMIC_EXECUTION_PROFILE' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'ifdef DXPAIRS' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'dxpairs' Name '[' Punctuation '257' Literal.Number.Integer ']' Punctuation '[' Punctuation '256' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'define dxp dxpairs[256]' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'dxp' Name '[' Punctuation '256' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Function call profile */' Comment.Multiline '\n' Text '#' Comment.Preproc 'ifdef CALL_PROFILE' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_NUM 11' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'pcall' Name '[' Punctuation 'PCALL_NUM' Name ']' Punctuation ';' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'define PCALL_ALL 0' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_FUNCTION 1' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_FAST_FUNCTION 2' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_FASTER_FUNCTION 3' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_METHOD 4' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_BOUND_METHOD 5' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_CFUNCTION 6' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_TYPE 7' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_GENERATOR 8' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_OTHER 9' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL_POP 10' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Notes about the statistics\n\n PCALL_FAST stats\n\n FAST_FUNCTION means no argument tuple needs to be created.\n FASTER_FUNCTION means that the fast-path frame setup code is used.\n\n If there is a method call where the call can be optimized by changing\n the argument tuple and calling the function directly, it gets recorded\n twice.\n\n As a result, the relationship among the statistics appears to be\n PCALL_ALL == PCALL_FUNCTION + PCALL_METHOD - PCALL_BOUND_METHOD +\n PCALL_CFUNCTION + PCALL_TYPE + PCALL_GENERATOR + PCALL_OTHER\n PCALL_FUNCTION > PCALL_FAST_FUNCTION > PCALL_FASTER_FUNCTION\n PCALL_METHOD > PCALL_BOUND_METHOD\n*/' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'define PCALL(POS) pcall[POS]++' Comment.Preproc '\n' Comment.Preproc '\n' Text 'PyObject' Name ' ' Text '*' Operator '\n' Text 'PyEval_GetCallStats' Name.Function '(' Punctuation 'PyObject' Name ' ' Text '*' Operator 'self' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text 'Py_BuildValue' Name '(' Punctuation '"' Literal.String 'iiiiiiiiii' Literal.String '"' Literal.String ',' Punctuation '\n' Text '\t\t\t ' Text 'pcall' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation ',' Punctuation '\n' Text '\t\t\t ' Text 'pcall' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '5' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '6' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '7' Literal.Number.Integer ']' Punctuation ',' Punctuation '\n' Text '\t\t\t ' Text 'pcall' Name '[' Punctuation '8' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'pcall' Name '[' Punctuation '9' Literal.Number.Integer ']' Punctuation ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PCALL(O)' Comment.Preproc '\n' Comment.Preproc '\n' Text 'PyObject' Name ' ' Text '*' Operator '\n' Text 'PyEval_GetCallStats' Name.Function '(' Punctuation 'PyObject' Name ' ' Text '*' Operator 'self' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'Py_INCREF' Name '(' Punctuation 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text 'Py_None' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '\n' Text '#' Comment.Preproc 'ifdef WITH_THREAD' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifdef HAVE_ERRNO_H' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '"pythread.h"' Comment.PreprocFile '\n' Comment.Preproc '\n' Text 'static' Keyword ' ' Text 'PyThread_type_lock' Name ' ' Text 'interpreter_lock' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text '/* This is the GIL */' Comment.Multiline '\n' Text 'static' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'main_thread' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text 'int' Keyword.Type '\n' Text 'PyEval_ThreadsInitialized' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text 'interpreter_lock' Name ' ' Text '!' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_InitThreads' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'interpreter_lock' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ';' Punctuation '\n' Text '\t' Text 'interpreter_lock' Name ' ' Text '=' Operator ' ' Text 'PyThread_allocate_lock' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'main_thread' Name ' ' Text '=' Operator ' ' Text 'PyThread_get_thread_ident' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_AcquireLock' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_ReleaseLock' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'PyThread_release_lock' Name '(' Punctuation 'interpreter_lock' Name ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_AcquireThread' Name.Function '(' Punctuation 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'PyEval_AcquireThread: NULL new thread state' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t' Text '/* Check someone has called PyEval_InitThreads() to create the lock */' Comment.Multiline '\n' Text '\t' Text 'assert' Name '(' Punctuation 'interpreter_lock' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyThreadState_Swap' Name '(' Punctuation 'tstate' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '\n' Text '\t\t\t' Text '"' Literal.String 'PyEval_AcquireThread: non-NULL old thread state' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_ReleaseThread' Name.Function '(' Punctuation 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'PyEval_ReleaseThread: NULL thread state' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyThreadState_Swap' Name '(' Punctuation 'NULL' Name.Builtin ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'tstate' Name ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'PyEval_ReleaseThread: wrong thread state' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'PyThread_release_lock' Name '(' Punctuation 'interpreter_lock' Name ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text "/* This function is called from PyOS_AfterFork to ensure that newly\n created child processes don't hold locks referring to threads which\n are not running in the child process. (This could also be done using\n pthread_atfork mechanism, at least for the pthreads implementation.) */" Comment.Multiline '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_ReInitThreads' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'interpreter_lock' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ';' Punctuation '\n' Text '\t' Text "/*XXX Can't use PyThread_free_lock here because it does too\n\t much error-checking. Doing this cleanly would require\n\t adding a new function to each thread_*.h. Instead, just\n\t create a new lock and waste a little bit of memory */" Comment.Multiline '\n' Text '\t' Text 'interpreter_lock' Name ' ' Text '=' Operator ' ' Text 'PyThread_allocate_lock' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'main_thread' Name ' ' Text '=' Operator ' ' Text 'PyThread_get_thread_ident' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text "/* Functions save_thread and restore_thread are always defined so\n dynamically loaded modules needn't be compiled separately for use\n with and without threads: */" Comment.Multiline '\n' Text '\n' Text 'PyThreadState' Name ' ' Text '*' Operator '\n' Text 'PyEval_SaveThread' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ' ' Text '=' Operator ' ' Text 'PyThreadState_Swap' Name '(' Punctuation 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'PyEval_SaveThread: NULL tstate' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_THREAD' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'interpreter_lock' Name ')' Punctuation '\n' Text '\t\t' Text 'PyThread_release_lock' Name '(' Punctuation 'interpreter_lock' Name ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t' Text 'return' Keyword ' ' Text 'tstate' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'PyEval_RestoreThread' Name.Function '(' Punctuation 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'PyEval_RestoreThread: NULL tstate' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_THREAD' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'interpreter_lock' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'int' Keyword.Type ' ' Text 'err' Name ' ' Text '=' Operator ' ' Text 'errno' Name ';' Punctuation '\n' Text '\t\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'errno' Name ' ' Text '=' Operator ' ' Text 'err' Name ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t' Text 'PyThreadState_Swap' Name '(' Punctuation 'tstate' Name ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '\n' Text '/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX\n signal handlers or Mac I/O completion routines) can schedule calls\n to a function to be called synchronously.\n The synchronous function is called with one void* argument.\n It should return 0 for success or -1 for failure -- failure should\n be accompanied by an exception.\n\n If registry succeeds, the registry function returns 0; if it fails\n (e.g. due to too many pending calls) it returns -1 (without setting\n an exception condition).\n\n Note that because registry may occur from within signal handlers,\n or other asynchronous events, calling malloc() is unsafe!\n\n#ifdef WITH_THREAD\n Any thread can schedule pending calls, but only the main thread\n will execute them.\n#endif\n\n XXX WARNING! ASYNCHRONOUSLY EXECUTING CODE!\n There are two possible race conditions:\n (1) nested asynchronous registry calls;\n (2) registry calls made while pending calls are being processed.\n While (1) is very unlikely, (2) is a real possibility.\n The current code is safe against (2), but not against (1).\n The safety against (2) is derived from the fact that only one\n thread (the main thread) ever takes things out of the queue.\n\n XXX Darn! With the advent of thread state, we should have an array\n of pending calls per thread in the thread state! Later...\n*/' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'define NPENDINGCALLS 32' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'struct' Keyword ' ' Text '{' Punctuation '\n' Text '\t' Text 'int' Keyword.Type ' ' Text '(' Punctuation '*' Operator 'func' Name ')' Punctuation '(' Punctuation 'void' Keyword.Type ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'void' Keyword.Type ' ' Text '*' Operator 'arg' Name ';' Punctuation '\n' Text '}' Punctuation ' ' Text 'pendingcalls' Name '[' Punctuation 'NPENDINGCALLS' Name ']' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'volatile' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'pendingfirst' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'volatile' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'pendinglast' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'volatile' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'things_to_do' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text 'int' Keyword.Type '\n' Text 'Py_AddPendingCall' Name.Function '(' Punctuation 'int' Keyword.Type ' ' Text '(' Punctuation '*' Operator 'func' Name ')' Punctuation '(' Punctuation 'void' Keyword.Type ' ' Text '*' Operator ')' Punctuation ',' Punctuation ' ' Text 'void' Keyword.Type ' ' Text '*' Operator 'arg' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'static' Keyword ' ' Text 'volatile' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'int' Keyword.Type ' ' Text 'i' Name ',' Punctuation ' ' Text 'j' Name ';' Punctuation '\n' Text '\t' Text '/* XXX Begin critical section */' Comment.Multiline '\n' Text '\t' Text "/* XXX If you want this to be safe against nested\n\t XXX asynchronous calls, you'll have to work harder! */" Comment.Multiline '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'busy' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'pendinglast' Name ';' Punctuation '\n' Text '\t' Text 'j' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'i' Name ' ' Text '+' Operator ' ' Text '1' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text 'NPENDINGCALLS' Name ';' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'j' Name ' ' Text '=' Operator '=' Operator ' ' Text 'pendingfirst' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '-1' Literal.Number.Integer ';' Punctuation ' ' Text '/* Queue full */' Comment.Multiline '\n' Text '\t' Text '}' Punctuation '\n' Text '\t' Text 'pendingcalls' Name '[' Punctuation 'i' Name ']' Punctuation '.' Punctuation 'func' Name ' ' Text '=' Operator ' ' Text 'func' Name ';' Punctuation '\n' Text '\t' Text 'pendingcalls' Name '[' Punctuation 'i' Name ']' Punctuation '.' Punctuation 'arg' Name ' ' Text '=' Operator ' ' Text 'arg' Name ';' Punctuation '\n' Text '\t' Text 'pendinglast' Name ' ' Text '=' Operator ' ' Text 'j' Name ';' Punctuation '\n' Text '\n' Text '\t' Text '_Py_Ticker' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'things_to_do' Name ' ' Text '=' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation ' ' Text '/* Signal main loop */' Comment.Multiline '\n' Text '\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text '/* XXX End critical section */' Comment.Multiline '\n' Text '\t' Text 'return' Keyword ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'int' Keyword.Type '\n' Text 'Py_MakePendingCalls' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_THREAD' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'main_thread' Name ' ' Text '&' Operator '&' Operator ' ' Text 'PyThread_get_thread_ident' Name '(' Punctuation ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'main_thread' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'busy' Name ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'things_to_do' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'for' Keyword ' ' Text '(' Punctuation ';' Punctuation ';' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'int' Keyword.Type ' ' Text 'i' Name ';' Punctuation '\n' Text '\t\t' Text 'int' Keyword.Type ' ' Text '(' Punctuation '*' Operator 'func' Name ')' Punctuation '(' Punctuation 'void' Keyword.Type ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'void' Keyword.Type ' ' Text '*' Operator 'arg' Name ';' Punctuation '\n' Text '\t\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'pendingfirst' Name ';' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'i' Name ' ' Text '=' Operator '=' Operator ' ' Text 'pendinglast' Name ')' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation ' ' Text '/* Queue empty */' Comment.Multiline '\n' Text '\t\t' Text 'func' Name ' ' Text '=' Operator ' ' Text 'pendingcalls' Name '[' Punctuation 'i' Name ']' Punctuation '.' Punctuation 'func' Name ';' Punctuation '\n' Text '\t\t' Text 'arg' Name ' ' Text '=' Operator ' ' Text 'pendingcalls' Name '[' Punctuation 'i' Name ']' Punctuation '.' Punctuation 'arg' Name ';' Punctuation '\n' Text '\t\t' Text 'pendingfirst' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'i' Name ' ' Text '+' Operator ' ' Text '1' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text 'NPENDINGCALLS' Name ';' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'func' Name '(' Punctuation 'arg' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text 'things_to_do' Name ' ' Text '=' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation ' ' Text "/* We're not done yet */" Comment.Multiline '\n' Text '\t\t\t' Text 'return' Keyword ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\t' Text 'busy' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '\n' Text "/* The interpreter's recursion limit */" Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'ifndef Py_DEFAULT_RECURSION_LIMIT' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define Py_DEFAULT_RECURSION_LIMIT 1000' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'recursion_limit' Name ' ' Text '=' Operator ' ' Text 'Py_DEFAULT_RECURSION_LIMIT' Name ';' Punctuation '\n' Text 'int' Keyword.Type ' ' Text '_Py_CheckRecursionLimit' Name ' ' Text '=' Operator ' ' Text 'Py_DEFAULT_RECURSION_LIMIT' Name ';' Punctuation '\n' Text '\n' Text 'int' Keyword.Type '\n' Text 'Py_GetRecursionLimit' Name.Function '(' Punctuation 'void' Keyword.Type ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text 'recursion_limit' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'void' Keyword.Type '\n' Text 'Py_SetRecursionLimit' Name.Function '(' Punctuation 'int' Keyword.Type ' ' Text 'new_limit' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'recursion_limit' Name ' ' Text '=' Operator ' ' Text 'new_limit' Name ';' Punctuation '\n' Text ' ' Text '_Py_CheckRecursionLimit' Name ' ' Text '=' Operator ' ' Text 'recursion_limit' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '/* the macro Py_EnterRecursiveCall() only calls _Py_CheckRecursiveCall()\n if the recursion_depth reaches _Py_CheckRecursionLimit.\n If USE_STACKCHECK, the macro decrements _Py_CheckRecursionLimit\n to guarantee that _Py_CheckRecursiveCall() is regularly called.\n Without USE_STACKCHECK, there is no need for this. */' Comment.Multiline '\n' Text 'int' Keyword.Type '\n' Text '_Py_CheckRecursiveCall' Name.Function '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator 'where' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ' ' Text '=' Operator ' ' Text 'PyThreadState_GET' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'ifdef USE_STACKCHECK' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyOS_CheckStack' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text '-' Operator '-' Operator 'tstate' Name '-' Operator '>' Operator 'recursion_depth' Name ';' Punctuation '\n' Text '\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_MemoryError' Name ',' Punctuation ' ' Text '"' Literal.String 'Stack overflow' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'recursion_depth' Name ' ' Text '>' Operator ' ' Text 'recursion_limit' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text '-' Operator '-' Operator 'tstate' Name '-' Operator '>' Operator 'recursion_depth' Name ';' Punctuation '\n' Text '\t\t' Text 'PyErr_Format' Name '(' Punctuation 'PyExc_RuntimeError' Name ',' Punctuation '\n' Text '\t\t\t ' Text '"' Literal.String 'maximum recursion depth exceeded%s' Literal.String '"' Literal.String ',' Punctuation '\n' Text '\t\t\t ' Text 'where' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text ' ' Text '_Py_CheckRecursionLimit' Name ' ' Text '=' Operator ' ' Text 'recursion_limit' Name ';' Punctuation '\n' Text '\t' Text 'return' Keyword ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '/* Status code for main loop (reason for stack unwind) */' Comment.Multiline '\n' Text 'enum' Keyword ' ' Text 'why_code' Name ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'WHY_NOT' Name ' ' Text '=' Operator '\t' Text '0x0001' Literal.Number.Hex ',' Punctuation '\t' Text '/* No error */' Comment.Multiline '\n' Text '\t\t' Text 'WHY_EXCEPTION' Name ' ' Text '=' Operator ' ' Text '0x0002' Literal.Number.Hex ',' Punctuation '\t' Text '/* Exception occurred */' Comment.Multiline '\n' Text '\t\t' Text 'WHY_RERAISE' Name ' ' Text '=' Operator '\t' Text '0x0004' Literal.Number.Hex ',' Punctuation '\t' Text "/* Exception re-raised by 'finally' */" Comment.Multiline '\n' Text '\t\t' Text 'WHY_RETURN' Name ' ' Text '=' Operator '\t' Text '0x0008' Literal.Number.Hex ',' Punctuation '\t' Text "/* 'return' statement */" Comment.Multiline '\n' Text '\t\t' Text 'WHY_BREAK' Name ' ' Text '=' Operator '\t' Text '0x0010' Literal.Number.Hex ',' Punctuation '\t' Text "/* 'break' statement */" Comment.Multiline '\n' Text '\t\t' Text 'WHY_CONTINUE' Name ' ' Text '=' Operator '\t' Text '0x0020' Literal.Number.Hex ',' Punctuation '\t' Text "/* 'continue' statement */" Comment.Multiline '\n' Text '\t\t' Text 'WHY_YIELD' Name ' ' Text '=' Operator '\t' Text '0x0040' Literal.Number.Hex '\t' Text "/* 'yield' operator */" Comment.Multiline '\n' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text 'static' Keyword ' ' Text 'enum' Keyword ' ' Text 'why_code' Name ' ' Text 'do_raise' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator ')' Punctuation ';' Punctuation '\n' Text 'static' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'unpack_iterable' Name '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ',' Punctuation ' ' Text 'int' Keyword.Type ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator ')' Punctuation ';' Punctuation '\n' Text '\n' Text '/* for manipulating the thread switch and periodic "stuff" - used to be\n per thread, now just a pair o\' globals */' Comment.Multiline '\n' Text 'int' Keyword.Type ' ' Text '_Py_CheckInterval' Name ' ' Text '=' Operator ' ' Text '100' Literal.Number.Integer ';' Punctuation '\n' Text 'volatile' Keyword ' ' Text 'int' Keyword.Type ' ' Text '_Py_Ticker' Name ' ' Text '=' Operator ' ' Text '100' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text 'PyObject' Name ' ' Text '*' Operator '\n' Text 'PyEval_EvalCode' Name.Function '(' Punctuation 'PyCodeObject' Name ' ' Text '*' Operator 'co' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator 'globals' Name ',' Punctuation ' ' Text 'PyObject' Name ' ' Text '*' Operator 'locals' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '\t' Text '/* XXX raise SystemError if globals is NULL */' Comment.Multiline '\n' Text '\t' Text 'return' Keyword ' ' Text 'PyEval_EvalCodeEx' Name '(' Punctuation 'co' Name ',' Punctuation '\n' Text '\t\t\t ' Text 'globals' Name ',' Punctuation ' ' Text 'locals' Name ',' Punctuation '\n' Text '\t\t\t ' Text '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator ')' Punctuation 'NULL' Name.Builtin ',' Punctuation ' ' Text '0' Literal.Number.Integer ',' Punctuation '\n' Text '\t\t\t ' Text '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator ')' Punctuation 'NULL' Name.Builtin ',' Punctuation ' ' Text '0' Literal.Number.Integer ',' Punctuation '\n' Text '\t\t\t ' Text '(' Punctuation 'PyObject' Name ' ' Text '*' Operator '*' Operator ')' Punctuation 'NULL' Name.Builtin ',' Punctuation ' ' Text '0' Literal.Number.Integer ',' Punctuation '\n' Text '\t\t\t ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '\n' Text '/* Interpreter main loop */' Comment.Multiline '\n' Text '\n' Text 'PyObject' Name ' ' Text '*' Operator '\n' Text 'PyEval_EvalFrame' Name.Function '(' Punctuation 'PyFrameObject' Name ' ' Text '*' Operator 'f' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t' Text '/* This is for backward compatibility with extension modules that\n used this API; core interpreter code should call PyEval_EvalFrameEx() */' Comment.Multiline '\n' Text '\t' Text 'return' Keyword ' ' Text 'PyEval_EvalFrameEx' Name '(' Punctuation 'f' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'PyObject' Name ' ' Text '*' Operator '\n' Text 'PyEval_EvalFrameEx' Name.Function '(' Punctuation 'PyFrameObject' Name ' ' Text '*' Operator 'f' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'throwflag' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text '#' Comment.Preproc 'ifdef DXPAIRS' Comment.Preproc '\n' Comment.Preproc '\t' Text 'int' Keyword.Type ' ' Text 'lastopcode' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'stack_pointer' Name ';' Punctuation ' ' Text '/* Next free slot in value stack */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'unsigned' Keyword.Type ' ' Text 'char' Keyword.Type ' ' Text '*' Operator 'next_instr' Name ';' Punctuation '\n' Text '\t' Text 'register' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'opcode' Name ';' Punctuation '\t' Text '/* Current opcode */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'oparg' Name ';' Punctuation '\t' Text '/* Current opcode argument, if any */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'enum' Keyword ' ' Text 'why_code' Name ' ' Text 'why' Name ';' Punctuation ' ' Text '/* Reason for block stack unwind */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'err' Name ';' Punctuation '\t' Text '/* Error status -- nonzero if error */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 'x' Name ';' Punctuation '\t' Text '/* Result object -- NULL if error */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 'v' Name ';' Punctuation '\t' Text '/* Temporary objects popped off stack */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 'w' Name ';' Punctuation '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 'u' Name ';' Punctuation '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 't' Name ';' Punctuation '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator 'stream' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation ' ' Text '/* for PRINT opcodes */' Comment.Multiline '\n' Text '\t' Text 'register' Keyword ' ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'fastlocals' Name ',' Punctuation ' ' Text '*' Operator '*' Operator 'freevars' Name ';' Punctuation '\n' Text '\t' Text 'PyObject' Name ' ' Text '*' Operator 'retval' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\t' Text '/* Return value */' Comment.Multiline '\n' Text '\t' Text 'PyThreadState' Name ' ' Text '*' Operator 'tstate' Name ' ' Text '=' Operator ' ' Text 'PyThreadState_GET' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'PyCodeObject' Name ' ' Text '*' Operator 'co' Name ';' Punctuation '\n' Text '\n' Text '\t' Text '/* when tracing we set things up so that\n\n not (instr_lb <= current_bytecode_offset < instr_ub)\n\n\t is true when the line being executed has changed. The\n initial values are such as to make this false the first\n time it is tested. */' Comment.Multiline '\n' Text '\t' Text 'int' Keyword.Type ' ' Text 'instr_ub' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ',' Punctuation ' ' Text 'instr_lb' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ',' Punctuation ' ' Text 'instr_prev' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text '\t' Text 'unsigned' Keyword.Type ' ' Text 'char' Keyword.Type ' ' Text '*' Operator 'first_instr' Name ';' Punctuation '\n' Text '\t' Text 'PyObject' Name ' ' Text '*' Operator 'names' Name ';' Punctuation '\n' Text '\t' Text 'PyObject' Name ' ' Text '*' Operator 'consts' Name ';' Punctuation '\n' Text '#' Comment.Preproc 'if defined(Py_DEBUG) || defined(LLTRACE)' Comment.Preproc '\n' Comment.Preproc '\t' Text '/* Make it easier to find out where we are with a debugger */' Comment.Multiline '\n' Text '\t' Text 'char' Keyword.Type ' ' Text '*' Operator 'filename' Name ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Tuple access macros */' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'ifndef Py_DEBUG' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define GETITEM(v, i) PyTuple_GET_ITEM((PyTupleObject *)(v), (i))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define GETITEM(v, i) PyTuple_GetItem((v), (i))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifdef WITH_TSC' Comment.Preproc '\n' Comment.Preproc "/* Use Pentium timestamp counter to mark certain events:\n inst0 -- beginning of switch statement for opcode dispatch\n inst1 -- end of switch statement (may be skipped)\n loop0 -- the top of the mainloop\n loop1 -- place where control returns again to top of mainloop\n (may be skipped)\n intr1 -- beginning of long interruption\n intr2 -- end of long interruption\n\n Many opcodes call out to helper C functions. In some cases, the\n time in those functions should be counted towards the time for the\n opcode, but not in all cases. For example, a CALL_FUNCTION opcode\n calls another Python function; there's no point in charge all the\n bytecode executed by the called function to the caller.\n\n It's hard to make a useful judgement statically. In the presence\n of operator overloading, it's impossible to tell if a call will\n execute new Python code or not.\n\n It's a case-by-case judgement. I'll use intr1 for the following\n cases:\n\n EXEC_STMT\n IMPORT_STAR\n IMPORT_FROM\n CALL_FUNCTION (and friends)\n\n */" Comment.Multiline '\n' Text '\t' Text 'uint64' Name ' ' Text 'inst0' Name ',' Punctuation ' ' Text 'inst1' Name ',' Punctuation ' ' Text 'loop0' Name ',' Punctuation ' ' Text 'loop1' Name ',' Punctuation ' ' Text 'intr0' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ',' Punctuation ' ' Text 'intr1' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'int' Keyword.Type ' ' Text 'ticked' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text '\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'inst0' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'inst1' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'loop0' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'loop1' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t' Text '/* shut up the compiler */' Comment.Multiline '\n' Text '\t' Text 'opcode' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Code access macros */' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'define INSTR_OFFSET()\t((int)(next_instr - first_instr))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define NEXTOP()\t(*next_instr++)' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define NEXTARG()\t(next_instr += 2, (next_instr[-1]<<8) + next_instr[-2])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PEEKARG()\t((next_instr[2]<<8) + next_instr[1])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define JUMPTO(x)\t(next_instr = first_instr + (x))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define JUMPBY(x)\t(next_instr += (x))' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* OpCode prediction macros\n\tSome opcodes tend to come in pairs thus making it possible to predict\n\tthe second code when the first is run. For example, COMPARE_OP is often\n\tfollowed by JUMP_IF_FALSE or JUMP_IF_TRUE. And, those opcodes are often\n\tfollowed by a POP_TOP.\n\n\tVerifying the prediction costs a single high-speed test of register\n\tvariable against a constant. If the pairing was good, then the\n\tprocessor has a high likelihood of making its own successful branch\n\tprediction which results in a nearly zero overhead transition to the\n\tnext opcode.\n\n\tA successful prediction saves a trip through the eval-loop including\n\tits two unpredictable branches, the HASARG test and the switch-case.\n\n If collecting opcode statistics, turn off prediction so that\n\tstatistics are accurately maintained (the predictions bypass\n\tthe opcode frequency counter updates).\n*/' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'ifdef DYNAMIC_EXECUTION_PROFILE' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PREDICT(op)\t\tif (0) goto PRED_##op' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PREDICT(op)\t\tif (*next_instr == op) goto PRED_##op' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'define PREDICTED(op)\t\tPRED_##op: next_instr++' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PREDICTED_WITH_ARG(op)\tPRED_##op: oparg = PEEKARG(); next_instr += 3' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Stack manipulation macros */' Comment.Multiline '\n' Text '\n' Text '/* The stack can grow at most MAXINT deep, as co_nlocals and\n co_stacksize are ints. */' Comment.Multiline '\n' Text '#' Comment.Preproc 'define STACK_LEVEL()\t((int)(stack_pointer - f->f_valuestack))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define EMPTY()\t\t(STACK_LEVEL() == 0)' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define TOP()\t\t(stack_pointer[-1])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define SECOND()\t(stack_pointer[-2])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define THIRD() \t(stack_pointer[-3])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define FOURTH()\t(stack_pointer[-4])' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define SET_TOP(v)\t(stack_pointer[-1] = (v))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define SET_SECOND(v)\t(stack_pointer[-2] = (v))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define SET_THIRD(v)\t(stack_pointer[-3] = (v))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define SET_FOURTH(v)\t(stack_pointer[-4] = (v))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define BASIC_STACKADJ(n)\t(stack_pointer += n)' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define BASIC_PUSH(v)\t(*stack_pointer++ = (v))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define BASIC_POP()\t(*--stack_pointer)' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifdef LLTRACE' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PUSH(v)\t\t{ (void)(BASIC_PUSH(v), \\' Comment.Preproc '\n' Comment.Preproc ' lltrace && prtrace(TOP(), "push")); \\' Comment.Preproc '\n' Comment.Preproc ' assert(STACK_LEVEL() <= co->co_stacksize); }' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define POP()\t\t((void)(lltrace && prtrace(TOP(), "pop")), BASIC_POP())' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define STACKADJ(n)\t{ (void)(BASIC_STACKADJ(n), \\' Comment.Preproc '\n' Comment.Preproc ' lltrace && prtrace(TOP(), "stackadj")); \\' Comment.Preproc '\n' Comment.Preproc ' assert(STACK_LEVEL() <= co->co_stacksize); }' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define EXT_POP(STACK_POINTER) (lltrace && prtrace(*(STACK_POINTER), "ext_pop"), *--(STACK_POINTER))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define PUSH(v)\t\tBASIC_PUSH(v)' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define POP()\t\tBASIC_POP()' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define STACKADJ(n)\tBASIC_STACKADJ(n)' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'define EXT_POP(STACK_POINTER) (*--(STACK_POINTER))' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Local variable macros */' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'define GETLOCAL(i)\t(fastlocals[i])' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* The SETLOCAL() macro must not DECREF the local variable in-place and\n then store the new value; it must copy the old value to a temporary\n value, then store the new value, and then DECREF the temporary value.\n This is because it is possible that during the DECREF the frame is\n accessed by other code (e.g. a __del__ method or gc.collect()) and the\n variable would be pointing to already-freed memory. */' Comment.Multiline '\n' Text '#' Comment.Preproc 'define SETLOCAL(i, value)\tdo { PyObject *tmp = GETLOCAL(i); \\' Comment.Preproc '\n' Comment.Preproc '\t\t\t\t GETLOCAL(i) = value; \\' Comment.Preproc '\n' Comment.Preproc ' Py_XDECREF(tmp); } while (0)' Comment.Preproc '\n' Comment.Preproc '\n' Text '/* Start of code */' Comment.Multiline '\n' Text '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'f' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\n' Text '\t' Text '/* push frame */' Comment.Multiline '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'Py_EnterRecursiveCall' Name '(' Punctuation '"' Literal.String '"' Literal.String ')' Punctuation ')' Punctuation '\n' Text '\t\t' Text 'return' Keyword ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\n' Text '\t' Text 'tstate' Name '-' Operator '>' Operator 'frame' Name ' ' Text '=' Operator ' ' Text 'f' Name ';' Punctuation '\n' Text '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'use_tracing' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* tstate->c_tracefunc, if defined, is a\n\t\t\t function that will be called on *every* entry\n\t\t\t to a code block. Its return value, if not\n\t\t\t None, is a function that will be called at\n\t\t\t the start of each executed line of code.\n\t\t\t (Actually, the function must return itself\n\t\t\t in order to continue tracing.) The trace\n\t\t\t functions are called with three arguments:\n\t\t\t a pointer to the current frame, a string\n\t\t\t indicating why the function is called, and\n\t\t\t an argument which depends on the situation.\n\t\t\t The global trace function is also called\n\t\t\t whenever an exception is detected. */' Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'call_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ',' Punctuation ' ' Text 'tstate' Name '-' Operator '>' Operator 'c_traceobj' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'f' Name ',' Punctuation ' ' Text 'PyTrace_CALL' Name ',' Punctuation ' ' Text 'Py_None' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* Trace function raised an error */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'exit_eval_frame' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_profilefunc' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* Similar for c_profilefunc, except it needn\'t\n\t\t\t return itself and isn\'t called for "line" events */' Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'call_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_profilefunc' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_profileobj' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'f' Name ',' Punctuation ' ' Text 'PyTrace_CALL' Name ',' Punctuation ' ' Text 'Py_None' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* Profile function raised an error */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'exit_eval_frame' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text 'co' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_code' Name ';' Punctuation '\n' Text '\t' Text 'names' Name ' ' Text '=' Operator ' ' Text 'co' Name '-' Operator '>' Operator 'co_names' Name ';' Punctuation '\n' Text '\t' Text 'consts' Name ' ' Text '=' Operator ' ' Text 'co' Name '-' Operator '>' Operator 'co_consts' Name ';' Punctuation '\n' Text '\t' Text 'fastlocals' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_localsplus' Name ';' Punctuation '\n' Text '\t' Text 'freevars' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_localsplus' Name ' ' Text '+' Operator ' ' Text 'co' Name '-' Operator '>' Operator 'co_nlocals' Name ';' Punctuation '\n' Text '\t' Text 'first_instr' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'unsigned' Keyword.Type ' ' Text 'char' Keyword.Type '*' Operator ')' Punctuation ' ' Text 'PyString_AS_STRING' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_code' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text "/* An explanation is in order for the next line.\n\n\t f->f_lasti now refers to the index of the last instruction\n\t executed. You might think this was obvious from the name, but\n\t this wasn't always true before 2.3! PyFrame_New now sets\n\t f->f_lasti to -1 (i.e. the index *before* the first instruction)\n\t and YIELD_VALUE doesn't fiddle with f_lasti any more. So this\n\t does work. Promise. */" Comment.Multiline '\n' Text '\t' Text 'next_instr' Name ' ' Text '=' Operator ' ' Text 'first_instr' Name ' ' Text '+' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_lasti' Name ' ' Text '+' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'stack_pointer' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ';' Punctuation '\n' Text '\t' Text 'assert' Name '(' Punctuation 'stack_pointer' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\t' Text '/* remains NULL unless yield suspends frame */' Comment.Multiline '\n' Text '\n' Text '#' Comment.Preproc 'ifdef LLTRACE' Comment.Preproc '\n' Comment.Preproc '\t' Text 'lltrace' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItemString' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation ' ' Text '"' Literal.String '__lltrace__' Literal.String '"' Literal.String ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'if defined(Py_DEBUG) || defined(LLTRACE)' Comment.Preproc '\n' Comment.Preproc '\t' Text 'filename' Name ' ' Text '=' Operator ' ' Text 'PyString_AsString' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_filename' Name ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_NOT' Name ';' Punctuation '\n' Text '\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'Py_None' Name ';' Punctuation '\t' Text '/* Not a reference, just anything non-NULL */' Comment.Multiline '\n' Text '\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'throwflag' Name ')' Punctuation ' ' Text '{' Punctuation ' ' Text '/* support for generator.throw() */' Comment.Multiline '\n' Text '\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t' Text 'goto' Keyword ' ' Text 'on_error' Name ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text 'for' Keyword ' ' Text '(' Punctuation ';' Punctuation ';' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_TSC' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'inst1' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* Almost surely, the opcode executed a break\n\t\t\t or a continue, preventing inst1 from being set\n\t\t\t on the way out of the loop.\n\t\t\t*/' Comment.Multiline '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'inst1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'loop1' Name ' ' Text '=' Operator ' ' Text 'inst1' Name ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t\t' Text 'dump_tsc' Name '(' Punctuation 'opcode' Name ',' Punctuation ' ' Text 'ticked' Name ',' Punctuation ' ' Text 'inst0' Name ',' Punctuation ' ' Text 'inst1' Name ',' Punctuation ' ' Text 'loop0' Name ',' Punctuation ' ' Text 'loop1' Name ',' Punctuation '\n' Text '\t\t\t ' Text 'intr0' Name ',' Punctuation ' ' Text 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'ticked' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text 'inst1' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text 'intr0' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text 'intr1' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'loop0' Name ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'assert' Name '(' Punctuation 'stack_pointer' Name ' ' Text '>' Operator '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_valuestack' Name ')' Punctuation ';' Punctuation ' ' Text '/* else underflow */' Comment.Multiline '\n' Text '\t\t' Text 'assert' Name '(' Punctuation 'STACK_LEVEL' Name '(' Punctuation ')' Punctuation ' ' Text '<' Operator '=' Operator ' ' Text 'co' Name '-' Operator '>' Operator 'co_stacksize' Name ')' Punctuation ';' Punctuation ' ' Text '/* else overflow */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text "/* Do periodic things. Doing this every time through\n\t\t the loop would add too much overhead, so we do it\n\t\t only every Nth instruction. We also do it if\n\t\t ``things_to_do'' is set, i.e. when an asynchronous\n\t\t event needs attention (e.g. a signal handler or\n\t\t async I/O handler); see Py_AddPendingCall() and\n\t\t Py_MakePendingCalls() above. */" Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '-' Operator '-' Operator '_Py_Ticker' Name ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword ' ' Text '(' Punctuation '*' Operator 'next_instr' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_FINALLY' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text ' ' Text '/* Make the last opcode before\n a try: finally: block uninterruptable. */' Comment.Multiline '\n' Text ' ' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\t\t\t' Text '_Py_Ticker' Name ' ' Text '=' Operator ' ' Text '_Py_CheckInterval' Name ';' Punctuation '\n' Text '\t\t\t' Text 'tstate' Name '-' Operator '>' Operator 'tick_counter' Name '+' Operator '+' Operator ';' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_TSC' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'ticked' Name ' ' Text '=' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'things_to_do' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'Py_MakePendingCalls' Name '(' Punctuation ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'on_error' Name ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'things_to_do' Name ')' Punctuation '\n' Text '\t\t\t\t\t' Text '/* MakePendingCalls() didn\'t succeed.\n\t\t\t\t\t Force early re-execution of this\n\t\t\t\t\t "periodic" code, possibly after\n\t\t\t\t\t a thread switch */' Comment.Multiline '\n' Text '\t\t\t\t\t' Text '_Py_Ticker' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_THREAD' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'interpreter_lock' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* Give another thread a chance */' Comment.Multiline '\n' Text '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyThreadState_Swap' Name '(' Punctuation 'NULL' Name.Builtin ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'tstate' Name ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'ceval: tstate mix-up' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PyThread_release_lock' Name '(' Punctuation 'interpreter_lock' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t\t\t' Text '/* Other threads may run now */' Comment.Multiline '\n' Text '\n' Text '\t\t\t\t' Text 'PyThread_acquire_lock' Name '(' Punctuation 'interpreter_lock' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyThreadState_Swap' Name '(' Punctuation 'tstate' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'ceval: orphan tstate' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t\t\t' Text '/* Check for thread interrupts */' Comment.Multiline '\n' Text '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'async_exc' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'tstate' Name '-' Operator '>' Operator 'async_exc' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'tstate' Name '-' Operator '>' Operator 'async_exc' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_SetNone' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'on_error' Name ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text 'fast_next_opcode' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'f' Name '-' Operator '>' Operator 'f_lasti' Name ' ' Text '=' Operator ' ' Text 'INSTR_OFFSET' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t' Text '/* line-by-line tracing support */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'tstate' Name '-' Operator '>' Operator 'tracing' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* see maybe_call_line_trace\n\t\t\t for expository comments */' Comment.Multiline '\n' Text '\t\t\t' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ' ' Text '=' Operator ' ' Text 'stack_pointer' Name ';' Punctuation '\n' Text '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'maybe_call_line_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_traceobj' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'f' Name ',' Punctuation ' ' Text '&' Operator 'instr_lb' Name ',' Punctuation ' ' Text '&' Operator 'instr_ub' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text '&' Operator 'instr_prev' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* Reload possibly changed frame fields */' Comment.Multiline '\n' Text '\t\t\t' Text 'JUMPTO' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_lasti' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'stack_pointer' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* trace function raised an exception */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'on_error' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text '/* Extract opcode and argument */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'opcode' Name ' ' Text '=' Operator ' ' Text 'NEXTOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'oparg' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text "/* allows oparg to be stored in a register because\n\t\t\tit doesn't have to be remembered across a full loop */" Comment.Multiline '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'HAS_ARG' Name '(' Punctuation 'opcode' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t' Text 'oparg' Name ' ' Text '=' Operator ' ' Text 'NEXTARG' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t ' Text 'dispatch_opcode' Name.Label ':' Punctuation '\n' Text '#' Comment.Preproc 'ifdef DYNAMIC_EXECUTION_PROFILE' Comment.Preproc '\n' Comment.Preproc '#' Comment.Preproc 'ifdef DXPAIRS' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'dxpairs' Name '[' Punctuation 'lastopcode' Name ']' Punctuation '[' Punctuation 'opcode' Name ']' Punctuation '+' Operator '+' Operator ';' Punctuation '\n' Text '\t\t' Text 'lastopcode' Name ' ' Text '=' Operator ' ' Text 'opcode' Name ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'dxp' Name '[' Punctuation 'opcode' Name ']' Punctuation '+' Operator '+' Operator ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '#' Comment.Preproc 'ifdef LLTRACE' Comment.Preproc '\n' Comment.Preproc '\t\t' Text '/* Instruction tracing */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'lltrace' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'HAS_ARG' Name '(' Punctuation 'opcode' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'printf' Name '(' Punctuation '"' Literal.String '%d: %d, %d' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_lasti' Name ',' Punctuation ' ' Text 'opcode' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'printf' Name '(' Punctuation '"' Literal.String '%d: %d' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_lasti' Name ',' Punctuation ' ' Text 'opcode' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '\t\t' Text '/* Main switch on opcode */' Comment.Multiline '\n' Text '\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'inst0' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'switch' Keyword ' ' Text '(' Punctuation 'opcode' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\n' Text '\t\t' Text '/* BEWARE!\n\t\t It is essential that any operation that fails sets either\n\t\t x to NULL, err to nonzero, or why to anything but WHY_NOT,\n\t\t and that no operation that succeeds does this! */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text '/* case STOP_CODE: this is an error! */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'NOP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_FAST' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'GETLOCAL' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation 'PyExc_UnboundLocalError' Name ',' Punctuation '\n' Text '\t\t\t\t' Text 'UNBOUNDLOCAL_ERROR_MSG' Name ',' Punctuation '\n' Text '\t\t\t\t' Text 'PyTuple_GetItem' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_varnames' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_CONST' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'consts' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'STORE_FAST' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_FAST' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SETLOCAL' Name '(' Punctuation 'oparg' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED' Name '(' Punctuation 'POP_TOP' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'POP_TOP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'ROT_TWO' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_SECOND' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'ROT_THREE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_SECOND' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_THIRD' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'ROT_FOUR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'FOURTH' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_SECOND' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_THIRD' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_FOURTH' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DUP_TOP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DUP_TOPX' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'oparg' Name ' ' Text '=' Operator '=' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'STACKADJ' Name '(' Punctuation '2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_SECOND' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'oparg' Name ' ' Text '=' Operator '=' Operator ' ' Text '3' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'STACKADJ' Name '(' Punctuation '3' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_SECOND' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_THIRD' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_FatalError' Name '(' Punctuation '"' Literal.String 'invalid argument to DUP_TOPX' Literal.String '"' Literal.String '\n' Text '\t\t\t\t ' Text '"' Literal.String ' (bytecode corruption?)' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNARY_POSITIVE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Positive' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNARY_NEGATIVE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Negative' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNARY_NOT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_IsTrue' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'Py_True' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'Py_True' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'Py_False' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'Py_False' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNARY_CONVERT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_Repr' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNARY_INVERT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Invert' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_POWER' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Power' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_MULTIPLY' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Multiply' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator '_Py_QnewFlag' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Divide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* -Qnew is in effect:\tfall through to\n\t\t\t BINARY_TRUE_DIVIDE */' Comment.Multiline '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_TRUE_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_TrueDivide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_FLOOR_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_FloorDivide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_MODULO' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Remainder' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_ADD' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: int + int */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'a' Name ',' Punctuation ' ' Text 'b' Name ',' Punctuation ' ' Text 'i' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'a' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'b' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '+' Operator ' ' Text 'b' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'i' Name '^' Operator 'a' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'i' Name '^' Operator 'b' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'slow_add' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation 'i' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyString_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator '\n' Text '\t\t\t\t ' Text 'PyString_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'string_concatenate' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation ' ' Text 'next_instr' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '/* string_concatenate consumed the ref to v */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'skip_decref_vx' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'slow_add' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Add' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'skip_decref_vx' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_SUBTRACT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: int - int */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'a' Name ',' Punctuation ' ' Text 'b' Name ',' Punctuation ' ' Text 'i' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'a' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'b' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '-' Operator ' ' Text 'b' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'i' Name '^' Operator 'a' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'i' Name '^' Operator '~' Operator 'b' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'slow_sub' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation 'i' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'slow_sub' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Subtract' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_SUBSCR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyList_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: list[int] */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'Py_ssize_t' Name ' ' Text 'i' Name ' ' Text '=' Operator ' ' Text 'PyInt_AsSsize_t' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'i' Name ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'i' Name ' ' Text '+' Operator '=' Operator ' ' Text 'PyList_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'i' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text 'i' Name ' ' Text '<' Operator ' ' Text 'PyList_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyList_GET_ITEM' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'i' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'slow_get' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t ' Text 'slow_get' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_GetItem' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_LSHIFT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Lshift' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_RSHIFT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Rshift' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_AND' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_And' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_XOR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Xor' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BINARY_OR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_Or' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LIST_APPEND' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyList_Append' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'JUMP_ABSOLUTE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_POWER' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlacePower' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_MULTIPLY' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceMultiply' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator '_Py_QnewFlag' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceDivide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* -Qnew is in effect:\tfall through to\n\t\t\t INPLACE_TRUE_DIVIDE */' Comment.Multiline '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_TRUE_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceTrueDivide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_FLOOR_DIVIDE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceFloorDivide' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_MODULO' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceRemainder' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_ADD' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: int + int */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'a' Name ',' Punctuation ' ' Text 'b' Name ',' Punctuation ' ' Text 'i' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'a' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'b' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '+' Operator ' ' Text 'b' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'i' Name '^' Operator 'a' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'i' Name '^' Operator 'b' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'slow_iadd' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation 'i' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyString_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator '\n' Text '\t\t\t\t ' Text 'PyString_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'string_concatenate' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation ' ' Text 'next_instr' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '/* string_concatenate consumed the ref to v */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'skip_decref_v' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'slow_iadd' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceAdd' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'skip_decref_v' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_SUBTRACT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: int - int */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'a' Name ',' Punctuation ' ' Text 'b' Name ',' Punctuation ' ' Text 'i' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'a' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'b' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'i' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '-' Operator ' ' Text 'b' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'i' Name '^' Operator 'a' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'i' Name '^' Operator '~' Operator 'b' Name ')' Punctuation ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'slow_isub' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation 'i' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'slow_isub' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceSubtract' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_LSHIFT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceLshift' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_RSHIFT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceRshift' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_AND' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceAnd' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_XOR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceXor' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'INPLACE_OR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyNumber_InPlaceOr' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SLICE' Name '+' Operator '0' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SLICE' Name '+' Operator '1' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SLICE' Name '+' Operator '2' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SLICE' Name '+' Operator '3' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'apply_slice' Name '(' Punctuation 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_SLICE' Name '+' Operator '0' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_SLICE' Name '+' Operator '1' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_SLICE' Name '+' Operator '2' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_SLICE' Name '+' Operator '3' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'STORE_SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'STORE_SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 't' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'assign_slice' Name '(' Punctuation 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 't' Name ')' Punctuation ';' Punctuation ' ' Text '/* u[v:w] = t */' Comment.Multiline '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 't' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_SLICE' Name '+' Operator '0' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_SLICE' Name '+' Operator '1' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_SLICE' Name '+' Operator '2' Literal.Number.Integer ':' Operator '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_SLICE' Name '+' Operator '3' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'DELETE_SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'opcode' Name '-' Operator 'DELETE_SLICE' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'assign_slice' Name '(' Punctuation 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ')' Punctuation 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t\t' Text '/* del u[v:w] */' Comment.Multiline '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_SUBSCR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-3' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* v[w] = u */' Comment.Multiline '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_SetItem' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_SUBSCR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* del v[w] */' Comment.Multiline '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_DelItem' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'PRINT_EXPR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PySys_GetObject' Name '(' Punctuation '"' Literal.String 'displayhook' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_RuntimeError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t' Text '"' Literal.String 'lost sys.displayhook' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyTuple_Pack' Name '(' Punctuation '1' Literal.Number.Integer ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PyEval_CallObject' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'PRINT_ITEM_TO' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'stream' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* fall through to PRINT_ITEM */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'PRINT_ITEM' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'stream' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '|' Operator '|' Operator ' ' Text 'stream' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_None' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PySys_GetObject' Name '(' Punctuation '"' Literal.String 'stdout' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_RuntimeError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t\t' Text '"' Literal.String 'lost sys.stdout' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* PyFile_SoftSpace() can exececute arbitrary code\n\t\t\t if sys.stdout is an instance with a __getattr__.\n\t\t\t If __getattr__ raises an exception, w will\n\t\t\t be freed, so we need to prevent that temporarily. */' Comment.Multiline '\n' Text '\t\t\t' Text 'Py_XINCREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '&' Operator '&' Operator ' ' Text 'PyFile_SoftSpace' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFile_WriteString' Name '(' Punctuation '"' Literal.String ' ' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFile_WriteObject' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'Py_PRINT_RAW' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text '/* XXX move into writeobject() ? */' Comment.Multiline '\n' Text '\t\t\t ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyString_Check' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'char' Keyword.Type ' ' Text '*' Operator 's' Name ' ' Text '=' Operator ' ' Text 'PyString_AS_STRING' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_ssize_t' Name ' ' Text 'len' Name ' ' Text '=' Operator ' ' Text 'PyString_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'len' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t\t ' Text '!' Operator 'isspace' Name '(' Punctuation 'Py_CHARMASK' Name '(' Punctuation 's' Name '[' Punctuation 'len' Name '-1' Literal.Number.Integer ']' Punctuation ')' Punctuation ')' Punctuation ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t\t ' Text 's' Name '[' Punctuation 'len' Name '-1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text "'" Literal.String.Char ' ' Literal.String.Char "'" Literal.String.Char ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyFile_SoftSpace' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'ifdef Py_USING_UNICODE' Comment.Preproc '\n' Comment.Preproc '\t\t\t ' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyUnicode_Check' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_UNICODE' Name ' ' Text '*' Operator 's' Name ' ' Text '=' Operator ' ' Text 'PyUnicode_AS_UNICODE' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_ssize_t' Name ' ' Text 'len' Name ' ' Text '=' Operator ' ' Text 'PyUnicode_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'len' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t\t ' Text '!' Operator 'Py_UNICODE_ISSPACE' Name '(' Punctuation 's' Name '[' Punctuation 'len' Name '-1' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t\t ' Text 's' Name '[' Punctuation 'len' Name '-1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text "'" Literal.String.Char ' ' Literal.String.Char "'" Literal.String.Char ')' Punctuation '\n' Text '\t\t\t\t ' Text 'PyFile_SoftSpace' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t\t ' Text 'else' Keyword '\n' Text '\t\t\t \t' Text 'PyFile_SoftSpace' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'stream' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'stream' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'PRINT_NEWLINE_TO' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'stream' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* fall through to PRINT_NEWLINE */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'PRINT_NEWLINE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'stream' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '|' Operator '|' Operator ' ' Text 'stream' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_None' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PySys_GetObject' Name '(' Punctuation '"' Literal.String 'stdout' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_RuntimeError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t\t' Text '"' Literal.String 'lost sys.stdout' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFile_WriteString' Name '(' Punctuation '"' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyFile_SoftSpace' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'stream' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'stream' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\n' Text '#' Comment.Preproc 'ifdef CASE_TOO_BIG' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'default' Keyword ':' Operator ' ' Text 'switch' Keyword ' ' Text '(' Punctuation 'opcode' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'case' Keyword ' ' Text 'RAISE_VARARGS' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'v' Name ' ' Text '=' Operator ' ' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'switch' Keyword ' ' Text '(' Punctuation 'oparg' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'case' Keyword ' ' Text '3' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* traceback */' Comment.Multiline '\n' Text '\t\t\t\t' Text '/* Fallthrough */' Comment.Multiline '\n' Text '\t\t\t' Text 'case' Keyword ' ' Text '2' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* value */' Comment.Multiline '\n' Text '\t\t\t\t' Text '/* Fallthrough */' Comment.Multiline '\n' Text '\t\t\t' Text 'case' Keyword ' ' Text '1' Literal.Number.Integer ':' Operator '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* exc */' Comment.Multiline '\n' Text '\t\t\t' Text 'case' Keyword ' ' Text '0' Literal.Number.Integer ':' Operator ' ' Text '/* Fallthrough */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'do_raise' Name '(' Punctuation 'w' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'default' Keyword ':' Operator '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text '"' Literal.String 'bad RAISE_VARARGS oparg' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_LOCALS' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation ' ' Text '"' Literal.String 'no locals' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'RETURN_VALUE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_RETURN' Name ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_block_end' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'YIELD_VALUE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'f' Name '-' Operator '>' Operator 'f_stacktop' Name ' ' Text '=' Operator ' ' Text 'stack_pointer' Name ';' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_YIELD' Name ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_yield' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'EXEC_STMT' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-3' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr0' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'exec_statement' Name '(' Punctuation 'f' Name ',' Punctuation ' ' Text 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'POP_BLOCK' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyTryBlock' Name ' ' Text '*' Operator 'b' Name ' ' Text '=' Operator ' ' Text 'PyFrame_BlockPop' Name '(' Punctuation 'f' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation 'STACK_LEVEL' Name '(' Punctuation ')' Punctuation ' ' Text '>' Operator ' ' Text 'b' Name '-' Operator '>' Operator 'b_level' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'END_FINALLY' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_Check' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'enum' Keyword ' ' Text 'why_code' Name ')' Punctuation ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'assert' Name '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_YIELD' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_RETURN' Name ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t\t ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_CONTINUE' Name ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyExceptionClass_Check' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'PyString_Check' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_Restore' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_RERAISE' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'v' Name ' ' Text '!' Operator '=' Operator ' ' Text 'Py_None' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t\t' Text '"' Literal.String "'finally' pops bad exception" Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BUILD_CLASS' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'build_class' Name '(' Punctuation 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_NAME' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyDict_CheckExact' Name '(' Punctuation 'x' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyDict_SetItem' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_SetItem' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PyErr_Format' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text '"' Literal.String 'no locals found when storing %s' Literal.String '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t ' Text 'PyObject_REPR' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_NAME' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_DelItem' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation 'PyExc_NameError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t\t\t' Text 'NAME_ERROR_MSG' Name ' ' Text ',' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PyErr_Format' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text '"' Literal.String 'no locals when deleting %s' Literal.String '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t ' Text 'PyObject_REPR' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'UNPACK_SEQUENCE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'UNPACK_SEQUENCE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyTuple_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyTuple_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text 'oparg' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'items' Name ' ' Text '=' Operator ' ' Text '(' Punctuation '(' Punctuation 'PyTupleObject' Name ' ' Text '*' Operator ')' Punctuation 'v' Name ')' Punctuation '-' Operator '>' Operator 'ob_item' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation 'oparg' Name '-' Operator '-' Operator ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'items' Name '[' Punctuation 'oparg' Name ']' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyList_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyList_GET_SIZE' Name '(' Punctuation 'v' Name ')' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text 'oparg' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'items' Name ' ' Text '=' Operator ' ' Text '(' Punctuation '(' Punctuation 'PyListObject' Name ' ' Text '*' Operator ')' Punctuation 'v' Name ')' Punctuation '-' Operator '>' Operator 'ob_item' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation 'oparg' Name '-' Operator '-' Operator ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'items' Name '[' Punctuation 'oparg' Name ']' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'unpack_iterable' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'stack_pointer' Name ' ' Text '+' Operator ' ' Text 'oparg' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t' Text 'stack_pointer' Name ' ' Text '+' Operator '=' Operator ' ' Text 'oparg' Name ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyErr_ExceptionMatches' Name '(' Punctuation 'PyExc_TypeError' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_TypeError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t' Text '"' Literal.String 'unpack non-sequence' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_ATTR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_SetAttr' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'u' Name ')' Punctuation ';' Punctuation ' ' Text '/* v.w = u */' Comment.Multiline '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_ATTR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_SetAttr' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text '(' Punctuation 'PyObject' Name ' ' Text '*' Operator ')' Punctuation 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t\t' Text '/* del v.w */' Comment.Multiline '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_GLOBAL' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyDict_SetItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_GLOBAL' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'err' Name ' ' Text '=' Operator ' ' Text 'PyDict_DelItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t ' Text 'PyExc_NameError' Name ',' Punctuation ' ' Text 'GLOBAL_NAME_ERROR_MSG' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_NAME' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'v' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ')' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_Format' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text '"' Literal.String 'no locals when loading %s' Literal.String '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'PyObject_REPR' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyDict_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItem' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_XINCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_GetItem' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '&' Operator '&' Operator ' ' Text 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'PyErr_ExceptionMatches' Name '(' Punctuation 'PyExc_KeyError' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_Clear' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_builtins' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t\t\t\t ' Text 'PyExc_NameError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t\t ' Text 'NAME_ERROR_MSG' Name ' ' Text ',' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_GLOBAL' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyString_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* Inline the PyDict_GetItem() calls.\n\t\t\t\t WARNING: this is an extreme speed hack.\n\t\t\t\t Do not try this at home. */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'long' Keyword.Type ' ' Text 'hash' Name ' ' Text '=' Operator ' ' Text '(' Punctuation '(' Punctuation 'PyStringObject' Name ' ' Text '*' Operator ')' Punctuation 'w' Name ')' Punctuation '-' Operator '>' Operator 'ob_shash' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'hash' Name ' ' Text '!' Operator '=' Operator ' ' Text '-1' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyDictObject' Name ' ' Text '*' Operator 'd' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyDictEntry' Name ' ' Text '*' Operator 'e' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'd' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'PyDictObject' Name ' ' Text '*' Operator ')' Punctuation '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'e' Name ' ' Text '=' Operator ' ' Text 'd' Name '-' Operator '>' Operator 'ma_lookup' Name '(' Punctuation 'd' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'hash' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'e' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'e' Name '-' Operator '>' Operator 'me_value' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text 'd' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'PyDictObject' Name ' ' Text '*' Operator ')' Punctuation '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_builtins' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'e' Name ' ' Text '=' Operator ' ' Text 'd' Name '-' Operator '>' Operator 'ma_lookup' Name '(' Punctuation 'd' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'hash' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'e' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'e' Name '-' Operator '>' Operator 'me_value' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text 'goto' Keyword ' ' Text 'load_global_error' Name ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* This is the un-inlined version of the code above */' Comment.Multiline '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItem' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_builtins' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t ' Text 'load_global_error' Name.Label ':' Punctuation '\n' Text '\t\t\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'PyExc_NameError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'GLOBAL_NAME_ERROR_MSG' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'DELETE_FAST' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'GETLOCAL' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'SETLOCAL' Name '(' Punctuation 'oparg' Name ',' Punctuation ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t' Text 'PyExc_UnboundLocalError' Name ',' Punctuation '\n' Text '\t\t\t\t' Text 'UNBOUNDLOCAL_ERROR_MSG' Name ',' Punctuation '\n' Text '\t\t\t\t' Text 'PyTuple_GetItem' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_varnames' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation '\n' Text '\t\t\t\t' Text ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_CLOSURE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'freevars' Name '[' Punctuation 'oparg' Name ']' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_DEREF' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'freevars' Name '[' Punctuation 'oparg' Name ']' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PyCell_Get' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '-1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text "/* Don't stomp existing exception */" Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'oparg' Name ' ' Text '<' Operator ' ' Text 'PyTuple_GET_SIZE' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_cellvars' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'PyTuple_GET_ITEM' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_cellvars' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t ' Text 'PyExc_UnboundLocalError' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'UNBOUNDLOCAL_ERROR_MSG' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'v' Name ' ' Text '=' Operator ' ' Text 'PyTuple_GET_ITEM' Name '(' Punctuation '\n' Text '\t\t\t\t\t ' Text 'co' Name '-' Operator '>' Operator 'co_freevars' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'oparg' Name ' ' Text '-' Operator ' ' Text 'PyTuple_GET_SIZE' Name '(' Punctuation 'co' Name '-' Operator '>' Operator 'co_cellvars' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'format_exc_check_arg' Name '(' Punctuation '\n' Text '\t\t\t\t ' Text 'PyExc_NameError' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'UNBOUNDFREE_ERROR_MSG' Name ',' Punctuation '\n' Text '\t\t\t\t ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'STORE_DEREF' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'freevars' Name '[' Punctuation 'oparg' Name ']' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PyCell_Set' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BUILD_TUPLE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyTuple_New' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'for' Keyword ' ' Text '(' Punctuation ';' Punctuation ' ' Text '-' Operator '-' Operator 'oparg' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyTuple_SET_ITEM' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BUILD_LIST' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyList_New' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'for' Keyword ' ' Text '(' Punctuation ';' Punctuation ' ' Text '-' Operator '-' Operator 'oparg' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyList_SET_ITEM' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BUILD_MAP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_New' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'LOAD_ATTR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_GetAttr' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'COMPARE_OP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_CheckExact' Name '(' Punctuation 'w' Name ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text 'PyInt_CheckExact' Name '(' Punctuation 'v' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* INLINE: cmp(int, int) */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'long' Keyword.Type ' ' Text 'a' Name ',' Punctuation ' ' Text 'b' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'register' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'res' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'a' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'b' Name ' ' Text '=' Operator ' ' Text 'PyInt_AS_LONG' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'switch' Keyword ' ' Text '(' Punctuation 'oparg' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_LT' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '<' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_LE' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '<' Operator '=' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_EQ' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '=' Operator '=' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_NE' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '!' Operator '=' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_GT' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '>' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_GE' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'a' Name ' ' Text '>' Operator '=' Operator ' ' Text 'b' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_IS' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'v' Name ' ' Text '=' Operator '=' Operator ' ' Text 'w' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'case' Keyword ' ' Text 'PyCmp_IS_NOT' Name.Label ':' Punctuation ' ' Text 'res' Name ' ' Text '=' Operator ' ' Text 'v' Name ' ' Text '!' Operator '=' Operator ' ' Text 'w' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'default' Keyword ':' Operator ' ' Text 'goto' Keyword ' ' Text 'slow_compare' Name ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'res' Name ' ' Text '?' Operator ' ' Text 'Py_True' Name.Label ' ' Text ':' Punctuation ' ' Text 'Py_False' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'slow_compare' Name.Label ':' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'cmp_outcome' Name '(' Punctuation 'oparg' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'PREDICT' Name '(' Punctuation 'JUMP_IF_FALSE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PREDICT' Name '(' Punctuation 'JUMP_IF_TRUE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'IMPORT_NAME' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyDict_GetItemString' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_builtins' Name ',' Punctuation ' ' Text '"' Literal.String '__import__' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_ImportError' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t' Text '"' Literal.String '__import__ not found' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_AsLong' Name '(' Punctuation 'u' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text '-1' Literal.Number.Integer ' ' Text '|' Operator '|' Operator ' ' Text 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PyTuple_Pack' Name '(' Punctuation '5' Literal.Number.Integer ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'w' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '?' Operator '\n' Text '\t\t\t\t\t\t ' Text 'Py_None' Name.Label ' ' Text ':' Punctuation ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'v' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'PyTuple_Pack' Name '(' Punctuation '4' Literal.Number.Integer ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'w' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_globals' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '?' Operator '\n' Text '\t\t\t\t\t\t ' Text 'Py_None' Name.Label ' ' Text ':' Punctuation ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr0' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyEval_CallObject' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'IMPORT_STAR' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PyFrame_FastToLocals' Name '(' Punctuation 'f' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_locals' Name ')' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t\t' Text '"' Literal.String "no locals found during 'import *'" Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr0' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'import_all_from' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PyFrame_LocalsToFast' Name '(' Punctuation 'f' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'IMPORT_FROM' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'GETITEM' Name '(' Punctuation 'names' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr0' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'import_from' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'JUMP_FORWARD' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'JUMP_IF_FALSE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'JUMP_IF_FALSE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_True' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'POP_TOP' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_False' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_IsTrue' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'JUMP_IF_TRUE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'JUMP_IF_TRUE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_False' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'POP_TOP' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'w' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_True' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'goto' Keyword ' ' Text 'fast_next_opcode' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyObject_IsTrue' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'JUMP_ABSOLUTE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'JUMP_ABSOLUTE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'JUMPTO' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'GET_ITER' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text '/* before: [obj]; after [getiter(obj)] */' Comment.Multiline '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_GetIter' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'FOR_ITER' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'PREDICTED_WITH_ARG' Name '(' Punctuation 'FOR_ITER' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'FOR_ITER' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text '/* before: [iter]; after: [iter, iter()] *or* [] */' Comment.Multiline '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text '(' Punctuation '*' Operator 'v' Name '-' Operator '>' Operator 'ob_type' Name '-' Operator '>' Operator 'tp_iternext' Name ')' Punctuation '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'STORE_FAST' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'PREDICT' Name '(' Punctuation 'UNPACK_SEQUENCE' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'PyErr_ExceptionMatches' Name '(' Punctuation 'PyExc_StopIteration' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_Clear' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* iterator ended normally */' Comment.Multiline '\n' Text ' \t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'JUMPBY' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BREAK_LOOP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_BREAK' Name ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_block_end' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'CONTINUE_LOOP' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'retval' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_CONTINUE' Name ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'fast_block_end' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SETUP_LOOP' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SETUP_EXCEPT' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'SETUP_FINALLY' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text '/* NOTE: If you add any new block-setup opcodes that are not try/except/finally\n\t\t\t handlers, you may need to update the PyGen_NeedsFinalizing() function. */' Comment.Multiline '\n' Text '\n' Text '\t\t\t' Text 'PyFrame_BlockSetup' Name '(' Punctuation 'f' Name ',' Punctuation ' ' Text 'opcode' Name ',' Punctuation ' ' Text 'INSTR_OFFSET' Name '(' Punctuation ')' Punctuation ' ' Text '+' Operator ' ' Text 'oparg' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'STACK_LEVEL' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'WITH_CLEANUP' Name.Label ':' Punctuation '\n' Text '\t\t' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* TOP is the context.__exit__ bound method.\n\t\t\t Below that are 1-3 values indicating how/why\n\t\t\t we entered the finally clause:\n\t\t\t - SECOND = None\n\t\t\t - (SECOND, THIRD) = (WHY_{RETURN,CONTINUE}), retval\n\t\t\t - SECOND = WHY_*; no retval below it\n\t\t\t - (SECOND, THIRD, FOURTH) = exc_info()\n\t\t\t In the last case, we must call\n\t\t\t TOP(SECOND, THIRD, FOURTH)\n\t\t\t otherwise we must call\n\t\t\t TOP(None, None, None)\n\n\t\t\t In addition, if the stack represents an exception,\n\t\t\t *and* the function call returns a \'true\' value, we\n\t\t\t "zap" this information, to prevent END_FINALLY from\n\t\t\t re-raising the exception. (But non-local gotos\n\t\t\t should still be resumed.)\n\t\t\t*/' Comment.Multiline '\n' Text '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'SECOND' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyInt_Check' Name '(' Punctuation 'u' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'u' Name ' ' Text '=' Operator '=' Operator ' ' Text 'Py_None' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'v' Name ' ' Text '=' Operator ' ' Text 'w' Name ' ' Text '=' Operator ' ' Text 'Py_None' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'THIRD' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'FOURTH' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '/* XXX Not the fastest way to call it... */' Comment.Multiline '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyObject_CallFunctionObjArgs' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation ' ' Text '/* Go to error exit */' Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'u' Name ' ' Text '!' Operator '=' Operator ' ' Text 'Py_None' Name ' ' Text '&' Operator '&' Operator ' ' Text 'PyObject_IsTrue' Name '(' Punctuation 'x' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* There was an exception and a true return */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* Again */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'STACKADJ' Name '(' Punctuation '-3' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text '/* Let END_FINALLY do its thing */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'CALL_FUNCTION' Name.Label ':' Punctuation '\n' Text '\t\t' Text '{' Punctuation '\n' Text '\t\t\t' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'sp' Name ';' Punctuation '\n' Text '\t\t\t' Text 'PCALL' Name '(' Punctuation 'PCALL_ALL' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'sp' Name ' ' Text '=' Operator ' ' Text 'stack_pointer' Name ';' Punctuation '\n' Text '#' Comment.Preproc 'ifdef WITH_TSC' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'call_function' Name '(' Punctuation '&' Operator 'sp' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation ' ' Text '&' Operator 'intr0' Name ',' Punctuation ' ' Text '&' Operator 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'else' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'call_function' Name '(' Punctuation '&' Operator 'sp' Name ',' Punctuation ' ' Text 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text 'stack_pointer' Name ' ' Text '=' Operator ' ' Text 'sp' Name ';' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'CALL_FUNCTION_VAR' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'CALL_FUNCTION_KW' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'CALL_FUNCTION_VAR_KW' Name.Label ':' Punctuation '\n' Text '\t\t' Text '{' Punctuation '\n' Text '\t\t ' Text 'int' Keyword.Type ' ' Text 'na' Name ' ' Text '=' Operator ' ' Text 'oparg' Name ' ' Text '&' Operator ' ' Text '0xff' Literal.Number.Hex ';' Punctuation '\n' Text '\t\t ' Text 'int' Keyword.Type ' ' Text 'nk' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'oparg' Name '>' Operator '>' Operator '8' Literal.Number.Integer ')' Punctuation ' ' Text '&' Operator ' ' Text '0xff' Literal.Number.Hex ';' Punctuation '\n' Text '\t\t ' Text 'int' Keyword.Type ' ' Text 'flags' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'opcode' Name ' ' Text '-' Operator ' ' Text 'CALL_FUNCTION' Name ')' Punctuation ' ' Text '&' Operator ' ' Text '3' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t ' Text 'int' Keyword.Type ' ' Text 'n' Name ' ' Text '=' Operator ' ' Text 'na' Name ' ' Text '+' Operator ' ' Text '2' Literal.Number.Integer ' ' Text '*' Operator ' ' Text 'nk' Name ';' Punctuation '\n' Text '\t\t ' Text 'PyObject' Name ' ' Text '*' Operator '*' Operator 'pfunc' Name ',' Punctuation ' ' Text '*' Operator 'func' Name ',' Punctuation ' ' Text '*' Operator '*' Operator 'sp' Name ';' Punctuation '\n' Text '\t\t ' Text 'PCALL' Name '(' Punctuation 'PCALL_ALL' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'if' Keyword ' ' Text '(' Punctuation 'flags' Name ' ' Text '&' Operator ' ' Text 'CALL_FLAG_VAR' Name ')' Punctuation '\n' Text '\t\t\t ' Text 'n' Name '+' Operator '+' Operator ';' Punctuation '\n' Text '\t\t ' Text 'if' Keyword ' ' Text '(' Punctuation 'flags' Name ' ' Text '&' Operator ' ' Text 'CALL_FLAG_KW' Name ')' Punctuation '\n' Text '\t\t\t ' Text 'n' Name '+' Operator '+' Operator ';' Punctuation '\n' Text '\t\t ' Text 'pfunc' Name ' ' Text '=' Operator ' ' Text 'stack_pointer' Name ' ' Text '-' Operator ' ' Text 'n' Name ' ' Text '-' Operator ' ' Text '1' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t ' Text 'func' Name ' ' Text '=' Operator ' ' Text '*' Operator 'pfunc' Name ';' Punctuation '\n' Text '\n' Text '\t\t ' Text 'if' Keyword ' ' Text '(' Punctuation 'PyMethod_Check' Name '(' Punctuation 'func' Name ')' Punctuation '\n' Text '\t\t\t' Text '&' Operator '&' Operator ' ' Text 'PyMethod_GET_SELF' Name '(' Punctuation 'func' Name ')' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'PyObject' Name ' ' Text '*' Operator 'self' Name ' ' Text '=' Operator ' ' Text 'PyMethod_GET_SELF' Name '(' Punctuation 'func' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'Py_INCREF' Name '(' Punctuation 'self' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'func' Name ' ' Text '=' Operator ' ' Text 'PyMethod_GET_FUNCTION' Name '(' Punctuation 'func' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'Py_INCREF' Name '(' Punctuation 'func' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'Py_DECREF' Name '(' Punctuation '*' Operator 'pfunc' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text '*' Operator 'pfunc' Name ' ' Text '=' Operator ' ' Text 'self' Name ';' Punctuation '\n' Text '\t\t\t ' Text 'na' Name '+' Operator '+' Operator ';' Punctuation '\n' Text '\t\t\t ' Text 'n' Name '+' Operator '+' Operator ';' Punctuation '\n' Text '\t\t ' Text '}' Punctuation ' ' Text 'else' Keyword '\n' Text '\t\t\t ' Text 'Py_INCREF' Name '(' Punctuation 'func' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'sp' Name ' ' Text '=' Operator ' ' Text 'stack_pointer' Name ';' Punctuation '\n' Text '\t\t ' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr0' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'x' Name ' ' Text '=' Operator ' ' Text 'ext_do_call' Name '(' Punctuation 'func' Name ',' Punctuation ' ' Text '&' Operator 'sp' Name ',' Punctuation ' ' Text 'flags' Name ',' Punctuation ' ' Text 'na' Name ',' Punctuation ' ' Text 'nk' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'READ_TIMESTAMP' Name '(' Punctuation 'intr1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'stack_pointer' Name ' ' Text '=' Operator ' ' Text 'sp' Name ';' Punctuation '\n' Text '\t\t ' Text 'Py_DECREF' Name '(' Punctuation 'func' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t ' Text 'while' Keyword ' ' Text '(' Punctuation 'stack_pointer' Name ' ' Text '>' Operator ' ' Text 'pfunc' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t ' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t ' Text 'Py_DECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text '}' Punctuation '\n' Text '\t\t ' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t ' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t ' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'MAKE_FUNCTION' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* code object */' Comment.Multiline '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyFunction_New' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'f' Name '-' Operator '>' Operator 'f_globals' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '/* XXX Maybe this should be a separate opcode? */' Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '&' Operator '&' Operator ' ' Text 'oparg' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'PyTuple_New' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'v' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation '-' Operator '-' Operator 'oparg' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyTuple_SET_ITEM' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFunction_SetDefaults' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'MAKE_CLOSURE' Name.Label ':' Punctuation '\n' Text '\t\t' Text '{' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation ' ' Text '/* code object */' Comment.Multiline '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PyFunction_New' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'f' Name '-' Operator '>' Operator 'f_globals' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFunction_SetClosure' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ' ' Text '&' Operator '&' Operator ' ' Text 'oparg' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'PyTuple_New' Name '(' Punctuation 'oparg' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'v' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation '-' Operator '-' Operator 'oparg' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyTuple_SET_ITEM' Name '(' Punctuation 'v' Name ',' Punctuation ' ' Text 'oparg' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text 'PyFunction_SetDefaults' Name '(' Punctuation 'x' Name ',' Punctuation ' ' Text 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'PUSH' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'BUILD_SLICE' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'oparg' Name ' ' Text '=' Operator '=' Operator ' ' Text '3' Literal.Number.Integer ')' Punctuation '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword '\n' Text '\t\t\t\t' Text 'w' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'u' Name ' ' Text '=' Operator ' ' Text 'TOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'PySlice_New' Name '(' Punctuation 'u' Name ',' Punctuation ' ' Text 'v' Name ',' Punctuation ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'u' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'w' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'SET_TOP' Name '(' Punctuation 'x' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text 'continue' Keyword ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'case' Keyword ' ' Text 'EXTENDED_ARG' Name.Label ':' Punctuation '\n' Text '\t\t\t' Text 'opcode' Name ' ' Text '=' Operator ' ' Text 'NEXTOP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'oparg' Name ' ' Text '=' Operator ' ' Text 'oparg' Name '<' Operator '<' Operator '16' Literal.Number.Integer ' ' Text '|' Operator ' ' Text 'NEXTARG' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'goto' Keyword ' ' Text 'dispatch_opcode' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text 'default' Keyword ':' Operator '\n' Text '\t\t\t' Text 'fprintf' Name '(' Punctuation 'stderr' Name ',' Punctuation '\n' Text '\t\t\t\t' Text '"' Literal.String 'XXX lineno: %d, opcode: %d' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation '\n' Text '\t\t\t\t' Text 'PyCode_Addr2Line' Name '(' Punctuation 'f' Name '-' Operator '>' Operator 'f_code' Name ',' Punctuation ' ' Text 'f' Name '-' Operator '>' Operator 'f_lasti' Name ')' Punctuation ',' Punctuation '\n' Text '\t\t\t\t' Text 'opcode' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation ' ' Text '"' Literal.String 'unknown opcode' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\n' Text '#' Comment.Preproc 'ifdef CASE_TOO_BIG' Comment.Preproc '\n' Comment.Preproc '\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '\t\t' Text '}' Punctuation ' ' Text '/* switch */' Comment.Multiline '\n' Text '\n' Text '\t ' Text 'on_error' Name.Label ':' Punctuation '\n' Text '\n' Text '\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'inst1' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t' Text '/* Quickly continue if no error occurred */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_NOT' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'err' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '&' Operator '&' Operator ' ' Text 'x' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '#' Comment.Preproc 'ifdef CHECKEXC' Comment.Preproc '\n' Comment.Preproc '\t\t\t\t' Text '/* This check is expensive! */' Comment.Multiline '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t' Text 'fprintf' Name '(' Punctuation 'stderr' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t' Text '"' Literal.String 'XXX undetected error' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t\t\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'loop1' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'continue' Keyword ';' Punctuation ' ' Text '/* Normal, fast path */' Comment.Multiline '\n' Text '#' Comment.Preproc 'ifdef CHECKEXC' Comment.Preproc '\n' Comment.Preproc '\t\t\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text 'x' Name ' ' Text '=' Operator ' ' Text 'Py_None' Name ';' Punctuation '\n' Text '\t\t\t' Text 'err' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text '/* Double-check exception status */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ' ' Text '|' Operator '|' Operator ' ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_RERAISE' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation '!' Operator 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'PyErr_SetString' Name '(' Punctuation 'PyExc_SystemError' Name ',' Punctuation '\n' Text '\t\t\t\t\t' Text '"' Literal.String 'error return without exception set' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'ifdef CHECKEXC' Comment.Preproc '\n' Comment.Preproc '\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text '/* This check is expensive! */' Comment.Multiline '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'PyErr_Occurred' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'char' Keyword.Type ' ' Text 'buf' Name '[' Punctuation '1024' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'sprintf' Name '(' Punctuation 'buf' Name ',' Punctuation ' ' Text '"' Literal.String 'Stack unwind with exception ' Literal.String '"' Literal.String '\n' Text '\t\t\t\t\t' Text '"' Literal.String 'set and why=%d' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'why' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_FatalError' Name '(' Punctuation 'buf' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text '\t\t' Text '/* Log traceback info if this is a real exception */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'PyTraceBack_Here' Name '(' Punctuation 'f' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t\t\t' Text 'call_exc_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_traceobj' Name ',' Punctuation ' ' Text 'f' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t' Text '/* For the rest, treat WHY_RERAISE as WHY_EXCEPTION */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_RERAISE' Name ')' Punctuation '\n' Text '\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\n' Text '\t\t' Text '/* Unwind stacks if a (pseudo) exception occurred */' Comment.Multiline '\n' Text '\n' Text 'fast_block_end' Name.Label ':' Punctuation '\n' Text '\t\t' Text 'while' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_NOT' Name ' ' Text '&' Operator '&' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_iblock' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'PyTryBlock' Name ' ' Text '*' Operator 'b' Name ' ' Text '=' Operator ' ' Text 'PyFrame_BlockPop' Name '(' Punctuation 'f' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t\t\t' Text 'assert' Name '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_YIELD' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_LOOP' Name ' ' Text '&' Operator '&' Operator ' ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_CONTINUE' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text "/* For a continue inside a try block,\n\t\t\t\t don't pop the block for the loop. */" Comment.Multiline '\n' Text '\t\t\t\t' Text 'PyFrame_BlockSetup' Name '(' Punctuation 'f' Name ',' Punctuation ' ' Text 'b' Name '-' Operator '>' Operator 'b_type' Name ',' Punctuation ' ' Text 'b' Name '-' Operator '>' Operator 'b_handler' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'b' Name '-' Operator '>' Operator 'b_level' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_NOT' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPTO' Name '(' Punctuation 'PyInt_AS_LONG' Name '(' Punctuation 'retval' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_DECREF' Name '(' Punctuation 'retval' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\n' Text '\t\t\t' Text 'while' Keyword ' ' Text '(' Punctuation 'STACK_LEVEL' Name '(' Punctuation ')' Punctuation ' ' Text '>' Operator ' ' Text 'b' Name '-' Operator '>' Operator 'b_level' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_LOOP' Name ' ' Text '&' Operator '&' Operator ' ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_BREAK' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_NOT' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPTO' Name '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_handler' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_FINALLY' Name ' ' Text '|' Operator '|' Operator '\n' Text '\t\t\t ' Text '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_EXCEPT' Name ' ' Text '&' Operator '&' Operator '\n' Text '\t\t\t ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyObject' Name ' ' Text '*' Operator 'exc' Name ',' Punctuation ' ' Text '*' Operator 'val' Name ',' Punctuation ' ' Text '*' Operator 'tb' Name ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PyErr_Fetch' Name '(' Punctuation '&' Operator 'exc' Name ',' Punctuation ' ' Text '&' Operator 'val' Name ',' Punctuation ' ' Text '&' Operator 'tb' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'val' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'val' Name ' ' Text '=' Operator ' ' Text 'Py_None' Name ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'val' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text "/* Make the raw exception data\n\t\t\t\t\t available to the handler,\n\t\t\t\t\t so a program can emulate the\n\t\t\t\t\t Python main loop. Don't do\n\t\t\t\t\t this for 'finally'. */" Comment.Multiline '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'SETUP_EXCEPT' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'PyErr_NormalizeException' Name '(' Punctuation '\n' Text '\t\t\t\t\t\t\t' Text '&' Operator 'exc' Name ',' Punctuation ' ' Text '&' Operator 'val' Name ',' Punctuation ' ' Text '&' Operator 'tb' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'set_exc_info' Name '(' Punctuation 'tstate' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t\t ' Text 'exc' Name ',' Punctuation ' ' Text 'val' Name ',' Punctuation ' ' Text 'tb' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tb' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'Py_INCREF' Name '(' Punctuation 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'Py_None' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text '}' Punctuation ' ' Text 'else' Keyword '\n' Text '\t\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'tb' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'val' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'exc' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '&' Operator ' ' Text '(' Punctuation 'WHY_RETURN' Name ' ' Text '|' Operator ' ' Text 'WHY_CONTINUE' Name ')' Punctuation ')' Punctuation '\n' Text '\t\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'retval' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'PyInt_FromLong' Name '(' Punctuation '(' Punctuation 'long' Keyword.Type ')' Punctuation 'why' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'PUSH' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_NOT' Name ';' Punctuation '\n' Text '\t\t\t\t' Text 'JUMPTO' Name '(' Punctuation 'b' Name '-' Operator '>' Operator 'b_handler' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation ' ' Text '/* unwind stack */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text '/* End the loop if we still have an error (or return) */' Comment.Multiline '\n' Text '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_NOT' Name ')' Punctuation '\n' Text '\t\t\t' Text 'break' Keyword ';' Punctuation '\n' Text '\t\t' Text 'READ_TIMESTAMP' Name '(' Punctuation 'loop1' Name ')' Punctuation ';' Punctuation '\n' Text '\n' Text '\t' Text '}' Punctuation ' ' Text '/* main loop */' Comment.Multiline '\n' Text '\n' Text '\t' Text 'assert' Name '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_YIELD' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text '/* Pop remaining stack entries. */' Comment.Multiline '\n' Text '\t' Text 'while' Keyword ' ' Text '(' Punctuation '!' Operator 'EMPTY' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'v' Name ' ' Text '=' Operator ' ' Text 'POP' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'v' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '!' Operator '=' Operator ' ' Text 'WHY_RETURN' Name ')' Punctuation '\n' Text '\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\n' Text 'fast_yield' Name.Label ':' Punctuation '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'use_tracing' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_RETURN' Name ' ' Text '|' Operator '|' Operator ' ' Text 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_YIELD' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'call_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_traceobj' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'PyTrace_RETURN' Name ',' Punctuation ' ' Text 'retval' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'retval' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'call_trace_protected' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_tracefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_traceobj' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'PyTrace_RETURN' Name ',' Punctuation ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_profilefunc' Name ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t' Text 'if' Keyword ' ' Text '(' Punctuation 'why' Name ' ' Text '=' Operator '=' Operator ' ' Text 'WHY_EXCEPTION' Name ')' Punctuation '\n' Text '\t\t\t\t' Text 'call_trace_protected' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_profilefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_profileobj' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation '\n' Text '\t\t\t\t\t\t ' Text 'PyTrace_RETURN' Name ',' Punctuation ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t\t' Text 'else' Keyword ' ' Text 'if' Keyword ' ' Text '(' Punctuation 'call_trace' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'c_profilefunc' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'tstate' Name '-' Operator '>' Operator 'c_profileobj' Name ',' Punctuation ' ' Text 'f' Name ',' Punctuation '\n' Text '\t\t\t\t\t ' Text 'PyTrace_RETURN' Name ',' Punctuation ' ' Text 'retval' Name ')' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text '\t\t\t\t' Text 'Py_XDECREF' Name '(' Punctuation 'retval' Name ')' Punctuation ';' Punctuation '\n' Text '\t\t\t\t' Text 'retval' Name ' ' Text '=' Operator ' ' Text 'NULL' Name.Builtin ';' Punctuation '\n' Text '\t\t\t\t' Text 'why' Name ' ' Text '=' Operator ' ' Text 'WHY_EXCEPTION' Name ';' Punctuation '\n' Text '\t\t\t' Text '}' Punctuation '\n' Text '\t\t' Text '}' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text 'if' Keyword ' ' Text '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'frame' Name '-' Operator '>' Operator 'f_exc_type' Name ' ' Text '!' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation '\n' Text '\t\t' Text 'reset_exc_info' Name '(' Punctuation 'tstate' Name ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'else' Keyword ' ' Text '{' Punctuation '\n' Text '\t\t' Text 'assert' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'frame' Name '-' Operator '>' Operator 'f_exc_value' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t\t' Text 'assert' Name '(' Punctuation 'tstate' Name '-' Operator '>' Operator 'frame' Name '-' Operator '>' Operator 'f_exc_traceback' Name ' ' Text '=' Operator '=' Operator ' ' Text 'NULL' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text '\t' Text '}' Punctuation '\n' Text '\n' Text '\t' Text '/* pop frame */' Comment.Multiline '\n' Text ' ' Text 'exit_eval_frame' Name.Label ':' Punctuation '\n' Text '\t' Text 'Py_LeaveRecursiveCall' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\t' Text 'tstate' Name '-' Operator '>' Operator 'frame' Name ' ' Text '=' Operator ' ' Text 'f' Name '-' Operator '>' Operator 'f_back' Name ';' Punctuation '\n' Text '\n' Text '\t' Text 'return' Keyword ' ' Text 'retval' Name ';' Punctuation '\n' Text '}' Punctuation '\n' Text