Disambiguate the grammar for backtick.

The old syntax suggested that a trailing comma was OK inside backticks,
but in fact (due to ideosyncrasies of pgen) it was not.  Fix the grammar
to avoid the ambiguity.  Fred: you may want to update the refman.
This commit is contained in:
Guido van Rossum 2002-05-24 15:47:06 +00:00
parent a0a6c5a042
commit 2d3b986480
5 changed files with 93 additions and 59 deletions

View File

@ -80,7 +80,7 @@ arith_expr: term (('+'|'-') term)*
term: factor (('*'|'/'|'%'|'//') factor)* term: factor (('*'|'/'|'%'|'//') factor)*
factor: ('+'|'-'|'~') factor | power factor: ('+'|'-'|'~') factor | power
power: atom trailer* ['**' factor] power: atom trailer* ['**' factor]
atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+ atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}' | '`' testlist1 '`' | NAME | NUMBER | STRING+
listmaker: test ( list_for | (',' test)* [','] ) listmaker: test ( list_for | (',' test)* [','] )
lambdef: 'lambda' [varargslist] ':' test lambdef: 'lambda' [varargslist] ':' test
trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
@ -100,3 +100,5 @@ argument: [test '='] test # Really [keyword '='] test
list_iter: list_for | list_if list_iter: list_for | list_if
list_for: 'for' exprlist 'in' testlist_safe [list_iter] list_for: 'for' exprlist 'in' testlist_safe [list_iter]
list_if: 'if' test [list_iter] list_if: 'if' test [list_iter]
testlist1: test (',' test)*

View File

@ -64,3 +64,4 @@
#define list_iter 319 #define list_iter 319
#define list_for 320 #define list_for 320
#define list_if 321 #define list_if 321
#define testlist1 322

View File

@ -844,6 +844,7 @@ VALIDATER(subscriptlist); VALIDATER(sliceop);
VALIDATER(exprlist); VALIDATER(dictmaker); VALIDATER(exprlist); VALIDATER(dictmaker);
VALIDATER(arglist); VALIDATER(argument); VALIDATER(arglist); VALIDATER(argument);
VALIDATER(listmaker); VALIDATER(yield_stmt); VALIDATER(listmaker); VALIDATER(yield_stmt);
VALIDATER(testlist1);
#undef VALIDATER #undef VALIDATER
@ -1056,6 +1057,14 @@ validate_testlist(node *tree)
} }
static int
validate_testlist1(node *tree)
{
return (validate_repeating_list(tree, testlist1,
validate_test, "testlist1"));
}
static int static int
validate_testlist_safe(node *tree) validate_testlist_safe(node *tree)
{ {
@ -2185,7 +2194,7 @@ validate_atom(node *tree)
break; break;
case BACKQUOTE: case BACKQUOTE:
res = ((nch == 3) res = ((nch == 3)
&& validate_testlist(CHILD(tree, 1)) && validate_testlist1(CHILD(tree, 1))
&& validate_ntype(CHILD(tree, 2), BACKQUOTE)); && validate_ntype(CHILD(tree, 2), BACKQUOTE));
break; break;
case NAME: case NAME:
@ -2671,6 +2680,9 @@ validate_node(node *tree)
case testlist: case testlist:
res = validate_testlist(tree); res = validate_testlist(tree);
break; break;
case testlist1:
res = validate_testlist1(tree);
break;
case test: case test:
res = validate_test(tree); res = validate_test(tree);
break; break;

View File

@ -2474,6 +2474,7 @@ com_assign(struct compiling *c, node *n, int assigning, node *augn)
case exprlist: case exprlist:
case testlist: case testlist:
case testlist1:
if (NCH(n) > 1) { if (NCH(n) > 1) {
if (assigning > OP_APPLY) { if (assigning > OP_APPLY) {
com_error(c, PyExc_SyntaxError, com_error(c, PyExc_SyntaxError,
@ -2955,6 +2956,7 @@ is_constant_false(struct compiling *c, node *n)
case expr_stmt: case expr_stmt:
case testlist: case testlist:
case testlist1:
case test: case test:
case and_test: case and_test:
case not_test: case not_test:
@ -3356,6 +3358,7 @@ get_rawdocstring(node *n)
case expr_stmt: case expr_stmt:
case testlist: case testlist:
case testlist1:
case test: case test:
case and_test: case and_test:
case not_test: case not_test:
@ -3704,6 +3707,7 @@ com_node(struct compiling *c, node *n)
/* Expression nodes */ /* Expression nodes */
case testlist: case testlist:
case testlist1:
case testlist_safe: case testlist_safe:
com_list(c, n, 0); com_list(c, n, 0);
break; break;
@ -5447,6 +5451,7 @@ symtable_assign(struct symtable *st, node *n, int def_flag)
return; return;
case exprlist: case exprlist:
case testlist: case testlist:
case testlist1:
if (NCH(n) == 1) { if (NCH(n) == 1) {
n = CHILD(n, 0); n = CHILD(n, 0);
goto loop; goto loop;

View File

@ -1020,8 +1020,8 @@ static arc arcs_49_0[7] = {
{130, 3}, {130, 3},
{133, 4}, {133, 4},
{12, 5}, {12, 5},
{134, 5}, {135, 5},
{135, 6}, {136, 6},
}; };
static arc arcs_49_1[2] = { static arc arcs_49_1[2] = {
{9, 7}, {9, 7},
@ -1036,13 +1036,13 @@ static arc arcs_49_3[2] = {
{132, 5}, {132, 5},
}; };
static arc arcs_49_4[1] = { static arc arcs_49_4[1] = {
{9, 10}, {134, 10},
}; };
static arc arcs_49_5[1] = { static arc arcs_49_5[1] = {
{0, 5}, {0, 5},
}; };
static arc arcs_49_6[2] = { static arc arcs_49_6[2] = {
{135, 6}, {136, 6},
{0, 6}, {0, 6},
}; };
static arc arcs_49_7[1] = { static arc arcs_49_7[1] = {
@ -1074,7 +1074,7 @@ static arc arcs_50_0[1] = {
{21, 1}, {21, 1},
}; };
static arc arcs_50_1[3] = { static arc arcs_50_1[3] = {
{136, 2}, {137, 2},
{22, 3}, {22, 3},
{0, 1}, {0, 1},
}; };
@ -1097,7 +1097,7 @@ static state states_50[5] = {
{2, arcs_50_4}, {2, arcs_50_4},
}; };
static arc arcs_51_0[1] = { static arc arcs_51_0[1] = {
{137, 1}, {138, 1},
}; };
static arc arcs_51_1[2] = { static arc arcs_51_1[2] = {
{17, 2}, {17, 2},
@ -1125,11 +1125,11 @@ static arc arcs_52_0[3] = {
{70, 3}, {70, 3},
}; };
static arc arcs_52_1[2] = { static arc arcs_52_1[2] = {
{138, 4}, {139, 4},
{18, 5}, {18, 5},
}; };
static arc arcs_52_2[1] = { static arc arcs_52_2[1] = {
{139, 6}, {140, 6},
}; };
static arc arcs_52_3[1] = { static arc arcs_52_3[1] = {
{12, 5}, {12, 5},
@ -1153,14 +1153,14 @@ static state states_52[7] = {
{1, arcs_52_6}, {1, arcs_52_6},
}; };
static arc arcs_53_0[1] = { static arc arcs_53_0[1] = {
{140, 1}, {141, 1},
}; };
static arc arcs_53_1[2] = { static arc arcs_53_1[2] = {
{22, 2}, {22, 2},
{0, 1}, {0, 1},
}; };
static arc arcs_53_2[2] = { static arc arcs_53_2[2] = {
{140, 1}, {141, 1},
{0, 2}, {0, 2},
}; };
static state states_53[3] = { static state states_53[3] = {
@ -1182,14 +1182,14 @@ static arc arcs_54_2[2] = {
}; };
static arc arcs_54_3[3] = { static arc arcs_54_3[3] = {
{21, 5}, {21, 5},
{141, 6}, {142, 6},
{0, 3}, {0, 3},
}; };
static arc arcs_54_4[1] = { static arc arcs_54_4[1] = {
{70, 6}, {70, 6},
}; };
static arc arcs_54_5[2] = { static arc arcs_54_5[2] = {
{141, 6}, {142, 6},
{0, 5}, {0, 5},
}; };
static arc arcs_54_6[1] = { static arc arcs_54_6[1] = {
@ -1301,7 +1301,7 @@ static state states_59[5] = {
{2, arcs_59_4}, {2, arcs_59_4},
}; };
static arc arcs_60_0[1] = { static arc arcs_60_0[1] = {
{143, 1}, {144, 1},
}; };
static arc arcs_60_1[1] = { static arc arcs_60_1[1] = {
{12, 2}, {12, 2},
@ -1336,7 +1336,7 @@ static state states_60[8] = {
{1, arcs_60_7}, {1, arcs_60_7},
}; };
static arc arcs_61_0[3] = { static arc arcs_61_0[3] = {
{144, 1}, {145, 1},
{23, 2}, {23, 2},
{24, 3}, {24, 3},
}; };
@ -1351,7 +1351,7 @@ static arc arcs_61_3[1] = {
{21, 6}, {21, 6},
}; };
static arc arcs_61_4[4] = { static arc arcs_61_4[4] = {
{144, 1}, {145, 1},
{23, 2}, {23, 2},
{24, 3}, {24, 3},
{0, 4}, {0, 4},
@ -1396,8 +1396,8 @@ static state states_62[4] = {
{1, arcs_62_3}, {1, arcs_62_3},
}; };
static arc arcs_63_0[2] = { static arc arcs_63_0[2] = {
{136, 1}, {137, 1},
{146, 1}, {147, 1},
}; };
static arc arcs_63_1[1] = { static arc arcs_63_1[1] = {
{0, 1}, {0, 1},
@ -1416,10 +1416,10 @@ static arc arcs_64_2[1] = {
{74, 3}, {74, 3},
}; };
static arc arcs_64_3[1] = { static arc arcs_64_3[1] = {
{142, 4}, {143, 4},
}; };
static arc arcs_64_4[2] = { static arc arcs_64_4[2] = {
{145, 5}, {146, 5},
{0, 4}, {0, 4},
}; };
static arc arcs_64_5[1] = { static arc arcs_64_5[1] = {
@ -1440,7 +1440,7 @@ static arc arcs_65_1[1] = {
{21, 2}, {21, 2},
}; };
static arc arcs_65_2[2] = { static arc arcs_65_2[2] = {
{145, 3}, {146, 3},
{0, 2}, {0, 2},
}; };
static arc arcs_65_3[1] = { static arc arcs_65_3[1] = {
@ -1452,13 +1452,24 @@ static state states_65[4] = {
{2, arcs_65_2}, {2, arcs_65_2},
{1, arcs_65_3}, {1, arcs_65_3},
}; };
static dfa dfas[66] = { static arc arcs_66_0[1] = {
{21, 1},
};
static arc arcs_66_1[2] = {
{22, 0},
{0, 1},
};
static state states_66[2] = {
{1, arcs_66_0},
{2, arcs_66_1},
};
static dfa dfas[67] = {
{256, "single_input", 0, 3, states_0, {256, "single_input", 0, 3, states_0,
"\004\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"}, "\004\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
{257, "file_input", 0, 2, states_1, {257, "file_input", 0, 2, states_1,
"\204\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"}, "\204\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
{258, "eval_input", 0, 3, states_2, {258, "eval_input", 0, 3, states_2,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{259, "funcdef", 0, 6, states_3, {259, "funcdef", 0, 6, states_3,
"\000\010\000\000\000\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\000\000"},
{260, "parameters", 0, 4, states_4, {260, "parameters", 0, 4, states_4,
@ -1470,13 +1481,13 @@ static dfa dfas[66] = {
{263, "fplist", 0, 3, states_7, {263, "fplist", 0, 3, states_7,
"\000\020\001\000\000\000\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\000\000"},
{264, "stmt", 0, 2, states_8, {264, "stmt", 0, 2, states_8,
"\000\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"}, "\000\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
{265, "simple_stmt", 0, 4, states_9, {265, "simple_stmt", 0, 4, states_9,
"\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
{266, "small_stmt", 0, 2, states_10, {266, "small_stmt", 0, 2, states_10,
"\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
{267, "expr_stmt", 0, 6, states_11, {267, "expr_stmt", 0, 6, states_11,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{268, "augassign", 0, 2, states_12, {268, "augassign", 0, 2, states_12,
"\000\000\000\000\300\377\003\000\000\000\000\000\000\000\000\000\000\000\000"}, "\000\000\000\000\300\377\003\000\000\000\000\000\000\000\000\000\000\000\000"},
{269, "print_stmt", 0, 9, states_13, {269, "print_stmt", 0, 9, states_13,
@ -1512,7 +1523,7 @@ static dfa dfas[66] = {
{284, "assert_stmt", 0, 5, states_28, {284, "assert_stmt", 0, 5, states_28,
"\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\000\000\000\010\000\000\000\000\000\000\000\000\000"},
{285, "compound_stmt", 0, 2, states_29, {285, "compound_stmt", 0, 2, states_29,
"\000\010\000\000\000\000\000\000\000\000\162\000\000\000\000\000\000\200\000"}, "\000\010\000\000\000\000\000\000\000\000\162\000\000\000\000\000\000\000\001"},
{286, "if_stmt", 0, 8, states_30, {286, "if_stmt", 0, 8, states_30,
"\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
{287, "while_stmt", 0, 8, states_31, {287, "while_stmt", 0, 8, states_31,
@ -1524,69 +1535,71 @@ static dfa dfas[66] = {
{290, "except_clause", 0, 5, states_34, {290, "except_clause", 0, 5, states_34,
"\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000"},
{291, "suite", 0, 5, states_35, {291, "suite", 0, 5, states_35,
"\004\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"}, "\004\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
{292, "test", 0, 4, states_36, {292, "test", 0, 4, states_36,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{293, "and_test", 0, 2, states_37, {293, "and_test", 0, 2, states_37,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\001\000"},
{294, "not_test", 0, 3, states_38, {294, "not_test", 0, 3, states_38,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\001\000"},
{295, "comparison", 0, 2, states_39, {295, "comparison", 0, 2, states_39,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{296, "comp_op", 0, 4, states_40, {296, "comp_op", 0, 4, states_40,
"\000\000\000\000\000\000\000\000\000\004\000\000\362\017\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\004\000\000\362\017\000\000\000\000\000"},
{297, "expr", 0, 2, states_41, {297, "expr", 0, 2, states_41,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{298, "xor_expr", 0, 2, states_42, {298, "xor_expr", 0, 2, states_42,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{299, "and_expr", 0, 2, states_43, {299, "and_expr", 0, 2, states_43,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{300, "shift_expr", 0, 2, states_44, {300, "shift_expr", 0, 2, states_44,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{301, "arith_expr", 0, 2, states_45, {301, "arith_expr", 0, 2, states_45,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{302, "term", 0, 2, states_46, {302, "term", 0, 2, states_46,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{303, "factor", 0, 3, states_47, {303, "factor", 0, 3, states_47,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{304, "power", 0, 4, states_48, {304, "power", 0, 4, states_48,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\244\001\000"},
{305, "atom", 0, 11, states_49, {305, "atom", 0, 11, states_49,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\244\001\000"},
{306, "listmaker", 0, 5, states_50, {306, "listmaker", 0, 5, states_50,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{307, "lambdef", 0, 5, states_51, {307, "lambdef", 0, 5, states_51,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"}, "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000"},
{308, "trailer", 0, 7, states_52, {308, "trailer", 0, 7, states_52,
"\000\000\001\000\000\000\000\000\100\000\000\000\000\000\000\200\000\000\000"}, "\000\000\001\000\000\000\000\000\100\000\000\000\000\000\000\200\000\000\000"},
{309, "subscriptlist", 0, 3, states_53, {309, "subscriptlist", 0, 3, states_53,
"\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\344\002\000"}, "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\244\005\000"},
{310, "subscript", 0, 7, states_54, {310, "subscript", 0, 7, states_54,
"\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\344\002\000"}, "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\244\005\000"},
{311, "sliceop", 0, 3, states_55, {311, "sliceop", 0, 3, states_55,
"\000\100\000\000\000\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\000\000\000\000\000"},
{312, "exprlist", 0, 3, states_56, {312, "exprlist", 0, 3, states_56,
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
{313, "testlist", 0, 3, states_57, {313, "testlist", 0, 3, states_57,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{314, "testlist_safe", 0, 5, states_58, {314, "testlist_safe", 0, 5, states_58,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{315, "dictmaker", 0, 5, states_59, {315, "dictmaker", 0, 5, states_59,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{316, "classdef", 0, 8, states_60, {316, "classdef", 0, 8, states_60,
"\000\000\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\000\000\000\000\000\000\000\000\001"},
{317, "arglist", 0, 8, states_61, {317, "arglist", 0, 8, states_61,
"\000\020\201\001\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\201\001\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{318, "argument", 0, 4, states_62, {318, "argument", 0, 4, states_62,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"}, "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
{319, "list_iter", 0, 2, states_63, {319, "list_iter", 0, 2, states_63,
"\000\000\000\000\000\000\000\000\000\000\042\000\000\000\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\000\042\000\000\000\000\000\000\000\000"},
{320, "list_for", 0, 6, states_64, {320, "list_for", 0, 6, states_64,
"\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
{321, "list_if", 0, 4, states_65, {321, "list_if", 0, 4, states_65,
"\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, "\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
{322, "testlist1", 0, 2, states_66,
"\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
}; };
static label labels[147] = { static label labels[148] = {
{0, "EMPTY"}, {0, "EMPTY"},
{256, 0}, {256, 0},
{4, 0}, {4, 0},
@ -1721,6 +1734,7 @@ static label labels[147] = {
{315, 0}, {315, 0},
{27, 0}, {27, 0},
{25, 0}, {25, 0},
{322, 0},
{2, 0}, {2, 0},
{3, 0}, {3, 0},
{320, 0}, {320, 0},
@ -1736,8 +1750,8 @@ static label labels[147] = {
{321, 0}, {321, 0},
}; };
grammar _PyParser_Grammar = { grammar _PyParser_Grammar = {
66, 67,
dfas, dfas,
{147, labels}, {148, labels},
256 256
}; };