Index: Grammar/Grammar =================================================================== RCS file: /cvsroot/python/python/dist/src/Grammar/Grammar,v retrieving revision 1.50 diff -c -r1.50 Grammar *** Grammar/Grammar 2 Aug 2004 06:09:53 -0000 1.50 --- Grammar/Grammar 12 Aug 2004 14:38:41 -0000 *************** *** 28,36 **** file_input: (NEWLINE | stmt)* ENDMARKER eval_input: testlist NEWLINE* ENDMARKER decorator: '@' dotted_name [ '(' [arglist] ')' ] decorators: decorator ([NEWLINE] decorator)* NEWLINE ! funcdef: [decorators] 'def' NAME parameters ':' suite parameters: '(' [varargslist] ')' varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [','] fpdef: NAME | '(' fplist ')' --- 28,38 ---- file_input: (NEWLINE | stmt)* ENDMARKER eval_input: testlist NEWLINE* ENDMARKER + funcdef: 'def' NAME parameters ':' suite decorator: '@' dotted_name [ '(' [arglist] ')' ] decorators: decorator ([NEWLINE] decorator)* NEWLINE ! decorated_thing: decorators (funcdef|classdef) ! parameters: '(' [varargslist] ')' varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [','] fpdef: NAME | '(' fplist ')' *************** *** 59,65 **** exec_stmt: 'exec' expr ['in' test [',' test]] assert_stmt: 'assert' test [',' test] ! 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] --- 61,67 ---- exec_stmt: 'exec' expr ['in' test [',' test]] assert_stmt: 'assert' test [',' test] ! compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | decorated_thing | 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] Index: Include/graminit.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/graminit.h,v retrieving revision 2.22 diff -c -r2.22 graminit.h *** Include/graminit.h 2 Aug 2004 06:09:53 -0000 2.22 --- Include/graminit.h 12 Aug 2004 14:38:41 -0000 *************** *** 1,74 **** #define single_input 256 #define file_input 257 #define eval_input 258 ! #define decorator 259 ! #define decorators 260 ! #define funcdef 261 ! #define parameters 262 ! #define varargslist 263 ! #define fpdef 264 ! #define fplist 265 ! #define stmt 266 ! #define simple_stmt 267 ! #define small_stmt 268 ! #define expr_stmt 269 ! #define augassign 270 ! #define print_stmt 271 ! #define del_stmt 272 ! #define pass_stmt 273 ! #define flow_stmt 274 ! #define break_stmt 275 ! #define continue_stmt 276 ! #define return_stmt 277 ! #define yield_stmt 278 ! #define raise_stmt 279 ! #define import_stmt 280 ! #define import_as_name 281 ! #define dotted_as_name 282 ! #define dotted_name 283 ! #define global_stmt 284 ! #define exec_stmt 285 ! #define assert_stmt 286 ! #define compound_stmt 287 ! #define if_stmt 288 ! #define while_stmt 289 ! #define for_stmt 290 ! #define try_stmt 291 ! #define except_clause 292 ! #define suite 293 ! #define test 294 ! #define and_test 295 ! #define not_test 296 ! #define comparison 297 ! #define comp_op 298 ! #define expr 299 ! #define xor_expr 300 ! #define and_expr 301 ! #define shift_expr 302 ! #define arith_expr 303 ! #define term 304 ! #define factor 305 ! #define power 306 ! #define atom 307 ! #define listmaker 308 ! #define testlist_gexp 309 ! #define lambdef 310 ! #define trailer 311 ! #define subscriptlist 312 ! #define subscript 313 ! #define sliceop 314 ! #define exprlist 315 ! #define testlist 316 ! #define testlist_safe 317 ! #define dictmaker 318 ! #define classdef 319 ! #define arglist 320 ! #define argument 321 ! #define list_iter 322 ! #define list_for 323 ! #define list_if 324 ! #define gen_iter 325 ! #define gen_for 326 ! #define gen_if 327 ! #define testlist1 328 ! #define encoding_decl 329 --- 1,75 ---- #define single_input 256 #define file_input 257 #define eval_input 258 ! #define funcdef 259 ! #define decorator 260 ! #define decorators 261 ! #define decorated_thing 262 ! #define parameters 263 ! #define varargslist 264 ! #define fpdef 265 ! #define fplist 266 ! #define stmt 267 ! #define simple_stmt 268 ! #define small_stmt 269 ! #define expr_stmt 270 ! #define augassign 271 ! #define print_stmt 272 ! #define del_stmt 273 ! #define pass_stmt 274 ! #define flow_stmt 275 ! #define break_stmt 276 ! #define continue_stmt 277 ! #define return_stmt 278 ! #define yield_stmt 279 ! #define raise_stmt 280 ! #define import_stmt 281 ! #define import_as_name 282 ! #define dotted_as_name 283 ! #define dotted_name 284 ! #define global_stmt 285 ! #define exec_stmt 286 ! #define assert_stmt 287 ! #define compound_stmt 288 ! #define if_stmt 289 ! #define while_stmt 290 ! #define for_stmt 291 ! #define try_stmt 292 ! #define except_clause 293 ! #define suite 294 ! #define test 295 ! #define and_test 296 ! #define not_test 297 ! #define comparison 298 ! #define comp_op 299 ! #define expr 300 ! #define xor_expr 301 ! #define and_expr 302 ! #define shift_expr 303 ! #define arith_expr 304 ! #define term 305 ! #define factor 306 ! #define power 307 ! #define atom 308 ! #define listmaker 309 ! #define testlist_gexp 310 ! #define lambdef 311 ! #define trailer 312 ! #define subscriptlist 313 ! #define subscript 314 ! #define sliceop 315 ! #define exprlist 316 ! #define testlist 317 ! #define testlist_safe 318 ! #define dictmaker 319 ! #define classdef 320 ! #define arglist 321 ! #define argument 322 ! #define list_iter 323 ! #define list_for 324 ! #define list_if 325 ! #define gen_iter 326 ! #define gen_for 327 ! #define gen_if 328 ! #define testlist1 329 ! #define encoding_decl 330 Index: Lib/symbol.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/symbol.py,v retrieving revision 1.17 diff -c -r1.17 symbol.py *** Lib/symbol.py 2 Aug 2004 06:09:53 -0000 1.17 --- Lib/symbol.py 12 Aug 2004 14:38:41 -0000 *************** *** 13,89 **** single_input = 256 file_input = 257 eval_input = 258 ! decorator = 259 ! decorators = 260 ! funcdef = 261 ! parameters = 262 ! varargslist = 263 ! fpdef = 264 ! fplist = 265 ! stmt = 266 ! simple_stmt = 267 ! small_stmt = 268 ! expr_stmt = 269 ! augassign = 270 ! print_stmt = 271 ! del_stmt = 272 ! pass_stmt = 273 ! flow_stmt = 274 ! break_stmt = 275 ! continue_stmt = 276 ! return_stmt = 277 ! yield_stmt = 278 ! raise_stmt = 279 ! import_stmt = 280 ! import_as_name = 281 ! dotted_as_name = 282 ! dotted_name = 283 ! global_stmt = 284 ! exec_stmt = 285 ! assert_stmt = 286 ! compound_stmt = 287 ! if_stmt = 288 ! while_stmt = 289 ! for_stmt = 290 ! try_stmt = 291 ! except_clause = 292 ! suite = 293 ! test = 294 ! and_test = 295 ! not_test = 296 ! comparison = 297 ! comp_op = 298 ! expr = 299 ! xor_expr = 300 ! and_expr = 301 ! shift_expr = 302 ! arith_expr = 303 ! term = 304 ! factor = 305 ! power = 306 ! atom = 307 ! listmaker = 308 ! testlist_gexp = 309 ! lambdef = 310 ! trailer = 311 ! subscriptlist = 312 ! subscript = 313 ! sliceop = 314 ! exprlist = 315 ! testlist = 316 ! testlist_safe = 317 ! dictmaker = 318 ! classdef = 319 ! arglist = 320 ! argument = 321 ! list_iter = 322 ! list_for = 323 ! list_if = 324 ! gen_iter = 325 ! gen_for = 326 ! gen_if = 327 ! testlist1 = 328 ! encoding_decl = 329 #--end constants-- sym_name = {} --- 13,90 ---- single_input = 256 file_input = 257 eval_input = 258 ! funcdef = 259 ! decorator = 260 ! decorators = 261 ! decorated_thing = 262 ! parameters = 263 ! varargslist = 264 ! fpdef = 265 ! fplist = 266 ! stmt = 267 ! simple_stmt = 268 ! small_stmt = 269 ! expr_stmt = 270 ! augassign = 271 ! print_stmt = 272 ! del_stmt = 273 ! pass_stmt = 274 ! flow_stmt = 275 ! break_stmt = 276 ! continue_stmt = 277 ! return_stmt = 278 ! yield_stmt = 279 ! raise_stmt = 280 ! import_stmt = 281 ! import_as_name = 282 ! dotted_as_name = 283 ! dotted_name = 284 ! global_stmt = 285 ! exec_stmt = 286 ! assert_stmt = 287 ! compound_stmt = 288 ! if_stmt = 289 ! while_stmt = 290 ! for_stmt = 291 ! try_stmt = 292 ! except_clause = 293 ! suite = 294 ! test = 295 ! and_test = 296 ! not_test = 297 ! comparison = 298 ! comp_op = 299 ! expr = 300 ! xor_expr = 301 ! and_expr = 302 ! shift_expr = 303 ! arith_expr = 304 ! term = 305 ! factor = 306 ! power = 307 ! atom = 308 ! listmaker = 309 ! testlist_gexp = 310 ! lambdef = 311 ! trailer = 312 ! subscriptlist = 313 ! subscript = 314 ! sliceop = 315 ! exprlist = 316 ! testlist = 317 ! testlist_safe = 318 ! dictmaker = 319 ! classdef = 320 ! arglist = 321 ! argument = 322 ! list_iter = 323 ! list_for = 324 ! list_if = 325 ! gen_iter = 326 ! gen_for = 327 ! gen_if = 328 ! testlist1 = 329 ! encoding_decl = 330 #--end constants-- sym_name = {} Index: Lib/compiler/ast.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/compiler/ast.py,v retrieving revision 1.25 diff -c -r1.25 ast.py *** Lib/compiler/ast.py 4 Aug 2004 02:36:17 -0000 1.25 --- Lib/compiler/ast.py 12 Aug 2004 14:38:42 -0000 *************** *** 404,419 **** def __repr__(self): return "Continue()" class Decorators(Node): nodes["decorators"] = "Decorators" def __init__(self, nodes): self.nodes = nodes def getChildren(self): ! return tuple(flatten(self.nodes)) def getChildNodes(self): ! return flatten_nodes(self.nodes) def __repr__(self): return "Decorators(%s)" % (repr(self.nodes),) --- 404,438 ---- def __repr__(self): return "Continue()" + class DecoratedThing(Node): + nodes["decoratedthing"] = "DecoratedThing" + def __init__(self, decorators, subnode): + self.decorators = decorators + self.subnode = subnode + + def getChildren(self): + return self.decorators, self.subnode + + def getChildNodes(self): + return self.decorators, self.subnode + + def __repr__(self): + return "DecoratedThing(%s, %s)" % (repr(self.decorators), repr(self.subnode)) + class Decorators(Node): nodes["decorators"] = "Decorators" def __init__(self, nodes): self.nodes = nodes def getChildren(self): ! children = [] ! children.extend(flatten(self.nodes)) ! return tuple(children) def getChildNodes(self): ! nodelist = [] ! nodelist.extend(flatten_nodes(self.nodes)) ! return tuple(nodelist) def __repr__(self): return "Decorators(%s)" % (repr(self.nodes),) *************** *** 562,569 **** class Function(Node): nodes["function"] = "Function" ! def __init__(self, decorators, name, argnames, defaults, flags, doc, code): ! self.decorators = decorators self.name = name self.argnames = argnames self.defaults = defaults --- 581,587 ---- class Function(Node): nodes["function"] = "Function" ! def __init__(self, name, argnames, defaults, flags, doc, code): self.name = name self.argnames = argnames self.defaults = defaults *************** *** 575,587 **** self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 ! def getChildren(self): children = [] - if self.decorators: - children.append(flatten(self.decorators.nodes)) children.append(self.name) children.append(self.argnames) children.extend(flatten(self.defaults)) --- 593,603 ---- self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 ! def getChildren(self): children = [] children.append(self.name) children.append(self.argnames) children.extend(flatten(self.defaults)) *************** *** 592,605 **** def getChildNodes(self): nodelist = [] - if self.decorators: - nodelist.extend(flatten_nodes(self.decorators.nodes)) nodelist.extend(flatten_nodes(self.defaults)) nodelist.append(self.code) return tuple(nodelist) def __repr__(self): ! return "Function(%s, %s, %s, %s, %s, %s, %s)" % (repr(self.decorators), repr(self.name), repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.doc), repr(self.code)) class GenExpr(Node): nodes["genexpr"] = "GenExpr" --- 608,619 ---- def getChildNodes(self): nodelist = [] nodelist.extend(flatten_nodes(self.defaults)) nodelist.append(self.code) return tuple(nodelist) def __repr__(self): ! return "Function(%s, %s, %s, %s, %s, %s)" % (repr(self.name), repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.doc), repr(self.code)) class GenExpr(Node): nodes["genexpr"] = "GenExpr" *************** *** 607,613 **** self.code = code self.argnames = ['[outmost-iterable]'] self.varargs = self.kwargs = None ! def getChildren(self): --- 621,627 ---- self.code = code self.argnames = ['[outmost-iterable]'] self.varargs = self.kwargs = None ! def getChildren(self): *************** *** 785,791 **** self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 ! def getChildren(self): --- 799,805 ---- self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 ! def getChildren(self): Index: Lib/compiler/pycodegen.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/compiler/pycodegen.py,v retrieving revision 1.71 diff -c -r1.71 pycodegen.py *** Lib/compiler/pycodegen.py 7 Aug 2004 19:21:56 -0000 1.71 --- Lib/compiler/pycodegen.py 12 Aug 2004 14:38:44 -0000 *************** *** 366,378 **** self._visitFuncOrLambda(node, isLambda=1) def _visitFuncOrLambda(self, node, isLambda=0): - if not isLambda and node.decorators: - for decorator in reversed(node.decorators.nodes): - self.visit(decorator) - ndecorators = len(node.decorators.nodes) - else: - ndecorators = 0 - gen = self.FunctionGen(node, self.scopes, isLambda, self.class_name, self.get_module()) walk(node.code, gen) --- 366,371 ---- *************** *** 390,398 **** self.emit('LOAD_CONST', gen) self.emit('MAKE_FUNCTION', len(node.defaults)) - for i in range(ndecorators): - self.emit('CALL_FUNCTION', 1) - def visitClass(self, node): gen = self.ClassGen(node, self.scopes, self.get_module()) --- 383,388 ---- *************** *** 415,420 **** --- 405,418 ---- self.emit('BUILD_CLASS') self.storeName(node.name) + def visitDecoratedThing(self, node): + for decorator in reversed(node.decorators.nodes): + self.visit(decorator) + self.visit(node.subnode) + + for dummy in node.decorators.nodes: + self.emit('CALL_FUNCTION', 1) + # The rest are standard visitor methods # The next few implement control-flow statements Index: Lib/compiler/symbols.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/compiler/symbols.py,v retrieving revision 1.16 diff -c -r1.16 symbols.py *** Lib/compiler/symbols.py 2 Aug 2004 06:09:53 -0000 1.16 --- Lib/compiler/symbols.py 12 Aug 2004 14:38:44 -0000 *************** *** 224,231 **** visitExpression = visitModule def visitFunction(self, node, parent): - if node.decorators: - self.visit(node.decorators, parent) parent.add_def(node.name) for n in node.defaults: self.visit(n, parent) --- 224,229 ---- *************** *** 237,242 **** --- 235,244 ---- self.visit(node.code, scope) self.handle_free_vars(scope, parent) + def visitDecoratedThing(self, node, parent): + self.visit(node.decorators, parent) + self.visit(node.subnode, parent) + def visitGenExpr(self, node, parent): scope = GenExprScope(self.module, self.klass); if parent.nested or isinstance(parent, FunctionScope) \ Index: Lib/compiler/transformer.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/compiler/transformer.py,v retrieving revision 1.42 diff -c -r1.42 transformer.py *** Lib/compiler/transformer.py 4 Aug 2004 02:36:18 -0000 1.42 --- Lib/compiler/transformer.py 12 Aug 2004 14:38:46 -0000 *************** *** 155,160 **** --- 155,162 ---- return self.funcdef(node[1:]) if n == symbol.classdef: return self.classdef(node[1:]) + if n == symbol.decorated_thing: + return self.decorated_thing(node[1:]) raise error, ('unexpected node type', n) *************** *** 230,245 **** return Decorators(items) def funcdef(self, nodelist): ! # -6 -5 -4 -3 -2 -1 ! # funcdef: [decorators] 'def' NAME parameters ':' suite # parameters: '(' [varargslist] ')' ! ! if len(nodelist) == 6: ! assert nodelist[0][0] == symbol.decorators ! decorators = self.decorators(nodelist[0][1:]) ! else: ! assert len(nodelist) == 5 ! decorators = None lineno = nodelist[-4][2] name = nodelist[-4][1] --- 232,241 ---- return Decorators(items) def funcdef(self, nodelist): ! # -5 -4 -3 -2 -1 ! # funcdef: 'def' NAME parameters ':' suite # parameters: '(' [varargslist] ')' ! assert len(nodelist) == 5 lineno = nodelist[-4][2] name = nodelist[-4][1] *************** *** 259,265 **** assert isinstance(code, Stmt) assert isinstance(code.nodes[0], Discard) del code.nodes[0] ! n = Function(decorators, name, names, defaults, flags, doc, code) n.lineno = lineno return n --- 255,261 ---- assert isinstance(code, Stmt) assert isinstance(code.nodes[0], Discard) del code.nodes[0] ! n = Function(name, names, defaults, flags, doc, code) n.lineno = lineno return n *************** *** 300,305 **** --- 296,317 ---- n.lineno = nodelist[1][2] return n + def decorated_thing(self, nodelist): + class_or_func = nodelist[1][0] + if (class_or_func == symbol.classdef): + subnode = self.classdef(nodelist[1][1:]) + subtype = 'class' + elif (class_or_func == symbol.funcdef): + subnode = self.funcdef(nodelist[1][1:]) + subtype = 'function' + else: + raise ValueError("Trying to decorate non-class|func") + decorators = self.decorators(nodelist[0][1:]) + n = DecoratedThing(decorators, subnode) + n.subtype = subtype + n.lineno = nodelist[0][2] + return n + def stmt(self, nodelist): return self.com_stmt(nodelist[0]) *************** *** 1411,1416 **** --- 1423,1429 ---- _legal_node_types = [ symbol.funcdef, symbol.classdef, + symbol.decorated_thing, symbol.stmt, symbol.small_stmt, symbol.flow_stmt, Index: Lib/test/test_decorators.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_decorators.py,v retrieving revision 1.3 diff -c -r1.3 test_decorators.py *** Lib/test/test_decorators.py 4 Aug 2004 02:36:18 -0000 1.3 --- Lib/test/test_decorators.py 12 Aug 2004 14:39:00 -0000 *************** *** 193,198 **** --- 193,260 ---- self.assertEqual(C.foo(), 42) self.assertEqual(C().foo(), 42) + def test_lambda(self): + f_42 = lambda x: 42 + @f_42 + def foo(): + return 99 + self.assertEqual(foo, 42) + + def test_nested(self): + def outer(func): + def inner(): + return func()+1 + return inner + @outer + def nested(): + return 41 + self.assertEqual(nested(), 42) + + def test_single_class(self): + class Tom(object): pass + def substitute(withthis): + def swap(cls): + return withthis + return swap + @substitute(Tom) + class Dick(object): pass + self.assertEqual(isinstance(Dick(), Tom), 1) + + def test_staticmethod_class(self): + # test a foolish use of staticmethod + @staticmethod + class Harry(object): pass + self.assertRaises(TypeError, Harry, 1) + + def test_markup(self): + def set_attrib(name, val): + def markup(cls): + setattr(cls, name, val) + return cls + return markup + @set_attrib('size', 'super') + class Tom(object): + size = 'small' + self.assertEqual(Tom().size, 'super') + + def test_double_class(self): + def first(cls): + return 'first' + def second(cls): + return 'second' + @first + @second + class Tom(object): pass + self.assertEqual(Tom, 'second') + + def test_order(self): + class C(object): + @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) Index: Modules/parsermodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/parsermodule.c,v retrieving revision 2.83 diff -c -r2.83 parsermodule.c *** Modules/parsermodule.c 2 Aug 2004 06:09:55 -0000 2.83 --- Modules/parsermodule.c 12 Aug 2004 14:39:00 -0000 *************** *** 1466,1472 **** /* compound_stmt: ! * if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef */ static int validate_compound_stmt(node *tree) --- 1466,1472 ---- /* compound_stmt: ! * if_stmt | while_stmt | for_stmt | try_stmt | decorated_thing | funcdef | classdef */ static int validate_compound_stmt(node *tree) *************** *** 1485,1491 **** || (ntype == for_stmt) || (ntype == try_stmt) || (ntype == funcdef) ! || (ntype == classdef)) res = validate_node(tree); else { res = 0; --- 1485,1492 ---- || (ntype == for_stmt) || (ntype == try_stmt) || (ntype == funcdef) ! || (ntype == classdef) ! || (ntype == decorated_thing)) res = validate_node(tree); else { res = 0; *************** *** 2410,2433 **** /* funcdef: * ! * -6 -5 -4 -3 -2 -1 ! * [decorators] 'def' NAME parameters ':' suite */ static int validate_funcdef(node *tree) { 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; } --- 2411,2431 ---- /* funcdef: * ! * -5 -4 -3 -2 -1 ! * 'def' NAME parameters ':' suite */ static int validate_funcdef(node *tree) { int nch = NCH(tree); int ok = (validate_ntype(tree, funcdef) ! && (nch == 5) && 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))); return ok; } *************** *** 2450,2455 **** --- 2448,2476 ---- return (res); } + /* validate_decorated_thing() + * + * decorated_thing: + * [decorators] (funcdef|classdef) + */ + static int + validate_decorated_thing(node *tree) + { + int nch = NCH(tree); + int ok = ((nch == 2) + && validate_decorators(CHILD(tree, 0))); + if (ok) { + switch TYPE(CHILD(tree, 1)) { + case funcdef: + ok = validate_funcdef(CHILD(tree, 1)); + break; + case classdef: + ok = validate_class(CHILD(tree, 1)); + break; + } + } + return ok; + } /* arglist: * *************** *** 2756,2761 **** --- 2777,2785 ---- case classdef: res = validate_class(tree); break; + case decorated_thing: + res = validate_decorated_thing(tree); + break; /* * "Trivial" parse tree nodes. * (Why did I call these trivial?) Index: Python/compile.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/compile.c,v retrieving revision 2.314 diff -c -r2.314 compile.c *** Python/compile.c 6 Aug 2004 19:46:34 -0000 2.314 --- Python/compile.c 12 Aug 2004 14:39:04 -0000 *************** *** 4082,4104 **** return ndecorators; } ! 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); --- 4082,4099 ---- return ndecorators; } ! static char * com_funcdef(struct compiling *c, node *n) { PyObject *co; ! int ndefs; REQ(n, funcdef); ! /* -5 -4 -3 -2 -1 ! funcdef: 'def' NAME parameters ':' suite */ ndefs = com_argdefs(c, n); if (ndefs < 0) ! return NULL; symtable_enter_scope(c->c_symtable, STR(RCHILD(n, -4)), TYPE(n), n->n_lineno); co = (PyObject *)icompile(n, c); *************** *** 4115,4129 **** 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); } } static void --- 4110,4121 ---- else com_addoparg(c, MAKE_FUNCTION, ndefs); com_pop(c, ndefs); com_addop_varname(c, VAR_STORE, STR(RCHILD(n, -4))); com_pop(c, 1); Py_DECREF(co); + return STR(RCHILD(n, -4)); } + return NULL; } static void *************** *** 4139,4145 **** com_pop(c, i-1); } ! static void com_classdef(struct compiling *c, node *n) { int i; --- 4131,4137 ---- com_pop(c, i-1); } ! static char * com_classdef(struct compiling *c, node *n) { int i; *************** *** 4151,4157 **** /* classdef: class NAME ['(' testlist ')'] ':' suite */ if ((v = PyString_InternFromString(STR(CHILD(n, 1)))) == NULL) { c->c_errors++; ! return; } /* Push the class name on the stack */ i = com_addconst(c, v); --- 4143,4149 ---- /* classdef: class NAME ['(' testlist ')'] ':' suite */ if ((v = PyString_InternFromString(STR(CHILD(n, 1)))) == NULL) { c->c_errors++; ! return NULL; } /* Push the class name on the stack */ i = com_addconst(c, v); *************** *** 4187,4192 **** --- 4179,4215 ---- com_addop_varname(c, VAR_STORE, STR(CHILD(n, 1))); com_pop(c, 1); Py_DECREF(co); + return STR(CHILD(n, 1)); + } + return NULL; + } + + static void + com_decorated_thing(struct compiling *c, node *n) + { + int ndecorators; + char *store_name; + REQ(n, decorated_thing); + ndecorators = com_decorators(c, CHILD(n, 0)); + switch TYPE(CHILD(n, 1)) { + case funcdef: + store_name = com_funcdef(c, CHILD(n, 1)); + break; + case classdef: + store_name = com_classdef(c, CHILD(n, 1)); + break; + default: + store_name = NULL; + } + if (store_name != NULL) { + com_addop_varname(c, VAR_LOAD, store_name); + while (ndecorators > 0) { + com_addoparg(c, CALL_FUNCTION, 1); + com_pop(c, 1); + ndecorators--; + } + com_addop_varname(c, VAR_STORE, store_name); + com_pop(c, 1); } } *************** *** 4196,4205 **** loop: if (c->c_errors) return; switch (TYPE(n)) { /* Definition nodes */ ! case funcdef: com_funcdef(c, n); break; --- 4219,4231 ---- loop: if (c->c_errors) return; + switch (TYPE(n)) { /* Definition nodes */ ! case decorated_thing: ! com_decorated_thing(c, n); ! break; case funcdef: com_funcdef(c, n); break; Index: Python/graminit.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/graminit.c,v retrieving revision 2.36 diff -c -r2.36 graminit.c *** Python/graminit.c 2 Aug 2004 06:10:10 -0000 2.36 --- Python/graminit.c 12 Aug 2004 14:39:05 -0000 *************** *** 49,61 **** static arc arcs_3_1[1] = { {12, 2}, }; ! static arc arcs_3_2[2] = { {13, 3}, - {0, 2}, }; ! static arc arcs_3_3[2] = { {14, 4}, - {15, 5}, }; static arc arcs_3_4[1] = { {15, 5}, --- 49,59 ---- 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}, *************** *** 66,262 **** static state states_3[6] = { {1, arcs_3_0}, {1, arcs_3_1}, ! {2, arcs_3_2}, ! {2, arcs_3_3}, {1, arcs_3_4}, {1, arcs_3_5}, }; static arc arcs_4_0[1] = { ! {10, 1}, }; ! static arc arcs_4_1[2] = { ! {2, 2}, ! {10, 1}, }; static arc arcs_4_2[2] = { ! {10, 1}, {0, 2}, }; ! static state states_4[3] = { ! {1, arcs_4_0}, ! {2, arcs_4_1}, ! {2, arcs_4_2}, ! }; ! static arc arcs_5_0[2] = { ! {16, 1}, ! {18, 2}, }; ! static arc arcs_5_1[1] = { ! {18, 2}, }; ! static arc arcs_5_2[1] = { ! {19, 3}, }; ! static arc arcs_5_3[1] = { ! {20, 4}, }; ! static arc arcs_5_4[1] = { ! {21, 5}, }; ! static arc arcs_5_5[1] = { ! {22, 6}, }; ! static arc arcs_5_6[1] = { ! {0, 6}, }; ! static state states_5[7] = { ! {2, arcs_5_0}, ! {1, arcs_5_1}, ! {1, arcs_5_2}, ! {1, arcs_5_3}, ! {1, arcs_5_4}, ! {1, arcs_5_5}, ! {1, arcs_5_6}, }; static arc arcs_6_0[1] = { ! {13, 1}, }; static arc arcs_6_1[2] = { ! {23, 2}, ! {15, 3}, }; static arc arcs_6_2[1] = { ! {15, 3}, ! }; ! static arc arcs_6_3[1] = { ! {0, 3}, }; ! static state states_6[4] = { {1, arcs_6_0}, {2, arcs_6_1}, {1, arcs_6_2}, - {1, arcs_6_3}, }; ! static arc arcs_7_0[3] = { ! {24, 1}, ! {28, 2}, ! {29, 3}, }; ! static arc arcs_7_1[3] = { ! {25, 4}, ! {27, 5}, ! {0, 1}, }; static arc arcs_7_2[1] = { ! {19, 6}, }; static arc arcs_7_3[1] = { ! {19, 7}, }; ! static arc arcs_7_4[1] = { ! {26, 8}, }; ! static arc arcs_7_5[4] = { ! {24, 1}, ! {28, 2}, ! {29, 3}, {0, 5}, }; ! static arc arcs_7_6[2] = { ! {27, 9}, {0, 6}, }; ! static arc arcs_7_7[1] = { {0, 7}, }; ! static arc arcs_7_8[2] = { ! {27, 5}, {0, 8}, }; ! static arc arcs_7_9[1] = { ! {29, 3}, }; ! static state states_7[10] = { ! {3, arcs_7_0}, ! {3, arcs_7_1}, ! {1, arcs_7_2}, ! {1, arcs_7_3}, ! {1, arcs_7_4}, ! {4, arcs_7_5}, ! {2, arcs_7_6}, ! {1, arcs_7_7}, ! {2, arcs_7_8}, ! {1, arcs_7_9}, }; ! static arc arcs_8_0[2] = { ! {19, 1}, ! {13, 2}, }; ! static arc arcs_8_1[1] = { {0, 1}, }; ! static arc arcs_8_2[1] = { ! {30, 3}, }; ! static arc arcs_8_3[1] = { ! {15, 1}, }; ! static state states_8[4] = { ! {2, arcs_8_0}, ! {1, arcs_8_1}, ! {1, arcs_8_2}, ! {1, arcs_8_3}, }; ! static arc arcs_9_0[1] = { ! {24, 1}, }; ! static arc arcs_9_1[2] = { ! {27, 2}, {0, 1}, }; ! static arc arcs_9_2[2] = { ! {24, 1}, {0, 2}, }; ! static state states_9[3] = { ! {1, arcs_9_0}, ! {2, arcs_9_1}, ! {2, arcs_9_2}, }; ! static arc arcs_10_0[2] = { {3, 1}, {4, 1}, }; ! static arc arcs_10_1[1] = { {0, 1}, }; ! static state states_10[2] = { ! {2, arcs_10_0}, ! {1, arcs_10_1}, }; ! static arc arcs_11_0[1] = { ! {31, 1}, }; ! static arc arcs_11_1[2] = { ! {32, 2}, {2, 3}, }; ! static arc arcs_11_2[2] = { ! {31, 1}, {2, 3}, }; ! static arc arcs_11_3[1] = { {0, 3}, }; ! static state states_11[4] = { ! {1, arcs_11_0}, ! {2, arcs_11_1}, ! {2, arcs_11_2}, ! {1, arcs_11_3}, }; ! static arc arcs_12_0[9] = { ! {33, 1}, ! {34, 1}, {35, 1}, {36, 1}, {37, 1}, --- 64,270 ---- 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] = { ! {17, 1}, }; ! static arc arcs_4_1[1] = { ! {18, 2}, }; static arc arcs_4_2[2] = { ! {19, 3}, {0, 2}, }; ! static arc arcs_4_3[2] = { ! {20, 4}, ! {21, 5}, }; ! static arc arcs_4_4[1] = { ! {21, 5}, }; ! static arc arcs_4_5[1] = { ! {0, 5}, }; ! static state states_4[6] = { ! {1, arcs_4_0}, ! {1, arcs_4_1}, ! {2, arcs_4_2}, ! {2, arcs_4_3}, ! {1, arcs_4_4}, ! {1, arcs_4_5}, }; ! static arc arcs_5_0[1] = { ! {16, 1}, }; ! static arc arcs_5_1[2] = { ! {2, 2}, ! {16, 1}, }; ! static arc arcs_5_2[2] = { ! {16, 1}, ! {0, 2}, }; ! static state states_5[3] = { ! {1, arcs_5_0}, ! {2, arcs_5_1}, ! {2, arcs_5_2}, }; static arc arcs_6_0[1] = { ! {22, 1}, }; static arc arcs_6_1[2] = { ! {10, 2}, ! {24, 2}, }; static arc arcs_6_2[1] = { ! {0, 2}, }; ! static state states_6[3] = { {1, arcs_6_0}, {2, arcs_6_1}, {1, arcs_6_2}, }; ! static arc arcs_7_0[1] = { ! {19, 1}, }; ! static arc arcs_7_1[2] = { ! {25, 2}, ! {21, 3}, }; static arc arcs_7_2[1] = { ! {21, 3}, }; static arc arcs_7_3[1] = { ! {0, 3}, }; ! static state states_7[4] = { ! {1, arcs_7_0}, ! {2, arcs_7_1}, ! {1, arcs_7_2}, ! {1, arcs_7_3}, }; ! static arc arcs_8_0[3] = { ! {26, 1}, ! {30, 2}, ! {31, 3}, ! }; ! static arc arcs_8_1[3] = { ! {27, 4}, ! {29, 5}, ! {0, 1}, ! }; ! static arc arcs_8_2[1] = { ! {12, 6}, ! }; ! static arc arcs_8_3[1] = { ! {12, 7}, ! }; ! static arc arcs_8_4[1] = { ! {28, 8}, ! }; ! static arc arcs_8_5[4] = { ! {26, 1}, ! {30, 2}, ! {31, 3}, {0, 5}, }; ! static arc arcs_8_6[2] = { ! {29, 9}, {0, 6}, }; ! static arc arcs_8_7[1] = { {0, 7}, }; ! static arc arcs_8_8[2] = { ! {29, 5}, {0, 8}, }; ! static arc arcs_8_9[1] = { ! {31, 3}, }; ! static state states_8[10] = { ! {3, arcs_8_0}, ! {3, arcs_8_1}, ! {1, arcs_8_2}, ! {1, arcs_8_3}, ! {1, arcs_8_4}, ! {4, arcs_8_5}, ! {2, arcs_8_6}, ! {1, arcs_8_7}, ! {2, arcs_8_8}, ! {1, arcs_8_9}, }; ! static arc arcs_9_0[2] = { ! {12, 1}, ! {19, 2}, }; ! static arc arcs_9_1[1] = { {0, 1}, }; ! static arc arcs_9_2[1] = { ! {32, 3}, }; ! static arc arcs_9_3[1] = { ! {21, 1}, }; ! static state states_9[4] = { ! {2, arcs_9_0}, ! {1, arcs_9_1}, ! {1, arcs_9_2}, ! {1, arcs_9_3}, }; ! static arc arcs_10_0[1] = { ! {26, 1}, }; ! static arc arcs_10_1[2] = { ! {29, 2}, {0, 1}, }; ! static arc arcs_10_2[2] = { ! {26, 1}, {0, 2}, }; ! static state states_10[3] = { ! {1, arcs_10_0}, ! {2, arcs_10_1}, ! {2, arcs_10_2}, }; ! static arc arcs_11_0[2] = { {3, 1}, {4, 1}, }; ! static arc arcs_11_1[1] = { {0, 1}, }; ! static state states_11[2] = { ! {2, arcs_11_0}, ! {1, arcs_11_1}, }; ! static arc arcs_12_0[1] = { ! {33, 1}, }; ! static arc arcs_12_1[2] = { ! {34, 2}, {2, 3}, }; ! static arc arcs_12_2[2] = { ! {33, 1}, {2, 3}, }; ! static arc arcs_12_3[1] = { {0, 3}, }; ! static state states_12[4] = { ! {1, arcs_12_0}, ! {2, arcs_12_1}, ! {2, arcs_12_2}, ! {1, arcs_12_3}, }; ! static arc arcs_13_0[9] = { {35, 1}, {36, 1}, {37, 1}, *************** *** 264,309 **** {39, 1}, {40, 1}, {41, 1}, }; ! static arc arcs_12_1[1] = { {0, 1}, }; ! static state states_12[2] = { ! {9, arcs_12_0}, ! {1, arcs_12_1}, }; ! static arc arcs_13_0[1] = { {9, 1}, }; ! static arc arcs_13_1[3] = { ! {42, 2}, ! {25, 3}, {0, 1}, }; ! static arc arcs_13_2[1] = { {9, 4}, }; ! static arc arcs_13_3[1] = { {9, 5}, }; ! static arc arcs_13_4[1] = { {0, 4}, }; ! static arc arcs_13_5[2] = { ! {25, 3}, {0, 5}, }; ! static state states_13[6] = { ! {1, arcs_13_0}, ! {3, arcs_13_1}, ! {1, arcs_13_2}, ! {1, arcs_13_3}, ! {1, arcs_13_4}, ! {2, arcs_13_5}, }; ! static arc arcs_14_0[12] = { ! {43, 1}, ! {44, 1}, {45, 1}, {46, 1}, {47, 1}, --- 272,317 ---- {39, 1}, {40, 1}, {41, 1}, + {42, 1}, + {43, 1}, }; ! static arc arcs_13_1[1] = { {0, 1}, }; ! static state states_13[2] = { ! {9, arcs_13_0}, ! {1, arcs_13_1}, }; ! static arc arcs_14_0[1] = { {9, 1}, }; ! static arc arcs_14_1[3] = { ! {44, 2}, ! {27, 3}, {0, 1}, }; ! static arc arcs_14_2[1] = { {9, 4}, }; ! static arc arcs_14_3[1] = { {9, 5}, }; ! static arc arcs_14_4[1] = { {0, 4}, }; ! static arc arcs_14_5[2] = { ! {27, 3}, {0, 5}, }; ! static state states_14[6] = { ! {1, arcs_14_0}, ! {3, arcs_14_1}, ! {1, arcs_14_2}, ! {1, arcs_14_3}, ! {1, arcs_14_4}, ! {2, arcs_14_5}, }; ! static arc arcs_15_0[12] = { {45, 1}, {46, 1}, {47, 1}, *************** *** 314,422 **** {52, 1}, {53, 1}, {54, 1}, }; ! static arc arcs_14_1[1] = { {0, 1}, }; ! static state states_14[2] = { ! {12, arcs_14_0}, ! {1, arcs_14_1}, }; ! static arc arcs_15_0[1] = { ! {55, 1}, }; ! static arc arcs_15_1[3] = { ! {26, 2}, ! {56, 3}, {0, 1}, }; ! static arc arcs_15_2[2] = { ! {27, 4}, {0, 2}, }; ! static arc arcs_15_3[1] = { ! {26, 5}, }; ! static arc arcs_15_4[2] = { ! {26, 2}, {0, 4}, }; ! static arc arcs_15_5[2] = { ! {27, 6}, {0, 5}, }; ! static arc arcs_15_6[1] = { ! {26, 7}, }; ! static arc arcs_15_7[2] = { ! {27, 8}, {0, 7}, }; ! static arc arcs_15_8[2] = { ! {26, 7}, {0, 8}, }; ! static state states_15[9] = { ! {1, arcs_15_0}, ! {3, arcs_15_1}, ! {2, arcs_15_2}, ! {1, arcs_15_3}, ! {2, arcs_15_4}, ! {2, arcs_15_5}, ! {1, arcs_15_6}, ! {2, arcs_15_7}, ! {2, arcs_15_8}, ! }; ! static arc arcs_16_0[1] = { ! {57, 1}, ! }; ! static arc arcs_16_1[1] = { ! {58, 2}, ! }; ! static arc arcs_16_2[1] = { ! {0, 2}, ! }; ! static state states_16[3] = { {1, arcs_16_0}, ! {1, arcs_16_1}, ! {1, arcs_16_2}, }; static arc arcs_17_0[1] = { {59, 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[5] = { ! {60, 1}, {61, 1}, - {62, 1}, - {63, 1}, - {64, 1}, }; static arc arcs_18_1[1] = { {0, 1}, }; static state states_18[2] = { ! {5, arcs_18_0}, {1, arcs_18_1}, }; ! static arc arcs_19_0[1] = { {65, 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] = { ! {66, 1}, }; static arc arcs_20_1[1] = { {0, 1}, --- 322,422 ---- {52, 1}, {53, 1}, {54, 1}, + {55, 1}, + {56, 1}, }; ! static arc arcs_15_1[1] = { {0, 1}, }; ! static state states_15[2] = { ! {12, arcs_15_0}, ! {1, arcs_15_1}, }; ! static arc arcs_16_0[1] = { ! {57, 1}, }; ! static arc arcs_16_1[3] = { ! {28, 2}, ! {58, 3}, {0, 1}, }; ! static arc arcs_16_2[2] = { ! {29, 4}, {0, 2}, }; ! static arc arcs_16_3[1] = { ! {28, 5}, }; ! static arc arcs_16_4[2] = { ! {28, 2}, {0, 4}, }; ! static arc arcs_16_5[2] = { ! {29, 6}, {0, 5}, }; ! static arc arcs_16_6[1] = { ! {28, 7}, }; ! static arc arcs_16_7[2] = { ! {29, 8}, {0, 7}, }; ! static arc arcs_16_8[2] = { ! {28, 7}, {0, 8}, }; ! static state states_16[9] = { {1, arcs_16_0}, ! {3, arcs_16_1}, ! {2, arcs_16_2}, ! {1, arcs_16_3}, ! {2, arcs_16_4}, ! {2, arcs_16_5}, ! {1, arcs_16_6}, ! {2, arcs_16_7}, ! {2, arcs_16_8}, }; static arc arcs_17_0[1] = { {59, 1}, }; static arc arcs_17_1[1] = { ! {60, 2}, ! }; ! static arc arcs_17_2[1] = { ! {0, 2}, }; ! static state states_17[3] = { {1, arcs_17_0}, {1, arcs_17_1}, + {1, arcs_17_2}, }; ! static arc arcs_18_0[1] = { {61, 1}, }; static arc arcs_18_1[1] = { {0, 1}, }; static state states_18[2] = { ! {1, arcs_18_0}, {1, arcs_18_1}, }; ! static arc arcs_19_0[5] = { ! {62, 1}, ! {63, 1}, ! {64, 1}, {65, 1}, + {66, 1}, }; static arc arcs_19_1[1] = { {0, 1}, }; static state states_19[2] = { ! {5, arcs_19_0}, {1, arcs_19_1}, }; static arc arcs_20_0[1] = { ! {67, 1}, }; static arc arcs_20_1[1] = { {0, 1}, *************** *** 426,562 **** {1, arcs_20_1}, }; static arc arcs_21_0[1] = { ! {67, 1}, }; ! static arc arcs_21_1[2] = { ! {9, 2}, {0, 1}, }; ! static arc arcs_21_2[1] = { ! {0, 2}, ! }; ! static state states_21[3] = { {1, arcs_21_0}, ! {2, arcs_21_1}, ! {1, arcs_21_2}, }; static arc arcs_22_0[1] = { ! {68, 1}, }; ! static arc arcs_22_1[1] = { {9, 2}, }; static arc arcs_22_2[1] = { {0, 2}, }; static state states_22[3] = { {1, arcs_22_0}, ! {1, arcs_22_1}, {1, arcs_22_2}, }; static arc arcs_23_0[1] = { ! {69, 1}, }; ! static arc arcs_23_1[2] = { ! {26, 2}, ! {0, 1}, }; ! static arc arcs_23_2[2] = { ! {27, 3}, {0, 2}, }; ! static arc arcs_23_3[1] = { ! {26, 4}, ! }; ! static arc arcs_23_4[2] = { ! {27, 5}, ! {0, 4}, ! }; ! static arc arcs_23_5[1] = { ! {26, 6}, ! }; ! static arc arcs_23_6[1] = { ! {0, 6}, ! }; ! static state states_23[7] = { {1, arcs_23_0}, ! {2, arcs_23_1}, ! {2, arcs_23_2}, ! {1, arcs_23_3}, ! {2, arcs_23_4}, ! {1, arcs_23_5}, ! {1, arcs_23_6}, }; ! static arc arcs_24_0[2] = { ! {70, 1}, ! {72, 2}, }; ! static arc arcs_24_1[1] = { ! {71, 3}, }; ! static arc arcs_24_2[1] = { ! {12, 4}, }; ! static arc arcs_24_3[2] = { ! {27, 1}, ! {0, 3}, }; ! static arc arcs_24_4[1] = { ! {70, 5}, }; ! static arc arcs_24_5[2] = { {28, 6}, - {73, 7}, }; static arc arcs_24_6[1] = { {0, 6}, }; ! static arc arcs_24_7[2] = { ! {27, 8}, ! {0, 7}, ! }; ! static arc arcs_24_8[1] = { ! {73, 7}, ! }; ! static state states_24[9] = { ! {2, arcs_24_0}, ! {1, arcs_24_1}, ! {1, arcs_24_2}, ! {2, arcs_24_3}, ! {1, arcs_24_4}, ! {2, arcs_24_5}, {1, arcs_24_6}, - {2, arcs_24_7}, - {1, arcs_24_8}, }; ! static arc arcs_25_0[1] = { ! {19, 1}, }; ! static arc arcs_25_1[2] = { ! {19, 2}, ! {0, 1}, }; static arc arcs_25_2[1] = { ! {19, 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] = { {12, 1}, }; static arc arcs_26_1[2] = { ! {19, 2}, {0, 1}, }; static arc arcs_26_2[1] = { ! {19, 3}, }; static arc arcs_26_3[1] = { {0, 3}, --- 426,553 ---- {1, arcs_20_1}, }; static arc arcs_21_0[1] = { ! {68, 1}, }; ! static arc arcs_21_1[1] = { {0, 1}, }; ! static state states_21[2] = { {1, arcs_21_0}, ! {1, arcs_21_1}, }; static arc arcs_22_0[1] = { ! {69, 1}, }; ! static arc arcs_22_1[2] = { {9, 2}, + {0, 1}, }; static arc arcs_22_2[1] = { {0, 2}, }; static state states_22[3] = { {1, arcs_22_0}, ! {2, arcs_22_1}, {1, arcs_22_2}, }; static arc arcs_23_0[1] = { ! {70, 1}, }; ! static arc arcs_23_1[1] = { ! {9, 2}, }; ! static arc arcs_23_2[1] = { {0, 2}, }; ! static state states_23[3] = { {1, arcs_23_0}, ! {1, arcs_23_1}, ! {1, arcs_23_2}, }; ! static arc arcs_24_0[1] = { ! {71, 1}, }; ! static arc arcs_24_1[2] = { ! {28, 2}, ! {0, 1}, }; ! static arc arcs_24_2[2] = { ! {29, 3}, ! {0, 2}, }; ! static arc arcs_24_3[1] = { ! {28, 4}, }; ! static arc arcs_24_4[2] = { ! {29, 5}, ! {0, 4}, }; ! static arc arcs_24_5[1] = { {28, 6}, }; static arc arcs_24_6[1] = { {0, 6}, }; ! static state states_24[7] = { ! {1, arcs_24_0}, ! {2, arcs_24_1}, ! {2, arcs_24_2}, ! {1, arcs_24_3}, ! {2, arcs_24_4}, ! {1, arcs_24_5}, {1, arcs_24_6}, }; ! static arc arcs_25_0[2] = { ! {72, 1}, ! {74, 2}, }; ! static arc arcs_25_1[1] = { ! {73, 3}, }; static arc arcs_25_2[1] = { ! {18, 4}, }; ! static arc arcs_25_3[2] = { ! {29, 1}, {0, 3}, }; ! static arc arcs_25_4[1] = { ! {72, 5}, ! }; ! static arc arcs_25_5[2] = { ! {30, 6}, ! {75, 7}, ! }; ! static arc arcs_25_6[1] = { ! {0, 6}, ! }; ! static arc arcs_25_7[2] = { ! {29, 8}, ! {0, 7}, ! }; ! static arc arcs_25_8[1] = { ! {75, 7}, ! }; ! static state states_25[9] = { ! {2, arcs_25_0}, ! {1, arcs_25_1}, {1, arcs_25_2}, ! {2, arcs_25_3}, ! {1, arcs_25_4}, ! {2, arcs_25_5}, ! {1, arcs_25_6}, ! {2, arcs_25_7}, ! {1, arcs_25_8}, }; static arc arcs_26_0[1] = { {12, 1}, }; static arc arcs_26_1[2] = { ! {12, 2}, {0, 1}, }; static arc arcs_26_2[1] = { ! {12, 3}, }; static arc arcs_26_3[1] = { {0, 3}, *************** *** 568,725 **** {1, arcs_26_3}, }; static arc arcs_27_0[1] = { ! {19, 1}, }; static arc arcs_27_1[2] = { ! {74, 0}, {0, 1}, }; ! static state states_27[2] = { {1, arcs_27_0}, {2, arcs_27_1}, }; static arc arcs_28_0[1] = { ! {75, 1}, ! }; ! static arc arcs_28_1[1] = { ! {19, 2}, }; ! static arc arcs_28_2[2] = { ! {27, 1}, ! {0, 2}, }; ! static state states_28[3] = { {1, arcs_28_0}, ! {1, arcs_28_1}, ! {2, arcs_28_2}, }; static arc arcs_29_0[1] = { ! {76, 1}, }; static arc arcs_29_1[1] = { ! {77, 2}, }; static arc arcs_29_2[2] = { ! {78, 3}, {0, 2}, }; ! static arc arcs_29_3[1] = { ! {26, 4}, ! }; ! static arc arcs_29_4[2] = { ! {27, 5}, ! {0, 4}, ! }; ! static arc arcs_29_5[1] = { ! {26, 6}, ! }; ! static arc arcs_29_6[1] = { ! {0, 6}, ! }; ! static state states_29[7] = { {1, arcs_29_0}, {1, arcs_29_1}, {2, arcs_29_2}, - {1, arcs_29_3}, - {2, arcs_29_4}, - {1, arcs_29_5}, - {1, arcs_29_6}, }; static arc arcs_30_0[1] = { ! {79, 1}, }; static arc arcs_30_1[1] = { ! {26, 2}, }; static arc arcs_30_2[2] = { ! {27, 3}, {0, 2}, }; static arc arcs_30_3[1] = { ! {26, 4}, }; ! static arc arcs_30_4[1] = { {0, 4}, }; ! static state states_30[5] = { {1, arcs_30_0}, {1, arcs_30_1}, {2, arcs_30_2}, {1, arcs_30_3}, ! {1, arcs_30_4}, }; ! static arc arcs_31_0[6] = { ! {80, 1}, {81, 1}, - {82, 1}, - {83, 1}, - {17, 1}, - {84, 1}, }; static arc arcs_31_1[1] = { ! {0, 1}, ! }; ! static state states_31[2] = { ! {6, arcs_31_0}, ! {1, arcs_31_1}, ! }; ! static arc arcs_32_0[1] = { ! {85, 1}, ! }; ! static arc arcs_32_1[1] = { ! {26, 2}, }; ! static arc arcs_32_2[1] = { ! {21, 3}, }; ! static arc arcs_32_3[1] = { ! {22, 4}, }; ! static arc arcs_32_4[3] = { ! {86, 1}, ! {87, 5}, {0, 4}, }; ! static arc arcs_32_5[1] = { ! {21, 6}, }; ! static arc arcs_32_6[1] = { ! {22, 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}, - {3, 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] = { ! {26, 2}, }; static arc arcs_33_2[1] = { ! {21, 3}, }; static arc arcs_33_3[1] = { ! {22, 4}, }; ! static arc arcs_33_4[2] = { ! {87, 5}, {0, 4}, }; static arc arcs_33_5[1] = { ! {21, 6}, }; static arc arcs_33_6[1] = { ! {22, 7}, }; static arc arcs_33_7[1] = { {0, 7}, --- 559,701 ---- {1, arcs_26_3}, }; static arc arcs_27_0[1] = { ! {18, 1}, }; static arc arcs_27_1[2] = { ! {12, 2}, {0, 1}, }; ! static arc arcs_27_2[1] = { ! {12, 3}, ! }; ! static arc arcs_27_3[1] = { ! {0, 3}, ! }; ! static state states_27[4] = { {1, arcs_27_0}, {2, arcs_27_1}, + {1, arcs_27_2}, + {1, arcs_27_3}, }; static arc arcs_28_0[1] = { ! {12, 1}, }; ! static arc arcs_28_1[2] = { ! {76, 0}, ! {0, 1}, }; ! static state states_28[2] = { {1, arcs_28_0}, ! {2, arcs_28_1}, }; static arc arcs_29_0[1] = { ! {77, 1}, }; static arc arcs_29_1[1] = { ! {12, 2}, }; static arc arcs_29_2[2] = { ! {29, 1}, {0, 2}, }; ! static state states_29[3] = { {1, arcs_29_0}, {1, arcs_29_1}, {2, arcs_29_2}, }; static arc arcs_30_0[1] = { ! {78, 1}, }; static arc arcs_30_1[1] = { ! {79, 2}, }; static arc arcs_30_2[2] = { ! {80, 3}, {0, 2}, }; static arc arcs_30_3[1] = { ! {28, 4}, }; ! static arc arcs_30_4[2] = { ! {29, 5}, {0, 4}, }; ! static arc arcs_30_5[1] = { ! {28, 6}, ! }; ! static arc arcs_30_6[1] = { ! {0, 6}, ! }; ! static state states_30[7] = { {1, arcs_30_0}, {1, arcs_30_1}, {2, arcs_30_2}, {1, arcs_30_3}, ! {2, arcs_30_4}, ! {1, arcs_30_5}, ! {1, arcs_30_6}, }; ! static arc arcs_31_0[1] = { {81, 1}, }; static arc arcs_31_1[1] = { ! {28, 2}, }; ! static arc arcs_31_2[2] = { ! {29, 3}, ! {0, 2}, }; ! static arc arcs_31_3[1] = { ! {28, 4}, }; ! static arc arcs_31_4[1] = { {0, 4}, }; ! static state states_31[5] = { ! {1, arcs_31_0}, ! {1, arcs_31_1}, ! {2, arcs_31_2}, ! {1, arcs_31_3}, ! {1, arcs_31_4}, }; ! static arc arcs_32_0[7] = { ! {82, 1}, ! {83, 1}, ! {84, 1}, ! {85, 1}, ! {23, 1}, ! {10, 1}, ! {24, 1}, }; ! static arc arcs_32_1[1] = { ! {0, 1}, }; ! static state states_32[2] = { ! {7, arcs_32_0}, {1, arcs_32_1}, }; static arc arcs_33_0[1] = { ! {86, 1}, }; static arc arcs_33_1[1] = { ! {28, 2}, }; static arc arcs_33_2[1] = { ! {14, 3}, }; static arc arcs_33_3[1] = { ! {15, 4}, }; ! static arc arcs_33_4[3] = { ! {87, 1}, ! {88, 5}, {0, 4}, }; static arc arcs_33_5[1] = { ! {14, 6}, }; static arc arcs_33_6[1] = { ! {15, 7}, }; static arc arcs_33_7[1] = { {0, 7}, *************** *** 729,735 **** {1, arcs_33_1}, {1, arcs_33_2}, {1, arcs_33_3}, ! {2, arcs_33_4}, {1, arcs_33_5}, {1, arcs_33_6}, {1, arcs_33_7}, --- 705,711 ---- {1, arcs_33_1}, {1, arcs_33_2}, {1, arcs_33_3}, ! {3, arcs_33_4}, {1, arcs_33_5}, {1, arcs_33_6}, {1, arcs_33_7}, *************** *** 738,811 **** {89, 1}, }; static arc arcs_34_1[1] = { ! {58, 2}, }; static arc arcs_34_2[1] = { ! {78, 3}, }; static arc arcs_34_3[1] = { ! {9, 4}, }; ! static arc arcs_34_4[1] = { ! {21, 5}, }; static arc arcs_34_5[1] = { ! {22, 6}, }; ! static arc arcs_34_6[2] = { ! {87, 7}, ! {0, 6}, }; static arc arcs_34_7[1] = { ! {21, 8}, ! }; ! static arc arcs_34_8[1] = { ! {22, 9}, ! }; ! 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}, {1, arcs_34_3}, ! {1, arcs_34_4}, {1, arcs_34_5}, ! {2, arcs_34_6}, {1, arcs_34_7}, - {1, arcs_34_8}, - {1, arcs_34_9}, }; static arc arcs_35_0[1] = { {90, 1}, }; static arc arcs_35_1[1] = { ! {21, 2}, }; static arc arcs_35_2[1] = { ! {22, 3}, }; ! static arc arcs_35_3[2] = { ! {91, 4}, ! {92, 5}, }; static arc arcs_35_4[1] = { ! {21, 6}, }; static arc arcs_35_5[1] = { ! {21, 7}, }; ! static arc arcs_35_6[1] = { ! {22, 8}, }; static arc arcs_35_7[1] = { ! {22, 9}, }; ! static arc arcs_35_8[3] = { ! {91, 4}, ! {87, 5}, ! {0, 8}, }; static arc arcs_35_9[1] = { {0, 9}, --- 714,777 ---- {89, 1}, }; static arc arcs_34_1[1] = { ! {28, 2}, }; static arc arcs_34_2[1] = { ! {14, 3}, }; static arc arcs_34_3[1] = { ! {15, 4}, }; ! static arc arcs_34_4[2] = { ! {88, 5}, ! {0, 4}, }; static arc arcs_34_5[1] = { ! {14, 6}, }; ! static arc arcs_34_6[1] = { ! {15, 7}, }; static arc arcs_34_7[1] = { ! {0, 7}, }; ! static state states_34[8] = { {1, arcs_34_0}, {1, arcs_34_1}, {1, arcs_34_2}, {1, arcs_34_3}, ! {2, arcs_34_4}, {1, arcs_34_5}, ! {1, arcs_34_6}, {1, arcs_34_7}, }; static arc arcs_35_0[1] = { {90, 1}, }; static arc arcs_35_1[1] = { ! {60, 2}, }; static arc arcs_35_2[1] = { ! {80, 3}, }; ! static arc arcs_35_3[1] = { ! {9, 4}, }; static arc arcs_35_4[1] = { ! {14, 5}, }; static arc arcs_35_5[1] = { ! {15, 6}, }; ! static arc arcs_35_6[2] = { ! {88, 7}, ! {0, 6}, }; static arc arcs_35_7[1] = { ! {14, 8}, }; ! static arc arcs_35_8[1] = { ! {15, 9}, }; static arc arcs_35_9[1] = { {0, 9}, *************** *** 814,976 **** {1, arcs_35_0}, {1, arcs_35_1}, {1, arcs_35_2}, ! {2, arcs_35_3}, {1, arcs_35_4}, {1, arcs_35_5}, ! {1, arcs_35_6}, {1, arcs_35_7}, ! {3, arcs_35_8}, {1, arcs_35_9}, }; static arc arcs_36_0[1] = { ! {93, 1}, }; ! static arc arcs_36_1[2] = { ! {26, 2}, ! {0, 1}, }; ! static arc arcs_36_2[2] = { ! {27, 3}, ! {0, 2}, }; ! static arc arcs_36_3[1] = { ! {26, 4}, }; static arc arcs_36_4[1] = { ! {0, 4}, }; ! static state states_36[5] = { {1, arcs_36_0}, ! {2, arcs_36_1}, ! {2, arcs_36_2}, ! {1, arcs_36_3}, {1, arcs_36_4}, }; ! static arc arcs_37_0[2] = { ! {3, 1}, ! {2, 2}, }; ! static arc arcs_37_1[1] = { {0, 1}, }; ! static arc arcs_37_2[1] = { ! {94, 3}, }; static arc arcs_37_3[1] = { ! {6, 4}, }; ! static arc arcs_37_4[2] = { ! {6, 4}, ! {95, 1}, }; static state states_37[5] = { ! {2, arcs_37_0}, ! {1, arcs_37_1}, ! {1, arcs_37_2}, {1, arcs_37_3}, ! {2, arcs_37_4}, }; static arc arcs_38_0[2] = { ! {96, 1}, ! {98, 2}, }; ! static arc arcs_38_1[2] = { ! {97, 3}, {0, 1}, }; static arc arcs_38_2[1] = { ! {0, 2}, }; static arc arcs_38_3[1] = { {96, 1}, }; ! static state states_38[4] = { {2, arcs_38_0}, ! {2, arcs_38_1}, {1, arcs_38_2}, {1, arcs_38_3}, }; ! static arc arcs_39_0[1] = { ! {99, 1}, }; static arc arcs_39_1[2] = { ! {100, 0}, {0, 1}, }; ! static state states_39[2] = { ! {1, arcs_39_0}, ! {2, arcs_39_1}, }; ! static arc arcs_40_0[2] = { ! {101, 1}, ! {102, 2}, }; ! static arc arcs_40_1[1] = { ! {99, 2}, }; ! static arc arcs_40_2[1] = { {0, 2}, }; ! static state states_40[3] = { ! {2, arcs_40_0}, ! {1, arcs_40_1}, ! {1, arcs_40_2}, }; ! static arc arcs_41_0[1] = { ! {77, 1}, }; ! static arc arcs_41_1[2] = { ! {103, 0}, {0, 1}, }; ! static state states_41[2] = { ! {1, arcs_41_0}, ! {2, arcs_41_1}, }; ! static arc arcs_42_0[10] = { ! {104, 1}, {105, 1}, {106, 1}, {107, 1}, {108, 1}, {109, 1}, {110, 1}, ! {78, 1}, ! {101, 2}, ! {111, 3}, }; ! static arc arcs_42_1[1] = { {0, 1}, }; ! static arc arcs_42_2[1] = { ! {78, 1}, }; ! static arc arcs_42_3[2] = { ! {101, 1}, {0, 3}, }; ! static state states_42[4] = { ! {10, arcs_42_0}, ! {1, arcs_42_1}, ! {1, arcs_42_2}, ! {2, arcs_42_3}, ! }; ! static arc arcs_43_0[1] = { ! {112, 1}, ! }; ! static arc arcs_43_1[2] = { ! {113, 0}, ! {0, 1}, ! }; ! static state states_43[2] = { ! {1, arcs_43_0}, ! {2, arcs_43_1}, }; static arc arcs_44_0[1] = { ! {114, 1}, }; static arc arcs_44_1[2] = { ! {115, 0}, {0, 1}, }; static state states_44[2] = { --- 780,976 ---- {1, arcs_35_0}, {1, arcs_35_1}, {1, arcs_35_2}, ! {1, arcs_35_3}, {1, arcs_35_4}, {1, arcs_35_5}, ! {2, arcs_35_6}, {1, arcs_35_7}, ! {1, arcs_35_8}, {1, arcs_35_9}, }; static arc arcs_36_0[1] = { ! {91, 1}, }; ! static arc arcs_36_1[1] = { ! {14, 2}, }; ! static arc arcs_36_2[1] = { ! {15, 3}, }; ! static arc arcs_36_3[2] = { ! {92, 4}, ! {93, 5}, }; static arc arcs_36_4[1] = { ! {14, 6}, ! }; ! static arc arcs_36_5[1] = { ! {14, 7}, ! }; ! static arc arcs_36_6[1] = { ! {15, 8}, ! }; ! static arc arcs_36_7[1] = { ! {15, 9}, ! }; ! static arc arcs_36_8[3] = { ! {92, 4}, ! {88, 5}, ! {0, 8}, ! }; ! static arc arcs_36_9[1] = { ! {0, 9}, }; ! static state states_36[10] = { {1, arcs_36_0}, ! {1, arcs_36_1}, ! {1, arcs_36_2}, ! {2, arcs_36_3}, {1, arcs_36_4}, + {1, arcs_36_5}, + {1, arcs_36_6}, + {1, arcs_36_7}, + {3, arcs_36_8}, + {1, arcs_36_9}, }; ! static arc arcs_37_0[1] = { ! {94, 1}, }; ! static arc arcs_37_1[2] = { ! {28, 2}, {0, 1}, }; ! static arc arcs_37_2[2] = { ! {29, 3}, ! {0, 2}, }; static arc arcs_37_3[1] = { ! {28, 4}, }; ! static arc arcs_37_4[1] = { ! {0, 4}, }; static state states_37[5] = { ! {1, arcs_37_0}, ! {2, arcs_37_1}, ! {2, arcs_37_2}, {1, arcs_37_3}, ! {1, arcs_37_4}, }; static arc arcs_38_0[2] = { ! {3, 1}, ! {2, 2}, }; ! static arc arcs_38_1[1] = { {0, 1}, }; static arc arcs_38_2[1] = { ! {95, 3}, }; static arc arcs_38_3[1] = { + {6, 4}, + }; + static arc arcs_38_4[2] = { + {6, 4}, {96, 1}, }; ! static state states_38[5] = { {2, arcs_38_0}, ! {1, arcs_38_1}, {1, arcs_38_2}, {1, arcs_38_3}, + {2, arcs_38_4}, }; ! static arc arcs_39_0[2] = { ! {97, 1}, ! {99, 2}, }; static arc arcs_39_1[2] = { ! {98, 3}, {0, 1}, }; ! static arc arcs_39_2[1] = { ! {0, 2}, }; ! static arc arcs_39_3[1] = { ! {97, 1}, }; ! static state states_39[4] = { ! {2, arcs_39_0}, ! {2, arcs_39_1}, ! {1, arcs_39_2}, ! {1, arcs_39_3}, }; ! static arc arcs_40_0[1] = { ! {100, 1}, ! }; ! static arc arcs_40_1[2] = { ! {101, 0}, ! {0, 1}, ! }; ! static state states_40[2] = { ! {1, arcs_40_0}, ! {2, arcs_40_1}, ! }; ! static arc arcs_41_0[2] = { ! {102, 1}, ! {103, 2}, ! }; ! static arc arcs_41_1[1] = { ! {100, 2}, ! }; ! static arc arcs_41_2[1] = { {0, 2}, }; ! static state states_41[3] = { ! {2, arcs_41_0}, ! {1, arcs_41_1}, ! {1, arcs_41_2}, }; ! static arc arcs_42_0[1] = { ! {79, 1}, }; ! static arc arcs_42_1[2] = { ! {104, 0}, {0, 1}, }; ! static state states_42[2] = { ! {1, arcs_42_0}, ! {2, arcs_42_1}, }; ! static arc arcs_43_0[10] = { {105, 1}, {106, 1}, {107, 1}, {108, 1}, {109, 1}, {110, 1}, ! {111, 1}, ! {80, 1}, ! {102, 2}, ! {112, 3}, }; ! static arc arcs_43_1[1] = { {0, 1}, }; ! static arc arcs_43_2[1] = { ! {80, 1}, }; ! static arc arcs_43_3[2] = { ! {102, 1}, {0, 3}, }; ! static state states_43[4] = { ! {10, arcs_43_0}, ! {1, arcs_43_1}, ! {1, arcs_43_2}, ! {2, arcs_43_3}, }; static arc arcs_44_0[1] = { ! {113, 1}, }; static arc arcs_44_1[2] = { ! {114, 0}, {0, 1}, }; static state states_44[2] = { *************** *** 978,987 **** {2, arcs_44_1}, }; static arc arcs_45_0[1] = { ! {116, 1}, }; static arc arcs_45_1[2] = { ! {117, 0}, {0, 1}, }; static state states_45[2] = { --- 978,987 ---- {2, arcs_44_1}, }; static arc arcs_45_0[1] = { ! {115, 1}, }; static arc arcs_45_1[2] = { ! {116, 0}, {0, 1}, }; static state states_45[2] = { *************** *** 989,1011 **** {2, arcs_45_1}, }; static arc arcs_46_0[1] = { ! {118, 1}, }; ! static arc arcs_46_1[3] = { ! {119, 0}, ! {56, 0}, {0, 1}, }; static state states_46[2] = { {1, arcs_46_0}, ! {3, arcs_46_1}, }; static arc arcs_47_0[1] = { ! {120, 1}, }; static arc arcs_47_1[3] = { ! {121, 0}, ! {122, 0}, {0, 1}, }; static state states_47[2] = { --- 989,1010 ---- {2, arcs_45_1}, }; static arc arcs_46_0[1] = { ! {117, 1}, }; ! static arc arcs_46_1[2] = { ! {118, 0}, {0, 1}, }; static state states_46[2] = { {1, arcs_46_0}, ! {2, arcs_46_1}, }; static arc arcs_47_0[1] = { ! {119, 1}, }; static arc arcs_47_1[3] = { ! {120, 0}, ! {58, 0}, {0, 1}, }; static state states_47[2] = { *************** *** 1013,1167 **** {3, arcs_47_1}, }; static arc arcs_48_0[1] = { ! {123, 1}, }; ! static arc arcs_48_1[5] = { ! {28, 0}, ! {124, 0}, ! {125, 0}, ! {126, 0}, {0, 1}, }; static state states_48[2] = { {1, arcs_48_0}, ! {5, arcs_48_1}, }; ! static arc arcs_49_0[4] = { ! {121, 1}, {122, 1}, ! {127, 1}, ! {128, 2}, }; ! static arc arcs_49_1[1] = { ! {123, 2}, }; ! static arc arcs_49_2[1] = { {0, 2}, }; ! static state states_49[3] = { ! {4, arcs_49_0}, ! {1, arcs_49_1}, ! {1, arcs_49_2}, ! }; ! static arc arcs_50_0[1] = { ! {129, 1}, }; ! static arc arcs_50_1[3] = { {130, 1}, ! {29, 2}, {0, 1}, }; ! static arc arcs_50_2[1] = { ! {123, 3}, }; ! static arc arcs_50_3[1] = { {0, 3}, }; ! static state states_50[4] = { ! {1, arcs_50_0}, ! {3, arcs_50_1}, ! {1, arcs_50_2}, ! {1, arcs_50_3}, }; ! static arc arcs_51_0[7] = { ! {13, 1}, ! {132, 2}, ! {135, 3}, ! {138, 4}, ! {19, 5}, ! {140, 5}, ! {141, 6}, }; ! static arc arcs_51_1[2] = { ! {131, 7}, ! {15, 5}, }; ! static arc arcs_51_2[2] = { ! {133, 8}, ! {134, 5}, ! }; ! static arc arcs_51_3[2] = { ! {136, 9}, ! {137, 5}, }; ! static arc arcs_51_4[1] = { ! {139, 10}, }; ! static arc arcs_51_5[1] = { {0, 5}, }; ! static arc arcs_51_6[2] = { ! {141, 6}, {0, 6}, }; ! static arc arcs_51_7[1] = { ! {15, 5}, ! }; ! static arc arcs_51_8[1] = { ! {134, 5}, }; ! static arc arcs_51_9[1] = { ! {137, 5}, }; ! static arc arcs_51_10[1] = { {138, 5}, }; ! static state states_51[11] = { ! {7, arcs_51_0}, ! {2, arcs_51_1}, ! {2, arcs_51_2}, ! {2, arcs_51_3}, ! {1, arcs_51_4}, ! {1, arcs_51_5}, ! {2, arcs_51_6}, ! {1, arcs_51_7}, ! {1, arcs_51_8}, ! {1, arcs_51_9}, ! {1, arcs_51_10}, ! }; ! static arc arcs_52_0[1] = { ! {26, 1}, ! }; ! static arc arcs_52_1[3] = { ! {142, 2}, ! {27, 3}, ! {0, 1}, ! }; ! static arc arcs_52_2[1] = { ! {0, 2}, ! }; ! static arc arcs_52_3[2] = { ! {26, 4}, ! {0, 3}, ! }; ! static arc arcs_52_4[2] = { ! {27, 3}, ! {0, 4}, }; ! static state states_52[5] = { ! {1, arcs_52_0}, ! {3, arcs_52_1}, ! {1, arcs_52_2}, {2, arcs_52_3}, ! {2, arcs_52_4}, }; static arc arcs_53_0[1] = { ! {26, 1}, }; static arc arcs_53_1[3] = { {143, 2}, ! {27, 3}, {0, 1}, }; static arc arcs_53_2[1] = { {0, 2}, }; static arc arcs_53_3[2] = { ! {26, 4}, {0, 3}, }; static arc arcs_53_4[2] = { ! {27, 3}, {0, 4}, }; static state states_53[5] = { --- 1012,1152 ---- {3, arcs_47_1}, }; static arc arcs_48_0[1] = { ! {121, 1}, }; ! static arc arcs_48_1[3] = { ! {122, 0}, ! {123, 0}, {0, 1}, }; static state states_48[2] = { {1, arcs_48_0}, ! {3, arcs_48_1}, }; ! static arc arcs_49_0[1] = { ! {124, 1}, ! }; ! static arc arcs_49_1[5] = { ! {30, 0}, ! {125, 0}, ! {126, 0}, ! {127, 0}, ! {0, 1}, ! }; ! static state states_49[2] = { ! {1, arcs_49_0}, ! {5, arcs_49_1}, ! }; ! static arc arcs_50_0[4] = { {122, 1}, ! {123, 1}, ! {128, 1}, ! {129, 2}, }; ! static arc arcs_50_1[1] = { ! {124, 2}, }; ! static arc arcs_50_2[1] = { {0, 2}, }; ! static state states_50[3] = { ! {4, arcs_50_0}, ! {1, arcs_50_1}, ! {1, arcs_50_2}, }; ! static arc arcs_51_0[1] = { {130, 1}, ! }; ! static arc arcs_51_1[3] = { ! {131, 1}, ! {31, 2}, {0, 1}, }; ! static arc arcs_51_2[1] = { ! {124, 3}, }; ! static arc arcs_51_3[1] = { {0, 3}, }; ! static state states_51[4] = { ! {1, arcs_51_0}, ! {3, arcs_51_1}, ! {1, arcs_51_2}, ! {1, arcs_51_3}, }; ! static arc arcs_52_0[7] = { ! {19, 1}, ! {133, 2}, ! {136, 3}, ! {139, 4}, ! {12, 5}, ! {141, 5}, ! {142, 6}, }; ! static arc arcs_52_1[2] = { ! {132, 7}, ! {21, 5}, }; ! static arc arcs_52_2[2] = { ! {134, 8}, ! {135, 5}, }; ! static arc arcs_52_3[2] = { ! {137, 9}, ! {138, 5}, }; ! static arc arcs_52_4[1] = { ! {140, 10}, ! }; ! static arc arcs_52_5[1] = { {0, 5}, }; ! static arc arcs_52_6[2] = { ! {142, 6}, {0, 6}, }; ! static arc arcs_52_7[1] = { ! {21, 5}, }; ! static arc arcs_52_8[1] = { ! {135, 5}, }; ! static arc arcs_52_9[1] = { {138, 5}, }; ! static arc arcs_52_10[1] = { ! {139, 5}, }; ! static state states_52[11] = { ! {7, arcs_52_0}, ! {2, arcs_52_1}, ! {2, arcs_52_2}, {2, arcs_52_3}, ! {1, arcs_52_4}, ! {1, arcs_52_5}, ! {2, arcs_52_6}, ! {1, arcs_52_7}, ! {1, arcs_52_8}, ! {1, arcs_52_9}, ! {1, arcs_52_10}, }; static arc arcs_53_0[1] = { ! {28, 1}, }; static arc arcs_53_1[3] = { {143, 2}, ! {29, 3}, {0, 1}, }; static arc arcs_53_2[1] = { {0, 2}, }; static arc arcs_53_3[2] = { ! {28, 4}, {0, 3}, }; static arc arcs_53_4[2] = { ! {29, 3}, {0, 4}, }; static state states_53[5] = { *************** *** 1172,1324 **** {2, arcs_53_4}, }; static arc arcs_54_0[1] = { ! {144, 1}, }; ! static arc arcs_54_1[2] = { ! {23, 2}, ! {21, 3}, }; static arc arcs_54_2[1] = { ! {21, 3}, }; ! static arc arcs_54_3[1] = { ! {26, 4}, }; ! static arc arcs_54_4[1] = { {0, 4}, }; static state states_54[5] = { {1, arcs_54_0}, ! {2, arcs_54_1}, {1, arcs_54_2}, ! {1, arcs_54_3}, ! {1, arcs_54_4}, }; ! static arc arcs_55_0[3] = { ! {13, 1}, ! {132, 2}, ! {74, 3}, }; static arc arcs_55_1[2] = { ! {14, 4}, ! {15, 5}, }; static arc arcs_55_2[1] = { ! {145, 6}, }; static arc arcs_55_3[1] = { ! {19, 5}, }; static arc arcs_55_4[1] = { ! {15, 5}, ! }; ! static arc arcs_55_5[1] = { ! {0, 5}, ! }; ! static arc arcs_55_6[1] = { ! {134, 5}, }; ! static state states_55[7] = { ! {3, arcs_55_0}, {2, arcs_55_1}, {1, arcs_55_2}, {1, arcs_55_3}, {1, arcs_55_4}, - {1, arcs_55_5}, - {1, arcs_55_6}, }; ! static arc arcs_56_0[1] = { ! {146, 1}, }; static arc arcs_56_1[2] = { ! {27, 2}, ! {0, 1}, }; ! static arc arcs_56_2[2] = { ! {146, 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[3] = { ! {74, 1}, ! {26, 2}, ! {21, 3}, }; ! static arc arcs_57_1[1] = { ! {74, 4}, }; static arc arcs_57_2[2] = { ! {21, 3}, {0, 2}, }; ! static arc arcs_57_3[3] = { ! {26, 5}, ! {147, 6}, ! {0, 3}, }; ! static arc arcs_57_4[1] = { ! {74, 6}, }; ! static arc arcs_57_5[2] = { ! {147, 6}, ! {0, 5}, }; ! static arc arcs_57_6[1] = { ! {0, 6}, }; ! static state states_57[7] = { ! {3, arcs_57_0}, ! {1, arcs_57_1}, ! {2, arcs_57_2}, ! {3, arcs_57_3}, ! {1, arcs_57_4}, ! {2, arcs_57_5}, ! {1, arcs_57_6}, }; ! static arc arcs_58_0[1] = { ! {21, 1}, }; ! static arc arcs_58_1[2] = { ! {26, 2}, ! {0, 1}, }; ! static arc arcs_58_2[1] = { ! {0, 2}, }; ! static state states_58[3] = { ! {1, arcs_58_0}, ! {2, arcs_58_1}, ! {1, arcs_58_2}, }; static arc arcs_59_0[1] = { ! {77, 1}, }; static arc arcs_59_1[2] = { ! {27, 2}, {0, 1}, }; ! static arc arcs_59_2[2] = { ! {77, 1}, {0, 2}, }; static state states_59[3] = { {1, arcs_59_0}, {2, arcs_59_1}, ! {2, arcs_59_2}, }; static arc arcs_60_0[1] = { ! {26, 1}, }; static arc arcs_60_1[2] = { ! {27, 2}, {0, 1}, }; static arc arcs_60_2[2] = { ! {26, 1}, {0, 2}, }; static state states_60[3] = { --- 1157,1319 ---- {2, arcs_53_4}, }; static arc arcs_54_0[1] = { ! {28, 1}, }; ! static arc arcs_54_1[3] = { ! {144, 2}, ! {29, 3}, ! {0, 1}, }; static arc arcs_54_2[1] = { ! {0, 2}, }; ! static arc arcs_54_3[2] = { ! {28, 4}, ! {0, 3}, }; ! static arc arcs_54_4[2] = { ! {29, 3}, {0, 4}, }; static state states_54[5] = { {1, arcs_54_0}, ! {3, arcs_54_1}, {1, arcs_54_2}, ! {2, arcs_54_3}, ! {2, arcs_54_4}, }; ! static arc arcs_55_0[1] = { ! {145, 1}, }; static arc arcs_55_1[2] = { ! {25, 2}, ! {14, 3}, }; static arc arcs_55_2[1] = { ! {14, 3}, }; static arc arcs_55_3[1] = { ! {28, 4}, }; static arc arcs_55_4[1] = { ! {0, 4}, }; ! static state states_55[5] = { ! {1, arcs_55_0}, {2, arcs_55_1}, {1, arcs_55_2}, {1, arcs_55_3}, {1, arcs_55_4}, }; ! static arc arcs_56_0[3] = { ! {19, 1}, ! {133, 2}, ! {76, 3}, }; static arc arcs_56_1[2] = { ! {20, 4}, ! {21, 5}, }; ! static arc arcs_56_2[1] = { ! {146, 6}, ! }; ! static arc arcs_56_3[1] = { ! {12, 5}, }; ! static arc arcs_56_4[1] = { ! {21, 5}, ! }; ! static arc arcs_56_5[1] = { ! {0, 5}, ! }; ! static arc arcs_56_6[1] = { ! {135, 5}, ! }; ! static state states_56[7] = { ! {3, arcs_56_0}, {2, arcs_56_1}, ! {1, arcs_56_2}, ! {1, arcs_56_3}, ! {1, arcs_56_4}, ! {1, arcs_56_5}, ! {1, arcs_56_6}, }; ! static arc arcs_57_0[1] = { ! {147, 1}, }; ! static arc arcs_57_1[2] = { ! {29, 2}, ! {0, 1}, }; static arc arcs_57_2[2] = { ! {147, 1}, {0, 2}, }; ! static state states_57[3] = { ! {1, arcs_57_0}, ! {2, arcs_57_1}, ! {2, arcs_57_2}, }; ! static arc arcs_58_0[3] = { ! {76, 1}, ! {28, 2}, ! {14, 3}, }; ! static arc arcs_58_1[1] = { ! {76, 4}, }; ! static arc arcs_58_2[2] = { ! {14, 3}, ! {0, 2}, }; ! static arc arcs_58_3[3] = { ! {28, 5}, ! {148, 6}, ! {0, 3}, }; ! static arc arcs_58_4[1] = { ! {76, 6}, }; ! static arc arcs_58_5[2] = { ! {148, 6}, ! {0, 5}, }; ! static arc arcs_58_6[1] = { ! {0, 6}, }; ! static state states_58[7] = { ! {3, arcs_58_0}, ! {1, arcs_58_1}, ! {2, arcs_58_2}, ! {3, arcs_58_3}, ! {1, arcs_58_4}, ! {2, arcs_58_5}, ! {1, arcs_58_6}, }; static arc arcs_59_0[1] = { ! {14, 1}, }; static arc arcs_59_1[2] = { ! {28, 2}, {0, 1}, }; ! static arc arcs_59_2[1] = { {0, 2}, }; static state states_59[3] = { {1, arcs_59_0}, {2, arcs_59_1}, ! {1, arcs_59_2}, }; static arc arcs_60_0[1] = { ! {79, 1}, }; static arc arcs_60_1[2] = { ! {29, 2}, {0, 1}, }; static arc arcs_60_2[2] = { ! {79, 1}, {0, 2}, }; static state states_60[3] = { *************** *** 1327,1810 **** {2, arcs_60_2}, }; static arc arcs_61_0[1] = { ! {26, 1}, }; static arc arcs_61_1[2] = { ! {27, 2}, {0, 1}, }; ! static arc arcs_61_2[1] = { ! {26, 3}, ! }; ! static arc arcs_61_3[2] = { ! {27, 4}, ! {0, 3}, ! }; ! static arc arcs_61_4[2] = { ! {26, 3}, ! {0, 4}, }; ! static state states_61[5] = { {1, arcs_61_0}, {2, arcs_61_1}, ! {1, arcs_61_2}, ! {2, arcs_61_3}, ! {2, arcs_61_4}, }; static arc arcs_62_0[1] = { ! {26, 1}, }; ! static arc arcs_62_1[1] = { ! {21, 2}, }; static arc arcs_62_2[1] = { ! {26, 3}, }; static arc arcs_62_3[2] = { ! {27, 4}, {0, 3}, }; static arc arcs_62_4[2] = { ! {26, 1}, {0, 4}, }; static state states_62[5] = { {1, arcs_62_0}, ! {1, arcs_62_1}, {1, arcs_62_2}, {2, arcs_62_3}, {2, arcs_62_4}, }; static arc arcs_63_0[1] = { ! {149, 1}, }; static arc arcs_63_1[1] = { ! {19, 2}, }; ! static arc arcs_63_2[2] = { ! {13, 3}, ! {21, 4}, ! }; ! static arc arcs_63_3[1] = { ! {9, 5}, ! }; ! static arc arcs_63_4[1] = { ! {22, 6}, ! }; ! static arc arcs_63_5[1] = { ! {15, 7}, }; ! static arc arcs_63_6[1] = { ! {0, 6}, }; ! static arc arcs_63_7[1] = { ! {21, 4}, }; ! static state states_63[8] = { {1, arcs_63_0}, {1, arcs_63_1}, ! {2, arcs_63_2}, ! {1, arcs_63_3}, ! {1, arcs_63_4}, ! {1, arcs_63_5}, ! {1, arcs_63_6}, ! {1, arcs_63_7}, }; ! static arc arcs_64_0[3] = { {150, 1}, - {28, 2}, - {29, 3}, }; ! static arc arcs_64_1[2] = { ! {27, 4}, ! {0, 1}, }; ! static arc arcs_64_2[1] = { ! {26, 5}, }; static arc arcs_64_3[1] = { ! {26, 6}, }; ! static arc arcs_64_4[4] = { ! {150, 1}, ! {28, 2}, ! {29, 3}, ! {0, 4}, }; ! static arc arcs_64_5[2] = { ! {27, 7}, ! {0, 5}, }; static arc arcs_64_6[1] = { {0, 6}, }; static arc arcs_64_7[1] = { ! {29, 3}, }; static state states_64[8] = { ! {3, arcs_64_0}, ! {2, arcs_64_1}, ! {1, arcs_64_2}, {1, arcs_64_3}, ! {4, arcs_64_4}, ! {2, arcs_64_5}, {1, arcs_64_6}, {1, arcs_64_7}, }; ! static arc arcs_65_0[1] = { ! {26, 1}, }; ! static arc arcs_65_1[3] = { ! {25, 2}, ! {143, 3}, {0, 1}, }; static arc arcs_65_2[1] = { ! {26, 4}, }; static arc arcs_65_3[1] = { ! {0, 3}, }; ! static arc arcs_65_4[2] = { ! {143, 3}, {0, 4}, }; ! static state states_65[5] = { ! {1, arcs_65_0}, ! {3, arcs_65_1}, {1, arcs_65_2}, {1, arcs_65_3}, ! {2, arcs_65_4}, }; ! static arc arcs_66_0[2] = { ! {142, 1}, ! {152, 1}, }; ! static arc arcs_66_1[1] = { {0, 1}, }; ! static state states_66[2] = { ! {2, arcs_66_0}, ! {1, arcs_66_1}, ! }; ! static arc arcs_67_0[1] = { ! {89, 1}, }; ! static arc arcs_67_1[1] = { ! {58, 2}, }; ! static arc arcs_67_2[1] = { ! {78, 3}, }; ! static arc arcs_67_3[1] = { ! {148, 4}, }; ! static arc arcs_67_4[2] = { ! {151, 5}, ! {0, 4}, }; ! static arc arcs_67_5[1] = { ! {0, 5}, }; ! static state states_67[6] = { ! {1, arcs_67_0}, {1, arcs_67_1}, - {1, arcs_67_2}, - {1, arcs_67_3}, - {2, arcs_67_4}, - {1, arcs_67_5}, }; static arc arcs_68_0[1] = { ! {85, 1}, }; static arc arcs_68_1[1] = { ! {26, 2}, }; ! static arc arcs_68_2[2] = { ! {151, 3}, ! {0, 2}, }; static arc arcs_68_3[1] = { ! {0, 3}, }; ! static state states_68[4] = { {1, arcs_68_0}, {1, arcs_68_1}, ! {2, arcs_68_2}, {1, arcs_68_3}, }; ! static arc arcs_69_0[2] = { ! {143, 1}, ! {154, 1}, }; static arc arcs_69_1[1] = { ! {0, 1}, ! }; ! static state states_69[2] = { ! {2, arcs_69_0}, ! {1, arcs_69_1}, ! }; ! static arc arcs_70_0[1] = { ! {89, 1}, }; ! static arc arcs_70_1[1] = { ! {58, 2}, }; ! static arc arcs_70_2[1] = { ! {78, 3}, }; ! static arc arcs_70_3[1] = { ! {26, 4}, }; ! static arc arcs_70_4[2] = { ! {153, 5}, ! {0, 4}, }; ! static arc arcs_70_5[1] = { ! {0, 5}, }; ! static state states_70[6] = { ! {1, arcs_70_0}, {1, arcs_70_1}, - {1, arcs_70_2}, - {1, arcs_70_3}, - {2, arcs_70_4}, - {1, arcs_70_5}, }; static arc arcs_71_0[1] = { ! {85, 1}, }; static arc arcs_71_1[1] = { ! {26, 2}, }; ! static arc arcs_71_2[2] = { ! {153, 3}, ! {0, 2}, }; static arc arcs_71_3[1] = { ! {0, 3}, }; ! static state states_71[4] = { {1, arcs_71_0}, {1, arcs_71_1}, ! {2, arcs_71_2}, {1, arcs_71_3}, }; static arc arcs_72_0[1] = { ! {26, 1}, }; ! static arc arcs_72_1[2] = { ! {27, 0}, ! {0, 1}, }; ! static state states_72[2] = { {1, arcs_72_0}, ! {2, arcs_72_1}, }; static arc arcs_73_0[1] = { ! {19, 1}, }; ! static arc arcs_73_1[1] = { {0, 1}, }; static state states_73[2] = { {1, arcs_73_0}, ! {1, arcs_73_1}, }; ! static dfa dfas[74] = { {256, "single_input", 0, 3, states_0, ! "\004\050\014\000\000\000\200\012\176\231\040\007\040\000\000\206\220\064\041\000"}, {257, "file_input", 0, 2, states_1, ! "\204\050\014\000\000\000\200\012\176\231\040\007\040\000\000\206\220\064\041\000"}, {258, "eval_input", 0, 3, states_2, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {259, "decorator", 0, 6, states_3, ! "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {260, "decorators", 0, 3, states_4, "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {261, "funcdef", 0, 7, states_5, ! "\000\010\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {262, "parameters", 0, 4, states_6, ! "\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {263, "varargslist", 0, 10, states_7, ! "\000\040\010\060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {264, "fpdef", 0, 4, states_8, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {265, "fplist", 0, 3, states_9, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {266, "stmt", 0, 2, states_10, ! "\000\050\014\000\000\000\200\012\176\231\040\007\040\000\000\206\220\064\041\000"}, ! {267, "simple_stmt", 0, 4, states_11, ! "\000\040\010\000\000\000\200\012\176\231\000\000\040\000\000\206\220\064\001\000"}, ! {268, "small_stmt", 0, 2, states_12, ! "\000\040\010\000\000\000\200\012\176\231\000\000\040\000\000\206\220\064\001\000"}, ! {269, "expr_stmt", 0, 6, states_13, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {270, "augassign", 0, 2, states_14, ! "\000\000\000\000\000\370\177\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {271, "print_stmt", 0, 9, states_15, ! "\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {272, "del_stmt", 0, 3, states_16, "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {273, "pass_stmt", 0, 2, states_17, "\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {274, "flow_stmt", 0, 2, states_18, ! "\000\000\000\000\000\000\000\000\076\000\000\000\000\000\000\000\000\000\000\000"}, ! {275, "break_stmt", 0, 2, states_19, ! "\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000"}, ! {276, "continue_stmt", 0, 2, states_20, ! "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000"}, ! {277, "return_stmt", 0, 3, states_21, "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000"}, ! {278, "yield_stmt", 0, 3, states_22, "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000"}, ! {279, "raise_stmt", 0, 7, states_23, "\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"}, ! {280, "import_stmt", 0, 9, states_24, ! "\000\000\000\000\000\000\000\000\100\001\000\000\000\000\000\000\000\000\000\000"}, ! {281, "import_as_name", 0, 4, states_25, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {282, "dotted_as_name", 0, 4, states_26, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {283, "dotted_name", 0, 2, states_27, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {284, "global_stmt", 0, 3, states_28, ! "\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000"}, ! {285, "exec_stmt", 0, 7, states_29, ! "\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000"}, ! {286, "assert_stmt", 0, 5, states_30, ! "\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"}, ! {287, "compound_stmt", 0, 2, states_31, ! "\000\010\004\000\000\000\000\000\000\000\040\007\000\000\000\000\000\000\040\000"}, ! {288, "if_stmt", 0, 8, states_32, ! "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"}, ! {289, "while_stmt", 0, 8, states_33, ! "\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000"}, ! {290, "for_stmt", 0, 10, states_34, "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, ! {291, "try_stmt", 0, 10, states_35, "\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"}, ! {292, "except_clause", 0, 5, states_36, ! "\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"}, ! {293, "suite", 0, 5, states_37, ! "\004\040\010\000\000\000\200\012\176\231\000\000\040\000\000\206\220\064\001\000"}, ! {294, "test", 0, 4, states_38, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {295, "and_test", 0, 2, states_39, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\000\000"}, ! {296, "not_test", 0, 3, states_40, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\000\000"}, ! {297, "comparison", 0, 2, states_41, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {298, "comp_op", 0, 4, states_42, ! "\000\000\000\000\000\000\000\000\000\100\000\000\040\377\000\000\000\000\000\000"}, ! {299, "expr", 0, 2, states_43, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {300, "xor_expr", 0, 2, states_44, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {301, "and_expr", 0, 2, states_45, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {302, "shift_expr", 0, 2, states_46, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {303, "arith_expr", 0, 2, states_47, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {304, "term", 0, 2, states_48, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {305, "factor", 0, 3, states_49, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {306, "power", 0, 4, states_50, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\220\064\000\000"}, ! {307, "atom", 0, 11, states_51, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\220\064\000\000"}, ! {308, "listmaker", 0, 5, states_52, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {309, "testlist_gexp", 0, 5, states_53, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {310, "lambdef", 0, 5, states_54, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000"}, ! {311, "trailer", 0, 7, states_55, ! "\000\040\000\000\000\000\000\000\000\004\000\000\000\000\000\000\020\000\000\000"}, ! {312, "subscriptlist", 0, 3, states_56, ! "\000\040\050\000\000\000\000\000\000\004\000\000\040\000\000\206\220\064\001\000"}, ! {313, "subscript", 0, 7, states_57, ! "\000\040\050\000\000\000\000\000\000\004\000\000\040\000\000\206\220\064\001\000"}, ! {314, "sliceop", 0, 3, states_58, ! "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {315, "exprlist", 0, 3, states_59, ! "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\206\220\064\000\000"}, ! {316, "testlist", 0, 3, states_60, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {317, "testlist_safe", 0, 5, states_61, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {318, "dictmaker", 0, 5, states_62, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {319, "classdef", 0, 8, states_63, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040\000"}, ! {320, "arglist", 0, 8, states_64, ! "\000\040\010\060\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {321, "argument", 0, 5, states_65, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {322, "list_iter", 0, 2, states_66, ! "\000\000\000\000\000\000\000\000\000\000\040\002\000\000\000\000\000\000\000\000"}, ! {323, "list_for", 0, 6, states_67, ! "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, ! {324, "list_if", 0, 4, states_68, ! "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"}, ! {325, "gen_iter", 0, 2, states_69, ! "\000\000\000\000\000\000\000\000\000\000\040\002\000\000\000\000\000\000\000\000"}, ! {326, "gen_for", 0, 6, states_70, ! "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, ! {327, "gen_if", 0, 4, states_71, ! "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"}, ! {328, "testlist1", 0, 2, states_72, ! "\000\040\010\000\000\000\000\000\000\000\000\000\040\000\000\206\220\064\001\000"}, ! {329, "encoding_decl", 0, 2, states_73, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, }; ! static label labels[156] = { {0, "EMPTY"}, {256, 0}, {4, 0}, ! {267, 0}, ! {287, 0}, {257, 0}, ! {266, 0}, {0, 0}, {258, 0}, ! {316, 0}, {259, 0}, {50, 0}, ! {283, 0}, {7, 0}, ! {320, 0}, {8, 0}, - {260, 0}, {261, 0}, - {1, "def"}, - {1, 0}, {262, 0}, ! {11, 0}, ! {293, 0}, ! {263, 0}, {264, 0}, {22, 0}, ! {294, 0}, {12, 0}, {16, 0}, {36, 0}, ! {265, 0}, ! {268, 0}, ! {13, 0}, {269, 0}, ! {271, 0}, {272, 0}, {273, 0}, {274, 0}, ! {280, 0}, ! {284, 0}, {285, 0}, {286, 0}, ! {270, 0}, {37, 0}, {38, 0}, {39, 0}, --- 1322,1825 ---- {2, arcs_60_2}, }; static arc arcs_61_0[1] = { ! {28, 1}, }; static arc arcs_61_1[2] = { ! {29, 2}, {0, 1}, }; ! static arc arcs_61_2[2] = { ! {28, 1}, ! {0, 2}, }; ! static state states_61[3] = { {1, arcs_61_0}, {2, arcs_61_1}, ! {2, arcs_61_2}, }; static arc arcs_62_0[1] = { ! {28, 1}, }; ! static arc arcs_62_1[2] = { ! {29, 2}, ! {0, 1}, }; static arc arcs_62_2[1] = { ! {28, 3}, }; static arc arcs_62_3[2] = { ! {29, 4}, {0, 3}, }; static arc arcs_62_4[2] = { ! {28, 3}, {0, 4}, }; static state states_62[5] = { {1, arcs_62_0}, ! {2, arcs_62_1}, {1, arcs_62_2}, {2, arcs_62_3}, {2, arcs_62_4}, }; static arc arcs_63_0[1] = { ! {28, 1}, }; static arc arcs_63_1[1] = { ! {14, 2}, }; ! static arc arcs_63_2[1] = { ! {28, 3}, }; ! static arc arcs_63_3[2] = { ! {29, 4}, ! {0, 3}, }; ! static arc arcs_63_4[2] = { ! {28, 1}, ! {0, 4}, }; ! static state states_63[5] = { {1, arcs_63_0}, {1, arcs_63_1}, ! {1, arcs_63_2}, ! {2, arcs_63_3}, ! {2, arcs_63_4}, }; ! static arc arcs_64_0[1] = { {150, 1}, }; ! static arc arcs_64_1[1] = { ! {12, 2}, }; ! static arc arcs_64_2[2] = { ! {19, 3}, ! {14, 4}, }; static arc arcs_64_3[1] = { ! {9, 5}, }; ! static arc arcs_64_4[1] = { ! {15, 6}, }; ! static arc arcs_64_5[1] = { ! {21, 7}, }; static arc arcs_64_6[1] = { {0, 6}, }; static arc arcs_64_7[1] = { ! {14, 4}, }; static state states_64[8] = { ! {1, arcs_64_0}, ! {1, arcs_64_1}, ! {2, arcs_64_2}, {1, arcs_64_3}, ! {1, arcs_64_4}, ! {1, arcs_64_5}, {1, arcs_64_6}, {1, arcs_64_7}, }; ! static arc arcs_65_0[3] = { ! {151, 1}, ! {30, 2}, ! {31, 3}, }; ! static arc arcs_65_1[2] = { ! {29, 4}, {0, 1}, }; static arc arcs_65_2[1] = { ! {28, 5}, }; static arc arcs_65_3[1] = { ! {28, 6}, }; ! static arc arcs_65_4[4] = { ! {151, 1}, ! {30, 2}, ! {31, 3}, {0, 4}, }; ! static arc arcs_65_5[2] = { ! {29, 7}, ! {0, 5}, ! }; ! static arc arcs_65_6[1] = { ! {0, 6}, ! }; ! static arc arcs_65_7[1] = { ! {31, 3}, ! }; ! static state states_65[8] = { ! {3, arcs_65_0}, ! {2, arcs_65_1}, {1, arcs_65_2}, {1, arcs_65_3}, ! {4, arcs_65_4}, ! {2, arcs_65_5}, ! {1, arcs_65_6}, ! {1, arcs_65_7}, }; ! static arc arcs_66_0[1] = { ! {28, 1}, }; ! static arc arcs_66_1[3] = { ! {27, 2}, ! {144, 3}, {0, 1}, }; ! static arc arcs_66_2[1] = { ! {28, 4}, }; ! static arc arcs_66_3[1] = { ! {0, 3}, }; ! static arc arcs_66_4[2] = { ! {144, 3}, ! {0, 4}, }; ! static state states_66[5] = { ! {1, arcs_66_0}, ! {3, arcs_66_1}, ! {1, arcs_66_2}, ! {1, arcs_66_3}, ! {2, arcs_66_4}, }; ! static arc arcs_67_0[2] = { ! {143, 1}, ! {153, 1}, }; ! static arc arcs_67_1[1] = { ! {0, 1}, }; ! static state states_67[2] = { ! {2, arcs_67_0}, {1, arcs_67_1}, }; static arc arcs_68_0[1] = { ! {90, 1}, }; static arc arcs_68_1[1] = { ! {60, 2}, }; ! static arc arcs_68_2[1] = { ! {80, 3}, }; static arc arcs_68_3[1] = { ! {149, 4}, ! }; ! static arc arcs_68_4[2] = { ! {152, 5}, ! {0, 4}, ! }; ! static arc arcs_68_5[1] = { ! {0, 5}, }; ! static state states_68[6] = { {1, arcs_68_0}, {1, arcs_68_1}, ! {1, arcs_68_2}, {1, arcs_68_3}, + {2, arcs_68_4}, + {1, arcs_68_5}, }; ! static arc arcs_69_0[1] = { ! {86, 1}, }; static arc arcs_69_1[1] = { ! {28, 2}, }; ! static arc arcs_69_2[2] = { ! {152, 3}, ! {0, 2}, }; ! static arc arcs_69_3[1] = { ! {0, 3}, }; ! static state states_69[4] = { ! {1, arcs_69_0}, ! {1, arcs_69_1}, ! {2, arcs_69_2}, ! {1, arcs_69_3}, }; ! static arc arcs_70_0[2] = { ! {144, 1}, ! {155, 1}, }; ! static arc arcs_70_1[1] = { ! {0, 1}, }; ! static state states_70[2] = { ! {2, arcs_70_0}, {1, arcs_70_1}, }; static arc arcs_71_0[1] = { ! {90, 1}, }; static arc arcs_71_1[1] = { ! {60, 2}, }; ! static arc arcs_71_2[1] = { ! {80, 3}, }; static arc arcs_71_3[1] = { ! {28, 4}, ! }; ! static arc arcs_71_4[2] = { ! {154, 5}, ! {0, 4}, ! }; ! static arc arcs_71_5[1] = { ! {0, 5}, }; ! static state states_71[6] = { {1, arcs_71_0}, {1, arcs_71_1}, ! {1, arcs_71_2}, {1, arcs_71_3}, + {2, arcs_71_4}, + {1, arcs_71_5}, }; static arc arcs_72_0[1] = { ! {86, 1}, }; ! static arc arcs_72_1[1] = { ! {28, 2}, ! }; ! static arc arcs_72_2[2] = { ! {154, 3}, ! {0, 2}, }; ! static arc arcs_72_3[1] = { ! {0, 3}, ! }; ! static state states_72[4] = { {1, arcs_72_0}, ! {1, arcs_72_1}, ! {2, arcs_72_2}, ! {1, arcs_72_3}, }; static arc arcs_73_0[1] = { ! {28, 1}, }; ! static arc arcs_73_1[2] = { ! {29, 0}, {0, 1}, }; static state states_73[2] = { {1, arcs_73_0}, ! {2, arcs_73_1}, ! }; ! static arc arcs_74_0[1] = { ! {12, 1}, ! }; ! static arc arcs_74_1[1] = { ! {0, 1}, }; ! static state states_74[2] = { ! {1, arcs_74_0}, ! {1, arcs_74_1}, ! }; ! static dfa dfas[75] = { {256, "single_input", 0, 3, states_0, ! "\004\030\012\000\000\000\000\052\370\145\102\016\100\000\000\014\041\151\102\000"}, {257, "file_input", 0, 2, states_1, ! "\204\030\012\000\000\000\000\052\370\145\102\016\100\000\000\014\041\151\102\000"}, {258, "eval_input", 0, 3, states_2, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\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\000"}, ! {260, "decorator", 0, 6, states_4, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {261, "decorators", 0, 3, states_5, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {262, "decorated_thing", 0, 3, states_6, ! "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {263, "parameters", 0, 4, states_7, ! "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {264, "varargslist", 0, 10, states_8, ! "\000\020\010\300\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {265, "fpdef", 0, 4, states_9, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {266, "fplist", 0, 3, states_10, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {267, "stmt", 0, 2, states_11, ! "\000\030\012\000\000\000\000\052\370\145\102\016\100\000\000\014\041\151\102\000"}, ! {268, "simple_stmt", 0, 4, states_12, ! "\000\020\010\000\000\000\000\052\370\145\002\000\100\000\000\014\041\151\002\000"}, ! {269, "small_stmt", 0, 2, states_13, ! "\000\020\010\000\000\000\000\052\370\145\002\000\100\000\000\014\041\151\002\000"}, ! {270, "expr_stmt", 0, 6, states_14, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {271, "augassign", 0, 2, states_15, ! "\000\000\000\000\000\340\377\001\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {272, "print_stmt", 0, 9, states_16, "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {273, "del_stmt", 0, 3, states_17, "\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {274, "pass_stmt", 0, 2, states_18, ! "\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {275, "flow_stmt", 0, 2, states_19, ! "\000\000\000\000\000\000\000\000\370\000\000\000\000\000\000\000\000\000\000\000"}, ! {276, "break_stmt", 0, 2, states_20, "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000"}, ! {277, "continue_stmt", 0, 2, states_21, "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000"}, ! {278, "return_stmt", 0, 3, states_22, "\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"}, ! {279, "yield_stmt", 0, 3, states_23, ! "\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"}, ! {280, "raise_stmt", 0, 7, states_24, ! "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000"}, ! {281, "import_stmt", 0, 9, states_25, ! "\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000"}, ! {282, "import_as_name", 0, 4, states_26, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {283, "dotted_as_name", 0, 4, states_27, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {284, "dotted_name", 0, 2, states_28, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {285, "global_stmt", 0, 3, states_29, ! "\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"}, ! {286, "exec_stmt", 0, 7, states_30, ! "\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000"}, ! {287, "assert_stmt", 0, 5, states_31, ! "\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000"}, ! {288, "compound_stmt", 0, 2, states_32, ! "\000\010\002\000\000\000\000\000\000\000\100\016\000\000\000\000\000\000\100\000"}, ! {289, "if_stmt", 0, 8, states_33, ! "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"}, ! {290, "while_stmt", 0, 8, states_34, "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"}, ! {291, "for_stmt", 0, 10, states_35, "\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"}, ! {292, "try_stmt", 0, 10, states_36, ! "\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"}, ! {293, "except_clause", 0, 5, states_37, ! "\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000"}, ! {294, "suite", 0, 5, states_38, ! "\004\020\010\000\000\000\000\052\370\145\002\000\100\000\000\014\041\151\002\000"}, ! {295, "test", 0, 4, states_39, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {296, "and_test", 0, 2, states_40, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\000\000"}, ! {297, "not_test", 0, 3, states_41, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\000\000"}, ! {298, "comparison", 0, 2, states_42, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {299, "comp_op", 0, 4, states_43, ! "\000\000\000\000\000\000\000\000\000\000\001\000\100\376\001\000\000\000\000\000"}, ! {300, "expr", 0, 2, states_44, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {301, "xor_expr", 0, 2, states_45, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {302, "and_expr", 0, 2, states_46, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {303, "shift_expr", 0, 2, states_47, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {304, "arith_expr", 0, 2, states_48, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {305, "term", 0, 2, states_49, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {306, "factor", 0, 3, states_50, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {307, "power", 0, 4, states_51, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\000\040\151\000\000"}, ! {308, "atom", 0, 11, states_52, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\000\040\151\000\000"}, ! {309, "listmaker", 0, 5, states_53, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {310, "testlist_gexp", 0, 5, states_54, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {311, "lambdef", 0, 5, states_55, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"}, ! {312, "trailer", 0, 7, states_56, ! "\000\000\010\000\000\000\000\000\000\020\000\000\000\000\000\000\040\000\000\000"}, ! {313, "subscriptlist", 0, 3, states_57, ! "\000\120\010\000\000\000\000\000\000\020\000\000\100\000\000\014\041\151\002\000"}, ! {314, "subscript", 0, 7, states_58, ! "\000\120\010\000\000\000\000\000\000\020\000\000\100\000\000\014\041\151\002\000"}, ! {315, "sliceop", 0, 3, states_59, ! "\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, ! {316, "exprlist", 0, 3, states_60, ! "\000\020\010\000\000\000\000\000\000\000\000\000\000\000\000\014\041\151\000\000"}, ! {317, "testlist", 0, 3, states_61, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {318, "testlist_safe", 0, 5, states_62, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {319, "dictmaker", 0, 5, states_63, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {320, "classdef", 0, 8, states_64, ! "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000"}, ! {321, "arglist", 0, 8, states_65, ! "\000\020\010\300\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {322, "argument", 0, 5, states_66, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {323, "list_iter", 0, 2, states_67, ! "\000\000\000\000\000\000\000\000\000\000\100\004\000\000\000\000\000\000\000\000"}, ! {324, "list_for", 0, 6, states_68, ! "\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"}, ! {325, "list_if", 0, 4, states_69, ! "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"}, ! {326, "gen_iter", 0, 2, states_70, ! "\000\000\000\000\000\000\000\000\000\000\100\004\000\000\000\000\000\000\000\000"}, ! {327, "gen_for", 0, 6, states_71, ! "\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000"}, ! {328, "gen_if", 0, 4, states_72, ! "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"}, ! {329, "testlist1", 0, 2, states_73, ! "\000\020\010\000\000\000\000\000\000\000\000\000\100\000\000\014\041\151\002\000"}, ! {330, "encoding_decl", 0, 2, states_74, ! "\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, }; ! static label labels[157] = { {0, "EMPTY"}, {256, 0}, {4, 0}, ! {268, 0}, ! {288, 0}, {257, 0}, ! {267, 0}, {0, 0}, {258, 0}, ! {317, 0}, {259, 0}, + {1, "def"}, + {1, 0}, + {263, 0}, + {11, 0}, + {294, 0}, + {260, 0}, {50, 0}, ! {284, 0}, {7, 0}, ! {321, 0}, {8, 0}, {261, 0}, {262, 0}, ! {320, 0}, {264, 0}, + {265, 0}, {22, 0}, ! {295, 0}, {12, 0}, {16, 0}, {36, 0}, ! {266, 0}, {269, 0}, ! {13, 0}, ! {270, 0}, {272, 0}, {273, 0}, {274, 0}, ! {275, 0}, ! {281, 0}, {285, 0}, {286, 0}, ! {287, 0}, ! {271, 0}, {37, 0}, {38, 0}, {39, 0}, *************** *** 1820,1871 **** {1, "print"}, {35, 0}, {1, "del"}, ! {315, 0}, {1, "pass"}, - {275, 0}, {276, 0}, {277, 0}, - {279, 0}, {278, 0}, {1, "break"}, {1, "continue"}, {1, "return"}, {1, "yield"}, {1, "raise"}, {1, "import"}, ! {282, 0}, {1, "from"}, ! {281, 0}, {23, 0}, {1, "global"}, {1, "exec"}, ! {299, 0}, {1, "in"}, {1, "assert"}, - {288, 0}, {289, 0}, {290, 0}, {291, 0}, ! {319, 0}, {1, "if"}, {1, "elif"}, {1, "else"}, {1, "while"}, {1, "for"}, {1, "try"}, ! {292, 0}, {1, "finally"}, {1, "except"}, {5, 0}, {6, 0}, - {295, 0}, - {1, "or"}, - {310, 0}, {296, 0}, {1, "and"}, {1, "not"}, - {297, 0}, {298, 0}, {20, 0}, {21, 0}, {28, 0}, --- 1835,1885 ---- {1, "print"}, {35, 0}, {1, "del"}, ! {316, 0}, {1, "pass"}, {276, 0}, {277, 0}, {278, 0}, + {280, 0}, + {279, 0}, {1, "break"}, {1, "continue"}, {1, "return"}, {1, "yield"}, {1, "raise"}, {1, "import"}, ! {283, 0}, {1, "from"}, ! {282, 0}, {23, 0}, {1, "global"}, {1, "exec"}, ! {300, 0}, {1, "in"}, {1, "assert"}, {289, 0}, {290, 0}, {291, 0}, ! {292, 0}, {1, "if"}, {1, "elif"}, {1, "else"}, {1, "while"}, {1, "for"}, {1, "try"}, ! {293, 0}, {1, "finally"}, {1, "except"}, {5, 0}, {6, 0}, {296, 0}, + {1, "or"}, + {311, 0}, + {297, 0}, {1, "and"}, {1, "not"}, {298, 0}, + {299, 0}, {20, 0}, {21, 0}, {28, 0}, *************** *** 1874,1927 **** {29, 0}, {29, 0}, {1, "is"}, - {300, 0}, - {18, 0}, {301, 0}, ! {33, 0}, {302, 0}, ! {19, 0}, {303, 0}, ! {34, 0}, {304, 0}, {14, 0}, {15, 0}, ! {305, 0}, {17, 0}, {24, 0}, {48, 0}, {32, 0}, - {306, 0}, {307, 0}, - {311, 0}, - {309, 0}, - {9, 0}, {308, 0}, {10, 0}, {26, 0}, ! {318, 0}, {27, 0}, {25, 0}, ! {328, 0}, {2, 0}, {3, 0}, ! {323, 0}, ! {326, 0}, {1, "lambda"}, - {312, 0}, {313, 0}, {314, 0}, ! {317, 0}, {1, "class"}, - {321, 0}, {322, 0}, ! {324, 0}, {325, 0}, ! {327, 0}, ! {329, 0}, }; grammar _PyParser_Grammar = { ! 74, dfas, ! {156, labels}, 256 }; --- 1888,1941 ---- {29, 0}, {29, 0}, {1, "is"}, {301, 0}, ! {18, 0}, {302, 0}, ! {33, 0}, {303, 0}, ! {19, 0}, {304, 0}, + {34, 0}, + {305, 0}, {14, 0}, {15, 0}, ! {306, 0}, {17, 0}, {24, 0}, {48, 0}, {32, 0}, {307, 0}, {308, 0}, + {312, 0}, + {310, 0}, + {9, 0}, + {309, 0}, {10, 0}, {26, 0}, ! {319, 0}, {27, 0}, {25, 0}, ! {329, 0}, {2, 0}, {3, 0}, ! {324, 0}, ! {327, 0}, {1, "lambda"}, {313, 0}, {314, 0}, ! {315, 0}, ! {318, 0}, {1, "class"}, {322, 0}, ! {323, 0}, {325, 0}, ! {326, 0}, ! {328, 0}, ! {330, 0}, }; grammar _PyParser_Grammar = { ! 75, dfas, ! {157, labels}, 256 }; Index: Tools/compiler/ast.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/compiler/ast.txt,v retrieving revision 1.6 diff -c -r1.6 ast.txt *** Tools/compiler/ast.txt 2 Aug 2004 06:10:11 -0000 1.6 --- Tools/compiler/ast.txt 12 Aug 2004 14:39:06 -0000 *************** *** 9,15 **** Module: doc*, node Stmt: nodes! Decorators: nodes! ! Function: decorators&, name*, argnames*, defaults!, flags*, doc*, code Lambda: argnames*, defaults!, flags*, code Class: name*, bases!, doc*, code Pass: --- 9,16 ---- Module: doc*, node Stmt: nodes! Decorators: nodes! ! Function: name*, argnames*, defaults!, flags*, doc*, code ! DecoratedThing: decorators, subnode Lambda: argnames*, defaults!, flags*, code Class: name*, bases!, doc*, code Pass: