Commit 5215225e authored by Thomas Wouters's avatar Thomas Wouters

Apply SF patch #101135, adding 'import module as m' and 'from module import

name as n'. By doing some twists and turns, "as" is not a reserved word.

There is a slight change in semantics for 'from module import name' (it will
now honour the 'global' keyword) but only in cases that are explicitly
undocumented.
parent 1d75a79c
......@@ -301,6 +301,12 @@ is evaluated, the locals are passed to the class definition.
Returns with TOS to the caller of the function.
\end{opcodedesc}
\begin{opcodedesc}{IMPORT_STAR}{}
Loads all symbols not starting with '_' directly from the module TOS
to the local namespace. The module is popped after loading all names.
This opcode implements 'from module import *'.
\begin{opcodedesc}
\begin{opcodedesc}{EXEC_STMT}{}
Implements \code{exec TOS2,TOS1,TOS}. The compiler fills
missing optional parameters with None.
......@@ -411,8 +417,9 @@ modifies the name space.
\end{opcodedesc}
\begin{opcodedesc}{IMPORT_FROM}{namei}
Imports the attribute \code{co_names[\var{namei}]}. The module to import
from is found in TOS and left there.
Loads the attribute \code{co_names[\var{namei}]} from the module found in
TOS. The resulting object is pushed onto the stack, to be subsequently
stored by a \code{STORE_FAST} instruction.
\end{opcodedesc}
\begin{opcodedesc}{JUMP_FORWARD}{delta}
......
......@@ -443,8 +443,9 @@ It continues with the next cycle of the nearest enclosing loop.
\stindex{import}
\begin{verbatim}
import_stmt: "import" module ("," module)*
| "from" module "import" identifier ("," identifier)*
import_stmt: "import" module ["as" name] ("," module ["as" name] )*
| "from" module "import" identifier ["as" name]
("," identifier ["as" name] )*
| "from" module "import" "*"
module: (identifier ".")* identifier
\end{verbatim}
......@@ -496,13 +497,16 @@ begin.
The first form of \keyword{import} statement binds the module name in the
local namespace to the module object, and then goes on to import the
next identifier, if any. The \keyword{from} form does not bind the
module name: it goes through the list of identifiers, looks each one
of them up in the module found in step (1), and binds the name in the
local namespace to the object thus found. If a name is not found,
next identifier, if any. If the module name is followed by \keyword{as},
the name following \keyword{as} is used as the local name for the module.
The \keyword{from} form does not bind the module name: it goes through the
list of identifiers, looks each one of them up in the module found in step
(1), and binds the name in the local namespace to the object thus found.
Like with the first form of \keyword{import}, an alternate local name can be
supplied by specifying "\keyword{as} localname". If a name is not found,
\exception{ImportError} is raised. If the list of identifiers is replaced
by a star (\samp{*}), all names defined in the module are bound,
except those beginning with an underscore (\character{_}).
by a star (\samp{*}), all names defined in the module are bound, except
those beginning with an underscore (\character{_}).
\indexii{name}{binding}
\exindex{ImportError}
......
......@@ -41,7 +41,9 @@ break_stmt: 'break'
continue_stmt: 'continue'
return_stmt: 'return' [testlist]
raise_stmt: 'raise' [test [',' test [',' test]]]
import_stmt: 'import' dotted_name (',' dotted_name)* | 'from' dotted_name 'import' ('*' | NAME (',' NAME)*)
import_stmt: 'import' dotted_as_name (',' dotted_as_name)* | 'from' dotted_name 'import' ('*' | import_as_name (',' import_as_name)*)
import_as_name: NAME [NAME NAME]
dotted_as_name: dotted_name [NAME NAME]
dotted_name: NAME ('.' NAME)*
global_stmt: 'global' NAME (',' NAME)*
#access_stmt: 'access' ('*' | NAME (',' NAME)*) ':' accesstype (',' accesstype)*
......
......@@ -19,43 +19,45 @@
#define return_stmt 274
#define raise_stmt 275
#define import_stmt 276
#define dotted_name 277
#define global_stmt 278
#define exec_stmt 279
#define assert_stmt 280
#define compound_stmt 281
#define if_stmt 282
#define while_stmt 283
#define for_stmt 284
#define try_stmt 285
#define except_clause 286
#define suite 287
#define test 288
#define and_test 289
#define not_test 290
#define comparison 291
#define comp_op 292
#define expr 293
#define xor_expr 294
#define and_expr 295
#define shift_expr 296
#define arith_expr 297
#define term 298
#define factor 299
#define power 300
#define atom 301
#define listmaker 302
#define lambdef 303
#define trailer 304
#define subscriptlist 305
#define subscript 306
#define sliceop 307
#define exprlist 308
#define testlist 309
#define dictmaker 310
#define classdef 311
#define arglist 312
#define argument 313
#define list_iter 314
#define list_for 315
#define list_if 316
#define import_as_name 277
#define dotted_as_name 278
#define dotted_name 279
#define global_stmt 280
#define exec_stmt 281
#define assert_stmt 282
#define compound_stmt 283
#define if_stmt 284
#define while_stmt 285
#define for_stmt 286
#define try_stmt 287
#define except_clause 288
#define suite 289
#define test 290
#define and_test 291
#define not_test 292
#define comparison 293
#define comp_op 294
#define expr 295
#define xor_expr 296
#define and_expr 297
#define shift_expr 298
#define arith_expr 299
#define term 300
#define factor 301
#define power 302
#define atom 303
#define listmaker 304
#define lambdef 305
#define trailer 306
#define subscriptlist 307
#define subscript 308
#define sliceop 309
#define exprlist 310
#define testlist 311
#define dictmaker 312
#define classdef 313
#define arglist 314
#define argument 315
#define list_iter 316
#define list_for 317
#define list_if 318
......@@ -65,7 +65,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#define LOAD_LOCALS 82
#define RETURN_VALUE 83
#define IMPORT_STAR 84
#define EXEC_STMT 85
#define POP_BLOCK 87
......
......@@ -195,7 +195,7 @@ def_op('BREAK_LOOP', 80)
def_op('LOAD_LOCALS', 82)
def_op('RETURN_VALUE', 83)
def_op('IMPORT_STAR', 84)
def_op('EXEC_STMT', 85)
def_op('POP_BLOCK', 87)
......
......@@ -36,3 +36,10 @@ t6.ham loading
t6.eggs loading
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__path__', 'eggs', 'ham', 'spam']
['eggs', 'ham', 'spam', 't6']
running test t7
t7 loading
['__builtins__', '__doc__', '__file__', '__name__', '__path__']
['__builtins__', '__doc__', '__file__', '__name__', '__path__']
t7.sub.subsub loading
['__builtins__', '__doc__', '__file__', '__name__', '__path__', 'spam']
t7.sub.subsub.spam = 1
......@@ -164,6 +164,33 @@ print dir(t6)
from t6 import *
print dir(t6)
print dir()
"""),
("t7", [
("t7.py", "print 'Importing t7.py'"),
("t7", None),
("t7 __init__.py", "print __name__, 'loading'"),
("t7 sub.py", "print 'THIS SHOULD NOT BE PRINTED (sub.py)'"),
("t7 sub", None),
("t7 sub __init__.py", ""),
("t7 sub subsub.py", "print 'THIS SHOULD NOT BE PRINTED (subsub.py)'"),
("t7 sub subsub", None),
("t7 sub subsub __init__.py", "print __name__, 'loading'; spam = 1"),
],
"""
t7, sub, subsub = None, None, None
import t7 as tas
print dir(tas)
assert not t7
from t7 import sub as subpar
print dir(subpar)
assert not t7 and not sub
from t7.sub import subsub as subsubsub
print dir(subsubsub)
assert not t7 and not sub and not subsub
from t7.sub.subsub import spam as ham
print "t7.sub.subsub.spam =", ham
assert not t7 and not sub and not subsub
"""),
]
......
......@@ -66,7 +66,8 @@ static PyObject *apply_slice(PyObject *, PyObject *, PyObject *);
static int assign_slice(PyObject *, PyObject *,
PyObject *, PyObject *);
static PyObject *cmp_outcome(int, PyObject *, PyObject *);
static int import_from(PyObject *, PyObject *, PyObject *);
static PyObject *import_from(PyObject *, PyObject *);
static int import_all_from(PyObject *, PyObject *);
static PyObject *build_class(PyObject *, PyObject *, PyObject *);
static int exec_statement(PyFrameObject *,
PyObject *, PyObject *, PyObject *);
......@@ -1414,20 +1415,28 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals,
if (x != NULL) continue;
break;
case IMPORT_FROM:
w = GETNAMEV(oparg);
v = TOP();
case IMPORT_STAR:
v = POP();
PyFrame_FastToLocals(f);
if ((x = f->f_locals) == NULL) {
PyErr_SetString(PyExc_SystemError,
"no locals");
break;
}
err = import_from(x, v, w);
err = import_all_from(x, v);
PyFrame_LocalsToFast(f, 0);
Py_DECREF(v);
if (err == 0) continue;
break;
case IMPORT_FROM:
w = GETNAMEV(oparg);
v = TOP();
x = import_from(v, w);
PUSH(x);
if (x != NULL) continue;
break;
case JUMP_FORWARD:
JUMPBY(oparg);
continue;
......@@ -2647,43 +2656,51 @@ cmp_outcome(int op, register PyObject *v, register PyObject *w)
return v;
}
static int
import_from(PyObject *locals, PyObject *v, PyObject *name)
static PyObject *
import_from(PyObject *v, PyObject *name)
{
PyObject *w, *x;
if (!PyModule_Check(v)) {
PyErr_SetString(PyExc_TypeError,
"import-from requires module object");
return NULL;
}
w = PyModule_GetDict(v); /* TDB: can this not fail ? */
x = PyDict_GetItem(w, name);
if (x == NULL) {
PyErr_Format(PyExc_ImportError,
"cannot import name %.230s",
PyString_AsString(name));
} else
Py_INCREF(x);
return x;
}
static int
import_all_from(PyObject *locals, PyObject *v)
{
int pos = 0, err;
PyObject *name, *value;
PyObject *w;
if (!PyModule_Check(v)) {
PyErr_SetString(PyExc_TypeError,
"import-from requires module object");
return -1;
}
w = PyModule_GetDict(v);
if (PyString_AsString(name)[0] == '*') {
int pos, err;
PyObject *name, *value;
pos = 0;
while (PyDict_Next(w, &pos, &name, &value)) {
if (!PyString_Check(name) ||
PyString_AsString(name)[0] == '_')
w = PyModule_GetDict(v); /* TBD: can this not fail ? */
while (PyDict_Next(w, &pos, &name, &value)) {
if (!PyString_Check(name) ||
PyString_AsString(name)[0] == '_')
continue;
Py_INCREF(value);
err = PyDict_SetItem(locals, name, value);
Py_DECREF(value);
if (err != 0)
return -1;
}
return 0;
}
else {
x = PyDict_GetItem(w, name);
if (x == NULL) {
PyErr_Format(PyExc_ImportError,
"cannot import name %.230s",
PyString_AsString(name));
Py_INCREF(value);
err = PyDict_SetItem(locals, name, value);
Py_DECREF(value);
if (err != 0)
return -1;
}
else
return PyDict_SetItem(locals, name, x);
}
return 0;
}
static PyObject *
......@@ -2825,7 +2842,7 @@ find_from_args(PyFrameObject *f, int nexti)
next_instr += nexti;
opcode = (*next_instr++);
if (opcode != IMPORT_FROM) {
if (opcode != IMPORT_FROM && opcode != IMPORT_STAR) {
Py_INCREF(Py_None);
return Py_None;
}
......@@ -2833,18 +2850,28 @@ find_from_args(PyFrameObject *f, int nexti)
list = PyList_New(0);
if (list == NULL)
return NULL;
do {
oparg = (next_instr[1]<<8) + next_instr[0];
next_instr += 2;
name = Getnamev(f, oparg);
if (PyList_Append(list, name) < 0) {
if (opcode == IMPORT_STAR) {
name = PyString_FromString("*");
if (!name)
Py_DECREF(list);
break;
else {
if (PyList_Append(list, name) < 0)
Py_DECREF(list);
Py_DECREF(name);
}
opcode = (*next_instr++);
} while (opcode == IMPORT_FROM);
} else {
do {
oparg = (next_instr[1]<<8) + next_instr[0];
next_instr += 2;
name = Getnamev(f, oparg);
if (PyList_Append(list, name) < 0) {
Py_DECREF(list);
break;
}
opcode = (*next_instr++);
} while (opcode == IMPORT_FROM);
}
return list;
}
......
......@@ -2095,6 +2095,22 @@ com_raise_stmt(struct compiling *c, node *n)
com_pop(c, i);
}
static void
com_from_import(struct compiling *c, node *n)
{
com_addopname(c, IMPORT_FROM, CHILD(n, 0));
com_push(c, 1);
if (NCH(n) > 1) {
if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
com_error(c, PyExc_SyntaxError, "invalid syntax");
return;
}
com_addopname(c, STORE_NAME, CHILD(n, 2));
} else
com_addopname(c, STORE_NAME, CHILD(n, 0));
com_pop(c, 1);
}
static void
com_import_stmt(struct compiling *c, node *n)
{
......@@ -2107,18 +2123,32 @@ com_import_stmt(struct compiling *c, node *n)
REQ(CHILD(n, 1), dotted_name);
com_addopname(c, IMPORT_NAME, CHILD(n, 1));
com_push(c, 1);
for (i = 3; i < NCH(n); i += 2)
com_addopname(c, IMPORT_FROM, CHILD(n, i));
com_addbyte(c, POP_TOP);
if (TYPE(CHILD(n, 3)) == STAR)
com_addbyte(c, IMPORT_STAR);
else {
for (i = 3; i < NCH(n); i += 2)
com_from_import(c, CHILD(n, i));
com_addbyte(c, POP_TOP);
}
com_pop(c, 1);
}
else {
/* 'import' ... */
for (i = 1; i < NCH(n); i += 2) {
REQ(CHILD(n, i), dotted_name);
com_addopname(c, IMPORT_NAME, CHILD(n, i));
node *subn = CHILD(n, i);
REQ(subn, dotted_as_name);
com_addopname(c, IMPORT_NAME, CHILD(subn, 0));
com_push(c, 1);
com_addopname(c, STORE_NAME, CHILD(CHILD(n, i), 0));
if (NCH(subn) > 1) {
if (strcmp(STR(CHILD(subn, 1)), "as") != 0) {
com_error(c, PyExc_SyntaxError,
"invalid syntax");
return;
}
com_addopname(c, STORE_NAME, CHILD(subn, 2));
} else
com_addopname(c, STORE_NAME,
CHILD(CHILD(subn, 0),0));
com_pop(c, 1);
}
}
......@@ -3295,12 +3325,14 @@ optimize(struct compiling *c)
case IMPORT_FROM:
com_addlocal_o(c, GETNAMEOBJ(oparg));
break;
case IMPORT_STAR:
case EXEC_STMT:
c->c_flags &= ~CO_OPTIMIZED;
break;
}
}
/* TBD: Is this still necessary ? */
if (PyDict_GetItemString(c->c_locals, "*") != NULL)
c->c_flags &= ~CO_OPTIMIZED;
......
......@@ -363,7 +363,7 @@ static arc arcs_20_1[1] = {
{50, 3},
};
static arc arcs_20_2[1] = {
{50, 4},
{52, 4},
};
static arc arcs_20_3[2] = {
{22, 1},
......@@ -374,7 +374,7 @@ static arc arcs_20_4[1] = {
};
static arc arcs_20_5[2] = {
{23, 6},
{12, 7},
{53, 7},
};
static arc arcs_20_6[1] = {
{0, 6},
......@@ -384,7 +384,7 @@ static arc arcs_20_7[2] = {
{0, 7},
};
static arc arcs_20_8[1] = {
{12, 7},
{53, 7},
};
static state states_20[9] = {
{2, arcs_20_0},
......@@ -401,417 +401,433 @@ static arc arcs_21_0[1] = {
{12, 1},
};
static arc arcs_21_1[2] = {
{52, 0},
{12, 2},
{0, 1},
};
static state states_21[2] = {
static arc arcs_21_2[1] = {
{12, 3},
};
static arc arcs_21_3[1] = {
{0, 3},
};
static state states_21[4] = {
{1, arcs_21_0},
{2, arcs_21_1},
{1, arcs_21_2},
{1, arcs_21_3},
};
static arc arcs_22_0[1] = {
{53, 1},
{52, 1},
};
static arc arcs_22_1[1] = {
static arc arcs_22_1[2] = {
{12, 2},
{0, 1},
};
static arc arcs_22_2[2] = {
{22, 1},
{0, 2},
static arc arcs_22_2[1] = {
{12, 3},
};
static state states_22[3] = {
static arc arcs_22_3[1] = {
{0, 3},
};
static state states_22[4] = {
{1, arcs_22_0},
{1, arcs_22_1},
{2, arcs_22_2},
{2, arcs_22_1},
{1, arcs_22_2},
{1, arcs_22_3},
};
static arc arcs_23_0[1] = {
{54, 1},
{12, 1},
};
static arc arcs_23_1[2] = {
{54, 0},
{0, 1},
};
static state states_23[2] = {
{1, arcs_23_0},
{2, arcs_23_1},
};
static arc arcs_24_0[1] = {
{55, 1},
};
static arc arcs_24_1[1] = {
{12, 2},
};
static arc arcs_24_2[2] = {
{22, 1},
{0, 2},
};
static state states_24[3] = {
{1, arcs_24_0},
{1, arcs_24_1},
{2, arcs_24_2},
};
static arc arcs_25_0[1] = {
{56, 1},
};
static arc arcs_23_1[1] = {
{55, 2},
static arc arcs_25_1[1] = {
{57, 2},
};
static arc arcs_23_2[2] = {
{56, 3},
static arc arcs_25_2[2] = {
{58, 3},
{0, 2},
};
static arc arcs_23_3[1] = {
static arc arcs_25_3[1] = {
{21, 4},
};
static arc arcs_23_4[2] = {
static arc arcs_25_4[2] = {
{22, 5},
{0, 4},
};
static arc arcs_23_5[1] = {
static arc arcs_25_5[1] = {
{21, 6},
};
static arc arcs_23_6[1] = {
static arc arcs_25_6[1] = {
{0, 6},
};
static state states_23[7] = {
{1, arcs_23_0},
{1, arcs_23_1},
{2, arcs_23_2},
{1, arcs_23_3},
{2, arcs_23_4},
{1, arcs_23_5},
{1, arcs_23_6},
static state states_25[7] = {
{1, arcs_25_0},
{1, arcs_25_1},
{2, arcs_25_2},
{1, arcs_25_3},
{2, arcs_25_4},
{1, arcs_25_5},
{1, arcs_25_6},
};
static arc arcs_24_0[1] = {
{57, 1},
static arc arcs_26_0[1] = {
{59, 1},
};
static arc arcs_24_1[1] = {
static arc arcs_26_1[1] = {
{21, 2},
};
static arc arcs_24_2[2] = {
static arc arcs_26_2[2] = {
{22, 3},
{0, 2},
};
static arc arcs_24_3[1] = {
static arc arcs_26_3[1] = {
{21, 4},
};
static arc arcs_24_4[1] = {
static arc arcs_26_4[1] = {
{0, 4},
};
static state states_24[5] = {
{1, arcs_24_0},
{1, arcs_24_1},
{2, arcs_24_2},
{1, arcs_24_3},
{1, arcs_24_4},
static state states_26[5] = {
{1, arcs_26_0},
{1, arcs_26_1},
{2, arcs_26_2},
{1, arcs_26_3},
{1, arcs_26_4},
};
static arc arcs_25_0[6] = {
{58, 1},
{59, 1},
static arc arcs_27_0[6] = {
{60, 1},
{61, 1},
{10, 1},
{62, 1},
{63, 1},
{10, 1},
{64, 1},
};
static arc arcs_25_1[1] = {
static arc arcs_27_1[1] = {
{0, 1},
};
static state states_25[2] = {
{6, arcs_25_0},
{1, arcs_25_1},
static state states_27[2] = {
{6, arcs_27_0},
{1, arcs_27_1},
};
static arc arcs_26_0[1] = {
{63, 1},
static arc arcs_28_0[1] = {
{65, 1},
};
static arc arcs_26_1[1] = {
static arc arcs_28_1[1] = {
{21, 2},
};
static arc arcs_26_2[1] = {
static arc arcs_28_2[1] = {
{14, 3},
};
static arc arcs_26_3[1] = {
static arc arcs_28_3[1] = {
{15, 4},
};
static arc arcs_26_4[3] = {
{64, 1},
{65, 5},
static arc arcs_28_4[3] = {
{66, 1},
{67, 5},
{0, 4},
};
static arc arcs_26_5[1] = {
static arc arcs_28_5[1] = {
{14, 6},
};
static arc arcs_26_6[1] = {
static arc arcs_28_6[1] = {
{15, 7},
};
static arc arcs_26_7[1] = {
static arc arcs_28_7[1] = {
{0, 7},
};
static state states_26[8] = {
{1, arcs_26_0},
{1, arcs_26_1},
{1, arcs_26_2},
{1, arcs_26_3},
{3, arcs_26_4},
{1, arcs_26_5},
{1, arcs_26_6},
{1, arcs_26_7},
static state states_28[8] = {
{1, arcs_28_0},
{1, arcs_28_1},
{1, arcs_28_2},
{1, arcs_28_3},
{3, arcs_28_4},
{1, arcs_28_5},
{1, arcs_28_6},
{1, arcs_28_7},
};
static arc arcs_27_0[1] = {
{66, 1},
static arc arcs_29_0[1] = {
{68, 1},
};
static arc arcs_27_1[1] = {
static arc arcs_29_1[1] = {
{21, 2},
};
static arc arcs_27_2[1] = {
static arc arcs_29_2[1] = {
{14, 3},
};
static arc arcs_27_3[1] = {
static arc arcs_29_3[1] = {
{15, 4},
};
static arc arcs_27_4[2] = {
{65, 5},
static arc arcs_29_4[2] = {
{67, 5},
{0, 4},
};
static arc arcs_27_5[1] = {
static arc arcs_29_5[1] = {
{14, 6},
};
static arc arcs_27_6[1] = {
static arc arcs_29_6[1] = {
{15, 7},
};
static arc arcs_27_7[1] = {
static arc arcs_29_7[1] = {
{0, 7},
};
static state states_27[8] = {
{1, arcs_27_0},
{1, arcs_27_1},
{1, arcs_27_2},
{1, arcs_27_3},
{2, arcs_27_4},
{1, arcs_27_5},
{1, arcs_27_6},
{1, arcs_27_7},
static state states_29[8] = {
{1, arcs_29_0},
{1, arcs_29_1},
{1, arcs_29_2},
{1, arcs_29_3},
{2, arcs_29_4},
{1, arcs_29_5},
{1, arcs_29_6},
{1, arcs_29_7},
};
static arc arcs_28_0[1] = {
{67, 1},
static arc arcs_30_0[1] = {
{69, 1},
};
static arc arcs_28_1[1] = {
static arc arcs_30_1[1] = {
{39, 2},
};
static arc arcs_28_2[1] = {
{56, 3},
static arc arcs_30_2[1] = {
{58, 3},
};
static arc arcs_28_3[1] = {
static arc arcs_30_3[1] = {
{9, 4},
};
static arc arcs_28_4[1] = {
static arc arcs_30_4[1] = {
{14, 5},
};
static arc arcs_28_5[1] = {
static arc arcs_30_5[1] = {
{15, 6},
};
static arc arcs_28_6[2] = {
{65, 7},
static arc arcs_30_6[2] = {
{67, 7},
{0, 6},
};
static arc arcs_28_7[1] = {
static arc arcs_30_7[1] = {
{14, 8},
};
static arc arcs_28_8[1] = {
static arc arcs_30_8[1] = {
{15, 9},
};
static arc arcs_28_9[1] = {
static arc arcs_30_9[1] = {
{0, 9},
};
static state states_28[10] = {
{1, arcs_28_0},
{1, arcs_28_1},
{1, arcs_28_2},
{1, arcs_28_3},
{1, arcs_28_4},
{1, arcs_28_5},
{2, arcs_28_6},
{1, arcs_28_7},
{1, arcs_28_8},
{1, arcs_28_9},
static state states_30[10] = {
{1, arcs_30_0},
{1, arcs_30_1},
{1, arcs_30_2},
{1, arcs_30_3},
{1, arcs_30_4},
{1, arcs_30_5},
{2, arcs_30_6},
{1, arcs_30_7},
{1, arcs_30_8},
{1, arcs_30_9},
};
static arc arcs_29_0[1] = {
{68, 1},
static arc arcs_31_0[1] = {
{70, 1},
};
static arc arcs_29_1[1] = {
static arc arcs_31_1[1] = {
{14, 2},
};
static arc arcs_29_2[1] = {
static arc arcs_31_2[1] = {
{15, 3},
};
static arc arcs_29_3[2] = {
{69, 4},
{70, 5},
static arc arcs_31_3[2] = {
{71, 4},
{72, 5},
};
static arc arcs_29_4[1] = {
static arc arcs_31_4[1] = {
{14, 6},
};
static arc arcs_29_5[1] = {
static arc arcs_31_5[1] = {
{14, 7},
};
static arc arcs_29_6[1] = {
static arc arcs_31_6[1] = {
{15, 8},
};
static arc arcs_29_7[1] = {
static arc arcs_31_7[1] = {
{15, 9},
};
static arc arcs_29_8[3] = {
{69, 4},
{65, 5},
static arc arcs_31_8[3] = {
{71, 4},
{67, 5},
{0, 8},
};
static arc arcs_29_9[1] = {
static arc arcs_31_9[1] = {
{0, 9},
};
static state states_29[10] = {
{1, arcs_29_0},
{1, arcs_29_1},
{1, arcs_29_2},
{2, arcs_29_3},
{1, arcs_29_4},
{1, arcs_29_5},
{1, arcs_29_6},
{1, arcs_29_7},
{3, arcs_29_8},
{1, arcs_29_9},
};
static arc arcs_30_0[1] = {
{71, 1},
static state states_31[10] = {
{1, arcs_31_0},
{1, arcs_31_1},
{1, arcs_31_2},
{2, arcs_31_3},
{1, arcs_31_4},
{1, arcs_31_5},
{1, arcs_31_6},
{1, arcs_31_7},
{3, arcs_31_8},
{1, arcs_31_9},
};
static arc arcs_32_0[1] = {
{73, 1},
};
static arc arcs_30_1[2] = {
static arc arcs_32_1[2] = {
{21, 2},
{0, 1},
};
static arc arcs_30_2[2] = {
static arc arcs_32_2[2] = {
{22, 3},
{0, 2},
};
static arc arcs_30_3[1] = {
static arc arcs_32_3[1] = {
{21, 4},
};
static arc arcs_30_4[1] = {
static arc arcs_32_4[1] = {
{0, 4},
};
static state states_30[5] = {
{1, arcs_30_0},
{2, arcs_30_1},
{2, arcs_30_2},
{1, arcs_30_3},
{1, arcs_30_4},
static state states_32[5] = {
{1, arcs_32_0},
{2, arcs_32_1},
{2, arcs_32_2},
{1, arcs_32_3},
{1, arcs_32_4},
};
static arc arcs_31_0[2] = {
static arc arcs_33_0[2] = {
{3, 1},
{2, 2},
};
static arc arcs_31_1[1] = {
static arc arcs_33_1[1] = {
{0, 1},
};
static arc arcs_31_2[1] = {
{72, 3},
static arc arcs_33_2[1] = {
{74, 3},
};
static arc arcs_31_3[1] = {
static arc arcs_33_3[1] = {
{6, 4},
};
static arc arcs_31_4[2] = {
static arc arcs_33_4[2] = {
{6, 4},
{73, 1},
};
static state states_31[5] = {
{2, arcs_31_0},
{1, arcs_31_1},
{1, arcs_31_2},
{1, arcs_31_3},
{2, arcs_31_4},
};
static arc arcs_32_0[2] = {
{74, 1},
{76, 2},
};
static arc arcs_32_1[2] = {
{75, 3},
{0, 1},
};
static arc arcs_32_2[1] = {
{0, 2},
};
static arc arcs_32_3[1] = {
{74, 1},
};
static state states_32[4] = {
{2, arcs_32_0},
{2, arcs_32_1},
{1, arcs_32_2},
{1, arcs_32_3},
};
static arc arcs_33_0[1] = {
{77, 1},
};
static arc arcs_33_1[2] = {
{78, 0},
{0, 1},
{75, 1},
};
static state states_33[2] = {
{1, arcs_33_0},
{2, arcs_33_1},
static state states_33[5] = {
{2, arcs_33_0},
{1, arcs_33_1},
{1, arcs_33_2},
{1, arcs_33_3},
{2, arcs_33_4},
};
static arc arcs_34_0[2] = {
{79, 1},
{80, 2},
{76, 1},
{78, 2},
};
static arc arcs_34_1[1] = {
{77, 2},
static arc arcs_34_1[2] = {
{77, 3},
{0, 1},
};
static arc arcs_34_2[1] = {
{0, 2},
};
static state states_34[3] = {
static arc arcs_34_3[1] = {
{76, 1},
};
static state states_34[4] = {
{2, arcs_34_0},
{1, arcs_34_1},
{2, arcs_34_1},
{1, arcs_34_2},
{1, arcs_34_3},
};
static arc arcs_35_0[1] = {
{55, 1},
{79, 1},
};
static arc arcs_35_1[2] = {
{81, 0},
{80, 0},
{0, 1},
};
static state states_35[2] = {
{1, arcs_35_0},
{2, arcs_35_1},
};
static arc arcs_36_0[10] = {
{82, 1},
{83, 1},
{84, 1},
{85, 1},
{86, 1},
{87, 1},
{88, 1},
{56, 1},
{79, 2},
{89, 3},
static arc arcs_36_0[2] = {
{81, 1},
{82, 2},
};
static arc arcs_36_1[1] = {
{0, 1},
{79, 2},
};
static arc arcs_36_2[1] = {
{56, 1},
};
static arc arcs_36_3[2] = {
{79, 1},
{0, 3},
{0, 2},
};
static state states_36[4] = {
{10, arcs_36_0},
static state states_36[3] = {
{2, arcs_36_0},
{1, arcs_36_1},
{1, arcs_36_2},
{2, arcs_36_3},
};
static arc arcs_37_0[1] = {
{90, 1},
{57, 1},
};
static arc arcs_37_1[2] = {
{91, 0},
{83, 0},
{0, 1},
};
static state states_37[2] = {
{1, arcs_37_0},
{2, arcs_37_1},
};
static arc arcs_38_0[1] = {
{92, 1},
static arc arcs_38_0[10] = {
{84, 1},
{85, 1},
{86, 1},
{87, 1},
{88, 1},
{89, 1},
{90, 1},
{58, 1},
{81, 2},
{91, 3},
};
static arc arcs_38_1[2] = {
{93, 0},
static arc arcs_38_1[1] = {
{0, 1},
};
static state states_38[2] = {
{1, arcs_38_0},
{2, arcs_38_1},
static arc arcs_38_2[1] = {
{58, 1},
};
static arc arcs_38_3[2] = {
{81, 1},
{0, 3},
};
static state states_38[4] = {
{10, arcs_38_0},
{1, arcs_38_1},
{1, arcs_38_2},
{2, arcs_38_3},
};
static arc arcs_39_0[1] = {
{94, 1},
{92, 1},
};
static arc arcs_39_1[2] = {
{95, 0},
{93, 0},
{0, 1},
};
static state states_39[2] = {
......@@ -819,640 +835,666 @@ static state states_39[2] = {
{2, arcs_39_1},
};
static arc arcs_40_0[1] = {
{96, 1},
{94, 1},
};
static arc arcs_40_1[3] = {
{97, 0},
{98, 0},
static arc arcs_40_1[2] = {
{95, 0},
{0, 1},
};
static state states_40[2] = {
{1, arcs_40_0},
{3, arcs_40_1},
{2, arcs_40_1},
};
static arc arcs_41_0[1] = {
{99, 1},
{96, 1},
};
static arc arcs_41_1[3] = {
{100, 0},
{101, 0},
static arc arcs_41_1[2] = {
{97, 0},
{0, 1},
};
static state states_41[2] = {
{1, arcs_41_0},
{3, arcs_41_1},
{2, arcs_41_1},
};
static arc arcs_42_0[1] = {
{102, 1},
{98, 1},
};
static arc arcs_42_1[4] = {
{23, 0},
{103, 0},
{104, 0},
static arc arcs_42_1[3] = {
{99, 0},
{100, 0},
{0, 1},
};
static state states_42[2] = {
{1, arcs_42_0},
{4, arcs_42_1},
{3, arcs_42_1},
};
static arc arcs_43_0[4] = {
{100, 1},
static arc arcs_43_0[1] = {
{101, 1},
{105, 1},
{106, 2},
};
static arc arcs_43_1[1] = {
{102, 2},
};
static arc arcs_43_2[1] = {
{0, 2},
static arc arcs_43_1[3] = {
{102, 0},
{103, 0},
{0, 1},
};
static state states_43[3] = {
{4, arcs_43_0},
{1, arcs_43_1},
{1, arcs_43_2},
static state states_43[2] = {
{1, arcs_43_0},
{3, arcs_43_1},
};
static arc arcs_44_0[1] = {
{104, 1},
};
static arc arcs_44_1[4] = {
{23, 0},
{105, 0},
{106, 0},
{0, 1},
};
static state states_44[2] = {
{1, arcs_44_0},
{4, arcs_44_1},
};
static arc arcs_45_0[4] = {
{102, 1},
{103, 1},
{107, 1},
{108, 2},
};
static arc arcs_45_1[1] = {
{104, 2},
};
static arc arcs_45_2[1] = {
{0, 2},
};
static state states_45[3] = {
{4, arcs_45_0},
{1, arcs_45_1},
{1, arcs_45_2},
};
static arc arcs_46_0[1] = {
{109, 1},
};
static arc arcs_44_1[3] = {
{108, 1},
static arc arcs_46_1[3] = {
{110, 1},
{24, 2},
{0, 1},
};
static arc arcs_44_2[1] = {
{102, 3},
static arc arcs_46_2[1] = {
{104, 3},
};
static arc arcs_44_3[2] = {
static arc arcs_46_3[2] = {
{24, 2},
{0, 3},
};
static state states_44[4] = {
{1, arcs_44_0},
{3, arcs_44_1},
{1, arcs_44_2},
{2, arcs_44_3},
static state states_46[4] = {
{1, arcs_46_0},
{3, arcs_46_1},
{1, arcs_46_2},
{2, arcs_46_3},
};
static arc arcs_45_0[7] = {
static arc arcs_47_0[7] = {
{16, 1},
{109, 2},
{112, 3},
{115, 4},
{111, 2},
{114, 3},
{117, 4},
{12, 5},
{116, 5},
{117, 6},
{118, 5},
{119, 6},
};
static arc arcs_45_1[2] = {
static arc arcs_47_1[2] = {
{9, 7},
{18, 5},
};
static arc arcs_45_2[2] = {
{110, 8},
{111, 5},
static arc arcs_47_2[2] = {
{112, 8},
{113, 5},
};
static arc arcs_45_3[2] = {
{113, 9},
{114, 5},
static arc arcs_47_3[2] = {
{115, 9},
{116, 5},
};
static arc arcs_45_4[1] = {
static arc arcs_47_4[1] = {
{9, 10},
};
static arc arcs_45_5[1] = {
static arc arcs_47_5[1] = {
{0, 5},
};
static arc arcs_45_6[2] = {
{117, 6},
static arc arcs_47_6[2] = {
{119, 6},
{0, 6},
};
static arc arcs_45_7[1] = {
static arc arcs_47_7[1] = {
{18, 5},
};
static arc arcs_45_8[1] = {
{111, 5},
};
static arc arcs_45_9[1] = {
{114, 5},
static arc arcs_47_8[1] = {
{113, 5},
};
static arc arcs_45_10[1] = {
{115, 5},
static arc arcs_47_9[1] = {
{116, 5},
};
static state states_45[11] = {
{7, arcs_45_0},
{2, arcs_45_1},
{2, arcs_45_2},
{2, arcs_45_3},
{1, arcs_45_4},
{1, arcs_45_5},
{2, arcs_45_6},
{1, arcs_45_7},
{1, arcs_45_8},
{1, arcs_45_9},
{1, arcs_45_10},
static arc arcs_47_10[1] = {
{117, 5},
};
static arc arcs_46_0[1] = {
static state states_47[11] = {
{7, arcs_47_0},
{2, arcs_47_1},
{2, arcs_47_2},
{2, arcs_47_3},
{1, arcs_47_4},
{1, arcs_47_5},
{2, arcs_47_6},
{1, arcs_47_7},
{1, arcs_47_8},
{1, arcs_47_9},
{1, arcs_47_10},
};
static arc arcs_48_0[1] = {
{21, 1},
};
static arc arcs_46_1[3] = {
{118, 2},
static arc arcs_48_1[3] = {
{120, 2},
{22, 3},
{0, 1},
};
static arc arcs_46_2[1] = {
static arc arcs_48_2[1] = {
{0, 2},
};
static arc arcs_46_3[2] = {
static arc arcs_48_3[2] = {
{21, 4},
{0, 3},
};
static arc arcs_46_4[2] = {
static arc arcs_48_4[2] = {
{22, 3},
{0, 4},
};
static state states_46[5] = {
{1, arcs_46_0},
{3, arcs_46_1},
{1, arcs_46_2},
{2, arcs_46_3},
{2, arcs_46_4},
static state states_48[5] = {
{1, arcs_48_0},
{3, arcs_48_1},
{1, arcs_48_2},
{2, arcs_48_3},
{2, arcs_48_4},
};
static arc arcs_47_0[1] = {
{119, 1},
static arc arcs_49_0[1] = {
{121, 1},
};
static arc arcs_47_1[2] = {
static arc arcs_49_1[2] = {
{17, 2},
{14, 3},
};
static arc arcs_47_2[1] = {
static arc arcs_49_2[1] = {
{14, 3},
};
static arc arcs_47_3[1] = {
static arc arcs_49_3[1] = {
{21, 4},
};
static arc arcs_47_4[1] = {
static arc arcs_49_4[1] = {
{0, 4},
};
static state states_47[5] = {
{1, arcs_47_0},
{2, arcs_47_1},
{1, arcs_47_2},
{1, arcs_47_3},
{1, arcs_47_4},
static state states_49[5] = {
{1, arcs_49_0},
{2, arcs_49_1},
{1, arcs_49_2},
{1, arcs_49_3},
{1, arcs_49_4},
};
static arc arcs_48_0[3] = {
static arc arcs_50_0[3] = {
{16, 1},
{109, 2},
{52, 3},
{111, 2},
{54, 3},
};
static arc arcs_48_1[2] = {
{120, 4},
static arc arcs_50_1[2] = {
{122, 4},
{18, 5},
};
static arc arcs_48_2[1] = {
{121, 6},
static arc arcs_50_2[1] = {
{123, 6},
};
static arc arcs_48_3[1] = {
static arc arcs_50_3[1] = {
{12, 5},
};
static arc arcs_48_4[1] = {
static arc arcs_50_4[1] = {
{18, 5},
};
static arc arcs_48_5[1] = {
static arc arcs_50_5[1] = {
{0, 5},
};
static arc arcs_48_6[1] = {
{111, 5},
static arc arcs_50_6[1] = {
{113, 5},
};
static state states_48[7] = {
{3, arcs_48_0},
{2, arcs_48_1},
{1, arcs_48_2},
{1, arcs_48_3},
{1, arcs_48_4},
{1, arcs_48_5},
{1, arcs_48_6},
static state states_50[7] = {
{3, arcs_50_0},
{2, arcs_50_1},
{1, arcs_50_2},
{1, arcs_50_3},
{1, arcs_50_4},
{1, arcs_50_5},
{1, arcs_50_6},
};
static arc arcs_49_0[1] = {
{122, 1},
static arc arcs_51_0[1] = {
{124, 1},
};
static arc arcs_49_1[2] = {
static arc arcs_51_1[2] = {
{22, 2},
{0, 1},
};
static arc arcs_49_2[2] = {
{122, 1},
static arc arcs_51_2[2] = {
{124, 1},
{0, 2},
};
static state states_49[3] = {
{1, arcs_49_0},
{2, arcs_49_1},
{2, arcs_49_2},
static state states_51[3] = {
{1, arcs_51_0},
{2, arcs_51_1},
{2, arcs_51_2},
};
static arc arcs_50_0[3] = {
{52, 1},
static arc arcs_52_0[3] = {
{54, 1},
{21, 2},
{14, 3},
};
static arc arcs_50_1[1] = {
{52, 4},
static arc arcs_52_1[1] = {
{54, 4},
};
static arc arcs_50_2[2] = {
static arc arcs_52_2[2] = {
{14, 3},
{0, 2},
};
static arc arcs_50_3[3] = {
static arc arcs_52_3[3] = {
{21, 5},
{123, 6},
{125, 6},
{0, 3},
};
static arc arcs_50_4[1] = {
{52, 6},
static arc arcs_52_4[1] = {
{54, 6},
};
static arc arcs_50_5[2] = {
{123, 6},
static arc arcs_52_5[2] = {
{125, 6},
{0, 5},
};
static arc arcs_50_6[1] = {
static arc arcs_52_6[1] = {
{0, 6},
};
static state states_50[7] = {
{3, arcs_50_0},
{1, arcs_50_1},
{2, arcs_50_2},
{3, arcs_50_3},
{1, arcs_50_4},
{2, arcs_50_5},
{1, arcs_50_6},
static state states_52[7] = {
{3, arcs_52_0},
{1, arcs_52_1},
{2, arcs_52_2},
{3, arcs_52_3},
{1, arcs_52_4},
{2, arcs_52_5},
{1, arcs_52_6},
};
static arc arcs_51_0[1] = {
static arc arcs_53_0[1] = {
{14, 1},
};
static arc arcs_51_1[2] = {
static arc arcs_53_1[2] = {
{21, 2},
{0, 1},
};
static arc arcs_51_2[1] = {
static arc arcs_53_2[1] = {
{0, 2},
};
static state states_51[3] = {
{1, arcs_51_0},
{2, arcs_51_1},
{1, arcs_51_2},
static state states_53[3] = {
{1, arcs_53_0},
{2, arcs_53_1},
{1, arcs_53_2},
};
static arc arcs_52_0[1] = {
{55, 1},
static arc arcs_54_0[1] = {
{57, 1},
};
static arc arcs_52_1[2] = {
static arc arcs_54_1[2] = {
{22, 2},
{0, 1},
};
static arc arcs_52_2[2] = {
{55, 1},
static arc arcs_54_2[2] = {
{57, 1},
{0, 2},
};
static state states_52[3] = {
{1, arcs_52_0},
{2, arcs_52_1},
{2, arcs_52_2},
static state states_54[3] = {
{1, arcs_54_0},
{2, arcs_54_1},
{2, arcs_54_2},
};
static arc arcs_53_0[1] = {
static arc arcs_55_0[1] = {
{21, 1},
};
static arc arcs_53_1[2] = {
static arc arcs_55_1[2] = {
{22, 2},
{0, 1},
};
static arc arcs_53_2[2] = {
static arc arcs_55_2[2] = {
{21, 1},
{0, 2},
};
static state states_53[3] = {
{1, arcs_53_0},
{2, arcs_53_1},
{2, arcs_53_2},
static state states_55[3] = {
{1, arcs_55_0},
{2, arcs_55_1},
{2, arcs_55_2},
};
static arc arcs_54_0[1] = {
static arc arcs_56_0[1] = {
{21, 1},
};
static arc arcs_54_1[1] = {
static arc arcs_56_1[1] = {
{14, 2},
};
static arc arcs_54_2[1] = {
static arc arcs_56_2[1] = {
{21, 3},
};
static arc arcs_54_3[2] = {
static arc arcs_56_3[2] = {
{22, 4},
{0, 3},
};
static arc arcs_54_4[2] = {
static arc arcs_56_4[2] = {
{21, 1},
{0, 4},
};
static state states_54[5] = {
{1, arcs_54_0},
{1, arcs_54_1},
{1, arcs_54_2},
{2, arcs_54_3},
{2, arcs_54_4},
static state states_56[5] = {
{1, arcs_56_0},
{1, arcs_56_1},
{1, arcs_56_2},
{2, arcs_56_3},
{2, arcs_56_4},
};
static arc arcs_55_0[1] = {
{124, 1},
static arc arcs_57_0[1] = {
{126, 1},
};
static arc arcs_55_1[1] = {
static arc arcs_57_1[1] = {
{12, 2},
};
static arc arcs_55_2[2] = {
static arc arcs_57_2[2] = {
{16, 3},
{14, 4},
};
static arc arcs_55_3[1] = {
static arc arcs_57_3[1] = {
{9, 5},
};
static arc arcs_55_4[1] = {
static arc arcs_57_4[1] = {
{15, 6},
};
static arc arcs_55_5[1] = {
static arc arcs_57_5[1] = {
{18, 7},
};
static arc arcs_55_6[1] = {
static arc arcs_57_6[1] = {
{0, 6},
};
static arc arcs_55_7[1] = {
static arc arcs_57_7[1] = {
{14, 4},
};
static state states_55[8] = {
{1, arcs_55_0},
{1, arcs_55_1},
{2, arcs_55_2},
{1, arcs_55_3},
{1, arcs_55_4},
{1, arcs_55_5},
{1, arcs_55_6},
{1, arcs_55_7},
};
static arc arcs_56_0[3] = {
{125, 1},
static state states_57[8] = {
{1, arcs_57_0},
{1, arcs_57_1},
{2, arcs_57_2},
{1, arcs_57_3},
{1, arcs_57_4},
{1, arcs_57_5},
{1, arcs_57_6},
{1, arcs_57_7},
};
static arc arcs_58_0[3] = {
{127, 1},
{23, 2},
{24, 3},
};
static arc arcs_56_1[2] = {
static arc arcs_58_1[2] = {
{22, 4},
{0, 1},
};
static arc arcs_56_2[1] = {
static arc arcs_58_2[1] = {
{21, 5},
};
static arc arcs_56_3[1] = {
static arc arcs_58_3[1] = {
{21, 6},
};
static arc arcs_56_4[4] = {
{125, 1},
static arc arcs_58_4[4] = {
{127, 1},
{23, 2},
{24, 3},
{0, 4},
};
static arc arcs_56_5[2] = {
static arc arcs_58_5[2] = {
{22, 7},
{0, 5},
};
static arc arcs_56_6[1] = {
static arc arcs_58_6[1] = {
{0, 6},
};
static arc arcs_56_7[1] = {
static arc arcs_58_7[1] = {
{24, 3},
};
static state states_56[8] = {
{3, arcs_56_0},
{2, arcs_56_1},
{1, arcs_56_2},
{1, arcs_56_3},
{4, arcs_56_4},
{2, arcs_56_5},
{1, arcs_56_6},
{1, arcs_56_7},
static state states_58[8] = {
{3, arcs_58_0},
{2, arcs_58_1},
{1, arcs_58_2},
{1, arcs_58_3},
{4, arcs_58_4},
{2, arcs_58_5},
{1, arcs_58_6},
{1, arcs_58_7},
};
static arc arcs_57_0[1] = {
static arc arcs_59_0[1] = {
{21, 1},
};
static arc arcs_57_1[2] = {
static arc arcs_59_1[2] = {
{20, 2},
{0, 1},
};
static arc arcs_57_2[1] = {
static arc arcs_59_2[1] = {
{21, 3},
};
static arc arcs_57_3[1] = {
static arc arcs_59_3[1] = {
{0, 3},
};
static state states_57[4] = {
{1, arcs_57_0},
{2, arcs_57_1},
{1, arcs_57_2},
{1, arcs_57_3},
static state states_59[4] = {
{1, arcs_59_0},
{2, arcs_59_1},
{1, arcs_59_2},
{1, arcs_59_3},
};
static arc arcs_58_0[2] = {
{126, 1},
{127, 1},
static arc arcs_60_0[2] = {
{128, 1},
{129, 1},
};
static arc arcs_58_1[1] = {
static arc arcs_60_1[1] = {
{0, 1},
};
static state states_58[2] = {
{2, arcs_58_0},
{1, arcs_58_1},
static state states_60[2] = {
{2, arcs_60_0},
{1, arcs_60_1},
};
static arc arcs_59_0[1] = {
{67, 1},
static arc arcs_61_0[1] = {
{69, 1},
};
static arc arcs_59_1[1] = {
static arc arcs_61_1[1] = {
{39, 2},
};
static arc arcs_59_2[1] = {
{56, 3},
static arc arcs_61_2[1] = {
{58, 3},
};
static arc arcs_59_3[1] = {
static arc arcs_61_3[1] = {
{9, 4},
};
static arc arcs_59_4[2] = {
{118, 5},
static arc arcs_61_4[2] = {
{120, 5},
{0, 4},
};
static arc arcs_59_5[1] = {
static arc arcs_61_5[1] = {
{0, 5},
};
static state states_59[6] = {
{1, arcs_59_0},
{1, arcs_59_1},
{1, arcs_59_2},
{1, arcs_59_3},
{2, arcs_59_4},
{1, arcs_59_5},
static state states_61[6] = {
{1, arcs_61_0},
{1, arcs_61_1},
{1, arcs_61_2},
{1, arcs_61_3},
{2, arcs_61_4},
{1, arcs_61_5},
};
static arc arcs_60_0[1] = {
{63, 1},
static arc arcs_62_0[1] = {
{65, 1},
};
static arc arcs_60_1[1] = {
static arc arcs_62_1[1] = {
{21, 2},
};
static arc arcs_60_2[2] = {
{118, 3},
static arc arcs_62_2[2] = {
{120, 3},
{0, 2},
};
static arc arcs_60_3[1] = {
static arc arcs_62_3[1] = {
{0, 3},
};
static state states_60[4] = {
{1, arcs_60_0},
{1, arcs_60_1},
{2, arcs_60_2},
{1, arcs_60_3},
static state states_62[4] = {
{1, arcs_62_0},
{1, arcs_62_1},
{2, arcs_62_2},
{1, arcs_62_3},
};
static dfa dfas[61] = {
static dfa dfas[63] = {
{256, "single_input", 0, 3, states_0,
"\004\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
"\004\030\001\000\140\341\213\011\162\000\002\000\300\210\344\102\000"},
{257, "file_input", 0, 2, states_1,
"\204\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
"\204\030\001\000\140\341\213\011\162\000\002\000\300\210\344\102\000"},
{258, "eval_input", 0, 3, states_2,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{259, "funcdef", 0, 6, states_3,
"\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
"\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{260, "parameters", 0, 4, states_4,
"\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
"\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{261, "varargslist", 0, 10, states_5,
"\000\020\201\001\000\000\000\000\000\000\000\000\000\000\000\000"},
"\000\020\201\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{262, "fpdef", 0, 4, states_6,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{263, "fplist", 0, 3, states_7,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{264, "stmt", 0, 2, states_8,
"\000\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
"\000\030\001\000\140\341\213\011\162\000\002\000\300\210\344\102\000"},
{265, "simple_stmt", 0, 4, states_9,
"\000\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
"\000\020\001\000\140\341\213\011\000\000\002\000\300\210\344\002\000"},
{266, "small_stmt", 0, 2, states_10,
"\000\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
"\000\020\001\000\140\341\213\011\000\000\002\000\300\210\344\002\000"},
{267, "expr_stmt", 0, 2, states_11,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{268, "print_stmt", 0, 3, states_12,
"\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000"},
{269, "del_stmt", 0, 3, states_13,
"\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000"},
{270, "pass_stmt", 0, 2, states_14,
"\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000"},
{271, "flow_stmt", 0, 2, states_15,
"\000\000\000\000\000\340\001\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\340\001\000\000\000\000\000\000\000\000\000\000"},
{272, "break_stmt", 0, 2, states_16,
"\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
{273, "continue_stmt", 0, 2, states_17,
"\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
{274, "return_stmt", 0, 3, states_18,
"\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000"},
{275, "raise_stmt", 0, 7, states_19,
"\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"},
"\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"},
{276, "import_stmt", 0, 9, states_20,
"\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000"},
{277, "dotted_name", 0, 2, states_21,
"\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{278, "global_stmt", 0, 3, states_22,
"\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"},
{279, "exec_stmt", 0, 7, states_23,
"\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"},
{280, "assert_stmt", 0, 5, states_24,
"\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
{281, "compound_stmt", 0, 2, states_25,
"\000\010\000\000\000\000\000\200\034\000\000\000\000\000\000\020"},
{282, "if_stmt", 0, 8, states_26,
"\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"},
{283, "while_stmt", 0, 8, states_27,
"\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"},
{284, "for_stmt", 0, 10, states_28,
"\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000"},
{285, "try_stmt", 0, 10, states_29,
"\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000"},
{286, "except_clause", 0, 5, states_30,
"\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
{287, "suite", 0, 5, states_31,
"\004\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
{288, "test", 0, 4, states_32,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
{289, "and_test", 0, 2, states_33,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\071\000"},
{290, "not_test", 0, 3, states_34,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\071\000"},
{291, "comparison", 0, 2, states_35,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{292, "comp_op", 0, 4, states_36,
"\000\000\000\000\000\000\000\001\000\200\374\003\000\000\000\000"},
{293, "expr", 0, 2, states_37,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{294, "xor_expr", 0, 2, states_38,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{295, "and_expr", 0, 2, states_39,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{296, "shift_expr", 0, 2, states_40,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{297, "arith_expr", 0, 2, states_41,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{298, "term", 0, 2, states_42,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{299, "factor", 0, 3, states_43,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{300, "power", 0, 4, states_44,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\040\071\000"},
{301, "atom", 0, 11, states_45,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\040\071\000"},
{302, "listmaker", 0, 5, states_46,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
{303, "lambdef", 0, 5, states_47,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000"},
{304, "trailer", 0, 7, states_48,
"\000\000\001\000\000\000\020\000\000\000\000\000\000\040\000\000"},
{305, "subscriptlist", 0, 3, states_49,
"\000\120\001\000\000\000\020\000\000\200\000\000\060\042\271\000"},
{306, "subscript", 0, 7, states_50,
"\000\120\001\000\000\000\020\000\000\200\000\000\060\042\271\000"},
{307, "sliceop", 0, 3, states_51,
"\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{308, "exprlist", 0, 3, states_52,
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
{309, "testlist", 0, 3, states_53,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
{310, "dictmaker", 0, 5, states_54,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
{311, "classdef", 0, 8, states_55,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020"},
{312, "arglist", 0, 8, states_56,
"\000\020\201\001\000\000\000\000\000\200\000\000\060\042\271\000"},
{313, "argument", 0, 4, states_57,
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
{314, "list_iter", 0, 2, states_58,
"\000\000\000\000\000\000\000\200\010\000\000\000\000\000\000\000"},
{315, "list_for", 0, 6, states_59,
"\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000"},
{316, "list_if", 0, 4, states_60,
"\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"},
};
static label labels[128] = {
"\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000"},
{277, "import_as_name", 0, 4, states_21,
"\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{278, "dotted_as_name", 0, 4, states_22,
"\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{279, "dotted_name", 0, 2, states_23,
"\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{280, "global_stmt", 0, 3, states_24,
"\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
{281, "exec_stmt", 0, 7, states_25,
"\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"},
{282, "assert_stmt", 0, 5, states_26,
"\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
{283, "compound_stmt", 0, 2, states_27,
"\000\010\000\000\000\000\000\000\162\000\000\000\000\000\000\100\000"},
{284, "if_stmt", 0, 8, states_28,
"\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
{285, "while_stmt", 0, 8, states_29,
"\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000"},
{286, "for_stmt", 0, 10, states_30,
"\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
{287, "try_stmt", 0, 10, states_31,
"\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000"},
{288, "except_clause", 0, 5, states_32,
"\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000"},
{289, "suite", 0, 5, states_33,
"\004\020\001\000\140\341\213\011\000\000\002\000\300\210\344\002\000"},
{290, "test", 0, 4, states_34,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{291, "and_test", 0, 2, states_35,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\000\000"},
{292, "not_test", 0, 3, states_36,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\000\000"},
{293, "comparison", 0, 2, states_37,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{294, "comp_op", 0, 4, states_38,
"\000\000\000\000\000\000\000\004\000\000\362\017\000\000\000\000\000"},
{295, "expr", 0, 2, states_39,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{296, "xor_expr", 0, 2, states_40,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{297, "and_expr", 0, 2, states_41,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{298, "shift_expr", 0, 2, states_42,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{299, "arith_expr", 0, 2, states_43,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{300, "term", 0, 2, states_44,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{301, "factor", 0, 3, states_45,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{302, "power", 0, 4, states_46,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\200\344\000\000"},
{303, "atom", 0, 11, states_47,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\200\344\000\000"},
{304, "listmaker", 0, 5, states_48,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{305, "lambdef", 0, 5, states_49,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"},
{306, "trailer", 0, 7, states_50,
"\000\000\001\000\000\000\100\000\000\000\000\000\000\200\000\000\000"},
{307, "subscriptlist", 0, 3, states_51,
"\000\120\001\000\000\000\100\000\000\000\002\000\300\210\344\002\000"},
{308, "subscript", 0, 7, states_52,
"\000\120\001\000\000\000\100\000\000\000\002\000\300\210\344\002\000"},
{309, "sliceop", 0, 3, states_53,
"\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
{310, "exprlist", 0, 3, states_54,
"\000\020\001\000\000\000\000\000\000\000\000\000\300\210\344\000\000"},
{311, "testlist", 0, 3, states_55,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{312, "dictmaker", 0, 5, states_56,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{313, "classdef", 0, 8, states_57,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000"},
{314, "arglist", 0, 8, states_58,
"\000\020\201\001\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{315, "argument", 0, 4, states_59,
"\000\020\001\000\000\000\000\000\000\000\002\000\300\210\344\002\000"},
{316, "list_iter", 0, 2, states_60,
"\000\000\000\000\000\000\000\000\042\000\000\000\000\000\000\000\000"},
{317, "list_for", 0, 6, states_61,
"\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
{318, "list_if", 0, 4, states_62,
"\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
};
static label labels[130] = {
{0, "EMPTY"},
{256, 0},
{4, 0},
{265, 0},
{281, 0},
{283, 0},
{257, 0},
{264, 0},
{0, 0},
{258, 0},
{309, 0},
{311, 0},
{259, 0},
{1, "def"},
{1, 0},
{260, 0},
{11, 0},
{287, 0},
{289, 0},
{7, 0},
{261, 0},
{8, 0},
{262, 0},
{22, 0},
{288, 0},
{290, 0},
{12, 0},
{16, 0},
{36, 0},
......@@ -1465,12 +1507,12 @@ static label labels[128] = {
{270, 0},
{271, 0},
{276, 0},
{278, 0},
{279, 0},
{280, 0},
{281, 0},
{282, 0},
{1, "print"},
{1, "del"},
{308, 0},
{310, 0},
{1, "pass"},
{272, 0},
{273, 0},
......@@ -1481,38 +1523,40 @@ static label labels[128] = {
{1, "return"},
{1, "raise"},
{1, "import"},
{277, 0},
{278, 0},
{1, "from"},
{279, 0},
{277, 0},
{23, 0},
{1, "global"},
{1, "exec"},
{293, 0},
{295, 0},
{1, "in"},
{1, "assert"},
{282, 0},
{283, 0},
{284, 0},
{285, 0},
{311, 0},
{286, 0},
{287, 0},
{313, 0},
{1, "if"},
{1, "elif"},
{1, "else"},
{1, "while"},
{1, "for"},
{1, "try"},
{286, 0},
{288, 0},
{1, "finally"},
{1, "except"},
{5, 0},
{6, 0},
{289, 0},
{291, 0},
{1, "or"},
{303, 0},
{290, 0},
{305, 0},
{292, 0},
{1, "and"},
{1, "not"},
{291, 0},
{292, 0},
{293, 0},
{294, 0},
{20, 0},
{21, 0},
{28, 0},
......@@ -1521,48 +1565,48 @@ static label labels[128] = {
{29, 0},
{29, 0},
{1, "is"},
{294, 0},
{296, 0},
{18, 0},
{295, 0},
{297, 0},
{33, 0},
{296, 0},
{298, 0},
{19, 0},
{297, 0},
{299, 0},
{34, 0},
{35, 0},
{298, 0},
{300, 0},
{14, 0},
{15, 0},
{299, 0},
{301, 0},
{17, 0},
{24, 0},
{32, 0},
{300, 0},
{301, 0},
{304, 0},
{9, 0},
{302, 0},
{303, 0},
{306, 0},
{9, 0},
{304, 0},
{10, 0},
{26, 0},
{310, 0},
{312, 0},
{27, 0},
{25, 0},
{2, 0},
{3, 0},
{314, 0},
{316, 0},
{1, "lambda"},
{312, 0},
{305, 0},
{306, 0},
{314, 0},
{307, 0},
{308, 0},
{309, 0},
{1, "class"},
{313, 0},
{315, 0},
{316, 0},
{317, 0},
{318, 0},
};
grammar _PyParser_Grammar = {
61,
63,
dfas,
{128, labels},
{130, labels},
256
};
......@@ -66,7 +66,7 @@ extern time_t PyOS_GetLastModificationTime(char *, FILE *);
/* XXX Perhaps the magic number should be frozen and a version field
added to the .pyc file header? */
/* New way to come up with the magic number: (YEAR-1995), MONTH, DAY */
#define MAGIC (50811 | ((long)'\r'<<16) | ((long)'\n'<<24))
#define MAGIC (50815 | ((long)'\r'<<16) | ((long)'\n'<<24))
/* Magic word as global; note that _PyImport_Init() can change the
value of this global to accommodate for alterations of how the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment