]> granicus.if.org Git - python/commitdiff
Apply SF patch #101135, adding 'import module as m' and 'from module import
authorThomas Wouters <thomas@python.org>
Thu, 17 Aug 2000 22:55:00 +0000 (22:55 +0000)
committerThomas Wouters <thomas@python.org>
Thu, 17 Aug 2000 22:55:00 +0000 (22:55 +0000)
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.

12 files changed:
Doc/lib/libdis.tex
Doc/ref/ref6.tex
Grammar/Grammar
Include/graminit.h
Include/opcode.h
Lib/dis.py
Lib/test/output/test_pkg
Lib/test/test_pkg.py
Python/ceval.c
Python/compile.c
Python/graminit.c
Python/import.c

index e80515c9caf73b08f7aebdfe072b2cc854ddfe1b..e6d3c774be6f56fb57de5a4e36771f6623c62bf8 100644 (file)
@@ -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}
index dc50c274f41b29ebb2bfb26f845524561f1e1f98..008cf1c436e21537a261ab9d56498823e9a896a0 100644 (file)
@@ -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}
 
index 872ec81b6d5d5f0e4e1b724ac99e86ee355302e2..02e2edd0ced5ee303de4ae3fb58eabe1af78137f 100644 (file)
@@ -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)*
index 8bb17504bcaf54b67cbaf39db72e38cd57c95344..e0f2c2a39591d7a0eec1acb32829ae7e1d62ea2c 100644 (file)
 #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
index 78505b721d419003d3dab1ffd89bd8a24c269ac4..1bd89ee876de8bd3d431bab8b3ffbbf8fa2847a4 100644 (file)
@@ -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
index 3309357e292a1e6465c7897c2ca2a8dd3122050e..fce39f275b0a8214c042c6fb78e22c469ca74cb9 100644 (file)
@@ -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)
index 4cb503eb7cc53a73840dd7ce84bc9b152fe01807..4e67f8cf81d72781436dcec9a876d2ac6d602e74 100644 (file)
@@ -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
index fd226126449acd660fc91549b5c651b0ab29b9d2..a99da353c78a55d440c8103bbe2ce3f2287ce053 100644 (file)
@@ -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
 """),
 
 ]
index 40b5738774923d495f0ac4c1ecce914eb00ad78f..af28cdca874c853b8103fb3bebecb6c7ec987ae3 100644 (file)
@@ -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;
 }
 
index 706564780d522a97247fe40f1c3762cc6325ad5c..e18f627dd83fff555d0e3f8a66f275db35bba3cc 100644 (file)
@@ -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;
        
index 82b01bca278ed5e30921554a6fd1c4ac660f457d..d5cc2a0ecafe12791ecb768b7e2dc0f0ee60abb7 100644 (file)
@@ -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
 };
index 9b3094287e65dc66afc58fae1113904a2c5943ba..00250e98b675b238ef89d614f544fd5592a9876d 100644 (file)
@@ -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