diff -r --context Python-1.5.2/Grammar/Grammar Python-1.5.2.new/Grammar/Grammar *** Python-1.5.2/Grammar/Grammar Mon May 17 19:45:28 1999 --- Python-1.5.2.new/Grammar/Grammar Tue May 18 08:08:44 1999 *************** *** 53,59 **** compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite] ! while_stmt: 'while' test ':' suite ['else' ':' suite] for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite] try_stmt: ('try' ':' suite (except_clause ':' suite)+ #diagram:break ['else' ':' suite] | 'try' ':' suite 'finally' ':' suite) --- 53,59 ---- compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite] ! while_stmt: 'while' [':' suite 'and' 'while'] test ':' suite ['else' ':' suite] for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite] try_stmt: ('try' ':' suite (except_clause ':' suite)+ #diagram:break ['else' ':' suite] | 'try' ':' suite 'finally' ':' suite) diff -r --context Python-1.5.2/Python/compile.c Python-1.5.2.new/Python/compile.c *** Python-1.5.2/Python/compile.c Mon May 17 19:45:12 1999 --- Python-1.5.2.new/Python/compile.c Tue May 18 08:32:45 1999 *************** *** 2337,2354 **** { int break_anchor = 0; int anchor = 0; int save_begin = c->c_begin; ! REQ(n, while_stmt); /* 'while' test ':' suite ['else' ':' suite] */ com_addfwref(c, SETUP_LOOP, &break_anchor); block_push(c, SETUP_LOOP); c->c_begin = c->c_nexti; ! com_addoparg(c, SET_LINENO, n->n_lineno); ! com_node(c, CHILD(n, 1)); com_addfwref(c, JUMP_IF_FALSE, &anchor); com_addbyte(c, POP_TOP); com_pop(c, 1); c->c_loops++; ! com_node(c, CHILD(n, 3)); c->c_loops--; com_addoparg(c, JUMP_ABSOLUTE, c->c_begin); c->c_begin = save_begin; --- 2337,2366 ---- { int break_anchor = 0; int anchor = 0; + int i = 0; int save_begin = c->c_begin; ! node *ch; ! ! REQ(n, while_stmt); /* 'while' [':' suite 'and' 'while'] test ! ':' suite ['else' ':' suite] */ com_addfwref(c, SETUP_LOOP, &break_anchor); block_push(c, SETUP_LOOP); c->c_begin = c->c_nexti; ! ch = CHILD(n, 1); ! if (TYPE(ch) == COLON) { ! c->c_loops++; ! com_node(c, CHILD(n, 2)); ! c->c_loops--; ! i = 4; ! CHILD(n, 5); ! com_addoparg(c, SET_LINENO, ch->n_lineno); ! } ! com_node(c, ch); com_addfwref(c, JUMP_IF_FALSE, &anchor); com_addbyte(c, POP_TOP); com_pop(c, 1); c->c_loops++; ! com_node(c, CHILD(n, i+3)); c->c_loops--; com_addoparg(c, JUMP_ABSOLUTE, c->c_begin); c->c_begin = save_begin; *************** *** 2357,2364 **** com_addbyte(c, POP_TOP); com_addbyte(c, POP_BLOCK); block_pop(c, SETUP_LOOP); ! if (NCH(n) > 4) ! com_node(c, CHILD(n, 6)); com_backpatch(c, break_anchor); } --- 2369,2376 ---- com_addbyte(c, POP_TOP); com_addbyte(c, POP_BLOCK); block_pop(c, SETUP_LOOP); ! if (i+6 < NCH(n)) ! com_node(c, CHILD(n, i+6)); com_backpatch(c, break_anchor); } diff -r --context Python-1.5.2/Python/graminit.c Python-1.5.2.new/Python/graminit.c *** Python-1.5.2/Python/graminit.c Tue May 18 08:16:11 1999 --- Python-1.5.2.new/Python/graminit.c Tue May 18 08:07:35 1999 *************** *** 538,577 **** static arc arcs_27_0[1] = { {66, 1}, }; ! static arc arcs_27_1[1] = { ! {21, 2}, }; static arc arcs_27_2[1] = { ! {14, 3}, }; static arc arcs_27_3[1] = { ! {15, 4}, }; ! static arc arcs_27_4[2] = { ! {65, 5}, ! {0, 4}, }; static arc arcs_27_5[1] = { ! {14, 6}, }; static arc arcs_27_6[1] = { ! {15, 7}, }; ! static arc arcs_27_7[1] = { {0, 7}, }; ! static state states_27[8] = { {1, arcs_27_0}, ! {1, arcs_27_1}, {1, arcs_27_2}, {1, arcs_27_3}, ! {2, arcs_27_4}, {1, arcs_27_5}, {1, arcs_27_6}, ! {1, arcs_27_7}, }; static arc arcs_28_0[1] = { ! {67, 1}, }; static arc arcs_28_1[1] = { {39, 2}, --- 538,594 ---- static arc arcs_27_0[1] = { {66, 1}, }; ! static arc arcs_27_1[2] = { ! {14, 2}, ! {21, 3}, }; static arc arcs_27_2[1] = { ! {15, 4}, }; static arc arcs_27_3[1] = { ! {14, 5}, }; ! static arc arcs_27_4[1] = { ! {67, 6}, }; static arc arcs_27_5[1] = { ! {15, 7}, }; static arc arcs_27_6[1] = { ! {66, 8}, }; ! static arc arcs_27_7[2] = { ! {65, 9}, {0, 7}, }; ! static arc arcs_27_8[1] = { ! {21, 3}, ! }; ! static arc arcs_27_9[1] = { ! {14, 10}, ! }; ! static arc arcs_27_10[1] = { ! {15, 11}, ! }; ! static arc arcs_27_11[1] = { ! {0, 11}, ! }; ! static state states_27[12] = { {1, arcs_27_0}, ! {2, arcs_27_1}, {1, arcs_27_2}, {1, arcs_27_3}, ! {1, arcs_27_4}, {1, arcs_27_5}, {1, arcs_27_6}, ! {2, arcs_27_7}, ! {1, arcs_27_8}, ! {1, arcs_27_9}, ! {1, arcs_27_10}, ! {1, arcs_27_11}, }; static arc arcs_28_0[1] = { ! {68, 1}, }; static arc arcs_28_1[1] = { {39, 2}, *************** *** 614,620 **** {1, arcs_28_9}, }; static arc arcs_29_0[1] = { ! {68, 1}, }; static arc arcs_29_1[1] = { {14, 2}, --- 631,637 ---- {1, arcs_28_9}, }; static arc arcs_29_0[1] = { ! {69, 1}, }; static arc arcs_29_1[1] = { {14, 2}, *************** *** 623,630 **** {15, 3}, }; static arc arcs_29_3[2] = { ! {69, 4}, ! {70, 5}, }; static arc arcs_29_4[1] = { {14, 6}, --- 640,647 ---- {15, 3}, }; static arc arcs_29_3[2] = { ! {70, 4}, ! {71, 5}, }; static arc arcs_29_4[1] = { {14, 6}, *************** *** 639,645 **** {15, 9}, }; static arc arcs_29_8[3] = { ! {69, 4}, {65, 5}, {0, 8}, }; --- 656,662 ---- {15, 9}, }; static arc arcs_29_8[3] = { ! {70, 4}, {65, 5}, {0, 8}, }; *************** *** 659,665 **** {1, arcs_29_9}, }; static arc arcs_30_0[1] = { ! {71, 1}, }; static arc arcs_30_1[2] = { {21, 2}, --- 676,682 ---- {1, arcs_29_9}, }; static arc arcs_30_0[1] = { ! {72, 1}, }; static arc arcs_30_1[2] = { {21, 2}, *************** *** 690,703 **** {0, 1}, }; static arc arcs_31_2[1] = { ! {72, 3}, }; static arc arcs_31_3[1] = { {6, 4}, }; static arc arcs_31_4[2] = { {6, 4}, ! {73, 1}, }; static state states_31[5] = { {2, arcs_31_0}, --- 707,720 ---- {0, 1}, }; static arc arcs_31_2[1] = { ! {73, 3}, }; static arc arcs_31_3[1] = { {6, 4}, }; static arc arcs_31_4[2] = { {6, 4}, ! {74, 1}, }; static state states_31[5] = { {2, arcs_31_0}, *************** *** 707,724 **** {2, arcs_31_4}, }; static arc arcs_32_0[2] = { ! {74, 1}, ! {76, 2}, }; static arc arcs_32_1[2] = { ! {75, 3}, {0, 1}, }; static arc arcs_32_2[1] = { {0, 2}, }; static arc arcs_32_3[1] = { ! {74, 1}, }; static state states_32[4] = { {2, arcs_32_0}, --- 724,741 ---- {2, arcs_31_4}, }; static arc arcs_32_0[2] = { ! {75, 1}, ! {77, 2}, }; static arc arcs_32_1[2] = { ! {76, 3}, {0, 1}, }; static arc arcs_32_2[1] = { {0, 2}, }; static arc arcs_32_3[1] = { ! {75, 1}, }; static state states_32[4] = { {2, arcs_32_0}, *************** *** 727,736 **** {1, arcs_32_3}, }; static arc arcs_33_0[1] = { ! {77, 1}, }; static arc arcs_33_1[2] = { ! {78, 0}, {0, 1}, }; static state states_33[2] = { --- 744,753 ---- {1, arcs_32_3}, }; static arc arcs_33_0[1] = { ! {78, 1}, }; static arc arcs_33_1[2] = { ! {67, 0}, {0, 1}, }; static state states_33[2] = { *************** *** 742,748 **** {80, 2}, }; static arc arcs_34_1[1] = { ! {77, 2}, }; static arc arcs_34_2[1] = { {0, 2}, --- 759,765 ---- {80, 2}, }; static arc arcs_34_1[1] = { ! {78, 2}, }; static arc arcs_34_2[1] = { {0, 2}, *************** *** 1206,1214 **** }; static dfa dfas[57] = { {256, "single_input", 0, 3, states_0, ! "\004\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"}, {257, "file_input", 0, 2, states_1, ! "\204\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"}, {258, "eval_input", 0, 3, states_2, "\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"}, {259, "funcdef", 0, 6, states_3, --- 1223,1231 ---- }; static dfa dfas[57] = { {256, "single_input", 0, 3, states_0, ! "\004\030\001\000\140\341\153\202\064\200\000\000\060\242\074\004"}, {257, "file_input", 0, 2, states_1, ! "\204\030\001\000\140\341\153\202\064\200\000\000\060\242\074\004"}, {258, "eval_input", 0, 3, states_2, "\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"}, {259, "funcdef", 0, 6, states_3, *************** *** 1222,1228 **** {263, "fplist", 0, 3, states_7, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"}, {264, "stmt", 0, 2, states_8, ! "\000\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"}, {265, "simple_stmt", 0, 4, states_9, "\000\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"}, {266, "small_stmt", 0, 2, states_10, --- 1239,1245 ---- {263, "fplist", 0, 3, states_7, "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"}, {264, "stmt", 0, 2, states_8, ! "\000\030\001\000\140\341\153\202\064\200\000\000\060\242\074\004"}, {265, "simple_stmt", 0, 4, states_9, "\000\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"}, {266, "small_stmt", 0, 2, states_10, *************** *** 1256,1272 **** {280, "assert_stmt", 0, 5, states_24, "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, {281, "compound_stmt", 0, 2, states_25, ! "\000\010\000\000\000\000\000\200\034\000\000\000\000\000\000\004"}, {282, "if_stmt", 0, 8, states_26, "\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"}, ! {283, "while_stmt", 0, 8, states_27, "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"}, {284, "for_stmt", 0, 10, states_28, - "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000"}, - {285, "try_stmt", 0, 10, states_29, "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000"}, {286, "except_clause", 0, 5, states_30, ! "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"}, {287, "suite", 0, 5, states_31, "\004\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"}, {288, "test", 0, 4, states_32, --- 1273,1289 ---- {280, "assert_stmt", 0, 5, states_24, "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, {281, "compound_stmt", 0, 2, states_25, ! "\000\010\000\000\000\000\000\200\064\000\000\000\000\000\000\004"}, {282, "if_stmt", 0, 8, states_26, "\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"}, ! {283, "while_stmt", 0, 12, states_27, "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"}, {284, "for_stmt", 0, 10, states_28, "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000"}, + {285, "try_stmt", 0, 10, states_29, + "\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000"}, {286, "except_clause", 0, 5, states_30, ! "\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000"}, {287, "suite", 0, 5, states_31, "\004\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"}, {288, "test", 0, 4, states_32, *************** *** 1388,1393 **** --- 1405,1411 ---- {1, "elif"}, {1, "else"}, {1, "while"}, + {1, "and"}, {1, "for"}, {1, "try"}, {286, 0}, *************** *** 1399,1405 **** {1, "or"}, {302, 0}, {290, 0}, - {1, "and"}, {1, "not"}, {291, 0}, {292, 0}, --- 1417,1422 ----