* import.c (get_module): pass .py filename to parse_file, not .pyc filename!
* funcobject.c (func_repr): don't call getstringvalue(None) for anonymous
functions.
* bltinmodule.c: removed lambda (which is now a built-in function);
removed implied lambda for string arg to filter/map/reduce.
* Grammar, graminit.[ch], compile.[ch]: replaced lambda as built-in
function by lambda as grammar entity: instead of "lambda('x: x+1')" you
write "lambda x: x+1".
* Xtmodule.c (checkargdict): return 0, not NULL, for error.
diff --git a/Grammar/Grammar b/Grammar/Grammar
index 1094b09..6be7418 100644
--- a/Grammar/Grammar
+++ b/Grammar/Grammar
@@ -2,6 +2,9 @@
# Change log:
+# 30-Nov-93:
+# Removed lambda_input, added lambdef
+
# 25-Oct-93:
# Added lambda_input
@@ -77,14 +80,12 @@
# Start symbols for the grammar:
# single_input is a single interactive statement;
# file_input is a module or sequence of commands read from an input file;
-# eval_input is the input for the eval() and input() functions;
-# lambda_input is the input for the proposed lambda() function.
+# eval_input is the input for the eval() and input() functions.
# NB: compound_stmt in single_input is followed by extra NEWLINE!
single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
file_input: (NEWLINE | stmt)* ENDMARKER
eval_input: testlist NEWLINE* ENDMARKER
-lambda_input: varargslist ':' testlist NEWLINE* ENDMARKER
funcdef: 'def' NAME parameters ':' suite
parameters: '(' [varargslist] ')'
@@ -134,7 +135,10 @@
arith_expr: term (('+'|'-') term)*
term: factor (('*'|'/'|'%') factor)*
factor: ('+'|'-'|'~') factor | atom trailer*
-atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING
+atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | lambdef | NAME | NUMBER | STRING
+# Note ambiguity in grammar: "lambda x: x[1]" could mean "(lambda x: x)[1]"
+# but the parser is eager so interprets it as "lambda x: (x[1])"...
+lambdef: 'lambda' [varargslist] ':' test
trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
subscript: test | [test] ':' [test]
exprlist: expr (',' expr)* [',']
diff --git a/Include/compile.h b/Include/compile.h
index 2b0b29e..a23fea1 100644
--- a/Include/compile.h
+++ b/Include/compile.h
@@ -54,12 +54,10 @@
/* Public interface */
struct _node; /* Declare the existence of this type */
-codeobject *_compile PROTO((struct _node *, char *, int));
+codeobject *compile PROTO((struct _node *, char *));
codeobject *newcodeobject
PROTO((object *, object *, object *, object *, object *));
-#define compile(n,f) (_compile((n),(f),0))
-
#ifdef __cplusplus
}
#endif
diff --git a/Include/graminit.h b/Include/graminit.h
index 735838c..da87073 100644
--- a/Include/graminit.h
+++ b/Include/graminit.h
@@ -1,49 +1,49 @@
#define single_input 256
#define file_input 257
#define eval_input 258
-#define lambda_input 259
-#define funcdef 260
-#define parameters 261
-#define varargslist 262
-#define fpdef 263
-#define fplist 264
-#define stmt 265
-#define simple_stmt 266
-#define small_stmt 267
-#define expr_stmt 268
-#define print_stmt 269
-#define del_stmt 270
-#define pass_stmt 271
-#define flow_stmt 272
-#define break_stmt 273
-#define continue_stmt 274
-#define return_stmt 275
-#define raise_stmt 276
-#define import_stmt 277
-#define global_stmt 278
-#define access_stmt 279
-#define accesstype 280
-#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 funcdef 259
+#define parameters 260
+#define varargslist 261
+#define fpdef 262
+#define fplist 263
+#define stmt 264
+#define simple_stmt 265
+#define small_stmt 266
+#define expr_stmt 267
+#define print_stmt 268
+#define del_stmt 269
+#define pass_stmt 270
+#define flow_stmt 271
+#define break_stmt 272
+#define continue_stmt 273
+#define return_stmt 274
+#define raise_stmt 275
+#define import_stmt 276
+#define global_stmt 277
+#define access_stmt 278
+#define accesstype 279
+#define exec_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 atom 300
+#define lambdef 301
#define trailer 302
#define subscript 303
#define exprlist 304
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 4dc0b90..cc4900a 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -100,9 +100,12 @@
funcobject *op;
{
char buf[140];
- sprintf(buf, "<function %.100s at %lx>",
- getstringvalue(op->func_name),
- (long)op);
+ if (op->func_name == None)
+ sprintf(buf, "<anonymous function at %lx>", (long)op);
+ else
+ sprintf(buf, "<function %.100s at %lx>",
+ getstringvalue(op->func_name),
+ (long)op);
return newstringobject(buf);
}
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 97ed2f4..b63f56d 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -79,23 +79,13 @@
if (!getargs(args, "(OO)", &func, &seq))
return NULL;
- if (is_stringobject(func)) {
- if ((func = exec_eval(func, lambda_input)) == NULL)
- return NULL;
- }
- else {
- INCREF(func);
- }
-
if (is_stringobject(seq)) {
object *r = filterstring(func, seq);
- DECREF(func);
return r;
}
if (is_tupleobject(seq)) {
object *r = filtertuple(func, seq);
- DECREF(func);
return r;
}
@@ -150,13 +140,11 @@
if (setlistslice(result, j, len, NULL) < 0)
goto Fail_1;
- DECREF(func);
return result;
Fail_1:
DECREF(result);
Fail_2:
- DECREF(func);
return NULL;
}
@@ -306,10 +294,10 @@
globals != NULL && !is_dictobject(globals) ||
locals != NULL && !is_dictobject(locals)) {
err_setstr(TypeError,
- "eval/lambda arguments must be (string|code)[,dict[,dict]]");
+ "eval arguments must be (string|code)[,dict[,dict]]");
return NULL;
}
- /* XXX The following is only correct for eval(), not for lambda() */
+
if (is_codeobject(str))
return eval_code((codeobject *) str, globals, locals,
(object *)NULL, (object *)NULL);
@@ -318,7 +306,7 @@
err_setstr(ValueError, "embedded '\\0' in string arg");
return NULL;
}
- if (start == eval_input || start == lambda_input) {
+ if (start == eval_input) {
while (*s == ' ' || *s == '\t')
s++;
}
@@ -460,14 +448,6 @@
func = gettupleitem(args, 0);
n = gettuplesize(args) - 1;
- if (is_stringobject(func)) {
- if ((func = exec_eval(func, lambda_input)) == NULL)
- return NULL;
- }
- else {
- INCREF(func);
- }
-
if ((seqs = NEW(sequence, n)) == NULL) {
err_nomem();
goto Fail_2;
@@ -549,13 +529,11 @@
}
if (seqs) DEL(seqs);
- DECREF(func);
return result;
Fail_1:
DECREF(result);
Fail_2:
- DECREF(func);
if (seqs) DEL(seqs);
return NULL;
}
@@ -639,14 +617,6 @@
}
static object *
-builtin_lambda(self, v)
- object *self;
- object *v;
-{
- return exec_eval(v, lambda_input);
-}
-
-static object *
builtin_len(self, v)
object *self;
object *v;
@@ -977,14 +947,6 @@
return NULL;
}
- if (is_stringobject(func)) {
- if ((func = exec_eval(func, lambda_input)) == NULL)
- return NULL;
- }
- else {
- INCREF(func);
- }
-
if ((len = (*sqf->sq_length)(seq)) < 0)
goto Fail_2;
@@ -1025,7 +987,6 @@
}
DECREF(args);
- DECREF(func);
return result;
@@ -1035,7 +996,6 @@
Fail_1:
DECREF(result);
Fail_2:
- DECREF(func);
return NULL;
}
@@ -1133,7 +1093,6 @@
{"id", builtin_id},
{"input", builtin_input},
{"int", builtin_int},
- {"lambda", builtin_lambda},
{"len", builtin_len},
{"long", builtin_long},
{"map", builtin_map},
diff --git a/Python/compile.c b/Python/compile.c
index 9ce3a33..77752a4 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -153,7 +153,7 @@
if (code == NULL || !is_stringobject(code) ||
consts == NULL || !is_listobject(consts) ||
names == NULL || !is_listobject(names) ||
- name == NULL || !is_stringobject(name)) {
+ name == NULL || !(is_stringobject(name) || name == None)) {
err_badcall();
return NULL;
}
@@ -194,7 +194,6 @@
int c_nexti; /* index into c_code */
int c_errors; /* counts errors occurred */
int c_infunction; /* set when compiling a function */
- int c_inlambda; /* set when compiling an expression */
int c_loops; /* counts nested loops */
int c_begin; /* begin of current loop, for 'continue' */
int c_block[MAXBLOCKS]; /* stack of block types */
@@ -236,7 +235,7 @@
/* Prototypes */
-static int com_init PROTO((struct compiling *, char *, int));
+static int com_init PROTO((struct compiling *, char *));
static void com_free PROTO((struct compiling *));
static void com_done PROTO((struct compiling *));
static void com_node PROTO((struct compiling *, struct _node *));
@@ -252,10 +251,9 @@
static void com_list PROTO((struct compiling *, node *, int));
static int
-com_init(c, filename, inlambda)
+com_init(c, filename)
struct compiling *c;
char *filename;
- int inlambda;
{
if ((c->c_code = newsizedstringobject((char *)NULL, 1000)) == NULL)
goto fail_3;
@@ -268,7 +266,6 @@
c->c_nexti = 0;
c->c_errors = 0;
c->c_infunction = 0;
- c->c_inlambda = inlambda;
c->c_loops = 0;
c->c_begin = 0;
c->c_nblocks = 0;
@@ -662,6 +659,18 @@
}
com_addoparg(c, LOAD_CONST, i);
break;
+ case lambdef:
+ if ((v = (object *) compile(ch, c->c_filename)) == NULL) {
+ c->c_errors++;
+ i = 255;
+ }
+ else {
+ i = com_addconst(c, v);
+ DECREF(v);
+ }
+ com_addoparg(c, LOAD_CONST, i);
+ com_addbyte(c, BUILD_FUNCTION);
+ break;
case NAME:
com_addopname(c, LOAD_NAME, ch);
break;
@@ -1825,7 +1834,7 @@
{
object *v;
REQ(n, funcdef); /* funcdef: 'def' NAME parameters ':' suite */
- v = (object *)_compile(n, c->c_filename, 0);
+ v = (object *)compile(n, c->c_filename);
if (v == NULL)
c->c_errors++;
else {
@@ -1838,25 +1847,6 @@
}
static void
-com_lambda(c, n)
- struct compiling *c;
- node *n;
-{
- object *v;
- REQ(n, lambda_input);
- v = (object *)_compile(n, c->c_filename, 1);
- if (v == NULL)
- c->c_errors++;
- else {
- int i = com_addconst(c, v);
- DECREF(v);
- com_addoparg(c, LOAD_CONST, i);
- com_addbyte(c, BUILD_FUNCTION);
- com_addbyte(c, RETURN_VALUE);
- }
-}
-
-static void
com_bases(c, n)
struct compiling *c;
node *n;
@@ -1891,7 +1881,7 @@
com_addoparg(c, BUILD_TUPLE, 0);
else
com_bases(c, CHILD(n, 3));
- v = (object *)_compile(n, c->c_filename, 0);
+ v = (object *)compile(n, c->c_filename);
if (v == NULL)
c->c_errors++;
else {
@@ -2149,13 +2139,25 @@
}
static void
-compile_lambda(c, n)
+compile_lambdef(c, n)
struct compiling *c;
node *n;
{
- REQ(n, lambda_input)
- com_arglist(c, CHILD(n, 0));
- com_node(c, CHILD(n, 2));
+ node *ch;
+ REQ(n, lambdef); /* lambdef: 'lambda' [parameters] ':' test */
+ c->c_name = NULL;
+
+ ch = CHILD(n, 1);
+ if (TYPE(ch) == COLON) {
+ com_addoparg(c, UNPACK_ARG, 0);
+ com_node(c, CHILD(n, 2));
+ }
+ else {
+ com_addoparg(c, RESERVE_FAST, com_addconst(c, None));
+ com_arglist(c, ch);
+ com_node(c, CHILD(n, 3));
+ }
+
com_addbyte(c, RETURN_VALUE);
}
@@ -2183,15 +2185,15 @@
com_addbyte(c, RETURN_VALUE);
break;
- case lambda_input: /* Built-in function lambda() */
- (c->c_inlambda ? compile_lambda : com_lambda)(c, n);
- break;
-
- case eval_input: /* Built-in functions eval() and input() */
+ case eval_input: /* Built-in function input() */
com_node(c, CHILD(n, 0));
com_addbyte(c, RETURN_VALUE);
break;
+ case lambdef: /* anonymous function definition */
+ compile_lambdef(c, n);
+ break;
+
case funcdef: /* A function definition */
compile_funcdef(c, n);
break;
@@ -2347,24 +2349,28 @@
}
codeobject *
-_compile(n, filename, inlambda)
+compile(n, filename)
node *n;
char *filename;
- int inlambda;
{
struct compiling sc;
codeobject *co;
- if (!com_init(&sc, filename, inlambda))
+ if (!com_init(&sc, filename))
return NULL;
compile_node(&sc, n);
com_done(&sc);
- if (TYPE(n) == funcdef && sc.c_errors == 0)
+ if ((TYPE(n) == funcdef || TYPE(n) == lambdef) && sc.c_errors == 0)
optimize(&sc);
co = NULL;
if (sc.c_errors == 0) {
object *v, *w;
v = newstringobject(sc.c_filename);
- w = newstringobject(sc.c_name);
+ if (sc.c_name)
+ w = newstringobject(sc.c_name);
+ else {
+ INCREF(None);
+ w = None;
+ }
if (v != NULL && w != NULL)
co = newcodeobject(sc.c_code, sc.c_consts,
sc.c_names, v, w);
diff --git a/Python/graminit.c b/Python/graminit.c
index dc6ddc6..1126b9c 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -50,160 +50,138 @@
{12, 2},
};
static arc arcs_3_2[1] = {
- {9, 3},
+ {13, 3},
};
-static arc arcs_3_3[2] = {
- {2, 3},
- {7, 4},
+static arc arcs_3_3[1] = {
+ {14, 4},
};
static arc arcs_3_4[1] = {
- {0, 4},
+ {15, 5},
};
-static state states_3[5] = {
+static arc arcs_3_5[1] = {
+ {0, 5},
+};
+static state states_3[6] = {
{1, arcs_3_0},
{1, arcs_3_1},
{1, arcs_3_2},
- {2, arcs_3_3},
+ {1, arcs_3_3},
{1, arcs_3_4},
+ {1, arcs_3_5},
};
static arc arcs_4_0[1] = {
- {14, 1},
+ {16, 1},
};
-static arc arcs_4_1[1] = {
- {15, 2},
+static arc arcs_4_1[2] = {
+ {17, 2},
+ {18, 3},
};
static arc arcs_4_2[1] = {
- {16, 3},
+ {18, 3},
};
static arc arcs_4_3[1] = {
- {12, 4},
-};
-static arc arcs_4_4[1] = {
- {17, 5},
-};
-static arc arcs_4_5[1] = {
- {0, 5},
-};
-static state states_4[6] = {
- {1, arcs_4_0},
- {1, arcs_4_1},
- {1, arcs_4_2},
- {1, arcs_4_3},
- {1, arcs_4_4},
- {1, arcs_4_5},
-};
-static arc arcs_5_0[1] = {
- {18, 1},
-};
-static arc arcs_5_1[2] = {
- {11, 2},
- {19, 3},
-};
-static arc arcs_5_2[1] = {
- {19, 3},
-};
-static arc arcs_5_3[1] = {
{0, 3},
};
-static state states_5[4] = {
- {1, arcs_5_0},
+static state states_4[4] = {
+ {1, arcs_4_0},
+ {2, arcs_4_1},
+ {1, arcs_4_2},
+ {1, arcs_4_3},
+};
+static arc arcs_5_0[2] = {
+ {19, 1},
+ {21, 2},
+};
+static arc arcs_5_1[2] = {
+ {20, 3},
+ {0, 1},
+};
+static arc arcs_5_2[1] = {
+ {12, 4},
+};
+static arc arcs_5_3[3] = {
+ {19, 1},
+ {21, 2},
+ {0, 3},
+};
+static arc arcs_5_4[1] = {
+ {0, 4},
+};
+static state states_5[5] = {
+ {2, arcs_5_0},
{2, arcs_5_1},
{1, arcs_5_2},
- {1, arcs_5_3},
+ {3, arcs_5_3},
+ {1, arcs_5_4},
};
static arc arcs_6_0[2] = {
- {20, 1},
- {22, 2},
+ {12, 1},
+ {16, 2},
};
-static arc arcs_6_1[2] = {
- {21, 3},
+static arc arcs_6_1[1] = {
{0, 1},
};
static arc arcs_6_2[1] = {
- {15, 4},
+ {22, 3},
};
-static arc arcs_6_3[3] = {
- {20, 1},
- {22, 2},
- {0, 3},
+static arc arcs_6_3[1] = {
+ {18, 1},
};
-static arc arcs_6_4[1] = {
- {0, 4},
-};
-static state states_6[5] = {
+static state states_6[4] = {
{2, arcs_6_0},
- {2, arcs_6_1},
+ {1, arcs_6_1},
{1, arcs_6_2},
- {3, arcs_6_3},
- {1, arcs_6_4},
+ {1, arcs_6_3},
};
-static arc arcs_7_0[2] = {
- {15, 1},
- {18, 2},
-};
-static arc arcs_7_1[1] = {
- {0, 1},
-};
-static arc arcs_7_2[1] = {
- {23, 3},
-};
-static arc arcs_7_3[1] = {
+static arc arcs_7_0[1] = {
{19, 1},
};
-static state states_7[4] = {
- {2, arcs_7_0},
- {1, arcs_7_1},
- {1, arcs_7_2},
- {1, arcs_7_3},
-};
-static arc arcs_8_0[1] = {
- {20, 1},
-};
-static arc arcs_8_1[2] = {
- {21, 2},
+static arc arcs_7_1[2] = {
+ {20, 2},
{0, 1},
};
-static arc arcs_8_2[2] = {
- {20, 1},
+static arc arcs_7_2[2] = {
+ {19, 1},
{0, 2},
};
-static state states_8[3] = {
- {1, arcs_8_0},
- {2, arcs_8_1},
- {2, arcs_8_2},
+static state states_7[3] = {
+ {1, arcs_7_0},
+ {2, arcs_7_1},
+ {2, arcs_7_2},
};
-static arc arcs_9_0[2] = {
+static arc arcs_8_0[2] = {
{3, 1},
{4, 1},
};
-static arc arcs_9_1[1] = {
+static arc arcs_8_1[1] = {
{0, 1},
};
-static state states_9[2] = {
- {2, arcs_9_0},
- {1, arcs_9_1},
+static state states_8[2] = {
+ {2, arcs_8_0},
+ {1, arcs_8_1},
};
-static arc arcs_10_0[1] = {
- {24, 1},
+static arc arcs_9_0[1] = {
+ {23, 1},
};
-static arc arcs_10_1[2] = {
- {25, 2},
+static arc arcs_9_1[2] = {
+ {24, 2},
{2, 3},
};
-static arc arcs_10_2[2] = {
- {24, 1},
+static arc arcs_9_2[2] = {
+ {23, 1},
{2, 3},
};
-static arc arcs_10_3[1] = {
+static arc arcs_9_3[1] = {
{0, 3},
};
-static state states_10[4] = {
- {1, arcs_10_0},
- {2, arcs_10_1},
- {2, arcs_10_2},
- {1, arcs_10_3},
+static state states_9[4] = {
+ {1, arcs_9_0},
+ {2, arcs_9_1},
+ {2, arcs_9_2},
+ {1, arcs_9_3},
};
-static arc arcs_11_0[9] = {
+static arc arcs_10_0[9] = {
+ {25, 1},
{26, 1},
{27, 1},
{28, 1},
@@ -212,77 +190,86 @@
{31, 1},
{32, 1},
{33, 1},
- {34, 1},
};
-static arc arcs_11_1[1] = {
+static arc arcs_10_1[1] = {
+ {0, 1},
+};
+static state states_10[2] = {
+ {9, arcs_10_0},
+ {1, arcs_10_1},
+};
+static arc arcs_11_0[1] = {
+ {9, 1},
+};
+static arc arcs_11_1[2] = {
+ {34, 0},
{0, 1},
};
static state states_11[2] = {
- {9, arcs_11_0},
- {1, arcs_11_1},
+ {1, arcs_11_0},
+ {2, arcs_11_1},
};
static arc arcs_12_0[1] = {
- {9, 1},
+ {35, 1},
};
static arc arcs_12_1[2] = {
- {35, 0},
+ {36, 2},
{0, 1},
};
-static state states_12[2] = {
+static arc arcs_12_2[2] = {
+ {20, 1},
+ {0, 2},
+};
+static state states_12[3] = {
{1, arcs_12_0},
{2, arcs_12_1},
+ {2, arcs_12_2},
};
static arc arcs_13_0[1] = {
- {36, 1},
+ {37, 1},
};
-static arc arcs_13_1[2] = {
- {37, 2},
- {0, 1},
+static arc arcs_13_1[1] = {
+ {38, 2},
};
-static arc arcs_13_2[2] = {
- {21, 1},
+static arc arcs_13_2[1] = {
{0, 2},
};
static state states_13[3] = {
{1, arcs_13_0},
- {2, arcs_13_1},
- {2, arcs_13_2},
+ {1, arcs_13_1},
+ {1, arcs_13_2},
};
static arc arcs_14_0[1] = {
- {38, 1},
+ {39, 1},
};
static arc arcs_14_1[1] = {
- {39, 2},
+ {0, 1},
};
-static arc arcs_14_2[1] = {
- {0, 2},
-};
-static state states_14[3] = {
+static state states_14[2] = {
{1, arcs_14_0},
{1, arcs_14_1},
- {1, arcs_14_2},
};
-static arc arcs_15_0[1] = {
+static arc arcs_15_0[4] = {
{40, 1},
+ {41, 1},
+ {42, 1},
+ {43, 1},
};
static arc arcs_15_1[1] = {
{0, 1},
};
static state states_15[2] = {
- {1, arcs_15_0},
+ {4, arcs_15_0},
{1, arcs_15_1},
};
-static arc arcs_16_0[4] = {
- {41, 1},
- {42, 1},
- {43, 1},
+static arc arcs_16_0[1] = {
{44, 1},
};
static arc arcs_16_1[1] = {
{0, 1},
};
static state states_16[2] = {
- {4, arcs_16_0},
+ {1, arcs_16_0},
{1, arcs_16_1},
};
static arc arcs_17_0[1] = {
@@ -298,221 +285,246 @@
static arc arcs_18_0[1] = {
{46, 1},
};
-static arc arcs_18_1[1] = {
+static arc arcs_18_1[2] = {
+ {9, 2},
{0, 1},
};
-static state states_18[2] = {
+static arc arcs_18_2[1] = {
+ {0, 2},
+};
+static state states_18[3] = {
{1, arcs_18_0},
- {1, arcs_18_1},
+ {2, arcs_18_1},
+ {1, arcs_18_2},
};
static arc arcs_19_0[1] = {
{47, 1},
};
-static arc arcs_19_1[2] = {
- {9, 2},
- {0, 1},
+static arc arcs_19_1[1] = {
+ {36, 2},
};
-static arc arcs_19_2[1] = {
+static arc arcs_19_2[2] = {
+ {20, 3},
{0, 2},
};
-static state states_19[3] = {
- {1, arcs_19_0},
- {2, arcs_19_1},
- {1, arcs_19_2},
+static arc arcs_19_3[1] = {
+ {36, 4},
};
-static arc arcs_20_0[1] = {
- {48, 1},
-};
-static arc arcs_20_1[1] = {
- {37, 2},
-};
-static arc arcs_20_2[2] = {
- {21, 3},
- {0, 2},
-};
-static arc arcs_20_3[1] = {
- {37, 4},
-};
-static arc arcs_20_4[1] = {
+static arc arcs_19_4[1] = {
{0, 4},
};
-static state states_20[5] = {
- {1, arcs_20_0},
- {1, arcs_20_1},
- {2, arcs_20_2},
- {1, arcs_20_3},
- {1, arcs_20_4},
+static state states_19[5] = {
+ {1, arcs_19_0},
+ {1, arcs_19_1},
+ {2, arcs_19_2},
+ {1, arcs_19_3},
+ {1, arcs_19_4},
};
-static arc arcs_21_0[2] = {
- {49, 1},
- {50, 2},
+static arc arcs_20_0[2] = {
+ {48, 1},
+ {49, 2},
};
-static arc arcs_21_1[1] = {
- {15, 3},
+static arc arcs_20_1[1] = {
+ {12, 3},
};
-static arc arcs_21_2[1] = {
- {15, 4},
+static arc arcs_20_2[1] = {
+ {12, 4},
};
-static arc arcs_21_3[2] = {
- {21, 1},
+static arc arcs_20_3[2] = {
+ {20, 1},
{0, 3},
};
-static arc arcs_21_4[1] = {
- {49, 5},
+static arc arcs_20_4[1] = {
+ {48, 5},
};
-static arc arcs_21_5[2] = {
- {22, 6},
- {15, 7},
+static arc arcs_20_5[2] = {
+ {21, 6},
+ {12, 7},
};
-static arc arcs_21_6[1] = {
+static arc arcs_20_6[1] = {
{0, 6},
};
-static arc arcs_21_7[2] = {
- {21, 8},
+static arc arcs_20_7[2] = {
+ {20, 8},
{0, 7},
};
-static arc arcs_21_8[1] = {
- {15, 7},
+static arc arcs_20_8[1] = {
+ {12, 7},
};
-static state states_21[9] = {
- {2, arcs_21_0},
+static state states_20[9] = {
+ {2, arcs_20_0},
+ {1, arcs_20_1},
+ {1, arcs_20_2},
+ {2, arcs_20_3},
+ {1, arcs_20_4},
+ {2, arcs_20_5},
+ {1, arcs_20_6},
+ {2, arcs_20_7},
+ {1, arcs_20_8},
+};
+static arc arcs_21_0[1] = {
+ {50, 1},
+};
+static arc arcs_21_1[1] = {
+ {12, 2},
+};
+static arc arcs_21_2[2] = {
+ {20, 1},
+ {0, 2},
+};
+static state states_21[3] = {
+ {1, arcs_21_0},
{1, arcs_21_1},
- {1, arcs_21_2},
- {2, arcs_21_3},
- {1, arcs_21_4},
- {2, arcs_21_5},
- {1, arcs_21_6},
- {2, arcs_21_7},
- {1, arcs_21_8},
+ {2, arcs_21_2},
};
static arc arcs_22_0[1] = {
{51, 1},
};
-static arc arcs_22_1[1] = {
- {15, 2},
+static arc arcs_22_1[2] = {
+ {21, 2},
+ {12, 3},
};
-static arc arcs_22_2[2] = {
- {21, 1},
- {0, 2},
+static arc arcs_22_2[1] = {
+ {14, 4},
};
-static state states_22[3] = {
+static arc arcs_22_3[2] = {
+ {20, 5},
+ {14, 4},
+};
+static arc arcs_22_4[1] = {
+ {52, 6},
+};
+static arc arcs_22_5[1] = {
+ {12, 3},
+};
+static arc arcs_22_6[2] = {
+ {20, 4},
+ {0, 6},
+};
+static state states_22[7] = {
{1, arcs_22_0},
- {1, arcs_22_1},
- {2, arcs_22_2},
+ {2, arcs_22_1},
+ {1, arcs_22_2},
+ {2, arcs_22_3},
+ {1, arcs_22_4},
+ {1, arcs_22_5},
+ {2, arcs_22_6},
};
static arc arcs_23_0[1] = {
- {52, 1},
+ {12, 1},
};
static arc arcs_23_1[2] = {
- {22, 2},
- {15, 3},
-};
-static arc arcs_23_2[1] = {
- {12, 4},
-};
-static arc arcs_23_3[2] = {
- {21, 5},
- {12, 4},
-};
-static arc arcs_23_4[1] = {
- {53, 6},
-};
-static arc arcs_23_5[1] = {
- {15, 3},
-};
-static arc arcs_23_6[2] = {
- {21, 4},
- {0, 6},
-};
-static state states_23[7] = {
- {1, arcs_23_0},
- {2, arcs_23_1},
- {1, arcs_23_2},
- {2, arcs_23_3},
- {1, arcs_23_4},
- {1, arcs_23_5},
- {2, arcs_23_6},
-};
-static arc arcs_24_0[1] = {
- {15, 1},
-};
-static arc arcs_24_1[2] = {
- {15, 1},
+ {12, 1},
{0, 1},
};
-static state states_24[2] = {
- {1, arcs_24_0},
- {2, arcs_24_1},
+static state states_23[2] = {
+ {1, arcs_23_0},
+ {2, arcs_23_1},
};
-static arc arcs_25_0[1] = {
- {54, 1},
+static arc arcs_24_0[1] = {
+ {53, 1},
};
-static arc arcs_25_1[1] = {
- {55, 2},
+static arc arcs_24_1[1] = {
+ {54, 2},
};
-static arc arcs_25_2[2] = {
- {56, 3},
+static arc arcs_24_2[2] = {
+ {55, 3},
{0, 2},
};
-static arc arcs_25_3[1] = {
- {37, 4},
+static arc arcs_24_3[1] = {
+ {36, 4},
};
-static arc arcs_25_4[2] = {
- {21, 5},
+static arc arcs_24_4[2] = {
+ {20, 5},
{0, 4},
};
-static arc arcs_25_5[1] = {
- {37, 6},
+static arc arcs_24_5[1] = {
+ {36, 6},
};
-static arc arcs_25_6[1] = {
+static arc arcs_24_6[1] = {
{0, 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 state states_24[7] = {
+ {1, arcs_24_0},
+ {1, arcs_24_1},
+ {2, arcs_24_2},
+ {1, arcs_24_3},
+ {2, arcs_24_4},
+ {1, arcs_24_5},
+ {1, arcs_24_6},
};
-static arc arcs_26_0[6] = {
+static arc arcs_25_0[6] = {
+ {56, 1},
{57, 1},
{58, 1},
{59, 1},
+ {10, 1},
{60, 1},
- {13, 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] = {
{61, 1},
};
static arc arcs_26_1[1] = {
- {0, 1},
+ {36, 2},
};
-static state states_26[2] = {
- {6, arcs_26_0},
+static arc arcs_26_2[1] = {
+ {14, 3},
+};
+static arc arcs_26_3[1] = {
+ {15, 4},
+};
+static arc arcs_26_4[3] = {
+ {62, 1},
+ {63, 5},
+ {0, 4},
+};
+static arc arcs_26_5[1] = {
+ {14, 6},
+};
+static arc arcs_26_6[1] = {
+ {15, 7},
+};
+static arc arcs_26_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 arc arcs_27_0[1] = {
- {62, 1},
+ {64, 1},
};
static arc arcs_27_1[1] = {
- {37, 2},
+ {36, 2},
};
static arc arcs_27_2[1] = {
- {12, 3},
+ {14, 3},
};
static arc arcs_27_3[1] = {
- {17, 4},
+ {15, 4},
};
-static arc arcs_27_4[3] = {
- {63, 1},
- {64, 5},
+static arc arcs_27_4[2] = {
+ {63, 5},
{0, 4},
};
static arc arcs_27_5[1] = {
- {12, 6},
+ {14, 6},
};
static arc arcs_27_6[1] = {
- {17, 7},
+ {15, 7},
};
static arc arcs_27_7[1] = {
{0, 7},
@@ -522,7 +534,7 @@
{1, arcs_27_1},
{1, arcs_27_2},
{1, arcs_27_3},
- {3, arcs_27_4},
+ {2, arcs_27_4},
{1, arcs_27_5},
{1, arcs_27_6},
{1, arcs_27_7},
@@ -531,64 +543,73 @@
{65, 1},
};
static arc arcs_28_1[1] = {
- {37, 2},
+ {38, 2},
};
static arc arcs_28_2[1] = {
- {12, 3},
+ {55, 3},
};
static arc arcs_28_3[1] = {
- {17, 4},
+ {9, 4},
};
-static arc arcs_28_4[2] = {
- {64, 5},
- {0, 4},
+static arc arcs_28_4[1] = {
+ {14, 5},
};
static arc arcs_28_5[1] = {
- {12, 6},
+ {15, 6},
};
-static arc arcs_28_6[1] = {
- {17, 7},
+static arc arcs_28_6[2] = {
+ {63, 7},
+ {0, 6},
};
static arc arcs_28_7[1] = {
- {0, 7},
+ {14, 8},
};
-static state states_28[8] = {
+static arc arcs_28_8[1] = {
+ {15, 9},
+};
+static arc arcs_28_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},
- {2, arcs_28_4},
+ {1, arcs_28_4},
{1, arcs_28_5},
- {1, arcs_28_6},
+ {2, arcs_28_6},
{1, arcs_28_7},
+ {1, arcs_28_8},
+ {1, arcs_28_9},
};
static arc arcs_29_0[1] = {
{66, 1},
};
static arc arcs_29_1[1] = {
- {39, 2},
+ {14, 2},
};
static arc arcs_29_2[1] = {
- {56, 3},
+ {15, 3},
};
-static arc arcs_29_3[1] = {
- {9, 4},
+static arc arcs_29_3[2] = {
+ {67, 4},
+ {68, 5},
};
static arc arcs_29_4[1] = {
- {12, 5},
+ {14, 6},
};
static arc arcs_29_5[1] = {
- {17, 6},
+ {14, 7},
};
-static arc arcs_29_6[2] = {
- {64, 7},
- {0, 6},
+static arc arcs_29_6[1] = {
+ {15, 8},
};
static arc arcs_29_7[1] = {
- {12, 8},
+ {15, 9},
};
-static arc arcs_29_8[1] = {
- {17, 9},
+static arc arcs_29_8[2] = {
+ {67, 4},
+ {0, 8},
};
static arc arcs_29_9[1] = {
{0, 9},
@@ -597,187 +618,154 @@
{1, arcs_29_0},
{1, arcs_29_1},
{1, arcs_29_2},
- {1, arcs_29_3},
+ {2, arcs_29_3},
{1, arcs_29_4},
{1, arcs_29_5},
- {2, arcs_29_6},
+ {1, arcs_29_6},
{1, arcs_29_7},
- {1, arcs_29_8},
+ {2, arcs_29_8},
{1, arcs_29_9},
};
static arc arcs_30_0[1] = {
- {67, 1},
+ {69, 1},
};
-static arc arcs_30_1[1] = {
- {12, 2},
-};
-static arc arcs_30_2[1] = {
- {17, 3},
-};
-static arc arcs_30_3[2] = {
- {68, 4},
- {69, 5},
-};
-static arc arcs_30_4[1] = {
- {12, 6},
-};
-static arc arcs_30_5[1] = {
- {12, 7},
-};
-static arc arcs_30_6[1] = {
- {17, 8},
-};
-static arc arcs_30_7[1] = {
- {17, 9},
-};
-static arc arcs_30_8[2] = {
- {68, 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] = {
- {70, 1},
-};
-static arc arcs_31_1[2] = {
- {37, 2},
+static arc arcs_30_1[2] = {
+ {36, 2},
{0, 1},
};
-static arc arcs_31_2[2] = {
- {21, 3},
+static arc arcs_30_2[2] = {
+ {20, 3},
{0, 2},
};
-static arc arcs_31_3[1] = {
- {37, 4},
+static arc arcs_30_3[1] = {
+ {36, 4},
};
-static arc arcs_31_4[1] = {
+static arc arcs_30_4[1] = {
{0, 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 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 arc arcs_32_0[2] = {
+static arc arcs_31_0[2] = {
{3, 1},
{2, 2},
};
-static arc arcs_32_1[1] = {
+static arc arcs_31_1[1] = {
{0, 1},
};
-static arc arcs_32_2[1] = {
- {71, 3},
+static arc arcs_31_2[1] = {
+ {70, 3},
};
-static arc arcs_32_3[1] = {
+static arc arcs_31_3[1] = {
{6, 4},
};
-static arc arcs_32_4[2] = {
+static arc arcs_31_4[2] = {
{6, 4},
+ {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] = {
{72, 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_32_1[2] = {
+ {73, 0},
+ {0, 1},
+};
+static state states_32[2] = {
+ {1, arcs_32_0},
+ {2, arcs_32_1},
};
static arc arcs_33_0[1] = {
- {73, 1},
+ {74, 1},
};
static arc arcs_33_1[2] = {
- {74, 0},
+ {75, 0},
{0, 1},
};
static state states_33[2] = {
{1, arcs_33_0},
{2, arcs_33_1},
};
-static arc arcs_34_0[1] = {
- {75, 1},
+static arc arcs_34_0[2] = {
+ {76, 1},
+ {77, 2},
};
-static arc arcs_34_1[2] = {
- {76, 0},
- {0, 1},
+static arc arcs_34_1[1] = {
+ {74, 2},
};
-static state states_34[2] = {
- {1, arcs_34_0},
- {2, arcs_34_1},
-};
-static arc arcs_35_0[2] = {
- {77, 1},
- {78, 2},
-};
-static arc arcs_35_1[1] = {
- {75, 2},
-};
-static arc arcs_35_2[1] = {
+static arc arcs_34_2[1] = {
{0, 2},
};
-static state states_35[3] = {
- {2, arcs_35_0},
- {1, arcs_35_1},
- {1, arcs_35_2},
+static state states_34[3] = {
+ {2, arcs_34_0},
+ {1, arcs_34_1},
+ {1, arcs_34_2},
};
-static arc arcs_36_0[1] = {
- {55, 1},
+static arc arcs_35_0[1] = {
+ {54, 1},
};
-static arc arcs_36_1[2] = {
- {79, 0},
+static arc arcs_35_1[2] = {
+ {78, 0},
{0, 1},
};
-static state states_36[2] = {
- {1, arcs_36_0},
- {2, arcs_36_1},
+static state states_35[2] = {
+ {1, arcs_35_0},
+ {2, arcs_35_1},
};
-static arc arcs_37_0[10] = {
+static arc arcs_36_0[10] = {
+ {79, 1},
{80, 1},
{81, 1},
{82, 1},
{83, 1},
{84, 1},
{85, 1},
- {86, 1},
- {56, 1},
- {77, 2},
- {87, 3},
+ {55, 1},
+ {76, 2},
+ {86, 3},
};
-static arc arcs_37_1[1] = {
+static arc arcs_36_1[1] = {
{0, 1},
};
-static arc arcs_37_2[1] = {
- {56, 1},
+static arc arcs_36_2[1] = {
+ {55, 1},
};
-static arc arcs_37_3[2] = {
- {77, 1},
+static arc arcs_36_3[2] = {
+ {76, 1},
{0, 3},
};
-static state states_37[4] = {
- {10, arcs_37_0},
- {1, arcs_37_1},
- {1, arcs_37_2},
- {2, arcs_37_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] = {
+ {87, 1},
+};
+static arc arcs_37_1[2] = {
+ {88, 0},
+ {0, 1},
+};
+static state states_37[2] = {
+ {1, arcs_37_0},
+ {2, arcs_37_1},
};
static arc arcs_38_0[1] = {
- {88, 1},
+ {89, 1},
};
static arc arcs_38_1[2] = {
- {89, 0},
+ {90, 0},
{0, 1},
};
static state states_38[2] = {
@@ -785,10 +773,10 @@
{2, arcs_38_1},
};
static arc arcs_39_0[1] = {
- {90, 1},
+ {91, 1},
};
static arc arcs_39_1[2] = {
- {91, 0},
+ {92, 0},
{0, 1},
};
static state states_39[2] = {
@@ -796,22 +784,23 @@
{2, arcs_39_1},
};
static arc arcs_40_0[1] = {
- {92, 1},
+ {93, 1},
};
-static arc arcs_40_1[2] = {
- {93, 0},
+static arc arcs_40_1[3] = {
+ {94, 0},
+ {95, 0},
{0, 1},
};
static state states_40[2] = {
{1, arcs_40_0},
- {2, arcs_40_1},
+ {3, arcs_40_1},
};
static arc arcs_41_0[1] = {
- {94, 1},
+ {96, 1},
};
static arc arcs_41_1[3] = {
- {95, 0},
- {96, 0},
+ {97, 0},
+ {98, 0},
{0, 1},
};
static state states_41[2] = {
@@ -819,126 +808,138 @@
{3, arcs_41_1},
};
static arc arcs_42_0[1] = {
- {97, 1},
+ {99, 1},
};
-static arc arcs_42_1[3] = {
- {98, 0},
- {99, 0},
+static arc arcs_42_1[4] = {
+ {21, 0},
+ {100, 0},
+ {101, 0},
{0, 1},
};
static state states_42[2] = {
{1, arcs_42_0},
- {3, arcs_42_1},
+ {4, arcs_42_1},
};
-static arc arcs_43_0[1] = {
- {100, 1},
-};
-static arc arcs_43_1[4] = {
- {22, 0},
- {101, 0},
- {102, 0},
- {0, 1},
-};
-static state states_43[2] = {
- {1, arcs_43_0},
- {4, arcs_43_1},
-};
-static arc arcs_44_0[4] = {
+static arc arcs_43_0[4] = {
+ {97, 1},
{98, 1},
- {99, 1},
- {103, 1},
+ {102, 1},
+ {103, 2},
+};
+static arc arcs_43_1[1] = {
+ {99, 3},
+};
+static arc arcs_43_2[2] = {
{104, 2},
-};
-static arc arcs_44_1[1] = {
- {100, 3},
-};
-static arc arcs_44_2[2] = {
- {105, 2},
{0, 2},
};
-static arc arcs_44_3[1] = {
+static arc arcs_43_3[1] = {
{0, 3},
};
-static state states_44[4] = {
- {4, arcs_44_0},
- {1, arcs_44_1},
- {2, arcs_44_2},
- {1, arcs_44_3},
+static state states_43[4] = {
+ {4, arcs_43_0},
+ {1, arcs_43_1},
+ {2, arcs_43_2},
+ {1, arcs_43_3},
};
-static arc arcs_45_0[7] = {
- {18, 1},
- {106, 2},
- {108, 3},
- {111, 4},
- {15, 5},
+static arc arcs_44_0[8] = {
+ {16, 1},
+ {105, 2},
+ {107, 3},
+ {110, 4},
+ {111, 5},
+ {12, 5},
{112, 5},
{113, 5},
};
-static arc arcs_45_1[2] = {
+static arc arcs_44_1[2] = {
{9, 6},
- {19, 5},
+ {18, 5},
};
-static arc arcs_45_2[2] = {
+static arc arcs_44_2[2] = {
{9, 7},
- {107, 5},
+ {106, 5},
};
-static arc arcs_45_3[2] = {
- {109, 8},
- {110, 5},
+static arc arcs_44_3[2] = {
+ {108, 8},
+ {109, 5},
};
-static arc arcs_45_4[1] = {
+static arc arcs_44_4[1] = {
{9, 9},
};
-static arc arcs_45_5[1] = {
+static arc arcs_44_5[1] = {
{0, 5},
};
-static arc arcs_45_6[1] = {
- {19, 5},
+static arc arcs_44_6[1] = {
+ {18, 5},
};
-static arc arcs_45_7[1] = {
- {107, 5},
+static arc arcs_44_7[1] = {
+ {106, 5},
};
-static arc arcs_45_8[1] = {
+static arc arcs_44_8[1] = {
+ {109, 5},
+};
+static arc arcs_44_9[1] = {
{110, 5},
};
-static arc arcs_45_9[1] = {
- {111, 5},
+static state states_44[10] = {
+ {8, 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 state states_45[10] = {
- {7, arcs_45_0},
+static arc arcs_45_0[1] = {
+ {114, 1},
+};
+static arc arcs_45_1[2] = {
+ {17, 2},
+ {14, 3},
+};
+static arc arcs_45_2[1] = {
+ {14, 3},
+};
+static arc arcs_45_3[1] = {
+ {36, 4},
+};
+static arc arcs_45_4[1] = {
+ {0, 4},
+};
+static state states_45[5] = {
+ {1, arcs_45_0},
{2, arcs_45_1},
- {2, arcs_45_2},
- {2, arcs_45_3},
+ {1, arcs_45_2},
+ {1, 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[3] = {
- {18, 1},
- {106, 2},
- {115, 3},
+ {16, 1},
+ {105, 2},
+ {116, 3},
};
static arc arcs_46_1[2] = {
{9, 4},
- {19, 5},
+ {18, 5},
};
static arc arcs_46_2[1] = {
- {114, 6},
+ {115, 6},
};
static arc arcs_46_3[1] = {
- {15, 5},
+ {12, 5},
};
static arc arcs_46_4[1] = {
- {19, 5},
+ {18, 5},
};
static arc arcs_46_5[1] = {
{0, 5},
};
static arc arcs_46_6[1] = {
- {107, 5},
+ {106, 5},
};
static state states_46[7] = {
{3, arcs_46_0},
@@ -950,15 +951,15 @@
{1, arcs_46_6},
};
static arc arcs_47_0[2] = {
- {37, 1},
- {12, 2},
+ {36, 1},
+ {14, 2},
};
static arc arcs_47_1[2] = {
- {12, 2},
+ {14, 2},
{0, 1},
};
static arc arcs_47_2[2] = {
- {37, 3},
+ {36, 3},
{0, 2},
};
static arc arcs_47_3[1] = {
@@ -971,14 +972,14 @@
{1, arcs_47_3},
};
static arc arcs_48_0[1] = {
- {55, 1},
+ {54, 1},
};
static arc arcs_48_1[2] = {
- {21, 2},
+ {20, 2},
{0, 1},
};
static arc arcs_48_2[2] = {
- {55, 1},
+ {54, 1},
{0, 2},
};
static state states_48[3] = {
@@ -987,14 +988,14 @@
{2, arcs_48_2},
};
static arc arcs_49_0[1] = {
- {37, 1},
+ {36, 1},
};
static arc arcs_49_1[2] = {
- {21, 2},
+ {20, 2},
{0, 1},
};
static arc arcs_49_2[2] = {
- {37, 1},
+ {36, 1},
{0, 2},
};
static state states_49[3] = {
@@ -1003,20 +1004,20 @@
{2, arcs_49_2},
};
static arc arcs_50_0[1] = {
- {37, 1},
+ {36, 1},
};
static arc arcs_50_1[1] = {
- {12, 2},
+ {14, 2},
};
static arc arcs_50_2[1] = {
- {37, 3},
+ {36, 3},
};
static arc arcs_50_3[2] = {
- {21, 4},
+ {20, 4},
{0, 3},
};
static arc arcs_50_4[2] = {
- {37, 1},
+ {36, 1},
{0, 4},
};
static state states_50[5] = {
@@ -1027,29 +1028,29 @@
{2, arcs_50_4},
};
static arc arcs_51_0[1] = {
- {116, 1},
+ {117, 1},
};
static arc arcs_51_1[1] = {
- {15, 2},
+ {12, 2},
};
static arc arcs_51_2[2] = {
- {18, 3},
- {12, 4},
+ {16, 3},
+ {14, 4},
};
static arc arcs_51_3[1] = {
{9, 5},
};
static arc arcs_51_4[1] = {
- {17, 6},
+ {15, 6},
};
static arc arcs_51_5[1] = {
- {19, 7},
+ {18, 7},
};
static arc arcs_51_6[1] = {
{0, 6},
};
static arc arcs_51_7[1] = {
- {12, 4},
+ {14, 4},
};
static state states_51[8] = {
{1, arcs_51_0},
@@ -1063,156 +1064,155 @@
};
static dfa dfas[52] = {
{256, "single_input", 0, 3, states_0,
- "\004\300\004\000\120\341\137\100\016\040\000\000\214\224\023"},
+ "\004\030\001\000\250\360\057\040\007\020\000\000\106\112\047"},
{257, "file_input", 0, 2, states_1,
- "\204\300\004\000\120\341\137\100\016\040\000\000\214\224\023"},
+ "\204\030\001\000\250\360\057\040\007\020\000\000\106\112\047"},
{258, "eval_input", 0, 3, states_2,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
- {259, "lambda_input", 0, 5, states_3,
- "\000\200\104\000\000\000\000\000\000\000\000\000\000\000\000"},
- {260, "funcdef", 0, 6, states_4,
- "\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {261, "parameters", 0, 4, states_5,
- "\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000"},
- {262, "varargslist", 0, 5, states_6,
- "\000\200\104\000\000\000\000\000\000\000\000\000\000\000\000"},
- {263, "fpdef", 0, 4, states_7,
- "\000\200\004\000\000\000\000\000\000\000\000\000\000\000\000"},
- {264, "fplist", 0, 3, states_8,
- "\000\200\004\000\000\000\000\000\000\000\000\000\000\000\000"},
- {265, "stmt", 0, 2, states_9,
- "\000\300\004\000\120\341\137\100\016\040\000\000\214\224\023"},
- {266, "simple_stmt", 0, 4, states_10,
- "\000\200\004\000\120\341\137\000\000\040\000\000\214\224\003"},
- {267, "small_stmt", 0, 2, states_11,
- "\000\200\004\000\120\341\137\000\000\040\000\000\214\224\003"},
- {268, "expr_stmt", 0, 2, states_12,
- "\000\200\004\000\000\000\000\000\000\040\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\000\001\000\000\000\000\000\000\000\000\000"},
- {272, "flow_stmt", 0, 2, states_16,
- "\000\000\000\000\000\340\001\000\000\000\000\000\000\000\000"},
- {273, "break_stmt", 0, 2, states_17,
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
+ {259, "funcdef", 0, 6, states_3,
+ "\000\010\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"},
+ {261, "varargslist", 0, 5, states_5,
+ "\000\020\041\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"},
+ {263, "fplist", 0, 3, states_7,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {264, "stmt", 0, 2, states_8,
+ "\000\030\001\000\250\360\057\040\007\020\000\000\106\112\047"},
+ {265, "simple_stmt", 0, 4, states_9,
+ "\000\020\001\000\250\360\057\000\000\020\000\000\106\112\007"},
+ {266, "small_stmt", 0, 2, states_10,
+ "\000\020\001\000\250\360\057\000\000\020\000\000\106\112\007"},
+ {267, "expr_stmt", 0, 2, states_11,
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
+ {268, "print_stmt", 0, 3, states_12,
+ "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000"},
+ {269, "del_stmt", 0, 3, states_13,
+ "\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"},
+ {270, "pass_stmt", 0, 2, states_14,
+ "\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
+ {271, "flow_stmt", 0, 2, states_15,
+ "\000\000\000\000\000\360\000\000\000\000\000\000\000\000\000"},
+ {272, "break_stmt", 0, 2, states_16,
+ "\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000"},
+ {273, "continue_stmt", 0, 2, states_17,
"\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"},
- {274, "continue_stmt", 0, 2, states_18,
+ {274, "return_stmt", 0, 3, states_18,
"\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"},
- {275, "return_stmt", 0, 3, states_19,
+ {275, "raise_stmt", 0, 5, 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\006\000\000\000\000\000\000\000\000"},
- {278, "global_stmt", 0, 3, states_22,
+ {276, "import_stmt", 0, 9, states_20,
+ "\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000"},
+ {277, "global_stmt", 0, 3, states_21,
+ "\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"},
+ {278, "access_stmt", 0, 7, states_22,
"\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\200\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {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\100\000\000\000\000\000\100\016\000\000\000\000\000\020"},
- {283, "if_stmt", 0, 8, states_27,
- "\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000"},
- {284, "while_stmt", 0, 8, states_28,
+ {279, "accesstype", 0, 2, states_23,
+ "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {280, "exec_stmt", 0, 7, states_24,
+ "\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
+ {281, "compound_stmt", 0, 2, states_25,
+ "\000\010\000\000\000\000\000\040\007\000\000\000\000\000\040"},
+ {282, "if_stmt", 0, 8, states_26,
+ "\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000"},
+ {283, "while_stmt", 0, 8, states_27,
+ "\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000"},
+ {284, "for_stmt", 0, 10, states_28,
"\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000"},
- {285, "for_stmt", 0, 10, states_29,
+ {285, "try_stmt", 0, 10, states_29,
"\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000"},
- {286, "try_stmt", 0, 10, states_30,
- "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000"},
- {287, "except_clause", 0, 5, states_31,
- "\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000"},
- {288, "suite", 0, 5, states_32,
- "\004\200\004\000\120\341\137\000\000\040\000\000\214\224\003"},
- {289, "test", 0, 2, states_33,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
- {290, "and_test", 0, 2, states_34,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
- {291, "not_test", 0, 3, states_35,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
- {292, "comparison", 0, 2, states_36,
- "\000\200\004\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\000\001\000\040\377\000\000\000\000"},
- {294, "expr", 0, 2, states_38,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {295, "xor_expr", 0, 2, states_39,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {296, "and_expr", 0, 2, states_40,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {297, "shift_expr", 0, 2, states_41,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {298, "arith_expr", 0, 2, states_42,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {299, "term", 0, 2, states_43,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {300, "factor", 0, 4, states_44,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
- {301, "atom", 0, 10, states_45,
- "\000\200\004\000\000\000\000\000\000\000\000\000\000\224\003"},
+ {286, "except_clause", 0, 5, states_30,
+ "\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000"},
+ {287, "suite", 0, 5, states_31,
+ "\004\020\001\000\250\360\057\000\000\020\000\000\106\112\007"},
+ {288, "test", 0, 2, states_32,
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
+ {289, "and_test", 0, 2, states_33,
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
+ {290, "not_test", 0, 3, states_34,
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
+ {291, "comparison", 0, 2, states_35,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {292, "comp_op", 0, 4, states_36,
+ "\000\000\000\000\000\000\200\000\000\220\177\000\000\000\000"},
+ {293, "expr", 0, 2, states_37,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {294, "xor_expr", 0, 2, states_38,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {295, "and_expr", 0, 2, states_39,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {296, "shift_expr", 0, 2, states_40,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {297, "arith_expr", 0, 2, states_41,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {298, "term", 0, 2, states_42,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {299, "factor", 0, 4, states_43,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
+ {300, "atom", 0, 10, states_44,
+ "\000\020\001\000\000\000\000\000\000\000\000\000\000\112\007"},
+ {301, "lambdef", 0, 5, states_45,
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004"},
{302, "trailer", 0, 7, states_46,
- "\000\000\004\000\000\000\000\000\000\000\000\000\000\004\010"},
+ "\000\000\001\000\000\000\000\000\000\000\000\000\000\002\020"},
{303, "subscript", 0, 4, states_47,
- "\000\220\004\000\000\000\000\000\000\040\000\000\214\224\003"},
+ "\000\120\001\000\000\000\000\000\000\020\000\000\106\112\007"},
{304, "exprlist", 0, 3, states_48,
- "\000\200\004\000\000\000\000\000\000\000\000\000\214\224\003"},
+ "\000\020\001\000\000\000\000\000\000\000\000\000\106\112\007"},
{305, "testlist", 0, 3, states_49,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
{306, "dictmaker", 0, 5, states_50,
- "\000\200\004\000\000\000\000\000\000\040\000\000\214\224\003"},
+ "\000\020\001\000\000\000\000\000\000\020\000\000\106\112\007"},
{307, "classdef", 0, 8, states_51,
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020"},
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040"},
};
-static label labels[117] = {
+static label labels[118] = {
{0, "EMPTY"},
{256, 0},
{4, 0},
- {266, 0},
- {282, 0},
- {257, 0},
{265, 0},
+ {281, 0},
+ {257, 0},
+ {264, 0},
{0, 0},
{258, 0},
{305, 0},
{259, 0},
- {262, 0},
- {11, 0},
- {260, 0},
{1, "def"},
{1, 0},
- {261, 0},
- {288, 0},
+ {260, 0},
+ {11, 0},
+ {287, 0},
{7, 0},
+ {261, 0},
{8, 0},
- {263, 0},
+ {262, 0},
{12, 0},
{16, 0},
- {264, 0},
- {267, 0},
+ {263, 0},
+ {266, 0},
{13, 0},
+ {267, 0},
{268, 0},
{269, 0},
{270, 0},
{271, 0},
- {272, 0},
+ {276, 0},
{277, 0},
{278, 0},
- {279, 0},
- {281, 0},
+ {280, 0},
{22, 0},
{1, "print"},
- {289, 0},
+ {288, 0},
{1, "del"},
{304, 0},
{1, "pass"},
+ {272, 0},
{273, 0},
{274, 0},
{275, 0},
- {276, 0},
{1, "break"},
{1, "continue"},
{1, "return"},
@@ -1221,14 +1221,14 @@
{1, "from"},
{1, "global"},
{1, "access"},
- {280, 0},
+ {279, 0},
{1, "exec"},
- {294, 0},
+ {293, 0},
{1, "in"},
+ {282, 0},
{283, 0},
{284, 0},
{285, 0},
- {286, 0},
{307, 0},
{1, "if"},
{1, "elif"},
@@ -1236,18 +1236,18 @@
{1, "while"},
{1, "for"},
{1, "try"},
- {287, 0},
+ {286, 0},
{1, "finally"},
{1, "except"},
{5, 0},
{6, 0},
- {290, 0},
+ {289, 0},
{1, "or"},
- {291, 0},
+ {290, 0},
{1, "and"},
{1, "not"},
+ {291, 0},
{292, 0},
- {293, 0},
{20, 0},
{21, 0},
{28, 0},
@@ -1256,23 +1256,23 @@
{29, 0},
{29, 0},
{1, "is"},
- {295, 0},
+ {294, 0},
{18, 0},
- {296, 0},
+ {295, 0},
{33, 0},
- {297, 0},
+ {296, 0},
{19, 0},
- {298, 0},
+ {297, 0},
{34, 0},
{35, 0},
- {299, 0},
+ {298, 0},
{14, 0},
{15, 0},
- {300, 0},
+ {299, 0},
{17, 0},
{24, 0},
{32, 0},
- {301, 0},
+ {300, 0},
{302, 0},
{9, 0},
{10, 0},
@@ -1280,8 +1280,10 @@
{306, 0},
{27, 0},
{25, 0},
+ {301, 0},
{2, 0},
{3, 0},
+ {1, "lambda"},
{303, 0},
{23, 0},
{1, "class"},
@@ -1289,6 +1291,6 @@
grammar gram = {
52,
dfas,
- {117, labels},
+ {118, labels},
256
};
diff --git a/Python/import.c b/Python/import.c
index 2fc3995..a8cfe5b 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -174,7 +174,8 @@
case PY_SOURCE:
mtime = getmtime(namebuf);
- strcat(namebuf, "c");
+ len = strlen(namebuf);
+ strcpy(namebuf + len, "c");
fpc = fopen(namebuf, "rb");
if (fpc != NULL) {
magic = rd_long(fpc);
@@ -204,6 +205,7 @@
}
fclose(fpc);
}
+ namebuf[len] = '\0';
err = parse_file(fp, namebuf, file_input, &n);
if (err != E_DONE) {
err_input(err);
@@ -215,9 +217,9 @@
return NULL;
if (verbose)
fprintf(stderr,
- "import %s # from %.*s\n",
- name, strlen(namebuf)-1, namebuf);
+ "import %s # from %s\n", name, namebuf);
/* Now write the code object to the ".pyc" file */
+ strcpy(namebuf + len, "c");
fpc = fopen(namebuf, "wb");
if (fpc == NULL) {
if (verbose)