Index: Grammar/Grammar =================================================================== RCS file: /cvsroot/python/python/dist/src/Grammar/Grammar,v retrieving revision 1.48 diff -c -r1.48 Grammar *** Grammar/Grammar 4 Aug 2002 17:29:52 -0000 1.48 --- Grammar/Grammar 8 Apr 2004 22:52:41 -0000 *************** *** 28,34 **** file_input: (NEWLINE | stmt)* ENDMARKER eval_input: testlist NEWLINE* ENDMARKER ! funcdef: 'def' NAME parameters ':' suite parameters: '(' [varargslist] ')' varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [','] fpdef: NAME | '(' fplist ')' --- 28,35 ---- file_input: (NEWLINE | stmt)* ENDMARKER eval_input: testlist NEWLINE* ENDMARKER ! decorators: LSQB_AS test (',' test)* [','] ']' [NEWLINE] ! funcdef: [decorators] 'def' NAME parameters ':' suite parameters: '(' [varargslist] ')' varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [','] fpdef: NAME | '(' fplist ')' Index: Include/graminit.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/graminit.h,v retrieving revision 2.20 diff -c -r2.20 graminit.h *** Include/graminit.h 4 Aug 2002 17:29:52 -0000 2.20 --- Include/graminit.h 8 Apr 2004 22:52:41 -0000 *************** *** 1,68 **** #define single_input 256 #define file_input 257 #define eval_input 258 ! #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 augassign 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 yield_stmt 276 ! #define raise_stmt 277 ! #define import_stmt 278 ! #define import_as_name 279 ! #define dotted_as_name 280 ! #define dotted_name 281 ! #define global_stmt 282 ! #define exec_stmt 283 ! #define assert_stmt 284 ! #define compound_stmt 285 ! #define if_stmt 286 ! #define while_stmt 287 ! #define for_stmt 288 ! #define try_stmt 289 ! #define except_clause 290 ! #define suite 291 ! #define test 292 ! #define and_test 293 ! #define not_test 294 ! #define comparison 295 ! #define comp_op 296 ! #define expr 297 ! #define xor_expr 298 ! #define and_expr 299 ! #define shift_expr 300 ! #define arith_expr 301 ! #define term 302 ! #define factor 303 ! #define power 304 ! #define atom 305 ! #define listmaker 306 ! #define lambdef 307 ! #define trailer 308 ! #define subscriptlist 309 ! #define subscript 310 ! #define sliceop 311 ! #define exprlist 312 ! #define testlist 313 ! #define testlist_safe 314 ! #define dictmaker 315 ! #define classdef 316 ! #define arglist 317 ! #define argument 318 ! #define list_iter 319 ! #define list_for 320 ! #define list_if 321 ! #define testlist1 322 ! #define encoding_decl 323 --- 1,69 ---- #define single_input 256 #define file_input 257 #define eval_input 258 ! #define decorators 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 augassign 269 ! #define print_stmt 270 ! #define del_stmt 271 ! #define pass_stmt 272 ! #define flow_stmt 273 ! #define break_stmt 274 ! #define continue_stmt 275 ! #define return_stmt 276 ! #define yield_stmt 277 ! #define raise_stmt 278 ! #define import_stmt 279 ! #define import_as_name 280 ! #define dotted_as_name 281 ! #define dotted_name 282 ! #define global_stmt 283 ! #define exec_stmt 284 ! #define assert_stmt 285 ! #define compound_stmt 286 ! #define if_stmt 287 ! #define while_stmt 288 ! #define for_stmt 289 ! #define try_stmt 290 ! #define except_clause 291 ! #define suite 292 ! #define test 293 ! #define and_test 294 ! #define not_test 295 ! #define comparison 296 ! #define comp_op 297 ! #define expr 298 ! #define xor_expr 299 ! #define and_expr 300 ! #define shift_expr 301 ! #define arith_expr 302 ! #define term 303 ! #define factor 304 ! #define power 305 ! #define atom 306 ! #define listmaker 307 ! #define lambdef 308 ! #define trailer 309 ! #define subscriptlist 310 ! #define subscript 311 ! #define sliceop 312 ! #define exprlist 313 ! #define testlist 314 ! #define testlist_safe 315 ! #define dictmaker 316 ! #define classdef 317 ! #define arglist 318 ! #define argument 319 ! #define list_iter 320 ! #define list_for 321 ! #define list_if 322 ! #define testlist1 323 ! #define encoding_decl 324 Index: Include/node.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/node.h,v retrieving revision 2.22 diff -c -r2.22 node.h *** Include/node.h 17 Sep 2002 03:27:02 -0000 2.22 --- Include/node.h 8 Apr 2004 22:52:41 -0000 *************** *** 22,28 **** --- 22,30 ---- /* Node access functions */ #define NCH(n) ((n)->n_nchildren) + #define CHILD(n, i) (&(n)->n_child[i]) + #define RCHILD(n, i) (CHILD(n, NCH(n) + i)) #define TYPE(n) ((n)->n_type) #define STR(n) ((n)->n_str) Index: Include/token.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/token.h,v retrieving revision 2.20 diff -c -r2.20 token.h *** Include/token.h 12 Aug 2002 07:21:57 -0000 2.20 --- Include/token.h 8 Apr 2004 22:52:41 -0000 *************** *** 57,66 **** #define DOUBLESTAREQUAL 47 #define DOUBLESLASH 48 #define DOUBLESLASHEQUAL 49 /* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */ ! #define OP 50 ! #define ERRORTOKEN 51 ! #define N_TOKENS 52 /* Special definitions for cooperation with parser */ --- 57,67 ---- #define DOUBLESTAREQUAL 47 #define DOUBLESLASH 48 #define DOUBLESLASHEQUAL 49 + #define LSQB_AS 50 /* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */ ! #define OP 51 ! #define ERRORTOKEN 52 ! #define N_TOKENS 53 /* Special definitions for cooperation with parser */ Index: Lib/test/test_parser.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_parser.py,v retrieving revision 1.17 diff -c -r1.17 test_parser.py *** Lib/test/test_parser.py 1 May 2003 17:45:44 -0000 1.17 --- Lib/test/test_parser.py 8 Apr 2004 22:52:41 -0000 *************** *** 117,122 **** --- 117,128 ---- self.check_suite("def f(a, b, foo=bar, *args, **kw): pass") self.check_suite("def f(a, b, foo=bar, **kw): pass") + self.check_suite("[as staticmethod] def f(): pass") + self.check_suite("[as staticmethod]\n" + "def f(): pass") + self.check_suite("[as staticmethod, ]\n" + "def f(): pass") + def test_import_from_statement(self): self.check_suite("from sys.path import *") self.check_suite("from sys.path import dirname") Index: Modules/parsermodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/parsermodule.c,v retrieving revision 2.81 diff -c -r2.81 parsermodule.c *** Modules/parsermodule.c 20 Nov 2003 01:44:58 -0000 2.81 --- Modules/parsermodule.c 8 Apr 2004 22:52:51 -0000 *************** *** 2266,2286 **** return ok; } /* funcdef: ! * 'def' NAME parameters ':' suite ! * */ static int validate_funcdef(node *tree) { ! return (validate_ntype(tree, funcdef) ! && validate_numnodes(tree, 5, "funcdef") ! && validate_name(CHILD(tree, 0), "def") ! && validate_ntype(CHILD(tree, 1), NAME) ! && validate_colon(CHILD(tree, 3)) ! && validate_parameters(CHILD(tree, 2)) ! && validate_suite(CHILD(tree, 4))); } --- 2266,2327 ---- return ok; } + /* decorators: + * + * LSQB_AS test (',' test)* [','] ']' [NEWLINE] + */ + static int + validate_decorators(node *tree) + { + int ok = (validate_ntype(tree, decorators) + && validate_ntype(CHILD(tree, 0), LSQB_AS)); + + if (ok) { + int nch = NCH(tree); + + if (TYPE(CHILD(tree, nch-1)) == NEWLINE) + --nch; + + ok = validate_ntype(CHILD(tree, nch - 1), RSQB); + --nch; + + if (ok) { + int i; + + for (i = 1; ok && i < nch; i += 2) { + ok = validate_test(CHILD(tree, i)); + if (ok && i + 1 < nch) + ok = validate_comma(CHILD(tree, i+1)); + } + } + } + + return ok; + } /* funcdef: ! * ! * [decorators] 'def' NAME parameters ':' suite */ static int validate_funcdef(node *tree) { ! /* -6 -5 -4 -3 -2 -1 ! funcdef: */ ! ! int nch = NCH(tree); ! int ok = (validate_ntype(tree, funcdef) ! && ((nch == 5) || (nch == 6)) ! && validate_name(RCHILD(tree, -5), "def") ! && validate_ntype(RCHILD(tree, -4), NAME) ! && validate_colon(RCHILD(tree, -2)) ! && validate_parameters(RCHILD(tree, -3)) ! && validate_suite(RCHILD(tree, -1))); ! ! if (ok && (nch == 6)) ! ok = validate_decorators(CHILD(tree, 0)); ! ! return ok; } Index: Parser/parser.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Parser/parser.c,v retrieving revision 2.22 diff -c -r2.22 parser.c *** Parser/parser.c 22 Mar 2002 23:38:11 -0000 2.22 --- Parser/parser.c 8 Apr 2004 22:52:51 -0000 *************** *** 21,26 **** --- 21,27 ---- #define D(x) #endif + void printtree(parser_state *ps); /* STACK DATA TYPE */ *************** *** 264,269 **** --- 265,271 ---- s_pop(&ps->p_stack); if (s_empty(&ps->p_stack)) { D(printf(" ACCEPT.\n")); + D(printtree(ps)); return E_DONE; } d = ps->p_stack.s_top->s_dfa; Index: Parser/tokenizer.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Parser/tokenizer.c,v retrieving revision 2.74 diff -c -r2.74 tokenizer.c *** Parser/tokenizer.c 20 Nov 2003 01:44:58 -0000 2.74 --- Parser/tokenizer.c 8 Apr 2004 22:52:51 -0000 *************** *** 92,97 **** --- 92,98 ---- "DOUBLESTAREQUAL", "DOUBLESLASH", "DOUBLESLASHEQUAL", + "LSQB_AS", /* This table must match the #defines in token.h! */ "OP", "", *************** *** 133,138 **** --- 134,140 ---- tok->decoding_readline = NULL; tok->decoding_buffer = NULL; #endif + tok->pending_token_count = 0; return tok; } *************** *** 989,999 **** return 0; } - /* Get next token, after space stripping etc. */ static int ! tok_get(register struct tok_state *tok, char **p_start, char **p_end) { register int c; int blankline; --- 991,1000 ---- return 0; } /* Get next token, after space stripping etc. */ static int ! tok_get_single(register struct tok_state *tok, char **p_start, char **p_end) { register int c; int blankline; *************** *** 1395,1400 **** --- 1396,1467 ---- *p_start = tok->start; *p_end = tok->cur; return PyToken_OneChar(c); + } + + static void + push_pending(struct tok_state *tok, int type, char *start, char *end) + { + struct pending_token *pending; + + assert(tok->pending_token_count < MAX_PENDING_TOKENS); + pending = &tok->pending_tokens[tok->pending_token_count++]; + + pending->type = type; + pending->start = start; + pending->end = end; + } + + static int + tok_get(struct tok_state *tok, char **p_start, char **p_end) + { + static char as[] = "as"; + char *start, *end; + int res, lsqb_token, as_token, name_token; + + if (tok->pending_token_count > 0) { + struct pending_token *pending; + + pending = &tok->pending_tokens[--tok->pending_token_count]; + *p_start = pending->start; + *p_end = pending->end; + return pending->type; + } + + lsqb_token = tok_get_single(tok, p_start, p_end); + if (lsqb_token != LSQB || tok->level != 1) + return lsqb_token; + + /* push_pending() does not make a copy of start..end, despite the + fact that tok->buf can change under us, because there is no + way that tok_get_single() can be called to disturb tok->buf before + the tok->pending_tokens stack is empty. */ + + as_token = tok_get_single(tok, &start, &end); + if (as_token != NAME || end - start != 2 || memcmp(start, as, 2) != 0) { + push_pending(tok, as_token, start, end); + res = LSQB; + *p_start = "["; + } + else { + /* We've seen "[ as" at level 0. Do we have an identifier? */ + + name_token = tok_get_single(tok, &start, &end); + push_pending(tok, name_token, start, end); + + if (name_token != NAME) { + push_pending(tok, NAME, as, as + 2); + res = LSQB; + *p_start = "["; + } + else { + res = LSQB_AS; + *p_start = "[as"; + } + + } + + *p_end = *p_start + strlen(*p_start); + return res; } int Index: Parser/tokenizer.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Parser/tokenizer.h,v retrieving revision 2.20 diff -c -r2.20 tokenizer.h *** Parser/tokenizer.h 11 Dec 2002 14:04:58 -0000 2.20 --- Parser/tokenizer.h 8 Apr 2004 22:52:51 -0000 *************** *** 12,17 **** --- 12,26 ---- #define MAXINDENT 100 /* Max indentation level */ + /* For use with handling [as xxx] */ + struct pending_token { + int type; + char *start; + char *end; + }; + + #define MAX_PENDING_TOKENS 2 /* Size of saved tokens buffer */ + /* Tokenizer state */ struct tok_state { /* Input state; buf <= cur <= inp <= end */ *************** *** 52,57 **** --- 61,69 ---- #endif const char* enc; const char* str; + /* Pending token stack (for handling [as xxx]) */ + struct pending_token pending_tokens[MAX_PENDING_TOKENS]; + int pending_token_count; }; extern struct tok_state *PyTokenizer_FromString(const char *); Index: Python/compile.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/compile.c,v retrieving revision 2.301 diff -c -r2.301 compile.c *** Python/compile.c 22 Mar 2004 17:52:53 -0000 2.301 --- Python/compile.c 8 Apr 2004 22:52:53 -0000 *************** *** 1688,1693 **** --- 1688,1694 ---- } } + static void com_dictmaker(struct compiling *c, node *n) { *************** *** 3763,3770 **** n = CHILD(n, 1); } else { ! REQ(n, funcdef); /* funcdef: 'def' NAME parameters ... */ ! n = CHILD(n, 2); REQ(n, parameters); /* parameters: '(' [varargslist] ')' */ n = CHILD(n, 1); } --- 3764,3772 ---- n = CHILD(n, 1); } else { ! REQ(n, funcdef); ! /* funcdef: [decorators] 'def' NAME parameters ':' suite */ ! n = RCHILD(n, -3); REQ(n, parameters); /* parameters: '(' [varargslist] ')' */ n = CHILD(n, 1); } *************** *** 3808,3823 **** return ndefs; } static void com_funcdef(struct compiling *c, node *n) { PyObject *co; ! int ndefs; ! REQ(n, funcdef); /* funcdef: 'def' NAME parameters ':' suite */ ndefs = com_argdefs(c, n); if (ndefs < 0) return; ! symtable_enter_scope(c->c_symtable, STR(CHILD(n, 1)), TYPE(n), n->n_lineno); co = (PyObject *)icompile(n, c); symtable_exit_scope(c->c_symtable); --- 3810,3862 ---- return ndefs; } + static int + com_decorators(struct compiling *c, node *n) + { + int i, nch, len; + + /* decorators: LSQB_AS test (',' test)* [','] RSQB [NEWLINE] */ + REQ(n, decorators); + REQ(CHILD(n, 0), LSQB_AS); + + /* Back over the end syntax - we want to walk the nodes backwards */ + nch = NCH(n); + if (TYPE(CHILD(n, nch-1)) == NEWLINE) + --nch; + REQ(CHILD(n, nch - 1), RSQB); + --nch; + if (TYPE(CHILD(n, nch - 1)) == COMMA) + --nch; + + len = 0; + for (i = nch - 1; i > 0; i -= 2, len++) + com_node(c, CHILD(n, i)); + + assert(len > 0); + + /* Now there are len decorators on the stack, the first on top */ + return len; + } + + static void com_funcdef(struct compiling *c, node *n) { PyObject *co; ! int ndefs, ndecorators; ! REQ(n, funcdef); ! /* -6 -5 -4 -3 -2 -1 ! funcdef: [decorators] 'def' NAME parameters ':' suite */ ! ! if (NCH(n) == 6) ! ndecorators = com_decorators(c, CHILD(n, 0)); ! else ! ndecorators = 0; ! ndefs = com_argdefs(c, n); if (ndefs < 0) return; ! symtable_enter_scope(c->c_symtable, STR(RCHILD(n, -4)), TYPE(n), n->n_lineno); co = (PyObject *)icompile(n, c); symtable_exit_scope(c->c_symtable); *************** *** 3833,3839 **** else com_addoparg(c, MAKE_FUNCTION, ndefs); com_pop(c, ndefs); ! com_addop_varname(c, VAR_STORE, STR(CHILD(n, 1))); com_pop(c, 1); Py_DECREF(co); } --- 3872,3883 ---- else com_addoparg(c, MAKE_FUNCTION, ndefs); com_pop(c, ndefs); ! while (ndecorators > 0) { ! com_addoparg(c, CALL_FUNCTION, 1); ! com_pop(c, 1); ! ndecorators--; ! } ! com_addop_varname(c, VAR_STORE, STR(RCHILD(n, -4))); com_pop(c, 1); Py_DECREF(co); } *************** *** 3912,3918 **** switch (TYPE(n)) { /* Definition nodes */ ! case funcdef: com_funcdef(c, n); break; --- 3956,3962 ---- switch (TYPE(n)) { /* Definition nodes */ ! case funcdef: com_funcdef(c, n); break; *************** *** 4177,4197 **** { PyObject *doc; node *ch; ! REQ(n, funcdef); /* funcdef: 'def' NAME parameters ':' suite */ ! c->c_name = STR(CHILD(n, 1)); ! doc = get_docstring(c, CHILD(n, 4)); if (doc != NULL) { (void) com_addconst(c, doc); Py_DECREF(doc); } else (void) com_addconst(c, Py_None); /* No docstring */ ! ch = CHILD(n, 2); /* parameters: '(' [varargslist] ')' */ ch = CHILD(ch, 1); /* ')' | varargslist */ if (TYPE(ch) == varargslist) com_arglist(c, ch); c->c_infunction = 1; ! com_node(c, CHILD(n, 4)); c->c_infunction = 0; com_strip_lnotab(c); com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None)); --- 4221,4243 ---- { PyObject *doc; node *ch; ! REQ(n, funcdef); ! /* -6 -5 -4 -3 -2 -1 ! funcdef: [decorators] 'def' NAME parameters ':' suite */ ! c->c_name = STR(RCHILD(n, -4)); ! doc = get_docstring(c, RCHILD(n, -1)); if (doc != NULL) { (void) com_addconst(c, doc); Py_DECREF(doc); } else (void) com_addconst(c, Py_None); /* No docstring */ ! ch = RCHILD(n, -3); /* parameters: '(' [varargslist] ')' */ ch = CHILD(ch, 1); /* ')' | varargslist */ if (TYPE(ch) == varargslist) com_arglist(c, ch); c->c_infunction = 1; ! com_node(c, RCHILD(n, -1)); c->c_infunction = 0; com_strip_lnotab(c); com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None)); *************** *** 5364,5372 **** loop: switch (TYPE(n)) { case funcdef: { ! char *func_name = STR(CHILD(n, 1)); symtable_add_def(st, func_name, DEF_LOCAL); ! symtable_default_args(st, CHILD(n, 2)); symtable_enter_scope(st, func_name, TYPE(n), n->n_lineno); symtable_funcdef(st, n); symtable_exit_scope(st); --- 5410,5420 ---- loop: switch (TYPE(n)) { case funcdef: { ! if (NCH(n) == 6) ! symtable_node(st, CHILD(n, 0)); ! char *func_name = STR(RCHILD(n, -4)); symtable_add_def(st, func_name, DEF_LOCAL); ! symtable_default_args(st, RCHILD(n, -3)); symtable_enter_scope(st, func_name, TYPE(n), n->n_lineno); symtable_funcdef(st, n); symtable_exit_scope(st); *************** *** 5540,5546 **** if (NCH(n) == 4) symtable_params(st, CHILD(n, 1)); } else ! symtable_params(st, CHILD(n, 2)); body = CHILD(n, NCH(n) - 1); symtable_node(st, body); } --- 5588,5594 ---- if (NCH(n) == 4) symtable_params(st, CHILD(n, 1)); } else ! symtable_params(st, RCHILD(n, -3)); body = CHILD(n, NCH(n) - 1); symtable_node(st, body); } Index: Python/graminit.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/graminit.c,v retrieving revision 2.34 diff -c -r2.34 graminit.c *** Python/graminit.c 4 Aug 2002 17:29:52 -0000 2.34 --- Python/graminit.c 8 Apr 2004 22:52:53 -0000 *************** *** 49,62 **** static arc arcs_3_1[1] = { {12, 2}, }; ! static arc arcs_3_2[1] = { {13, 3}, }; ! static arc arcs_3_3[1] = { {14, 4}, }; ! static arc arcs_3_4[1] = { ! {15, 5}, }; static arc arcs_3_5[1] = { {0, 5}, --- 49,65 ---- static arc arcs_3_1[1] = { {12, 2}, }; ! static arc arcs_3_2[2] = { {13, 3}, + {14, 4}, }; ! static arc arcs_3_3[2] = { ! {12, 2}, {14, 4}, }; ! static arc arcs_3_4[2] = { ! {2, 5}, ! {0, 4}, }; static arc arcs_3_5[1] = { {0, 5}, *************** *** 64,261 **** static state states_3[6] = { {1, arcs_3_0}, {1, arcs_3_1}, ! {1, arcs_3_2}, ! {1, arcs_3_3}, ! {1, arcs_3_4}, {1, arcs_3_5}, }; ! static arc arcs_4_0[1] = { ! {16, 1}, }; ! static arc arcs_4_1[2] = { ! {17, 2}, ! {18, 3}, }; static arc arcs_4_2[1] = { ! {18, 3}, }; static arc arcs_4_3[1] = { ! {0, 3}, }; ! 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[3] = { ! {19, 1}, ! {23, 2}, ! {24, 3}, }; ! static arc arcs_5_1[3] = { ! {20, 4}, ! {22, 5}, ! {0, 1}, }; static arc arcs_5_2[1] = { ! {12, 6}, }; static arc arcs_5_3[1] = { ! {12, 7}, }; ! static arc arcs_5_4[1] = { ! {21, 8}, }; ! static arc arcs_5_5[4] = { ! {19, 1}, ! {23, 2}, ! {24, 3}, {0, 5}, }; ! static arc arcs_5_6[2] = { ! {22, 9}, {0, 6}, }; ! static arc arcs_5_7[1] = { {0, 7}, }; ! static arc arcs_5_8[2] = { ! {22, 5}, {0, 8}, }; ! static arc arcs_5_9[1] = { ! {24, 3}, }; ! static state states_5[10] = { ! {3, arcs_5_0}, ! {3, arcs_5_1}, ! {1, arcs_5_2}, ! {1, arcs_5_3}, ! {1, arcs_5_4}, ! {4, arcs_5_5}, ! {2, arcs_5_6}, ! {1, arcs_5_7}, ! {2, arcs_5_8}, ! {1, arcs_5_9}, }; ! static arc arcs_6_0[2] = { ! {12, 1}, ! {16, 2}, }; ! static arc arcs_6_1[1] = { {0, 1}, }; ! static arc arcs_6_2[1] = { ! {25, 3}, }; ! static arc arcs_6_3[1] = { ! {18, 1}, }; ! static state states_6[4] = { ! {2, arcs_6_0}, ! {1, arcs_6_1}, ! {1, arcs_6_2}, ! {1, arcs_6_3}, }; ! static arc arcs_7_0[1] = { ! {19, 1}, }; ! static arc arcs_7_1[2] = { ! {22, 2}, {0, 1}, }; ! static arc arcs_7_2[2] = { ! {19, 1}, {0, 2}, }; ! static state states_7[3] = { ! {1, arcs_7_0}, ! {2, arcs_7_1}, ! {2, arcs_7_2}, }; ! static arc arcs_8_0[2] = { {3, 1}, {4, 1}, }; ! static arc arcs_8_1[1] = { {0, 1}, }; ! static state states_8[2] = { ! {2, arcs_8_0}, ! {1, arcs_8_1}, }; ! static arc arcs_9_0[1] = { ! {26, 1}, }; ! static arc arcs_9_1[2] = { ! {27, 2}, {2, 3}, }; ! static arc arcs_9_2[2] = { ! {26, 1}, {2, 3}, }; ! static arc arcs_9_3[1] = { {0, 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_10_0[9] = { ! {28, 1}, ! {29, 1}, ! {30, 1}, {31, 1}, {32, 1}, {33, 1}, {34, 1}, {35, 1}, {36, 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[3] = { ! {37, 2}, ! {20, 3}, {0, 1}, }; ! static arc arcs_11_2[1] = { {9, 4}, }; ! static arc arcs_11_3[1] = { {9, 5}, }; ! static arc arcs_11_4[1] = { {0, 4}, }; ! static arc arcs_11_5[2] = { ! {20, 3}, {0, 5}, }; ! static state states_11[6] = { ! {1, arcs_11_0}, ! {3, arcs_11_1}, ! {1, arcs_11_2}, ! {1, arcs_11_3}, ! {1, arcs_11_4}, ! {2, arcs_11_5}, }; ! static arc arcs_12_0[12] = { ! {38, 1}, ! {39, 1}, ! {40, 1}, {41, 1}, {42, 1}, {43, 1}, --- 67,292 ---- static state states_3[6] = { {1, arcs_3_0}, {1, arcs_3_1}, ! {2, arcs_3_2}, ! {2, arcs_3_3}, ! {2, arcs_3_4}, {1, arcs_3_5}, }; ! static arc arcs_4_0[2] = { ! {10, 1}, ! {16, 2}, }; ! static arc arcs_4_1[1] = { ! {16, 2}, }; static arc arcs_4_2[1] = { ! {17, 3}, }; static arc arcs_4_3[1] = { ! {18, 4}, }; ! static arc arcs_4_4[1] = { ! {19, 5}, ! }; ! static arc arcs_4_5[1] = { ! {20, 6}, ! }; ! static arc arcs_4_6[1] = { ! {0, 6}, ! }; ! static state states_4[7] = { ! {2, arcs_4_0}, ! {1, arcs_4_1}, {1, arcs_4_2}, {1, arcs_4_3}, + {1, arcs_4_4}, + {1, arcs_4_5}, + {1, arcs_4_6}, }; ! static arc arcs_5_0[1] = { ! {21, 1}, }; ! static arc arcs_5_1[2] = { ! {22, 2}, ! {23, 3}, }; static arc arcs_5_2[1] = { ! {23, 3}, }; static arc arcs_5_3[1] = { ! {0, 3}, }; ! static state states_5[4] = { ! {1, arcs_5_0}, ! {2, arcs_5_1}, ! {1, arcs_5_2}, ! {1, arcs_5_3}, }; ! static arc arcs_6_0[3] = { ! {24, 1}, ! {26, 2}, ! {27, 3}, ! }; ! static arc arcs_6_1[3] = { ! {25, 4}, ! {13, 5}, ! {0, 1}, ! }; ! static arc arcs_6_2[1] = { ! {17, 6}, ! }; ! static arc arcs_6_3[1] = { ! {17, 7}, ! }; ! static arc arcs_6_4[1] = { ! {12, 8}, ! }; ! static arc arcs_6_5[4] = { ! {24, 1}, ! {26, 2}, ! {27, 3}, {0, 5}, }; ! static arc arcs_6_6[2] = { ! {13, 9}, {0, 6}, }; ! static arc arcs_6_7[1] = { {0, 7}, }; ! static arc arcs_6_8[2] = { ! {13, 5}, {0, 8}, }; ! static arc arcs_6_9[1] = { ! {27, 3}, }; ! static state states_6[10] = { ! {3, arcs_6_0}, ! {3, arcs_6_1}, ! {1, arcs_6_2}, ! {1, arcs_6_3}, ! {1, arcs_6_4}, ! {4, arcs_6_5}, ! {2, arcs_6_6}, ! {1, arcs_6_7}, ! {2, arcs_6_8}, ! {1, arcs_6_9}, }; ! static arc arcs_7_0[2] = { ! {17, 1}, ! {21, 2}, }; ! static arc arcs_7_1[1] = { {0, 1}, }; ! static arc arcs_7_2[1] = { ! {28, 3}, }; ! static arc arcs_7_3[1] = { ! {23, 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] = { ! {24, 1}, }; ! static arc arcs_8_1[2] = { ! {13, 2}, {0, 1}, }; ! static arc arcs_8_2[2] = { ! {24, 1}, {0, 2}, }; ! static state states_8[3] = { ! {1, arcs_8_0}, ! {2, arcs_8_1}, ! {2, arcs_8_2}, }; ! static arc arcs_9_0[2] = { {3, 1}, {4, 1}, }; ! static arc arcs_9_1[1] = { {0, 1}, }; ! static state states_9[2] = { ! {2, arcs_9_0}, ! {1, arcs_9_1}, }; ! static arc arcs_10_0[1] = { ! {29, 1}, }; ! static arc arcs_10_1[2] = { ! {30, 2}, {2, 3}, }; ! static arc arcs_10_2[2] = { ! {29, 1}, {2, 3}, }; ! static arc arcs_10_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 arc arcs_11_0[9] = { {31, 1}, {32, 1}, {33, 1}, {34, 1}, {35, 1}, {36, 1}, + {37, 1}, + {38, 1}, + {39, 1}, }; ! static arc arcs_11_1[1] = { {0, 1}, }; ! static state states_11[2] = { ! {9, arcs_11_0}, ! {1, arcs_11_1}, }; ! static arc arcs_12_0[1] = { {9, 1}, }; ! static arc arcs_12_1[3] = { ! {40, 2}, ! {25, 3}, {0, 1}, }; ! static arc arcs_12_2[1] = { {9, 4}, }; ! static arc arcs_12_3[1] = { {9, 5}, }; ! static arc arcs_12_4[1] = { {0, 4}, }; ! static arc arcs_12_5[2] = { ! {25, 3}, {0, 5}, }; ! static state states_12[6] = { ! {1, arcs_12_0}, ! {3, arcs_12_1}, ! {1, arcs_12_2}, ! {1, arcs_12_3}, ! {1, arcs_12_4}, ! {2, arcs_12_5}, }; ! static arc arcs_13_0[12] = { {41, 1}, {42, 1}, {43, 1}, *************** *** 265,373 **** {47, 1}, {48, 1}, {49, 1}, }; ! static arc arcs_12_1[1] = { {0, 1}, }; ! static state states_12[2] = { ! {12, arcs_12_0}, ! {1, arcs_12_1}, }; ! static arc arcs_13_0[1] = { ! {50, 1}, }; ! static arc arcs_13_1[3] = { ! {21, 2}, ! {51, 3}, {0, 1}, }; ! static arc arcs_13_2[2] = { ! {22, 4}, {0, 2}, }; ! static arc arcs_13_3[1] = { ! {21, 5}, }; ! static arc arcs_13_4[2] = { ! {21, 2}, {0, 4}, }; ! static arc arcs_13_5[2] = { ! {22, 6}, {0, 5}, }; ! static arc arcs_13_6[1] = { ! {21, 7}, }; ! static arc arcs_13_7[2] = { ! {22, 8}, {0, 7}, }; ! static arc arcs_13_8[2] = { ! {21, 7}, {0, 8}, }; ! static state states_13[9] = { ! {1, arcs_13_0}, ! {3, arcs_13_1}, ! {2, arcs_13_2}, ! {1, arcs_13_3}, ! {2, arcs_13_4}, ! {2, arcs_13_5}, ! {1, arcs_13_6}, ! {2, arcs_13_7}, ! {2, arcs_13_8}, ! }; ! static arc arcs_14_0[1] = { ! {52, 1}, ! }; ! static arc arcs_14_1[1] = { ! {53, 2}, ! }; ! static arc arcs_14_2[1] = { ! {0, 2}, ! }; ! static state states_14[3] = { {1, arcs_14_0}, ! {1, arcs_14_1}, ! {1, arcs_14_2}, }; static arc arcs_15_0[1] = { ! {54, 1}, }; static arc arcs_15_1[1] = { ! {0, 1}, }; ! static state states_15[2] = { {1, arcs_15_0}, {1, arcs_15_1}, }; ! static arc arcs_16_0[5] = { ! {55, 1}, ! {56, 1}, {57, 1}, - {58, 1}, - {59, 1}, }; static arc arcs_16_1[1] = { {0, 1}, }; static state states_16[2] = { ! {5, arcs_16_0}, {1, arcs_16_1}, }; ! static arc arcs_17_0[1] = { {60, 1}, }; static arc arcs_17_1[1] = { {0, 1}, }; static state states_17[2] = { ! {1, arcs_17_0}, {1, arcs_17_1}, }; static arc arcs_18_0[1] = { ! {61, 1}, }; static arc arcs_18_1[1] = { {0, 1}, --- 296,397 ---- {47, 1}, {48, 1}, {49, 1}, + {50, 1}, + {51, 1}, + {52, 1}, }; ! static arc arcs_13_1[1] = { {0, 1}, }; ! static state states_13[2] = { ! {12, arcs_13_0}, ! {1, arcs_13_1}, }; ! static arc arcs_14_0[1] = { ! {53, 1}, }; ! static arc arcs_14_1[3] = { ! {12, 2}, ! {54, 3}, {0, 1}, }; ! static arc arcs_14_2[2] = { ! {13, 4}, {0, 2}, }; ! static arc arcs_14_3[1] = { ! {12, 5}, }; ! static arc arcs_14_4[2] = { ! {12, 2}, {0, 4}, }; ! static arc arcs_14_5[2] = { ! {13, 6}, {0, 5}, }; ! static arc arcs_14_6[1] = { ! {12, 7}, }; ! static arc arcs_14_7[2] = { ! {13, 8}, {0, 7}, }; ! static arc arcs_14_8[2] = { ! {12, 7}, {0, 8}, }; ! static state states_14[9] = { {1, arcs_14_0}, ! {3, arcs_14_1}, ! {2, arcs_14_2}, ! {1, arcs_14_3}, ! {2, arcs_14_4}, ! {2, arcs_14_5}, ! {1, arcs_14_6}, ! {2, arcs_14_7}, ! {2, arcs_14_8}, }; static arc arcs_15_0[1] = { ! {55, 1}, }; static arc arcs_15_1[1] = { ! {56, 2}, ! }; ! static arc arcs_15_2[1] = { ! {0, 2}, }; ! static state states_15[3] = { {1, arcs_15_0}, {1, arcs_15_1}, + {1, arcs_15_2}, }; ! static arc arcs_16_0[1] = { {57, 1}, }; static arc arcs_16_1[1] = { {0, 1}, }; static state states_16[2] = { ! {1, arcs_16_0}, {1, arcs_16_1}, }; ! static arc arcs_17_0[5] = { ! {58, 1}, ! {59, 1}, {60, 1}, + {61, 1}, + {62, 1}, }; static arc arcs_17_1[1] = { {0, 1}, }; static state states_17[2] = { ! {5, arcs_17_0}, {1, arcs_17_1}, }; static arc arcs_18_0[1] = { ! {63, 1}, }; static arc arcs_18_1[1] = { {0, 1}, *************** *** 377,513 **** {1, arcs_18_1}, }; static arc arcs_19_0[1] = { ! {62, 1}, }; ! static arc arcs_19_1[2] = { ! {9, 2}, {0, 1}, }; ! static arc arcs_19_2[1] = { ! {0, 2}, ! }; ! static state states_19[3] = { {1, arcs_19_0}, ! {2, arcs_19_1}, ! {1, arcs_19_2}, }; static arc arcs_20_0[1] = { ! {63, 1}, }; ! static arc arcs_20_1[1] = { {9, 2}, }; static arc arcs_20_2[1] = { {0, 2}, }; static state states_20[3] = { {1, arcs_20_0}, ! {1, arcs_20_1}, {1, arcs_20_2}, }; static arc arcs_21_0[1] = { ! {64, 1}, }; ! static arc arcs_21_1[2] = { ! {21, 2}, {0, 1}, }; ! static arc arcs_21_2[2] = { ! {22, 3}, {0, 2}, }; ! static arc arcs_21_3[1] = { ! {21, 4}, }; ! static arc arcs_21_4[2] = { ! {22, 5}, {0, 4}, }; ! static arc arcs_21_5[1] = { ! {21, 6}, }; ! static arc arcs_21_6[1] = { {0, 6}, }; ! static state states_21[7] = { ! {1, arcs_21_0}, ! {2, arcs_21_1}, ! {2, arcs_21_2}, ! {1, arcs_21_3}, ! {2, arcs_21_4}, ! {1, arcs_21_5}, ! {1, arcs_21_6}, }; ! static arc arcs_22_0[2] = { ! {65, 1}, ! {67, 2}, }; ! static arc arcs_22_1[1] = { ! {66, 3}, }; ! static arc arcs_22_2[1] = { ! {68, 4}, }; ! static arc arcs_22_3[2] = { ! {22, 1}, {0, 3}, }; ! static arc arcs_22_4[1] = { ! {65, 5}, }; ! static arc arcs_22_5[2] = { ! {23, 6}, ! {69, 7}, }; ! static arc arcs_22_6[1] = { {0, 6}, }; ! static arc arcs_22_7[2] = { ! {22, 8}, {0, 7}, }; ! static arc arcs_22_8[1] = { ! {69, 7}, ! }; ! static state states_22[9] = { ! {2, arcs_22_0}, ! {1, arcs_22_1}, ! {1, arcs_22_2}, ! {2, arcs_22_3}, ! {1, arcs_22_4}, ! {2, arcs_22_5}, ! {1, arcs_22_6}, ! {2, arcs_22_7}, ! {1, arcs_22_8}, ! }; ! static arc arcs_23_0[1] = { ! {12, 1}, ! }; ! static arc arcs_23_1[2] = { ! {12, 2}, ! {0, 1}, ! }; ! static arc arcs_23_2[1] = { ! {12, 3}, ! }; ! static arc arcs_23_3[1] = { ! {0, 3}, }; ! static state states_23[4] = { ! {1, arcs_23_0}, ! {2, arcs_23_1}, {1, arcs_23_2}, ! {1, arcs_23_3}, }; static arc arcs_24_0[1] = { ! {68, 1}, }; static arc arcs_24_1[2] = { ! {12, 2}, {0, 1}, }; static arc arcs_24_2[1] = { ! {12, 3}, }; static arc arcs_24_3[1] = { {0, 3}, --- 401,528 ---- {1, arcs_18_1}, }; static arc arcs_19_0[1] = { ! {64, 1}, }; ! static arc arcs_19_1[1] = { {0, 1}, }; ! static state states_19[2] = { {1, arcs_19_0}, ! {1, arcs_19_1}, }; static arc arcs_20_0[1] = { ! {65, 1}, }; ! static arc arcs_20_1[2] = { {9, 2}, + {0, 1}, }; static arc arcs_20_2[1] = { {0, 2}, }; static state states_20[3] = { {1, arcs_20_0}, ! {2, arcs_20_1}, {1, arcs_20_2}, }; static arc arcs_21_0[1] = { ! {66, 1}, }; ! static arc arcs_21_1[1] = { ! {9, 2}, ! }; ! static arc arcs_21_2[1] = { ! {0, 2}, ! }; ! static state states_21[3] = { ! {1, arcs_21_0}, ! {1, arcs_21_1}, ! {1, arcs_21_2}, ! }; ! static arc arcs_22_0[1] = { ! {67, 1}, ! }; ! static arc arcs_22_1[2] = { ! {12, 2}, {0, 1}, }; ! static arc arcs_22_2[2] = { ! {13, 3}, {0, 2}, }; ! static arc arcs_22_3[1] = { ! {12, 4}, }; ! static arc arcs_22_4[2] = { ! {13, 5}, {0, 4}, }; ! static arc arcs_22_5[1] = { ! {12, 6}, }; ! static arc arcs_22_6[1] = { {0, 6}, }; ! static state states_22[7] = { ! {1, arcs_22_0}, ! {2, arcs_22_1}, ! {2, arcs_22_2}, ! {1, arcs_22_3}, ! {2, arcs_22_4}, ! {1, arcs_22_5}, ! {1, arcs_22_6}, }; ! static arc arcs_23_0[2] = { ! {68, 1}, ! {70, 2}, }; ! static arc arcs_23_1[1] = { ! {69, 3}, }; ! static arc arcs_23_2[1] = { ! {71, 4}, }; ! static arc arcs_23_3[2] = { ! {13, 1}, {0, 3}, }; ! static arc arcs_23_4[1] = { ! {68, 5}, }; ! static arc arcs_23_5[2] = { ! {26, 6}, ! {72, 7}, }; ! static arc arcs_23_6[1] = { {0, 6}, }; ! static arc arcs_23_7[2] = { ! {13, 8}, {0, 7}, }; ! static arc arcs_23_8[1] = { ! {72, 7}, }; ! static state states_23[9] = { ! {2, arcs_23_0}, ! {1, arcs_23_1}, {1, arcs_23_2}, ! {2, arcs_23_3}, ! {1, arcs_23_4}, ! {2, arcs_23_5}, ! {1, arcs_23_6}, ! {2, arcs_23_7}, ! {1, arcs_23_8}, }; static arc arcs_24_0[1] = { ! {17, 1}, }; static arc arcs_24_1[2] = { ! {17, 2}, {0, 1}, }; static arc arcs_24_2[1] = { ! {17, 3}, }; static arc arcs_24_3[1] = { {0, 3}, *************** *** 519,676 **** {1, arcs_24_3}, }; static arc arcs_25_0[1] = { ! {12, 1}, }; static arc arcs_25_1[2] = { ! {70, 0}, {0, 1}, }; ! static state states_25[2] = { {1, arcs_25_0}, {2, arcs_25_1}, }; static arc arcs_26_0[1] = { ! {71, 1}, ! }; ! static arc arcs_26_1[1] = { ! {12, 2}, }; ! static arc arcs_26_2[2] = { ! {22, 1}, ! {0, 2}, }; ! static state states_26[3] = { {1, arcs_26_0}, ! {1, arcs_26_1}, ! {2, arcs_26_2}, }; static arc arcs_27_0[1] = { ! {72, 1}, }; static arc arcs_27_1[1] = { ! {73, 2}, }; static arc arcs_27_2[2] = { ! {74, 3}, {0, 2}, }; ! static arc arcs_27_3[1] = { ! {21, 4}, ! }; ! static arc arcs_27_4[2] = { ! {22, 5}, ! {0, 4}, ! }; ! static arc arcs_27_5[1] = { ! {21, 6}, ! }; ! static arc arcs_27_6[1] = { ! {0, 6}, ! }; ! static state states_27[7] = { {1, arcs_27_0}, {1, arcs_27_1}, {2, arcs_27_2}, - {1, arcs_27_3}, - {2, arcs_27_4}, - {1, arcs_27_5}, - {1, arcs_27_6}, }; static arc arcs_28_0[1] = { {75, 1}, }; static arc arcs_28_1[1] = { ! {21, 2}, }; static arc arcs_28_2[2] = { ! {22, 3}, {0, 2}, }; static arc arcs_28_3[1] = { ! {21, 4}, }; ! static arc arcs_28_4[1] = { {0, 4}, }; ! static state states_28[5] = { {1, arcs_28_0}, {1, arcs_28_1}, {2, arcs_28_2}, {1, arcs_28_3}, ! {1, arcs_28_4}, }; ! static arc arcs_29_0[6] = { ! {76, 1}, ! {77, 1}, {78, 1}, - {79, 1}, - {10, 1}, - {80, 1}, }; static arc arcs_29_1[1] = { ! {0, 1}, ! }; ! static state states_29[2] = { ! {6, arcs_29_0}, ! {1, arcs_29_1}, ! }; ! static arc arcs_30_0[1] = { ! {81, 1}, ! }; ! static arc arcs_30_1[1] = { ! {21, 2}, }; ! static arc arcs_30_2[1] = { ! {14, 3}, }; ! static arc arcs_30_3[1] = { ! {15, 4}, }; ! static arc arcs_30_4[3] = { ! {82, 1}, ! {83, 5}, {0, 4}, }; ! static arc arcs_30_5[1] = { ! {14, 6}, }; ! static arc arcs_30_6[1] = { ! {15, 7}, }; ! static arc arcs_30_7[1] = { ! {0, 7}, }; ! static state states_30[8] = { ! {1, arcs_30_0}, {1, arcs_30_1}, - {1, arcs_30_2}, - {1, arcs_30_3}, - {3, arcs_30_4}, - {1, arcs_30_5}, - {1, arcs_30_6}, - {1, arcs_30_7}, }; static arc arcs_31_0[1] = { {84, 1}, }; static arc arcs_31_1[1] = { ! {21, 2}, }; static arc arcs_31_2[1] = { ! {14, 3}, }; static arc arcs_31_3[1] = { ! {15, 4}, }; ! static arc arcs_31_4[2] = { ! {83, 5}, {0, 4}, }; static arc arcs_31_5[1] = { ! {14, 6}, }; static arc arcs_31_6[1] = { ! {15, 7}, }; static arc arcs_31_7[1] = { {0, 7}, --- 534,675 ---- {1, arcs_24_3}, }; static arc arcs_25_0[1] = { ! {71, 1}, }; static arc arcs_25_1[2] = { ! {17, 2}, {0, 1}, }; ! static arc arcs_25_2[1] = { ! {17, 3}, ! }; ! static arc arcs_25_3[1] = { ! {0, 3}, ! }; ! static state states_25[4] = { {1, arcs_25_0}, {2, arcs_25_1}, + {1, arcs_25_2}, + {1, arcs_25_3}, }; static arc arcs_26_0[1] = { ! {17, 1}, }; ! static arc arcs_26_1[2] = { ! {73, 0}, ! {0, 1}, }; ! static state states_26[2] = { {1, arcs_26_0}, ! {2, arcs_26_1}, }; static arc arcs_27_0[1] = { ! {74, 1}, }; static arc arcs_27_1[1] = { ! {17, 2}, }; static arc arcs_27_2[2] = { ! {13, 1}, {0, 2}, }; ! static state states_27[3] = { {1, arcs_27_0}, {1, arcs_27_1}, {2, arcs_27_2}, }; static arc arcs_28_0[1] = { {75, 1}, }; static arc arcs_28_1[1] = { ! {76, 2}, }; static arc arcs_28_2[2] = { ! {77, 3}, {0, 2}, }; static arc arcs_28_3[1] = { ! {12, 4}, }; ! static arc arcs_28_4[2] = { ! {13, 5}, {0, 4}, }; ! static arc arcs_28_5[1] = { ! {12, 6}, ! }; ! static arc arcs_28_6[1] = { ! {0, 6}, ! }; ! static state states_28[7] = { {1, arcs_28_0}, {1, arcs_28_1}, {2, arcs_28_2}, {1, arcs_28_3}, ! {2, arcs_28_4}, ! {1, arcs_28_5}, ! {1, arcs_28_6}, }; ! static arc arcs_29_0[1] = { {78, 1}, }; static arc arcs_29_1[1] = { ! {12, 2}, }; ! static arc arcs_29_2[2] = { ! {13, 3}, ! {0, 2}, }; ! static arc arcs_29_3[1] = { ! {12, 4}, }; ! static arc arcs_29_4[1] = { {0, 4}, }; ! static state states_29[5] = { ! {1, arcs_29_0}, ! {1, arcs_29_1}, ! {2, arcs_29_2}, ! {1, arcs_29_3}, ! {1, arcs_29_4}, }; ! static arc arcs_30_0[6] = { ! {79, 1}, ! {80, 1}, ! {81, 1}, ! {82, 1}, ! {15, 1}, ! {83, 1}, }; ! static arc arcs_30_1[1] = { ! {0, 1}, }; ! static state states_30[2] = { ! {6, arcs_30_0}, {1, arcs_30_1}, }; static arc arcs_31_0[1] = { {84, 1}, }; static arc arcs_31_1[1] = { ! {12, 2}, }; static arc arcs_31_2[1] = { ! {19, 3}, }; static arc arcs_31_3[1] = { ! {20, 4}, }; ! static arc arcs_31_4[3] = { ! {85, 1}, ! {86, 5}, {0, 4}, }; static arc arcs_31_5[1] = { ! {19, 6}, }; static arc arcs_31_6[1] = { ! {20, 7}, }; static arc arcs_31_7[1] = { {0, 7}, *************** *** 680,762 **** {1, arcs_31_1}, {1, arcs_31_2}, {1, arcs_31_3}, ! {2, arcs_31_4}, {1, arcs_31_5}, {1, arcs_31_6}, {1, arcs_31_7}, }; static arc arcs_32_0[1] = { ! {85, 1}, }; static arc arcs_32_1[1] = { ! {53, 2}, }; static arc arcs_32_2[1] = { ! {74, 3}, }; static arc arcs_32_3[1] = { ! {9, 4}, }; ! static arc arcs_32_4[1] = { ! {14, 5}, }; static arc arcs_32_5[1] = { ! {15, 6}, }; ! static arc arcs_32_6[2] = { ! {83, 7}, ! {0, 6}, }; static arc arcs_32_7[1] = { ! {14, 8}, ! }; ! static arc arcs_32_8[1] = { ! {15, 9}, ! }; ! static arc arcs_32_9[1] = { ! {0, 9}, }; ! static state states_32[10] = { {1, arcs_32_0}, {1, arcs_32_1}, {1, arcs_32_2}, {1, arcs_32_3}, ! {1, arcs_32_4}, {1, arcs_32_5}, ! {2, arcs_32_6}, {1, arcs_32_7}, - {1, arcs_32_8}, - {1, arcs_32_9}, }; static arc arcs_33_0[1] = { ! {86, 1}, }; static arc arcs_33_1[1] = { ! {14, 2}, }; static arc arcs_33_2[1] = { ! {15, 3}, }; ! static arc arcs_33_3[2] = { ! {87, 4}, ! {88, 5}, }; static arc arcs_33_4[1] = { ! {14, 6}, }; static arc arcs_33_5[1] = { ! {14, 7}, }; ! static arc arcs_33_6[1] = { ! {15, 8}, }; static arc arcs_33_7[1] = { ! {15, 9}, }; ! static arc arcs_33_8[3] = { ! {87, 4}, ! {83, 5}, ! {0, 8}, }; static arc arcs_33_9[1] = { {0, 9}, --- 679,751 ---- {1, arcs_31_1}, {1, arcs_31_2}, {1, arcs_31_3}, ! {3, arcs_31_4}, {1, arcs_31_5}, {1, arcs_31_6}, {1, arcs_31_7}, }; static arc arcs_32_0[1] = { ! {87, 1}, }; static arc arcs_32_1[1] = { ! {12, 2}, }; static arc arcs_32_2[1] = { ! {19, 3}, }; static arc arcs_32_3[1] = { ! {20, 4}, }; ! static arc arcs_32_4[2] = { ! {86, 5}, ! {0, 4}, }; static arc arcs_32_5[1] = { ! {19, 6}, }; ! static arc arcs_32_6[1] = { ! {20, 7}, }; static arc arcs_32_7[1] = { ! {0, 7}, }; ! static state states_32[8] = { {1, arcs_32_0}, {1, arcs_32_1}, {1, arcs_32_2}, {1, arcs_32_3}, ! {2, arcs_32_4}, {1, arcs_32_5}, ! {1, arcs_32_6}, {1, arcs_32_7}, }; static arc arcs_33_0[1] = { ! {88, 1}, }; static arc arcs_33_1[1] = { ! {56, 2}, }; static arc arcs_33_2[1] = { ! {77, 3}, }; ! static arc arcs_33_3[1] = { ! {9, 4}, }; static arc arcs_33_4[1] = { ! {19, 5}, }; static arc arcs_33_5[1] = { ! {20, 6}, }; ! static arc arcs_33_6[2] = { ! {86, 7}, ! {0, 6}, }; static arc arcs_33_7[1] = { ! {19, 8}, }; ! static arc arcs_33_8[1] = { ! {20, 9}, }; static arc arcs_33_9[1] = { {0, 9}, *************** *** 765,927 **** {1, arcs_33_0}, {1, arcs_33_1}, {1, arcs_33_2}, ! {2, arcs_33_3}, {1, arcs_33_4}, {1, arcs_33_5}, ! {1, arcs_33_6}, {1, arcs_33_7}, ! {3, arcs_33_8}, {1, arcs_33_9}, }; static arc arcs_34_0[1] = { {89, 1}, }; ! static arc arcs_34_1[2] = { ! {21, 2}, ! {0, 1}, }; ! static arc arcs_34_2[2] = { ! {22, 3}, ! {0, 2}, }; ! static arc arcs_34_3[1] = { ! {21, 4}, }; static arc arcs_34_4[1] = { ! {0, 4}, }; ! static state states_34[5] = { {1, arcs_34_0}, ! {2, arcs_34_1}, ! {2, arcs_34_2}, ! {1, arcs_34_3}, {1, arcs_34_4}, }; ! static arc arcs_35_0[2] = { ! {3, 1}, ! {2, 2}, }; ! static arc arcs_35_1[1] = { {0, 1}, }; ! static arc arcs_35_2[1] = { ! {90, 3}, }; static arc arcs_35_3[1] = { ! {6, 4}, }; ! static arc arcs_35_4[2] = { ! {6, 4}, ! {91, 1}, }; static state states_35[5] = { ! {2, arcs_35_0}, ! {1, arcs_35_1}, ! {1, arcs_35_2}, {1, arcs_35_3}, ! {2, arcs_35_4}, }; static arc arcs_36_0[2] = { ! {92, 1}, ! {94, 2}, }; ! static arc arcs_36_1[2] = { ! {93, 3}, {0, 1}, }; static arc arcs_36_2[1] = { ! {0, 2}, }; static arc arcs_36_3[1] = { ! {92, 1}, }; ! static state states_36[4] = { {2, arcs_36_0}, ! {2, arcs_36_1}, {1, arcs_36_2}, {1, arcs_36_3}, }; ! static arc arcs_37_0[1] = { {95, 1}, }; static arc arcs_37_1[2] = { ! {96, 0}, {0, 1}, }; ! static state states_37[2] = { ! {1, arcs_37_0}, {2, arcs_37_1}, }; ! static arc arcs_38_0[2] = { ! {97, 1}, ! {98, 2}, }; ! static arc arcs_38_1[1] = { ! {95, 2}, }; ! static arc arcs_38_2[1] = { {0, 2}, }; ! static state states_38[3] = { ! {2, arcs_38_0}, ! {1, arcs_38_1}, ! {1, arcs_38_2}, }; ! static arc arcs_39_0[1] = { ! {73, 1}, }; ! static arc arcs_39_1[2] = { ! {99, 0}, {0, 1}, }; ! static state states_39[2] = { ! {1, arcs_39_0}, ! {2, arcs_39_1}, }; ! static arc arcs_40_0[10] = { ! {100, 1}, ! {101, 1}, ! {102, 1}, {103, 1}, {104, 1}, {105, 1}, {106, 1}, ! {74, 1}, ! {97, 2}, ! {107, 3}, }; ! static arc arcs_40_1[1] = { {0, 1}, }; ! static arc arcs_40_2[1] = { ! {74, 1}, }; ! static arc arcs_40_3[2] = { ! {97, 1}, {0, 3}, }; ! static state states_40[4] = { ! {10, arcs_40_0}, ! {1, arcs_40_1}, ! {1, arcs_40_2}, ! {2, arcs_40_3}, }; ! static arc arcs_41_0[1] = { ! {108, 1}, }; ! static arc arcs_41_1[2] = { ! {109, 0}, ! {0, 1}, ! }; ! static state states_41[2] = { ! {1, arcs_41_0}, ! {2, arcs_41_1}, ! }; ! static arc arcs_42_0[1] = { ! {110, 1}, ! }; ! static arc arcs_42_1[2] = { ! {111, 0}, {0, 1}, }; static state states_42[2] = { --- 754,950 ---- {1, arcs_33_0}, {1, arcs_33_1}, {1, arcs_33_2}, ! {1, arcs_33_3}, {1, arcs_33_4}, {1, arcs_33_5}, ! {2, arcs_33_6}, {1, arcs_33_7}, ! {1, arcs_33_8}, {1, arcs_33_9}, }; static arc arcs_34_0[1] = { {89, 1}, }; ! static arc arcs_34_1[1] = { ! {19, 2}, }; ! static arc arcs_34_2[1] = { ! {20, 3}, }; ! static arc arcs_34_3[2] = { ! {90, 4}, ! {91, 5}, }; static arc arcs_34_4[1] = { ! {19, 6}, ! }; ! static arc arcs_34_5[1] = { ! {19, 7}, ! }; ! static arc arcs_34_6[1] = { ! {20, 8}, ! }; ! static arc arcs_34_7[1] = { ! {20, 9}, ! }; ! static arc arcs_34_8[3] = { ! {90, 4}, ! {86, 5}, ! {0, 8}, }; ! static arc arcs_34_9[1] = { ! {0, 9}, ! }; ! static state states_34[10] = { {1, arcs_34_0}, ! {1, arcs_34_1}, ! {1, arcs_34_2}, ! {2, arcs_34_3}, {1, arcs_34_4}, + {1, arcs_34_5}, + {1, arcs_34_6}, + {1, arcs_34_7}, + {3, arcs_34_8}, + {1, arcs_34_9}, }; ! static arc arcs_35_0[1] = { ! {92, 1}, }; ! static arc arcs_35_1[2] = { ! {12, 2}, {0, 1}, }; ! static arc arcs_35_2[2] = { ! {13, 3}, ! {0, 2}, }; static arc arcs_35_3[1] = { ! {12, 4}, }; ! static arc arcs_35_4[1] = { ! {0, 4}, }; static state states_35[5] = { ! {1, arcs_35_0}, ! {2, arcs_35_1}, ! {2, arcs_35_2}, {1, arcs_35_3}, ! {1, arcs_35_4}, }; static arc arcs_36_0[2] = { ! {3, 1}, ! {2, 2}, }; ! static arc arcs_36_1[1] = { {0, 1}, }; static arc arcs_36_2[1] = { ! {93, 3}, }; static arc arcs_36_3[1] = { ! {6, 4}, ! }; ! static arc arcs_36_4[2] = { ! {6, 4}, ! {94, 1}, }; ! static state states_36[5] = { {2, arcs_36_0}, ! {1, arcs_36_1}, {1, arcs_36_2}, {1, arcs_36_3}, + {2, arcs_36_4}, }; ! static arc arcs_37_0[2] = { {95, 1}, + {97, 2}, }; static arc arcs_37_1[2] = { ! {96, 3}, {0, 1}, }; ! static arc arcs_37_2[1] = { ! {0, 2}, ! }; ! static arc arcs_37_3[1] = { ! {95, 1}, ! }; ! static state states_37[4] = { ! {2, arcs_37_0}, {2, arcs_37_1}, + {1, arcs_37_2}, + {1, arcs_37_3}, }; ! static arc arcs_38_0[1] = { ! {98, 1}, ! }; ! static arc arcs_38_1[2] = { ! {99, 0}, ! {0, 1}, ! }; ! static state states_38[2] = { ! {1, arcs_38_0}, ! {2, arcs_38_1}, ! }; ! static arc arcs_39_0[2] = { ! {100, 1}, ! {101, 2}, }; ! static arc arcs_39_1[1] = { ! {98, 2}, }; ! static arc arcs_39_2[1] = { {0, 2}, }; ! static state states_39[3] = { ! {2, arcs_39_0}, ! {1, arcs_39_1}, ! {1, arcs_39_2}, }; ! static arc arcs_40_0[1] = { ! {76, 1}, }; ! static arc arcs_40_1[2] = { ! {102, 0}, {0, 1}, }; ! static state states_40[2] = { ! {1, arcs_40_0}, ! {2, arcs_40_1}, }; ! static arc arcs_41_0[10] = { {103, 1}, {104, 1}, {105, 1}, {106, 1}, ! {107, 1}, ! {108, 1}, ! {109, 1}, ! {77, 1}, ! {100, 2}, ! {110, 3}, }; ! static arc arcs_41_1[1] = { {0, 1}, }; ! static arc arcs_41_2[1] = { ! {77, 1}, }; ! static arc arcs_41_3[2] = { ! {100, 1}, {0, 3}, }; ! static state states_41[4] = { ! {10, arcs_41_0}, ! {1, arcs_41_1}, ! {1, arcs_41_2}, ! {2, arcs_41_3}, }; ! static arc arcs_42_0[1] = { ! {111, 1}, }; ! static arc arcs_42_1[2] = { ! {112, 0}, {0, 1}, }; static state states_42[2] = { *************** *** 929,938 **** {2, arcs_42_1}, }; static arc arcs_43_0[1] = { ! {112, 1}, }; static arc arcs_43_1[2] = { ! {113, 0}, {0, 1}, }; static state states_43[2] = { --- 952,961 ---- {2, arcs_42_1}, }; static arc arcs_43_0[1] = { ! {113, 1}, }; static arc arcs_43_1[2] = { ! {114, 0}, {0, 1}, }; static state states_43[2] = { *************** *** 940,962 **** {2, arcs_43_1}, }; static arc arcs_44_0[1] = { ! {114, 1}, }; ! static arc arcs_44_1[3] = { ! {115, 0}, ! {51, 0}, {0, 1}, }; static state states_44[2] = { {1, arcs_44_0}, ! {3, arcs_44_1}, }; static arc arcs_45_0[1] = { ! {116, 1}, }; static arc arcs_45_1[3] = { - {117, 0}, {118, 0}, {0, 1}, }; static state states_45[2] = { --- 963,984 ---- {2, arcs_43_1}, }; static arc arcs_44_0[1] = { ! {115, 1}, }; ! static arc arcs_44_1[2] = { ! {116, 0}, {0, 1}, }; static state states_44[2] = { {1, arcs_44_0}, ! {2, arcs_44_1}, }; static arc arcs_45_0[1] = { ! {117, 1}, }; static arc arcs_45_1[3] = { {118, 0}, + {54, 0}, {0, 1}, }; static state states_45[2] = { *************** *** 966,1249 **** static arc arcs_46_0[1] = { {119, 1}, }; ! static arc arcs_46_1[5] = { ! {23, 0}, {120, 0}, {121, 0}, - {122, 0}, {0, 1}, }; static state states_46[2] = { {1, arcs_46_0}, ! {5, arcs_46_1}, }; ! static arc arcs_47_0[4] = { ! {117, 1}, ! {118, 1}, ! {123, 1}, ! {124, 2}, }; ! static arc arcs_47_1[1] = { ! {119, 2}, }; ! static arc arcs_47_2[1] = { {0, 2}, }; ! static state states_47[3] = { ! {4, arcs_47_0}, ! {1, arcs_47_1}, ! {1, arcs_47_2}, }; ! static arc arcs_48_0[1] = { ! {125, 1}, }; ! static arc arcs_48_1[3] = { ! {126, 1}, ! {24, 2}, {0, 1}, }; ! static arc arcs_48_2[1] = { ! {119, 3}, }; ! static arc arcs_48_3[1] = { {0, 3}, }; ! static state states_48[4] = { ! {1, arcs_48_0}, ! {3, arcs_48_1}, ! {1, arcs_48_2}, ! {1, arcs_48_3}, }; ! static arc arcs_49_0[7] = { ! {16, 1}, ! {127, 2}, ! {130, 3}, ! {133, 4}, ! {12, 5}, ! {135, 5}, ! {136, 6}, }; ! static arc arcs_49_1[2] = { {9, 7}, ! {18, 5}, }; ! static arc arcs_49_2[2] = { ! {128, 8}, ! {129, 5}, }; ! static arc arcs_49_3[2] = { ! {131, 9}, ! {132, 5}, }; ! static arc arcs_49_4[1] = { ! {134, 10}, }; ! static arc arcs_49_5[1] = { {0, 5}, }; ! static arc arcs_49_6[2] = { ! {136, 6}, {0, 6}, }; ! static arc arcs_49_7[1] = { ! {18, 5}, }; ! static arc arcs_49_8[1] = { ! {129, 5}, ! }; ! static arc arcs_49_9[1] = { ! {132, 5}, ! }; ! static arc arcs_49_10[1] = { ! {133, 5}, ! }; ! static state states_49[11] = { ! {7, arcs_49_0}, ! {2, arcs_49_1}, ! {2, arcs_49_2}, ! {2, arcs_49_3}, ! {1, arcs_49_4}, ! {1, arcs_49_5}, ! {2, arcs_49_6}, ! {1, arcs_49_7}, ! {1, arcs_49_8}, ! {1, arcs_49_9}, ! {1, arcs_49_10}, ! }; ! static arc arcs_50_0[1] = { ! {21, 1}, ! }; ! static arc arcs_50_1[3] = { ! {137, 2}, ! {22, 3}, ! {0, 1}, }; ! static arc arcs_50_2[1] = { ! {0, 2}, }; ! static arc arcs_50_3[2] = { ! {21, 4}, ! {0, 3}, ! }; ! static arc arcs_50_4[2] = { ! {22, 3}, ! {0, 4}, }; ! static state states_50[5] = { ! {1, arcs_50_0}, ! {3, arcs_50_1}, ! {1, arcs_50_2}, {2, arcs_50_3}, ! {2, arcs_50_4}, }; static arc arcs_51_0[1] = { ! {138, 1}, }; ! static arc arcs_51_1[2] = { ! {17, 2}, ! {14, 3}, }; static arc arcs_51_2[1] = { ! {14, 3}, }; ! static arc arcs_51_3[1] = { ! {21, 4}, }; ! static arc arcs_51_4[1] = { {0, 4}, }; static state states_51[5] = { {1, arcs_51_0}, ! {2, arcs_51_1}, {1, arcs_51_2}, ! {1, arcs_51_3}, ! {1, arcs_51_4}, }; ! static arc arcs_52_0[3] = { ! {16, 1}, ! {127, 2}, ! {70, 3}, }; static arc arcs_52_1[2] = { ! {139, 4}, ! {18, 5}, }; static arc arcs_52_2[1] = { ! {140, 6}, }; static arc arcs_52_3[1] = { ! {12, 5}, }; static arc arcs_52_4[1] = { ! {18, 5}, ! }; ! static arc arcs_52_5[1] = { ! {0, 5}, ! }; ! static arc arcs_52_6[1] = { ! {129, 5}, }; ! static state states_52[7] = { ! {3, arcs_52_0}, {2, arcs_52_1}, {1, arcs_52_2}, {1, arcs_52_3}, {1, arcs_52_4}, - {1, arcs_52_5}, - {1, arcs_52_6}, }; ! static arc arcs_53_0[1] = { ! {141, 1}, }; static arc arcs_53_1[2] = { ! {22, 2}, ! {0, 1}, }; ! static arc arcs_53_2[2] = { ! {141, 1}, ! {0, 2}, }; ! static state states_53[3] = { ! {1, arcs_53_0}, {2, arcs_53_1}, ! {2, arcs_53_2}, }; ! static arc arcs_54_0[3] = { ! {70, 1}, ! {21, 2}, ! {14, 3}, }; ! static arc arcs_54_1[1] = { ! {70, 4}, }; static arc arcs_54_2[2] = { ! {14, 3}, {0, 2}, }; ! static arc arcs_54_3[3] = { ! {21, 5}, ! {142, 6}, ! {0, 3}, }; ! static arc arcs_54_4[1] = { ! {70, 6}, }; ! static arc arcs_54_5[2] = { ! {142, 6}, ! {0, 5}, }; ! static arc arcs_54_6[1] = { ! {0, 6}, }; ! static state states_54[7] = { ! {3, arcs_54_0}, ! {1, arcs_54_1}, ! {2, arcs_54_2}, ! {3, arcs_54_3}, ! {1, arcs_54_4}, ! {2, arcs_54_5}, ! {1, arcs_54_6}, }; ! static arc arcs_55_0[1] = { ! {14, 1}, }; ! static arc arcs_55_1[2] = { ! {21, 2}, ! {0, 1}, }; ! static arc arcs_55_2[1] = { ! {0, 2}, }; ! static state states_55[3] = { ! {1, arcs_55_0}, ! {2, arcs_55_1}, ! {1, arcs_55_2}, }; static arc arcs_56_0[1] = { ! {73, 1}, }; static arc arcs_56_1[2] = { ! {22, 2}, {0, 1}, }; ! static arc arcs_56_2[2] = { ! {73, 1}, {0, 2}, }; static state states_56[3] = { {1, arcs_56_0}, {2, arcs_56_1}, ! {2, arcs_56_2}, }; static arc arcs_57_0[1] = { ! {21, 1}, }; static arc arcs_57_1[2] = { ! {22, 2}, {0, 1}, }; static arc arcs_57_2[2] = { ! {21, 1}, {0, 2}, }; static state states_57[3] = { --- 988,1267 ---- static arc arcs_46_0[1] = { {119, 1}, }; ! static arc arcs_46_1[3] = { {120, 0}, {121, 0}, {0, 1}, }; static state states_46[2] = { {1, arcs_46_0}, ! {3, arcs_46_1}, }; ! static arc arcs_47_0[1] = { ! {122, 1}, }; ! static arc arcs_47_1[5] = { ! {26, 0}, ! {123, 0}, ! {124, 0}, ! {125, 0}, ! {0, 1}, ! }; ! static state states_47[2] = { ! {1, arcs_47_0}, ! {5, arcs_47_1}, ! }; ! static arc arcs_48_0[4] = { ! {120, 1}, ! {121, 1}, ! {126, 1}, ! {127, 2}, }; ! static arc arcs_48_1[1] = { ! {122, 2}, ! }; ! static arc arcs_48_2[1] = { {0, 2}, }; ! static state states_48[3] = { ! {4, arcs_48_0}, ! {1, arcs_48_1}, ! {1, arcs_48_2}, }; ! static arc arcs_49_0[1] = { ! {128, 1}, }; ! static arc arcs_49_1[3] = { ! {129, 1}, ! {27, 2}, {0, 1}, }; ! static arc arcs_49_2[1] = { ! {122, 3}, }; ! static arc arcs_49_3[1] = { {0, 3}, }; ! static state states_49[4] = { ! {1, arcs_49_0}, ! {3, arcs_49_1}, ! {1, arcs_49_2}, ! {1, arcs_49_3}, }; ! static arc arcs_50_0[7] = { ! {21, 1}, ! {130, 2}, ! {132, 3}, ! {135, 4}, ! {17, 5}, ! {137, 5}, ! {138, 6}, }; ! static arc arcs_50_1[2] = { {9, 7}, ! {23, 5}, }; ! static arc arcs_50_2[2] = { ! {131, 8}, ! {14, 5}, }; ! static arc arcs_50_3[2] = { ! {133, 9}, ! {134, 5}, }; ! static arc arcs_50_4[1] = { ! {136, 10}, }; ! static arc arcs_50_5[1] = { {0, 5}, }; ! static arc arcs_50_6[2] = { ! {138, 6}, {0, 6}, }; ! static arc arcs_50_7[1] = { ! {23, 5}, }; ! static arc arcs_50_8[1] = { ! {14, 5}, }; ! static arc arcs_50_9[1] = { ! {134, 5}, }; ! static arc arcs_50_10[1] = { ! {135, 5}, }; ! static state states_50[11] = { ! {7, arcs_50_0}, ! {2, arcs_50_1}, ! {2, arcs_50_2}, {2, arcs_50_3}, ! {1, arcs_50_4}, ! {1, arcs_50_5}, ! {2, arcs_50_6}, ! {1, arcs_50_7}, ! {1, arcs_50_8}, ! {1, arcs_50_9}, ! {1, arcs_50_10}, }; static arc arcs_51_0[1] = { ! {12, 1}, }; ! static arc arcs_51_1[3] = { ! {139, 2}, ! {13, 3}, ! {0, 1}, }; static arc arcs_51_2[1] = { ! {0, 2}, }; ! static arc arcs_51_3[2] = { ! {12, 4}, ! {0, 3}, }; ! static arc arcs_51_4[2] = { ! {13, 3}, {0, 4}, }; static state states_51[5] = { {1, arcs_51_0}, ! {3, arcs_51_1}, {1, arcs_51_2}, ! {2, arcs_51_3}, ! {2, arcs_51_4}, }; ! static arc arcs_52_0[1] = { ! {140, 1}, }; static arc arcs_52_1[2] = { ! {22, 2}, ! {19, 3}, }; static arc arcs_52_2[1] = { ! {19, 3}, }; static arc arcs_52_3[1] = { ! {12, 4}, }; static arc arcs_52_4[1] = { ! {0, 4}, }; ! static state states_52[5] = { ! {1, arcs_52_0}, {2, arcs_52_1}, {1, arcs_52_2}, {1, arcs_52_3}, {1, arcs_52_4}, }; ! static arc arcs_53_0[3] = { ! {21, 1}, ! {130, 2}, ! {73, 3}, }; static arc arcs_53_1[2] = { ! {141, 4}, ! {23, 5}, }; ! static arc arcs_53_2[1] = { ! {142, 6}, ! }; ! static arc arcs_53_3[1] = { ! {17, 5}, ! }; ! static arc arcs_53_4[1] = { ! {23, 5}, ! }; ! static arc arcs_53_5[1] = { ! {0, 5}, }; ! static arc arcs_53_6[1] = { ! {14, 5}, ! }; ! static state states_53[7] = { ! {3, arcs_53_0}, {2, arcs_53_1}, ! {1, arcs_53_2}, ! {1, arcs_53_3}, ! {1, arcs_53_4}, ! {1, arcs_53_5}, ! {1, arcs_53_6}, }; ! static arc arcs_54_0[1] = { ! {143, 1}, }; ! static arc arcs_54_1[2] = { ! {13, 2}, ! {0, 1}, }; static arc arcs_54_2[2] = { ! {143, 1}, {0, 2}, }; ! static state states_54[3] = { ! {1, arcs_54_0}, ! {2, arcs_54_1}, ! {2, arcs_54_2}, }; ! static arc arcs_55_0[3] = { ! {73, 1}, ! {12, 2}, ! {19, 3}, }; ! static arc arcs_55_1[1] = { ! {73, 4}, }; ! static arc arcs_55_2[2] = { ! {19, 3}, ! {0, 2}, }; ! static arc arcs_55_3[3] = { ! {12, 5}, ! {144, 6}, ! {0, 3}, }; ! static arc arcs_55_4[1] = { ! {73, 6}, }; ! static arc arcs_55_5[2] = { ! {144, 6}, ! {0, 5}, }; ! static arc arcs_55_6[1] = { ! {0, 6}, }; ! static state states_55[7] = { ! {3, arcs_55_0}, ! {1, arcs_55_1}, ! {2, arcs_55_2}, ! {3, arcs_55_3}, ! {1, arcs_55_4}, ! {2, arcs_55_5}, ! {1, arcs_55_6}, }; static arc arcs_56_0[1] = { ! {19, 1}, }; static arc arcs_56_1[2] = { ! {12, 2}, {0, 1}, }; ! static arc arcs_56_2[1] = { {0, 2}, }; static state states_56[3] = { {1, arcs_56_0}, {2, arcs_56_1}, ! {1, arcs_56_2}, }; static arc arcs_57_0[1] = { ! {76, 1}, }; static arc arcs_57_1[2] = { ! {13, 2}, {0, 1}, }; static arc arcs_57_2[2] = { ! {76, 1}, {0, 2}, }; static state states_57[3] = { *************** *** 1252,1655 **** {2, arcs_57_2}, }; static arc arcs_58_0[1] = { ! {21, 1}, }; static arc arcs_58_1[2] = { ! {22, 2}, {0, 1}, }; ! static arc arcs_58_2[1] = { ! {21, 3}, ! }; ! static arc arcs_58_3[2] = { ! {22, 4}, ! {0, 3}, ! }; ! static arc arcs_58_4[2] = { ! {21, 3}, ! {0, 4}, }; ! static state states_58[5] = { {1, arcs_58_0}, {2, arcs_58_1}, ! {1, arcs_58_2}, ! {2, arcs_58_3}, ! {2, arcs_58_4}, }; static arc arcs_59_0[1] = { ! {21, 1}, }; ! static arc arcs_59_1[1] = { ! {14, 2}, }; static arc arcs_59_2[1] = { ! {21, 3}, }; static arc arcs_59_3[2] = { ! {22, 4}, {0, 3}, }; static arc arcs_59_4[2] = { ! {21, 1}, {0, 4}, }; static state states_59[5] = { {1, arcs_59_0}, ! {1, arcs_59_1}, {1, arcs_59_2}, {2, arcs_59_3}, {2, arcs_59_4}, }; static arc arcs_60_0[1] = { ! {144, 1}, }; static arc arcs_60_1[1] = { ! {12, 2}, ! }; ! static arc arcs_60_2[2] = { ! {16, 3}, ! {14, 4}, ! }; ! static arc arcs_60_3[1] = { ! {9, 5}, }; ! static arc arcs_60_4[1] = { ! {15, 6}, ! }; ! static arc arcs_60_5[1] = { ! {18, 7}, }; ! static arc arcs_60_6[1] = { ! {0, 6}, }; ! static arc arcs_60_7[1] = { ! {14, 4}, }; ! static state states_60[8] = { {1, arcs_60_0}, {1, arcs_60_1}, ! {2, arcs_60_2}, ! {1, arcs_60_3}, ! {1, arcs_60_4}, ! {1, arcs_60_5}, ! {1, arcs_60_6}, ! {1, arcs_60_7}, ! }; ! static arc arcs_61_0[3] = { ! {145, 1}, ! {23, 2}, ! {24, 3}, }; ! static arc arcs_61_1[2] = { ! {22, 4}, ! {0, 1}, }; ! static arc arcs_61_2[1] = { ! {21, 5}, }; static arc arcs_61_3[1] = { ! {21, 6}, }; ! static arc arcs_61_4[4] = { ! {145, 1}, ! {23, 2}, ! {24, 3}, ! {0, 4}, }; ! static arc arcs_61_5[2] = { ! {22, 7}, ! {0, 5}, }; static arc arcs_61_6[1] = { {0, 6}, }; static arc arcs_61_7[1] = { ! {24, 3}, }; static state states_61[8] = { ! {3, arcs_61_0}, ! {2, arcs_61_1}, ! {1, arcs_61_2}, {1, arcs_61_3}, ! {4, arcs_61_4}, ! {2, arcs_61_5}, {1, arcs_61_6}, {1, arcs_61_7}, }; ! static arc arcs_62_0[1] = { ! {21, 1}, }; static arc arcs_62_1[2] = { ! {20, 2}, {0, 1}, }; static arc arcs_62_2[1] = { ! {21, 3}, }; static arc arcs_62_3[1] = { ! {0, 3}, }; ! static state states_62[4] = { ! {1, arcs_62_0}, {2, arcs_62_1}, {1, arcs_62_2}, {1, arcs_62_3}, }; ! static arc arcs_63_0[2] = { ! {137, 1}, ! {147, 1}, }; ! static arc arcs_63_1[1] = { {0, 1}, }; ! static state states_63[2] = { ! {2, arcs_63_0}, ! {1, arcs_63_1}, ! }; ! static arc arcs_64_0[1] = { ! {85, 1}, ! }; ! static arc arcs_64_1[1] = { ! {53, 2}, }; ! static arc arcs_64_2[1] = { ! {74, 3}, }; ! static arc arcs_64_3[1] = { ! {143, 4}, }; ! static arc arcs_64_4[2] = { ! {146, 5}, ! {0, 4}, ! }; ! static arc arcs_64_5[1] = { ! {0, 5}, }; ! static state states_64[6] = { ! {1, arcs_64_0}, {1, arcs_64_1}, - {1, arcs_64_2}, - {1, arcs_64_3}, - {2, arcs_64_4}, - {1, arcs_64_5}, }; static arc arcs_65_0[1] = { ! {81, 1}, }; static arc arcs_65_1[1] = { ! {21, 2}, }; ! static arc arcs_65_2[2] = { ! {146, 3}, ! {0, 2}, }; static arc arcs_65_3[1] = { ! {0, 3}, }; ! static state states_65[4] = { {1, arcs_65_0}, {1, arcs_65_1}, ! {2, arcs_65_2}, {1, arcs_65_3}, }; 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 arc arcs_67_0[1] = { {12, 1}, }; ! static arc arcs_67_1[1] = { {0, 1}, }; static state states_67[2] = { {1, arcs_67_0}, ! {1, arcs_67_1}, }; ! static dfa dfas[68] = { {256, "single_input", 0, 3, states_0, ! "\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, ! "\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, ! "\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, "\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, ! "\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {261, "varargslist", 0, 10, states_5, ! "\000\020\201\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {262, "fpdef", 0, 4, states_6, ! "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {263, "fplist", 0, 3, states_7, ! "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {264, "stmt", 0, 2, states_8, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {270, "del_stmt", 0, 3, states_14, ! "\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {271, "pass_stmt", 0, 2, states_15, ! "\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {272, "flow_stmt", 0, 2, states_16, ! "\000\000\000\000\000\000\000\360\001\000\000\000\000\000\000\000\000\000\000"}, ! {273, "break_stmt", 0, 2, states_17, ! "\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000"}, ! {274, "continue_stmt", 0, 2, states_18, ! "\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"}, ! {275, "return_stmt", 0, 3, states_19, ! "\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"}, ! {276, "yield_stmt", 0, 3, states_20, "\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000"}, ! {277, "raise_stmt", 0, 7, states_21, "\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"}, ! {278, "import_stmt", 0, 9, states_22, ! "\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000"}, ! {279, "import_as_name", 0, 4, states_23, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {280, "dotted_as_name", 0, 4, states_24, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {281, "dotted_name", 0, 2, states_25, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {282, "global_stmt", 0, 3, states_26, ! "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"}, ! {283, "exec_stmt", 0, 7, states_27, ! "\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"}, ! {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"}, ! {285, "compound_stmt", 0, 2, states_29, ! "\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, ! "\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, "\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000"}, ! {288, "for_stmt", 0, 10, states_32, ! "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"}, ! {289, "try_stmt", 0, 10, states_33, ! "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000"}, ! {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"}, ! {291, "suite", 0, 5, states_35, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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, ! "\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"}, ! {323, "encoding_decl", 0, 2, states_67, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, }; ! static label labels[149] = { {0, "EMPTY"}, {256, 0}, {4, 0}, ! {265, 0}, ! {285, 0}, {257, 0}, ! {264, 0}, {0, 0}, {258, 0}, ! {313, 0}, {259, 0}, {1, "def"}, {1, 0}, ! {260, 0}, {11, 0}, ! {291, 0}, {7, 0}, - {261, 0}, - {8, 0}, {262, 0}, {22, 0}, - {292, 0}, - {12, 0}, {16, 0}, {36, 0}, ! {263, 0}, ! {266, 0}, ! {13, 0}, {267, 0}, ! {269, 0}, {270, 0}, {271, 0}, {272, 0}, ! {278, 0}, ! {282, 0}, {283, 0}, {284, 0}, ! {268, 0}, {37, 0}, {38, 0}, {39, 0}, --- 1270,1694 ---- {2, arcs_57_2}, }; static arc arcs_58_0[1] = { ! {12, 1}, }; static arc arcs_58_1[2] = { ! {13, 2}, {0, 1}, }; ! static arc arcs_58_2[2] = { ! {12, 1}, ! {0, 2}, }; ! static state states_58[3] = { {1, arcs_58_0}, {2, arcs_58_1}, ! {2, arcs_58_2}, }; static arc arcs_59_0[1] = { ! {12, 1}, }; ! static arc arcs_59_1[2] = { ! {13, 2}, ! {0, 1}, }; static arc arcs_59_2[1] = { ! {12, 3}, }; static arc arcs_59_3[2] = { ! {13, 4}, {0, 3}, }; static arc arcs_59_4[2] = { ! {12, 3}, {0, 4}, }; static state states_59[5] = { {1, arcs_59_0}, ! {2, arcs_59_1}, {1, arcs_59_2}, {2, arcs_59_3}, {2, arcs_59_4}, }; static arc arcs_60_0[1] = { ! {12, 1}, }; static arc arcs_60_1[1] = { ! {19, 2}, }; ! static arc arcs_60_2[1] = { ! {12, 3}, }; ! static arc arcs_60_3[2] = { ! {13, 4}, ! {0, 3}, }; ! static arc arcs_60_4[2] = { ! {12, 1}, ! {0, 4}, }; ! static state states_60[5] = { {1, arcs_60_0}, {1, arcs_60_1}, ! {1, arcs_60_2}, ! {2, arcs_60_3}, ! {2, arcs_60_4}, }; ! static arc arcs_61_0[1] = { ! {146, 1}, }; ! static arc arcs_61_1[1] = { ! {17, 2}, ! }; ! static arc arcs_61_2[2] = { ! {21, 3}, ! {19, 4}, }; static arc arcs_61_3[1] = { ! {9, 5}, }; ! static arc arcs_61_4[1] = { ! {20, 6}, }; ! static arc arcs_61_5[1] = { ! {23, 7}, }; static arc arcs_61_6[1] = { {0, 6}, }; static arc arcs_61_7[1] = { ! {19, 4}, }; static state states_61[8] = { ! {1, arcs_61_0}, ! {1, arcs_61_1}, ! {2, arcs_61_2}, {1, arcs_61_3}, ! {1, arcs_61_4}, ! {1, arcs_61_5}, {1, arcs_61_6}, {1, arcs_61_7}, }; ! static arc arcs_62_0[3] = { ! {147, 1}, ! {26, 2}, ! {27, 3}, }; static arc arcs_62_1[2] = { ! {13, 4}, {0, 1}, }; static arc arcs_62_2[1] = { ! {12, 5}, }; static arc arcs_62_3[1] = { ! {12, 6}, ! }; ! static arc arcs_62_4[4] = { ! {147, 1}, ! {26, 2}, ! {27, 3}, ! {0, 4}, }; ! static arc arcs_62_5[2] = { ! {13, 7}, ! {0, 5}, ! }; ! static arc arcs_62_6[1] = { ! {0, 6}, ! }; ! static arc arcs_62_7[1] = { ! {27, 3}, ! }; ! static state states_62[8] = { ! {3, arcs_62_0}, {2, arcs_62_1}, {1, arcs_62_2}, {1, arcs_62_3}, + {4, arcs_62_4}, + {2, arcs_62_5}, + {1, arcs_62_6}, + {1, arcs_62_7}, }; ! static arc arcs_63_0[1] = { ! {12, 1}, }; ! static arc arcs_63_1[2] = { ! {25, 2}, {0, 1}, }; ! static arc arcs_63_2[1] = { ! {12, 3}, }; ! static arc arcs_63_3[1] = { ! {0, 3}, }; ! static state states_63[4] = { ! {1, arcs_63_0}, ! {2, arcs_63_1}, ! {1, arcs_63_2}, ! {1, arcs_63_3}, ! }; ! static arc arcs_64_0[2] = { ! {139, 1}, ! {149, 1}, }; ! static arc arcs_64_1[1] = { ! {0, 1}, }; ! static state states_64[2] = { ! {2, arcs_64_0}, {1, arcs_64_1}, }; static arc arcs_65_0[1] = { ! {88, 1}, }; static arc arcs_65_1[1] = { ! {56, 2}, }; ! static arc arcs_65_2[1] = { ! {77, 3}, }; static arc arcs_65_3[1] = { ! {145, 4}, }; ! static arc arcs_65_4[2] = { ! {148, 5}, ! {0, 4}, ! }; ! static arc arcs_65_5[1] = { ! {0, 5}, ! }; ! static state states_65[6] = { {1, arcs_65_0}, {1, arcs_65_1}, ! {1, arcs_65_2}, {1, arcs_65_3}, + {2, arcs_65_4}, + {1, arcs_65_5}, }; static arc arcs_66_0[1] = { ! {84, 1}, }; ! static arc arcs_66_1[1] = { ! {12, 2}, }; ! static arc arcs_66_2[2] = { ! {148, 3}, ! {0, 2}, ! }; ! static arc arcs_66_3[1] = { ! {0, 3}, ! }; ! static state states_66[4] = { {1, arcs_66_0}, ! {1, arcs_66_1}, ! {2, arcs_66_2}, ! {1, arcs_66_3}, }; static arc arcs_67_0[1] = { {12, 1}, }; ! static arc arcs_67_1[2] = { ! {13, 0}, {0, 1}, }; static state states_67[2] = { {1, arcs_67_0}, ! {2, arcs_67_1}, }; ! static arc arcs_68_0[1] = { ! {17, 1}, ! }; ! static arc arcs_68_1[1] = { ! {0, 1}, ! }; ! static state states_68[2] = { ! {1, arcs_68_0}, ! {1, arcs_68_1}, ! }; ! static dfa dfas[69] = { {256, "single_input", 0, 3, states_0, ! "\004\010\043\000\000\000\240\202\137\114\220\003\020\000\000\103\224\026\004"}, {257, "file_input", 0, 2, states_1, ! "\204\010\043\000\000\000\240\202\137\114\220\003\020\000\000\103\224\026\004"}, {258, "eval_input", 0, 3, states_2, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {259, "decorators", 0, 6, states_3, "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {260, "funcdef", 0, 7, states_4, ! "\000\010\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {261, "parameters", 0, 4, states_5, ! "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {262, "varargslist", 0, 10, states_6, ! "\000\000\042\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {263, "fpdef", 0, 4, states_7, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {264, "fplist", 0, 3, states_8, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {265, "stmt", 0, 2, states_9, ! "\000\010\043\000\000\000\240\202\137\114\220\003\020\000\000\103\224\026\004"}, ! {266, "simple_stmt", 0, 4, states_10, ! "\000\000\042\000\000\000\240\202\137\114\000\000\020\000\000\103\224\026\000"}, ! {267, "small_stmt", 0, 2, states_11, ! "\000\000\042\000\000\000\240\202\137\114\000\000\020\000\000\103\224\026\000"}, ! {268, "expr_stmt", 0, 6, states_12, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {269, "augassign", 0, 2, states_13, ! "\000\000\000\000\000\376\037\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {270, "print_stmt", 0, 9, states_14, ! "\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {271, "del_stmt", 0, 3, states_15, ! "\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {272, "pass_stmt", 0, 2, states_16, ! "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000"}, ! {273, "flow_stmt", 0, 2, states_17, ! "\000\000\000\000\000\000\000\200\017\000\000\000\000\000\000\000\000\000\000"}, ! {274, "break_stmt", 0, 2, states_18, "\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000"}, ! {275, "continue_stmt", 0, 2, states_19, "\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"}, ! {276, "return_stmt", 0, 3, states_20, ! "\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000"}, ! {277, "yield_stmt", 0, 3, states_21, ! "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000"}, ! {278, "raise_stmt", 0, 7, states_22, ! "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000"}, ! {279, "import_stmt", 0, 9, states_23, ! "\000\000\000\000\000\000\000\000\120\000\000\000\000\000\000\000\000\000\000"}, ! {280, "import_as_name", 0, 4, states_24, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {281, "dotted_as_name", 0, 4, states_25, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {282, "dotted_name", 0, 2, states_26, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {283, "global_stmt", 0, 3, states_27, ! "\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000"}, ! {284, "exec_stmt", 0, 7, states_28, "\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"}, ! {285, "assert_stmt", 0, 5, states_29, ! "\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"}, ! {286, "compound_stmt", 0, 2, states_30, ! "\000\010\001\000\000\000\000\000\000\000\220\003\000\000\000\000\000\000\004"}, ! {287, "if_stmt", 0, 8, states_31, "\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000"}, ! {288, "while_stmt", 0, 8, states_32, ! "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"}, ! {289, "for_stmt", 0, 10, states_33, ! "\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"}, ! {290, "try_stmt", 0, 10, states_34, "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000"}, ! {291, "except_clause", 0, 5, states_35, ! "\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000"}, ! {292, "suite", 0, 5, states_36, ! "\004\000\042\000\000\000\240\202\137\114\000\000\020\000\000\103\224\026\000"}, ! {293, "test", 0, 4, states_37, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {294, "and_test", 0, 2, states_38, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\006\000"}, ! {295, "not_test", 0, 3, states_39, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\006\000"}, ! {296, "comparison", 0, 2, states_40, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {297, "comp_op", 0, 4, states_41, ! "\000\000\000\000\000\000\000\000\000\040\000\000\220\177\000\000\000\000\000"}, ! {298, "expr", 0, 2, states_42, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {299, "xor_expr", 0, 2, states_43, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {300, "and_expr", 0, 2, states_44, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {301, "shift_expr", 0, 2, states_45, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {302, "arith_expr", 0, 2, states_46, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {303, "term", 0, 2, states_47, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {304, "factor", 0, 3, states_48, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {305, "power", 0, 4, states_49, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\000\224\006\000"}, ! {306, "atom", 0, 11, states_50, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\000\224\006\000"}, ! {307, "listmaker", 0, 5, states_51, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {308, "lambdef", 0, 5, states_52, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000"}, ! {309, "trailer", 0, 7, states_53, ! "\000\000\040\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000"}, ! {310, "subscriptlist", 0, 3, states_54, ! "\000\000\052\000\000\000\000\000\000\002\000\000\020\000\000\103\224\026\000"}, ! {311, "subscript", 0, 7, states_55, ! "\000\000\052\000\000\000\000\000\000\002\000\000\020\000\000\103\224\026\000"}, ! {312, "sliceop", 0, 3, states_56, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {313, "exprlist", 0, 3, states_57, ! "\000\000\042\000\000\000\000\000\000\000\000\000\000\000\000\103\224\006\000"}, ! {314, "testlist", 0, 3, states_58, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {315, "testlist_safe", 0, 5, states_59, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {316, "dictmaker", 0, 5, states_60, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {317, "classdef", 0, 8, states_61, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004"}, ! {318, "arglist", 0, 8, states_62, ! "\000\000\042\014\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {319, "argument", 0, 4, states_63, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {320, "list_iter", 0, 2, states_64, ! "\000\000\000\000\000\000\000\000\000\000\020\001\000\000\000\000\000\000\000"}, ! {321, "list_for", 0, 6, states_65, ! "\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"}, ! {322, "list_if", 0, 4, states_66, ! "\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000"}, ! {323, "testlist1", 0, 2, states_67, ! "\000\000\042\000\000\000\000\000\000\000\000\000\020\000\000\103\224\026\000"}, ! {324, "encoding_decl", 0, 2, states_68, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, }; ! static label labels[151] = { {0, "EMPTY"}, {256, 0}, {4, 0}, ! {266, 0}, ! {286, 0}, {257, 0}, ! {265, 0}, {0, 0}, {258, 0}, ! {314, 0}, {259, 0}, + {50, 0}, + {293, 0}, + {12, 0}, + {10, 0}, + {260, 0}, {1, "def"}, {1, 0}, ! {261, 0}, {11, 0}, ! {292, 0}, {7, 0}, {262, 0}, + {8, 0}, + {263, 0}, {22, 0}, {16, 0}, {36, 0}, ! {264, 0}, {267, 0}, ! {13, 0}, ! {268, 0}, {270, 0}, {271, 0}, {272, 0}, ! {273, 0}, ! {279, 0}, {283, 0}, {284, 0}, ! {285, 0}, ! {269, 0}, {37, 0}, {38, 0}, {39, 0}, *************** *** 1665,1717 **** {1, "print"}, {35, 0}, {1, "del"}, ! {312, 0}, {1, "pass"}, - {273, 0}, {274, 0}, {275, 0}, - {277, 0}, {276, 0}, {1, "break"}, {1, "continue"}, {1, "return"}, {1, "yield"}, {1, "raise"}, {1, "import"}, - {280, 0}, - {1, "from"}, {281, 0}, ! {279, 0}, {23, 0}, {1, "global"}, {1, "exec"}, ! {297, 0}, {1, "in"}, {1, "assert"}, - {286, 0}, {287, 0}, {288, 0}, {289, 0}, ! {316, 0}, {1, "if"}, {1, "elif"}, {1, "else"}, {1, "while"}, {1, "for"}, {1, "try"}, ! {290, 0}, {1, "finally"}, {1, "except"}, {5, 0}, {6, 0}, - {293, 0}, - {1, "or"}, - {307, 0}, {294, 0}, {1, "and"}, {1, "not"}, - {295, 0}, {296, 0}, {20, 0}, {21, 0}, {28, 0}, --- 1704,1756 ---- {1, "print"}, {35, 0}, {1, "del"}, ! {313, 0}, {1, "pass"}, {274, 0}, {275, 0}, {276, 0}, + {278, 0}, + {277, 0}, {1, "break"}, {1, "continue"}, {1, "return"}, {1, "yield"}, {1, "raise"}, {1, "import"}, {281, 0}, ! {1, "from"}, ! {282, 0}, ! {280, 0}, {23, 0}, {1, "global"}, {1, "exec"}, ! {298, 0}, {1, "in"}, {1, "assert"}, {287, 0}, {288, 0}, {289, 0}, ! {290, 0}, ! {317, 0}, {1, "if"}, {1, "elif"}, {1, "else"}, {1, "while"}, {1, "for"}, {1, "try"}, ! {291, 0}, {1, "finally"}, {1, "except"}, {5, 0}, {6, 0}, {294, 0}, + {1, "or"}, + {308, 0}, + {295, 0}, {1, "and"}, {1, "not"}, {296, 0}, + {297, 0}, {20, 0}, {21, 0}, {28, 0}, *************** *** 1720,1770 **** {29, 0}, {29, 0}, {1, "is"}, - {298, 0}, - {18, 0}, {299, 0}, ! {33, 0}, {300, 0}, ! {19, 0}, {301, 0}, ! {34, 0}, {302, 0}, {14, 0}, {15, 0}, ! {303, 0}, {17, 0}, {24, 0}, {48, 0}, {32, 0}, - {304, 0}, {305, 0}, - {308, 0}, - {9, 0}, {306, 0}, ! {10, 0}, {26, 0}, ! {315, 0}, {27, 0}, {25, 0}, ! {322, 0}, {2, 0}, {3, 0}, ! {320, 0}, {1, "lambda"}, ! {317, 0}, ! {309, 0}, {310, 0}, {311, 0}, ! {314, 0}, {1, "class"}, - {318, 0}, {319, 0}, ! {321, 0}, ! {323, 0}, }; grammar _PyParser_Grammar = { ! 68, dfas, ! {149, labels}, 256 }; --- 1759,1808 ---- {29, 0}, {29, 0}, {1, "is"}, {299, 0}, ! {18, 0}, {300, 0}, ! {33, 0}, {301, 0}, ! {19, 0}, {302, 0}, + {34, 0}, + {303, 0}, {14, 0}, {15, 0}, ! {304, 0}, {17, 0}, {24, 0}, {48, 0}, {32, 0}, {305, 0}, {306, 0}, ! {309, 0}, ! {9, 0}, ! {307, 0}, {26, 0}, ! {316, 0}, {27, 0}, {25, 0}, ! {323, 0}, {2, 0}, {3, 0}, ! {321, 0}, {1, "lambda"}, ! {318, 0}, {310, 0}, {311, 0}, ! {312, 0}, ! {315, 0}, {1, "class"}, {319, 0}, ! {320, 0}, ! {322, 0}, ! {324, 0}, }; grammar _PyParser_Grammar = { ! 69, dfas, ! {151, labels}, 256 }; *** /dev/null Sat Nov 15 11:00:11 2003 --- Lib/test/test_decorators.py Thu Apr 8 18:08:51 2004 *************** *** 0 **** --- 1,41 ---- + import unittest + from test import test_support + + def funcattrs(**kwds): + def decorate(func): + func.__dict__.update(kwds) + return func + return decorate + + class TestDecorators(unittest.TestCase): + + def test_single(self): + class C(object): + [as staticmethod] + def foo(): return 42 + self.assertEqual(C.foo(), 42) + self.assertEqual(C().foo(), 42) + + def test_double(self): + class C(object): + [as funcattrs(abc=1, xyz="haha"), + funcattrs(booh=42)] + def foo(self): return 42 + self.assertEqual(C().foo(), 42) + self.assertEqual(C.foo.abc, 1) + self.assertEqual(C.foo.xyz, "haha") + self.assertEqual(C.foo.booh, 42) + + def test_order(self): + class C(object): + [as funcattrs(abc=1), staticmethod] + def foo(): return 42 + # This wouldn't work if staticmethod was called first + self.assertEqual(C.foo(), 42) + self.assertEqual(C().foo(), 42) + + def test_main(): + test_support.run_unittest(TestDecorators) + + if __name__=="__main__": + test_main()