* bltinmodule.c: removed exec() built-in function.
* Grammar: add exec statement; allow testlist in expr statement.
* ceval.c, compile.c, opcode.h: support exec statement;
  avoid optimizing locals when it is used
* fileobject.{c,h}: add getfilename() internal function.
diff --git a/Grammar/Grammar b/Grammar/Grammar
index 430b791..1ba6b5c 100644
--- a/Grammar/Grammar
+++ b/Grammar/Grammar
@@ -2,6 +2,10 @@
 
 # Change log:
 
+# 18-Oct-93:
+#	Use testlist instead of exprlist in expr_stmt
+#	Add exec statement
+
 # 19-May-93:
 #	Add access statement
 
@@ -87,8 +91,8 @@
 
 stmt: simple_stmt | compound_stmt
 simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
-small_stmt: expr_stmt | print_stmt  | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | access_stmt
-expr_stmt: (exprlist '=')* exprlist
+small_stmt: expr_stmt | print_stmt  | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | access_stmt | exec_stmt
+expr_stmt: (testlist '=')* testlist
 # For assignments, additional restrictions enforced by the interpreter
 print_stmt: 'print' (test ',')* [test]
 del_stmt: 'del' exprlist
@@ -104,6 +108,7 @@
 accesstype: NAME+
 # accesstype should be ('public' | 'protected' | 'private') ['read'] ['write']
 # but can't be because that would create undesirable reserved words!
+exec_stmt: 'exec' expr ['in' expr [',' expr]]
 
 compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
 if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
diff --git a/Include/fileobject.h b/Include/fileobject.h
index 14c345f..00e4ca9 100644
--- a/Include/fileobject.h
+++ b/Include/fileobject.h
@@ -38,6 +38,7 @@
 extern object *newopenfileobject
 	PROTO((FILE *, char *, char *, int (*)FPROTO((FILE *))));
 extern FILE *getfilefile PROTO((object *));
+extern object *getfilename PROTO((object *));
 extern object *filegetline PROTO((object *, int));
 
 #ifdef __cplusplus
diff --git a/Include/graminit.h b/Include/graminit.h
index 0ba02a6..288e333 100644
--- a/Include/graminit.h
+++ b/Include/graminit.h
@@ -23,29 +23,30 @@
 #define global_stmt 278
 #define access_stmt 279
 #define accesstype 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 atom 300
-#define trailer 301
-#define subscript 302
-#define exprlist 303
-#define testlist 304
-#define dictmaker 305
-#define classdef 306
+#define exec_stmt 281
+#define compound_stmt 282
+#define if_stmt 283
+#define while_stmt 284
+#define for_stmt 285
+#define try_stmt 286
+#define except_clause 287
+#define suite 288
+#define test 289
+#define and_test 290
+#define not_test 291
+#define comparison 292
+#define comp_op 293
+#define expr 294
+#define xor_expr 295
+#define and_expr 296
+#define shift_expr 297
+#define arith_expr 298
+#define term 299
+#define factor 300
+#define atom 301
+#define trailer 302
+#define subscript 303
+#define exprlist 304
+#define testlist 305
+#define dictmaker 306
+#define classdef 307
diff --git a/Include/opcode.h b/Include/opcode.h
index b53b44d..53ce333 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -78,6 +78,8 @@
 #define RAISE_EXCEPTION	81
 #define LOAD_LOCALS	82
 #define RETURN_VALUE	83
+#define LOAD_GLOBALS	84
+#define EXEC_STMT	85
 
 #define BUILD_FUNCTION	86
 #define POP_BLOCK	87
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 99cdba2..b981bb8 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -52,6 +52,16 @@
 }
 
 object *
+getfilename(f)
+	object *f;
+{
+	if (f == NULL || !is_fileobject(f))
+		return NULL;
+	else
+		return ((fileobject *)f)->f_name;
+}
+
+object *
 newopenfileobject(fp, name, mode, close)
 	FILE *fp;
 	char *name;
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index dc65ffb..3ba8f91 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -233,14 +233,6 @@
 }
 
 static object *
-builtin_exec(self, v)
-	object *self;
-	object *v;
-{
-	return exec_eval(v, file_input);
-}
-
-static object *
 builtin_execfile(self, v)
 	object *self;
 	object *v;
@@ -755,7 +747,6 @@
 	{"dir",		builtin_dir},
 	{"divmod",	builtin_divmod},
 	{"eval",	builtin_eval},
-	{"exec",	builtin_exec},
 	{"execfile",	builtin_execfile},
 	{"float",	builtin_float},
 	{"getattr",	builtin_getattr},
diff --git a/Python/ceval.c b/Python/ceval.c
index b8d6de2..071d664 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -35,6 +35,8 @@
 #include "opcode.h"
 #include "bltinmodule.h"
 #include "traceback.h"
+#include "graminit.h"
+#include "pythonrun.h"
 
 /* Turn this on if your compiler chokes on the big switch: */
 /* #define CASE_TOO_BIG 1  	/**/
@@ -91,6 +93,7 @@
 static void locals_2_fast PROTO((frameobject *, int));
 static void fast_2_locals PROTO((frameobject *));
 static int access_statement PROTO((object *, object *, frameobject *));
+static int exec_statement PROTO((object *, object *, object *));
 
 
 /* Pointer to current frame, used to link new frames to */
@@ -712,6 +715,22 @@
 			retval = POP();
 			why = WHY_RETURN;
 			break;
+
+		case LOAD_GLOBALS:
+			v = f->f_locals;
+			INCREF(v);
+			PUSH(v);
+			break;
+
+		case EXEC_STMT:
+			w = POP();
+			v = POP();
+			u = POP();
+			err = exec_statement(u, v, w);
+			DECREF(u);
+			DECREF(v);
+			DECREF(w);
+			break;
 		
 		case BUILD_FUNCTION:
 			v = POP();
@@ -2489,3 +2508,62 @@
 	}
 	return ret;
 }
+
+static int
+exec_statement(prog, globals, locals)
+	object *prog;
+	object *globals;
+	object *locals;
+{
+	char *s;
+	int n;
+
+	if (is_tupleobject(prog) && globals == None && locals == None &&
+	    ((n = gettuplesize(prog)) == 2 || n == 3)) {
+		/* Backward compatibility hack */
+		globals = gettupleitem(prog, 1);
+		if (n == 3)
+			locals = gettupleitem(prog, 2);
+		prog = gettupleitem(prog, 0);
+	}
+	if (globals == None) {
+		globals = getglobals();
+		if (locals == None)
+			locals = getlocals();
+	}
+	else if (locals == None)
+		locals = globals;
+	if (!is_stringobject(prog) &&
+	    !is_codeobject(prog) &&
+	    !is_fileobject(prog)) {
+		err_setstr(TypeError,
+			   "exec 1st arg must be string, code or file object");
+		return -1;
+	}
+	if (!is_dictobject(globals) || !is_dictobject(locals)) {
+		err_setstr(TypeError,
+		    "exec 2nd/3rd args must be dict or None");
+		return -1;
+	}
+	if (is_codeobject(prog)) {
+		if (eval_code((codeobject *) prog, globals, locals,
+				 (object *)NULL, (object *)NULL) == NULL)
+			return -1;
+		return 0;
+	}
+	if (is_fileobject(prog)) {
+		FILE *fp = getfilefile(prog);
+		char *name = getstringvalue(getfilename(prog));
+		if (run_file(fp, name, file_input, globals, locals) == NULL)
+			return -1;
+		return 0;
+	}
+	s = getstringvalue(prog);
+	if (strlen(s) != getstringsize(prog)) {
+		err_setstr(ValueError, "embedded '\\0' in exec string");
+		return -1;
+	}
+	if (run_string(s, file_input, globals, locals) == NULL)
+		return -1;
+	return 0;
+}
diff --git a/Python/compile.c b/Python/compile.c
index 0eb06cb..2a1a2b4 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1305,7 +1305,7 @@
 	struct compiling *c;
 	node *n;
 {
-	REQ(n, expr_stmt); /* exprlist ('=' exprlist)* */
+	REQ(n, expr_stmt); /* testlist ('=' testlist)* */
 	com_node(c, CHILD(n, NCH(n)-1));
 	if (NCH(n) == 1) {
 		com_addbyte(c, PRINT_EXPR);
@@ -1467,6 +1467,25 @@
 }
 
 static void
+com_exec_stmt(c, n)
+	struct compiling *c;
+	node *n;
+{
+	REQ(n, exec_stmt);
+	/* exec_stmt: 'exec' expr ['in' expr [',' expr]] */
+	com_node(c, CHILD(n, 1));
+	if (NCH(n) >= 4)
+		com_node(c, CHILD(n, 3));
+	else
+		com_addoparg(c, LOAD_CONST, com_addconst(c, None));
+	if (NCH(n) >= 6)
+		com_node(c, CHILD(n, 5));
+	else
+		com_addbyte(c, DUP_TOP);
+	com_addbyte(c, EXEC_STMT);
+}
+
+static void
 com_if_stmt(c, n)
 	struct compiling *c;
 	node *n;
@@ -1909,6 +1928,9 @@
 	case access_stmt:
 		com_access_stmt(c, n);
 		break;
+	case exec_stmt:
+		com_exec_stmt(c, n);
+		break;
 	case if_stmt:
 		com_if_stmt(c, n);
 		break;
@@ -2183,6 +2205,8 @@
 		opcode = NEXTOP();
 		if (opcode == STOP_CODE)
 			break;
+		if (opcode == EXEC_STMT)
+			goto end; /* Don't optimize if exec present */
 		if (HAS_ARG(opcode))
 			oparg = NEXTARG();
 		if (opcode == STORE_NAME || opcode == DELETE_NAME ||
diff --git a/Python/graminit.c b/Python/graminit.c
index 3b78d0c..bce702d 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -194,7 +194,7 @@
 	{2, arcs_10_2},
 	{1, arcs_10_3},
 };
-static arc arcs_11_0[8] = {
+static arc arcs_11_0[9] = {
 	{26, 1},
 	{27, 1},
 	{28, 1},
@@ -203,16 +203,17 @@
 	{31, 1},
 	{32, 1},
 	{33, 1},
+	{34, 1},
 };
 static arc arcs_11_1[1] = {
 	{0, 1},
 };
 static state states_11[2] = {
-	{8, arcs_11_0},
+	{9, arcs_11_0},
 	{1, arcs_11_1},
 };
 static arc arcs_12_0[1] = {
-	{34, 1},
+	{9, 1},
 };
 static arc arcs_12_1[2] = {
 	{35, 0},
@@ -242,7 +243,7 @@
 	{38, 1},
 };
 static arc arcs_14_1[1] = {
-	{34, 2},
+	{39, 2},
 };
 static arc arcs_14_2[1] = {
 	{0, 2},
@@ -253,7 +254,7 @@
 	{1, arcs_14_2},
 };
 static arc arcs_15_0[1] = {
-	{39, 1},
+	{40, 1},
 };
 static arc arcs_15_1[1] = {
 	{0, 1},
@@ -263,10 +264,10 @@
 	{1, arcs_15_1},
 };
 static arc arcs_16_0[4] = {
-	{40, 1},
 	{41, 1},
 	{42, 1},
 	{43, 1},
+	{44, 1},
 };
 static arc arcs_16_1[1] = {
 	{0, 1},
@@ -276,7 +277,7 @@
 	{1, arcs_16_1},
 };
 static arc arcs_17_0[1] = {
-	{44, 1},
+	{45, 1},
 };
 static arc arcs_17_1[1] = {
 	{0, 1},
@@ -286,7 +287,7 @@
 	{1, arcs_17_1},
 };
 static arc arcs_18_0[1] = {
-	{45, 1},
+	{46, 1},
 };
 static arc arcs_18_1[1] = {
 	{0, 1},
@@ -296,7 +297,7 @@
 	{1, arcs_18_1},
 };
 static arc arcs_19_0[1] = {
-	{46, 1},
+	{47, 1},
 };
 static arc arcs_19_1[2] = {
 	{9, 2},
@@ -311,7 +312,7 @@
 	{1, arcs_19_2},
 };
 static arc arcs_20_0[1] = {
-	{47, 1},
+	{48, 1},
 };
 static arc arcs_20_1[1] = {
 	{37, 2},
@@ -334,8 +335,8 @@
 	{1, arcs_20_4},
 };
 static arc arcs_21_0[2] = {
-	{48, 1},
-	{49, 2},
+	{49, 1},
+	{50, 2},
 };
 static arc arcs_21_1[1] = {
 	{13, 3},
@@ -348,7 +349,7 @@
 	{0, 3},
 };
 static arc arcs_21_4[1] = {
-	{48, 5},
+	{49, 5},
 };
 static arc arcs_21_5[2] = {
 	{22, 6},
@@ -376,7 +377,7 @@
 	{1, arcs_21_8},
 };
 static arc arcs_22_0[1] = {
-	{50, 1},
+	{51, 1},
 };
 static arc arcs_22_1[1] = {
 	{13, 2},
@@ -391,7 +392,7 @@
 	{2, arcs_22_2},
 };
 static arc arcs_23_0[1] = {
-	{51, 1},
+	{52, 1},
 };
 static arc arcs_23_1[2] = {
 	{22, 2},
@@ -405,7 +406,7 @@
 	{15, 4},
 };
 static arc arcs_23_4[1] = {
-	{52, 6},
+	{53, 6},
 };
 static arc arcs_23_5[1] = {
 	{13, 3},
@@ -434,56 +435,52 @@
 	{1, arcs_24_0},
 	{2, arcs_24_1},
 };
-static arc arcs_25_0[6] = {
-	{53, 1},
+static arc arcs_25_0[1] = {
 	{54, 1},
-	{55, 1},
-	{56, 1},
-	{11, 1},
-	{57, 1},
 };
 static arc arcs_25_1[1] = {
-	{0, 1},
-};
-static state states_25[2] = {
-	{6, arcs_25_0},
-	{1, arcs_25_1},
-};
-static arc arcs_26_0[1] = {
-	{58, 1},
-};
-static arc arcs_26_1[1] = {
 	{37, 2},
 };
-static arc arcs_26_2[1] = {
-	{15, 3},
+static arc arcs_25_2[2] = {
+	{55, 3},
+	{0, 2},
 };
-static arc arcs_26_3[1] = {
-	{16, 4},
+static arc arcs_25_3[1] = {
+	{37, 4},
 };
-static arc arcs_26_4[3] = {
-	{59, 1},
-	{60, 5},
+static arc arcs_25_4[2] = {
+	{21, 5},
 	{0, 4},
 };
-static arc arcs_26_5[1] = {
-	{15, 6},
+static arc arcs_25_5[1] = {
+	{37, 6},
 };
-static arc arcs_26_6[1] = {
-	{16, 7},
+static arc arcs_25_6[1] = {
+	{0, 6},
 };
-static arc arcs_26_7[1] = {
-	{0, 7},
+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 state states_26[8] = {
-	{1, arcs_26_0},
+static arc arcs_26_0[6] = {
+	{56, 1},
+	{57, 1},
+	{58, 1},
+	{59, 1},
+	{11, 1},
+	{60, 1},
+};
+static arc arcs_26_1[1] = {
+	{0, 1},
+};
+static state states_26[2] = {
+	{6, 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 arc arcs_27_0[1] = {
 	{61, 1},
@@ -497,8 +494,9 @@
 static arc arcs_27_3[1] = {
 	{16, 4},
 };
-static arc arcs_27_4[2] = {
-	{60, 5},
+static arc arcs_27_4[3] = {
+	{62, 1},
+	{63, 5},
 	{0, 4},
 };
 static arc arcs_27_5[1] = {
@@ -515,82 +513,73 @@
 	{1, arcs_27_1},
 	{1, arcs_27_2},
 	{1, arcs_27_3},
-	{2, arcs_27_4},
+	{3, arcs_27_4},
 	{1, arcs_27_5},
 	{1, arcs_27_6},
 	{1, arcs_27_7},
 };
 static arc arcs_28_0[1] = {
-	{62, 1},
+	{64, 1},
 };
 static arc arcs_28_1[1] = {
-	{34, 2},
+	{37, 2},
 };
 static arc arcs_28_2[1] = {
-	{63, 3},
+	{15, 3},
 };
 static arc arcs_28_3[1] = {
-	{9, 4},
+	{16, 4},
 };
-static arc arcs_28_4[1] = {
-	{15, 5},
+static arc arcs_28_4[2] = {
+	{63, 5},
+	{0, 4},
 };
 static arc arcs_28_5[1] = {
-	{16, 6},
+	{15, 6},
 };
-static arc arcs_28_6[2] = {
-	{60, 7},
-	{0, 6},
+static arc arcs_28_6[1] = {
+	{16, 7},
 };
 static arc arcs_28_7[1] = {
-	{15, 8},
+	{0, 7},
 };
-static arc arcs_28_8[1] = {
-	{16, 9},
-};
-static arc arcs_28_9[1] = {
-	{0, 9},
-};
-static state states_28[10] = {
+static state states_28[8] = {
 	{1, arcs_28_0},
 	{1, arcs_28_1},
 	{1, arcs_28_2},
 	{1, arcs_28_3},
-	{1, arcs_28_4},
+	{2, arcs_28_4},
 	{1, arcs_28_5},
-	{2, arcs_28_6},
+	{1, arcs_28_6},
 	{1, arcs_28_7},
-	{1, arcs_28_8},
-	{1, arcs_28_9},
 };
 static arc arcs_29_0[1] = {
-	{64, 1},
+	{65, 1},
 };
 static arc arcs_29_1[1] = {
-	{15, 2},
+	{39, 2},
 };
 static arc arcs_29_2[1] = {
-	{16, 3},
+	{55, 3},
 };
-static arc arcs_29_3[2] = {
-	{65, 4},
-	{66, 5},
+static arc arcs_29_3[1] = {
+	{9, 4},
 };
 static arc arcs_29_4[1] = {
-	{15, 6},
+	{15, 5},
 };
 static arc arcs_29_5[1] = {
-	{15, 7},
+	{16, 6},
 };
-static arc arcs_29_6[1] = {
-	{16, 8},
+static arc arcs_29_6[2] = {
+	{63, 7},
+	{0, 6},
 };
 static arc arcs_29_7[1] = {
-	{16, 9},
+	{15, 8},
 };
-static arc arcs_29_8[2] = {
-	{65, 4},
-	{0, 8},
+static arc arcs_29_8[1] = {
+	{16, 9},
 };
 static arc arcs_29_9[1] = {
 	{0, 9},
@@ -599,72 +588,105 @@
 	{1, arcs_29_0},
 	{1, arcs_29_1},
 	{1, arcs_29_2},
-	{2, arcs_29_3},
+	{1, arcs_29_3},
 	{1, arcs_29_4},
 	{1, arcs_29_5},
-	{1, arcs_29_6},
+	{2, arcs_29_6},
 	{1, arcs_29_7},
-	{2, arcs_29_8},
+	{1, arcs_29_8},
 	{1, arcs_29_9},
 };
 static arc arcs_30_0[1] = {
-	{67, 1},
+	{66, 1},
 };
-static arc arcs_30_1[2] = {
+static arc arcs_30_1[1] = {
+	{15, 2},
+};
+static arc arcs_30_2[1] = {
+	{16, 3},
+};
+static arc arcs_30_3[2] = {
+	{67, 4},
+	{68, 5},
+};
+static arc arcs_30_4[1] = {
+	{15, 6},
+};
+static arc arcs_30_5[1] = {
+	{15, 7},
+};
+static arc arcs_30_6[1] = {
+	{16, 8},
+};
+static arc arcs_30_7[1] = {
+	{16, 9},
+};
+static arc arcs_30_8[2] = {
+	{67, 4},
+	{0, 8},
+};
+static arc arcs_30_9[1] = {
+	{0, 9},
+};
+static state states_30[10] = {
+	{1, arcs_30_0},
+	{1, arcs_30_1},
+	{1, arcs_30_2},
+	{2, arcs_30_3},
+	{1, arcs_30_4},
+	{1, arcs_30_5},
+	{1, arcs_30_6},
+	{1, arcs_30_7},
+	{2, arcs_30_8},
+	{1, arcs_30_9},
+};
+static arc arcs_31_0[1] = {
+	{69, 1},
+};
+static arc arcs_31_1[2] = {
 	{37, 2},
 	{0, 1},
 };
-static arc arcs_30_2[2] = {
+static arc arcs_31_2[2] = {
 	{21, 3},
 	{0, 2},
 };
-static arc arcs_30_3[1] = {
+static arc arcs_31_3[1] = {
 	{37, 4},
 };
-static arc arcs_30_4[1] = {
+static arc arcs_31_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_31[5] = {
+	{1, arcs_31_0},
+	{2, arcs_31_1},
+	{2, arcs_31_2},
+	{1, arcs_31_3},
+	{1, arcs_31_4},
 };
-static arc arcs_31_0[2] = {
+static arc arcs_32_0[2] = {
 	{3, 1},
 	{2, 2},
 };
-static arc arcs_31_1[1] = {
+static arc arcs_32_1[1] = {
 	{0, 1},
 };
-static arc arcs_31_2[1] = {
-	{68, 3},
+static arc arcs_32_2[1] = {
+	{70, 3},
 };
-static arc arcs_31_3[1] = {
+static arc arcs_32_3[1] = {
 	{6, 4},
 };
-static arc arcs_31_4[2] = {
+static arc arcs_32_4[2] = {
 	{6, 4},
-	{69, 1},
+	{71, 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[1] = {
-	{70, 1},
-};
-static arc arcs_32_1[2] = {
-	{71, 0},
-	{0, 1},
-};
-static state states_32[2] = {
-	{1, arcs_32_0},
-	{2, arcs_32_1},
+static state states_32[5] = {
+	{2, arcs_32_0},
+	{1, arcs_32_1},
+	{1, arcs_32_2},
+	{1, arcs_32_3},
+	{2, arcs_32_4},
 };
 static arc arcs_33_0[1] = {
 	{72, 1},
@@ -677,70 +699,70 @@
 	{1, arcs_33_0},
 	{2, arcs_33_1},
 };
-static arc arcs_34_0[2] = {
+static arc arcs_34_0[1] = {
 	{74, 1},
-	{75, 2},
 };
-static arc arcs_34_1[1] = {
-	{72, 2},
-};
-static arc arcs_34_2[1] = {
-	{0, 2},
-};
-static state states_34[3] = {
-	{2, arcs_34_0},
-	{1, arcs_34_1},
-	{1, arcs_34_2},
-};
-static arc arcs_35_0[1] = {
-	{76, 1},
-};
-static arc arcs_35_1[2] = {
-	{77, 0},
+static arc arcs_34_1[2] = {
+	{75, 0},
 	{0, 1},
 };
-static state states_35[2] = {
-	{1, arcs_35_0},
-	{2, arcs_35_1},
+static state states_34[2] = {
+	{1, arcs_34_0},
+	{2, arcs_34_1},
 };
-static arc arcs_36_0[10] = {
+static arc arcs_35_0[2] = {
+	{76, 1},
+	{77, 2},
+};
+static arc arcs_35_1[1] = {
+	{74, 2},
+};
+static arc arcs_35_2[1] = {
+	{0, 2},
+};
+static state states_35[3] = {
+	{2, arcs_35_0},
+	{1, arcs_35_1},
+	{1, arcs_35_2},
+};
+static arc arcs_36_0[1] = {
 	{78, 1},
-	{79, 1},
+};
+static arc arcs_36_1[2] = {
+	{79, 0},
+	{0, 1},
+};
+static state states_36[2] = {
+	{1, arcs_36_0},
+	{2, arcs_36_1},
+};
+static arc arcs_37_0[10] = {
 	{80, 1},
 	{81, 1},
 	{82, 1},
 	{83, 1},
 	{84, 1},
-	{63, 1},
-	{74, 2},
-	{85, 3},
+	{85, 1},
+	{86, 1},
+	{55, 1},
+	{76, 2},
+	{87, 3},
 };
-static arc arcs_36_1[1] = {
+static arc arcs_37_1[1] = {
 	{0, 1},
 };
-static arc arcs_36_2[1] = {
-	{63, 1},
+static arc arcs_37_2[1] = {
+	{55, 1},
 };
-static arc arcs_36_3[2] = {
-	{74, 1},
+static arc arcs_37_3[2] = {
+	{76, 1},
 	{0, 3},
 };
-static state states_36[4] = {
-	{10, arcs_36_0},
-	{1, arcs_36_1},
-	{1, arcs_36_2},
-	{2, arcs_36_3},
-};
-static arc arcs_37_0[1] = {
-	{86, 1},
-};
-static arc arcs_37_1[2] = {
-	{87, 0},
-	{0, 1},
-};
-static state states_37[2] = {
-	{1, arcs_37_0},
-	{2, arcs_37_1},
+static state states_37[4] = {
+	{10, arcs_37_0},
+	{1, arcs_37_1},
+	{1, arcs_37_2},
+	{2, arcs_37_3},
 };
 static arc arcs_38_0[1] = {
 	{88, 1},
@@ -767,21 +789,20 @@
 static arc arcs_40_0[1] = {
 	{92, 1},
 };
-static arc arcs_40_1[3] = {
+static arc arcs_40_1[2] = {
 	{93, 0},
-	{94, 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] = {
-	{95, 1},
+	{94, 1},
 };
 static arc arcs_41_1[3] = {
+	{95, 0},
 	{96, 0},
-	{97, 0},
 	{0, 1},
 };
 static state states_41[2] = {
@@ -789,170 +810,166 @@
 	{3, arcs_41_1},
 };
 static arc arcs_42_0[1] = {
-	{98, 1},
+	{97, 1},
 };
-static arc arcs_42_1[4] = {
-	{22, 0},
+static arc arcs_42_1[3] = {
+	{98, 0},
 	{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] = {
-	{96, 1},
-	{97, 1},
-	{101, 1},
-	{102, 2},
+static arc arcs_43_0[1] = {
+	{100, 1},
 };
-static arc arcs_43_1[1] = {
-	{98, 3},
+static arc arcs_43_1[4] = {
+	{22, 0},
+	{101, 0},
+	{102, 0},
+	{0, 1},
 };
-static arc arcs_43_2[2] = {
-	{103, 2},
+static state states_43[2] = {
+	{1, arcs_43_0},
+	{4, arcs_43_1},
+};
+static arc arcs_44_0[4] = {
+	{98, 1},
+	{99, 1},
+	{103, 1},
+	{104, 2},
+};
+static arc arcs_44_1[1] = {
+	{100, 3},
+};
+static arc arcs_44_2[2] = {
+	{105, 2},
 	{0, 2},
 };
-static arc arcs_43_3[1] = {
+static arc arcs_44_3[1] = {
 	{0, 3},
 };
-static state states_43[4] = {
-	{4, arcs_43_0},
-	{1, arcs_43_1},
-	{2, arcs_43_2},
-	{1, arcs_43_3},
+static state states_44[4] = {
+	{4, arcs_44_0},
+	{1, arcs_44_1},
+	{2, arcs_44_2},
+	{1, arcs_44_3},
 };
-static arc arcs_44_0[7] = {
+static arc arcs_45_0[7] = {
 	{17, 1},
-	{104, 2},
-	{106, 3},
-	{109, 4},
+	{106, 2},
+	{108, 3},
+	{111, 4},
 	{13, 5},
-	{110, 5},
-	{111, 5},
+	{112, 5},
+	{113, 5},
 };
-static arc arcs_44_1[2] = {
+static arc arcs_45_1[2] = {
 	{9, 6},
 	{19, 5},
 };
-static arc arcs_44_2[2] = {
+static arc arcs_45_2[2] = {
 	{9, 7},
-	{105, 5},
+	{107, 5},
 };
-static arc arcs_44_3[2] = {
-	{107, 8},
-	{108, 5},
-};
-static arc arcs_44_4[1] = {
-	{9, 9},
-};
-static arc arcs_44_5[1] = {
-	{0, 5},
-};
-static arc arcs_44_6[1] = {
-	{19, 5},
-};
-static arc arcs_44_7[1] = {
-	{105, 5},
-};
-static arc arcs_44_8[1] = {
-	{108, 5},
-};
-static arc arcs_44_9[1] = {
-	{109, 5},
-};
-static state states_44[10] = {
-	{7, arcs_44_0},
-	{2, arcs_44_1},
-	{2, arcs_44_2},
-	{2, arcs_44_3},
-	{1, arcs_44_4},
-	{1, arcs_44_5},
-	{1, arcs_44_6},
-	{1, arcs_44_7},
-	{1, arcs_44_8},
-	{1, arcs_44_9},
-};
-static arc arcs_45_0[3] = {
-	{17, 1},
-	{104, 2},
-	{113, 3},
-};
-static arc arcs_45_1[2] = {
-	{9, 4},
-	{19, 5},
-};
-static arc arcs_45_2[1] = {
-	{112, 6},
-};
-static arc arcs_45_3[1] = {
-	{13, 5},
+static arc arcs_45_3[2] = {
+	{109, 8},
+	{110, 5},
 };
 static arc arcs_45_4[1] = {
-	{19, 5},
+	{9, 9},
 };
 static arc arcs_45_5[1] = {
 	{0, 5},
 };
 static arc arcs_45_6[1] = {
-	{105, 5},
+	{19, 5},
 };
-static state states_45[7] = {
-	{3, arcs_45_0},
+static arc arcs_45_7[1] = {
+	{107, 5},
+};
+static arc arcs_45_8[1] = {
+	{110, 5},
+};
+static arc arcs_45_9[1] = {
+	{111, 5},
+};
+static state states_45[10] = {
+	{7, arcs_45_0},
 	{2, arcs_45_1},
-	{1, arcs_45_2},
-	{1, arcs_45_3},
+	{2, arcs_45_2},
+	{2, arcs_45_3},
 	{1, arcs_45_4},
 	{1, arcs_45_5},
 	{1, arcs_45_6},
+	{1, arcs_45_7},
+	{1, arcs_45_8},
+	{1, arcs_45_9},
 };
-static arc arcs_46_0[2] = {
+static arc arcs_46_0[3] = {
+	{17, 1},
+	{106, 2},
+	{115, 3},
+};
+static arc arcs_46_1[2] = {
+	{9, 4},
+	{19, 5},
+};
+static arc arcs_46_2[1] = {
+	{114, 6},
+};
+static arc arcs_46_3[1] = {
+	{13, 5},
+};
+static arc arcs_46_4[1] = {
+	{19, 5},
+};
+static arc arcs_46_5[1] = {
+	{0, 5},
+};
+static arc arcs_46_6[1] = {
+	{107, 5},
+};
+static state states_46[7] = {
+	{3, arcs_46_0},
+	{2, arcs_46_1},
+	{1, arcs_46_2},
+	{1, arcs_46_3},
+	{1, arcs_46_4},
+	{1, arcs_46_5},
+	{1, arcs_46_6},
+};
+static arc arcs_47_0[2] = {
 	{37, 1},
 	{15, 2},
 };
-static arc arcs_46_1[2] = {
-	{15, 2},
-	{0, 1},
-};
-static arc arcs_46_2[2] = {
-	{37, 3},
-	{0, 2},
-};
-static arc arcs_46_3[1] = {
-	{0, 3},
-};
-static state states_46[4] = {
-	{2, arcs_46_0},
-	{2, arcs_46_1},
-	{2, arcs_46_2},
-	{1, arcs_46_3},
-};
-static arc arcs_47_0[1] = {
-	{76, 1},
-};
 static arc arcs_47_1[2] = {
-	{21, 2},
+	{15, 2},
 	{0, 1},
 };
 static arc arcs_47_2[2] = {
-	{76, 1},
+	{37, 3},
 	{0, 2},
 };
-static state states_47[3] = {
-	{1, arcs_47_0},
+static arc arcs_47_3[1] = {
+	{0, 3},
+};
+static state states_47[4] = {
+	{2, arcs_47_0},
 	{2, arcs_47_1},
 	{2, arcs_47_2},
+	{1, arcs_47_3},
 };
 static arc arcs_48_0[1] = {
-	{37, 1},
+	{78, 1},
 };
 static arc arcs_48_1[2] = {
 	{21, 2},
 	{0, 1},
 };
 static arc arcs_48_2[2] = {
-	{37, 1},
+	{78, 1},
 	{0, 2},
 };
 static state states_48[3] = {
@@ -963,71 +980,87 @@
 static arc arcs_49_0[1] = {
 	{37, 1},
 };
-static arc arcs_49_1[1] = {
+static arc arcs_49_1[2] = {
+	{21, 2},
+	{0, 1},
+};
+static arc arcs_49_2[2] = {
+	{37, 1},
+	{0, 2},
+};
+static state states_49[3] = {
+	{1, arcs_49_0},
+	{2, arcs_49_1},
+	{2, arcs_49_2},
+};
+static arc arcs_50_0[1] = {
+	{37, 1},
+};
+static arc arcs_50_1[1] = {
 	{15, 2},
 };
-static arc arcs_49_2[1] = {
+static arc arcs_50_2[1] = {
 	{37, 3},
 };
-static arc arcs_49_3[2] = {
+static arc arcs_50_3[2] = {
 	{21, 4},
 	{0, 3},
 };
-static arc arcs_49_4[2] = {
+static arc arcs_50_4[2] = {
 	{37, 1},
 	{0, 4},
 };
-static state states_49[5] = {
-	{1, arcs_49_0},
-	{1, arcs_49_1},
-	{1, arcs_49_2},
-	{2, arcs_49_3},
-	{2, arcs_49_4},
+static state states_50[5] = {
+	{1, arcs_50_0},
+	{1, arcs_50_1},
+	{1, arcs_50_2},
+	{2, arcs_50_3},
+	{2, arcs_50_4},
 };
-static arc arcs_50_0[1] = {
-	{114, 1},
+static arc arcs_51_0[1] = {
+	{116, 1},
 };
-static arc arcs_50_1[1] = {
+static arc arcs_51_1[1] = {
 	{13, 2},
 };
-static arc arcs_50_2[2] = {
+static arc arcs_51_2[2] = {
 	{17, 3},
 	{15, 4},
 };
-static arc arcs_50_3[1] = {
+static arc arcs_51_3[1] = {
 	{9, 5},
 };
-static arc arcs_50_4[1] = {
+static arc arcs_51_4[1] = {
 	{16, 6},
 };
-static arc arcs_50_5[1] = {
+static arc arcs_51_5[1] = {
 	{19, 7},
 };
-static arc arcs_50_6[1] = {
+static arc arcs_51_6[1] = {
 	{0, 6},
 };
-static arc arcs_50_7[1] = {
+static arc arcs_51_7[1] = {
 	{15, 4},
 };
-static state states_50[8] = {
-	{1, arcs_50_0},
-	{1, arcs_50_1},
-	{2, arcs_50_2},
-	{1, arcs_50_3},
-	{1, arcs_50_4},
-	{1, arcs_50_5},
-	{1, arcs_50_6},
-	{1, arcs_50_7},
+static state states_51[8] = {
+	{1, arcs_51_0},
+	{1, arcs_51_1},
+	{2, arcs_51_2},
+	{1, arcs_51_3},
+	{1, arcs_51_4},
+	{1, arcs_51_5},
+	{1, arcs_51_6},
+	{1, arcs_51_7},
 };
-static dfa dfas[51] = {
+static dfa dfas[52] = {
 	{256, "single_input", 0, 3, states_0,
-	 "\004\060\002\000\320\360\017\144\001\000\000\000\043\345\004"},
+	 "\004\060\002\000\120\341\137\040\007\020\000\000\214\224\023"},
 	{257, "file_input", 0, 2, states_1,
-	 "\204\060\002\000\320\360\017\144\001\000\000\000\043\345\004"},
+	 "\204\060\002\000\120\341\137\040\007\020\000\000\214\224\023"},
 	{258, "expr_input", 0, 3, states_2,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
 	{259, "eval_input", 0, 3, states_3,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
 	{260, "funcdef", 0, 6, states_4,
 	 "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{261, "parameters", 0, 4, states_5,
@@ -1039,108 +1072,110 @@
 	{264, "fplist", 0, 3, states_8,
 	 "\000\040\002\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{265, "stmt", 0, 2, states_9,
-	 "\000\060\002\000\320\360\017\144\001\000\000\000\043\345\004"},
+	 "\000\060\002\000\120\341\137\040\007\020\000\000\214\224\023"},
 	{266, "simple_stmt", 0, 4, states_10,
-	 "\000\040\002\000\320\360\017\000\000\000\000\000\043\345\000"},
+	 "\000\040\002\000\120\341\137\000\000\020\000\000\214\224\003"},
 	{267, "small_stmt", 0, 2, states_11,
-	 "\000\040\002\000\320\360\017\000\000\000\000\000\043\345\000"},
+	 "\000\040\002\000\120\341\137\000\000\020\000\000\214\224\003"},
 	{268, "expr_stmt", 0, 2, states_12,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
 	{269, "print_stmt", 0, 3, states_13,
 	 "\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000"},
 	{270, "del_stmt", 0, 3, states_14,
 	 "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000"},
 	{271, "pass_stmt", 0, 2, states_15,
-	 "\000\000\000\000\200\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"},
 	{272, "flow_stmt", 0, 2, states_16,
-	 "\000\000\000\000\000\360\000\000\000\000\000\000\000\000\000"},
+	 "\000\000\000\000\000\340\001\000\000\000\000\000\000\000\000"},
 	{273, "break_stmt", 0, 2, states_17,
-	 "\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000"},
-	{274, "continue_stmt", 0, 2, states_18,
 	 "\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"},
-	{275, "return_stmt", 0, 3, states_19,
+	{274, "continue_stmt", 0, 2, states_18,
 	 "\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"},
-	{276, "raise_stmt", 0, 5, states_20,
+	{275, "return_stmt", 0, 3, states_19,
 	 "\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000"},
+	{276, "raise_stmt", 0, 5, states_20,
+	 "\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000"},
 	{277, "import_stmt", 0, 9, states_21,
-	 "\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000"},
+	 "\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000"},
 	{278, "global_stmt", 0, 3, states_22,
-	 "\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"},
-	{279, "access_stmt", 0, 7, states_23,
 	 "\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"},
+	{279, "access_stmt", 0, 7, states_23,
+	 "\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000"},
 	{280, "accesstype", 0, 2, states_24,
 	 "\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{281, "compound_stmt", 0, 2, states_25,
-	 "\000\020\000\000\000\000\000\144\001\000\000\000\000\000\004"},
-	{282, "if_stmt", 0, 8, states_26,
-	 "\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"},
-	{283, "while_stmt", 0, 8, states_27,
+	{281, "exec_stmt", 0, 7, states_25,
+	 "\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000"},
+	{282, "compound_stmt", 0, 2, states_26,
+	 "\000\020\000\000\000\000\000\040\007\000\000\000\000\000\020"},
+	{283, "if_stmt", 0, 8, states_27,
 	 "\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000"},
-	{284, "for_stmt", 0, 10, states_28,
-	 "\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000"},
-	{285, "try_stmt", 0, 10, states_29,
+	{284, "while_stmt", 0, 8, states_28,
 	 "\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000"},
-	{286, "except_clause", 0, 5, states_30,
-	 "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000"},
-	{287, "suite", 0, 5, states_31,
-	 "\004\040\002\000\320\360\017\000\000\000\000\000\043\345\000"},
-	{288, "test", 0, 2, states_32,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{289, "and_test", 0, 2, states_33,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{290, "not_test", 0, 3, states_34,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{291, "comparison", 0, 2, states_35,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{292, "comp_op", 0, 4, states_36,
-	 "\000\000\000\000\000\000\000\200\000\304\077\000\000\000\000"},
-	{293, "expr", 0, 2, states_37,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{294, "xor_expr", 0, 2, states_38,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{295, "and_expr", 0, 2, states_39,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{296, "shift_expr", 0, 2, states_40,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{297, "arith_expr", 0, 2, states_41,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{298, "term", 0, 2, states_42,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{299, "factor", 0, 4, states_43,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{300, "atom", 0, 10, states_44,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\000\345\000"},
-	{301, "trailer", 0, 7, states_45,
-	 "\000\000\002\000\000\000\000\000\000\000\000\000\000\001\002"},
-	{302, "subscript", 0, 4, states_46,
-	 "\000\240\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{303, "exprlist", 0, 3, states_47,
-	 "\000\040\002\000\000\000\000\000\000\000\000\000\043\345\000"},
-	{304, "testlist", 0, 3, states_48,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{305, "dictmaker", 0, 5, states_49,
-	 "\000\040\002\000\000\000\000\000\000\004\000\000\043\345\000"},
-	{306, "classdef", 0, 8, states_50,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004"},
+	{285, "for_stmt", 0, 10, states_29,
+	 "\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000"},
+	{286, "try_stmt", 0, 10, states_30,
+	 "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000"},
+	{287, "except_clause", 0, 5, states_31,
+	 "\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000"},
+	{288, "suite", 0, 5, states_32,
+	 "\004\040\002\000\120\341\137\000\000\020\000\000\214\224\003"},
+	{289, "test", 0, 2, states_33,
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{290, "and_test", 0, 2, states_34,
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{291, "not_test", 0, 3, states_35,
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{292, "comparison", 0, 2, states_36,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{293, "comp_op", 0, 4, states_37,
+	 "\000\000\000\000\000\000\200\000\000\020\377\000\000\000\000"},
+	{294, "expr", 0, 2, states_38,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{295, "xor_expr", 0, 2, states_39,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{296, "and_expr", 0, 2, states_40,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{297, "shift_expr", 0, 2, states_41,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{298, "arith_expr", 0, 2, states_42,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{299, "term", 0, 2, states_43,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{300, "factor", 0, 4, states_44,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{301, "atom", 0, 10, states_45,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\000\224\003"},
+	{302, "trailer", 0, 7, states_46,
+	 "\000\000\002\000\000\000\000\000\000\000\000\000\000\004\010"},
+	{303, "subscript", 0, 4, states_47,
+	 "\000\240\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{304, "exprlist", 0, 3, states_48,
+	 "\000\040\002\000\000\000\000\000\000\000\000\000\214\224\003"},
+	{305, "testlist", 0, 3, states_49,
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{306, "dictmaker", 0, 5, states_50,
+	 "\000\040\002\000\000\000\000\000\000\020\000\000\214\224\003"},
+	{307, "classdef", 0, 8, states_51,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020"},
 };
-static label labels[115] = {
+static label labels[117] = {
 	{0, "EMPTY"},
 	{256, 0},
 	{4, 0},
 	{266, 0},
-	{281, 0},
+	{282, 0},
 	{257, 0},
 	{265, 0},
 	{0, 0},
 	{258, 0},
-	{304, 0},
+	{305, 0},
 	{259, 0},
 	{260, 0},
 	{1, "def"},
 	{1, 0},
 	{261, 0},
 	{11, 0},
-	{287, 0},
+	{288, 0},
 	{7, 0},
 	{262, 0},
 	{8, 0},
@@ -1158,11 +1193,12 @@
 	{277, 0},
 	{278, 0},
 	{279, 0},
-	{303, 0},
+	{281, 0},
 	{22, 0},
 	{1, "print"},
-	{288, 0},
+	{289, 0},
 	{1, "del"},
+	{304, 0},
 	{1, "pass"},
 	{273, 0},
 	{274, 0},
@@ -1177,31 +1213,32 @@
 	{1, "global"},
 	{1, "access"},
 	{280, 0},
-	{282, 0},
+	{1, "exec"},
+	{1, "in"},
 	{283, 0},
 	{284, 0},
 	{285, 0},
-	{306, 0},
+	{286, 0},
+	{307, 0},
 	{1, "if"},
 	{1, "elif"},
 	{1, "else"},
 	{1, "while"},
 	{1, "for"},
-	{1, "in"},
 	{1, "try"},
-	{286, 0},
+	{287, 0},
 	{1, "finally"},
 	{1, "except"},
 	{5, 0},
 	{6, 0},
-	{289, 0},
-	{1, "or"},
 	{290, 0},
+	{1, "or"},
+	{291, 0},
 	{1, "and"},
 	{1, "not"},
-	{291, 0},
-	{293, 0},
 	{292, 0},
+	{294, 0},
+	{293, 0},
 	{20, 0},
 	{21, 0},
 	{28, 0},
@@ -1210,39 +1247,39 @@
 	{29, 0},
 	{29, 0},
 	{1, "is"},
-	{294, 0},
-	{18, 0},
 	{295, 0},
-	{33, 0},
+	{18, 0},
 	{296, 0},
-	{19, 0},
+	{33, 0},
 	{297, 0},
+	{19, 0},
+	{298, 0},
 	{34, 0},
 	{35, 0},
-	{298, 0},
+	{299, 0},
 	{14, 0},
 	{15, 0},
-	{299, 0},
+	{300, 0},
 	{17, 0},
 	{24, 0},
 	{32, 0},
-	{300, 0},
 	{301, 0},
+	{302, 0},
 	{9, 0},
 	{10, 0},
 	{26, 0},
-	{305, 0},
+	{306, 0},
 	{27, 0},
 	{25, 0},
 	{2, 0},
 	{3, 0},
-	{302, 0},
+	{303, 0},
 	{23, 0},
 	{1, "class"},
 };
 grammar gram = {
-	51,
+	52,
 	dfas,
-	{115, labels},
+	{117, labels},
 	256
 };