1 /* File automatically generated by Parser/asdl_c.py. */ 2 3 #include "../Include/asdl.h" 4 5 typedef struct _mod *mod_ty; 6 7 typedef struct _stmt *stmt_ty; 8 9 typedef struct _expr *expr_ty; 10 11 typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5, Param=6 } 12 expr_context_ty; 13 14 typedef struct _slice *slice_ty; 15 16 typedef enum _boolop { And=1, Or=2 } boolop_ty; 17 18 typedef enum _operator { Add=1, Sub=2, Mult=3, Div=4, Mod=5, Pow=6, LShift=7, RShift=8, BitOr=9, 19 BitXor=10, BitAnd=11, FloorDiv=12 } operator_ty; 20 21 typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty; 22 23 typedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8, In=9, NotIn=10 } 24 cmpop_ty; 25 26 typedef struct _comprehension *comprehension_ty; 27 28 typedef struct _excepthandler *excepthandler_ty; 29 30 typedef struct _arguments *arguments_ty; 31 32 typedef struct _keyword *keyword_ty; 33 34 typedef struct _alias *alias_ty; 35 36 typedef struct _type_ignore *type_ignore_ty; 37 38 39 enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3, FunctionType_kind=4, 40 Suite_kind=5}; 41 struct _mod { 42 enum _mod_kind kind; 43 union { 44 struct { 45 asdl_seq *body; 46 asdl_seq *type_ignores; 47 } Module; 48 49 struct { 50 asdl_seq *body; 51 } Interactive; 52 53 struct { 54 expr_ty body; 55 } Expression; 56 57 struct { 58 asdl_seq *argtypes; 59 expr_ty returns; 60 } FunctionType; 61 62 struct { 63 asdl_seq *body; 64 } Suite; 65 66 } v; 67 }; 68 69 enum _stmt_kind {FunctionDef_kind=1, ClassDef_kind=2, Return_kind=3, Delete_kind=4, Assign_kind=5, 70 AugAssign_kind=6, Print_kind=7, For_kind=8, While_kind=9, If_kind=10, 71 With_kind=11, Raise_kind=12, TryExcept_kind=13, TryFinally_kind=14, 72 Assert_kind=15, Import_kind=16, ImportFrom_kind=17, Exec_kind=18, Global_kind=19, 73 Expr_kind=20, Pass_kind=21, Break_kind=22, Continue_kind=23}; 74 struct _stmt { 75 enum _stmt_kind kind; 76 union { 77 struct { 78 identifier name; 79 arguments_ty args; 80 asdl_seq *body; 81 asdl_seq *decorator_list; 82 string type_comment; 83 } FunctionDef; 84 85 struct { 86 identifier name; 87 asdl_seq *bases; 88 asdl_seq *body; 89 asdl_seq *decorator_list; 90 } ClassDef; 91 92 struct { 93 expr_ty value; 94 } Return; 95 96 struct { 97 asdl_seq *targets; 98 } Delete; 99 100 struct { 101 asdl_seq *targets; 102 expr_ty value; 103 string type_comment; 104 } Assign; 105 106 struct { 107 expr_ty target; 108 operator_ty op; 109 expr_ty value; 110 } AugAssign; 111 112 struct { 113 expr_ty dest; 114 asdl_seq *values; 115 bool nl; 116 } Print; 117 118 struct { 119 expr_ty target; 120 expr_ty iter; 121 asdl_seq *body; 122 asdl_seq *orelse; 123 string type_comment; 124 } For; 125 126 struct { 127 expr_ty test; 128 asdl_seq *body; 129 asdl_seq *orelse; 130 } While; 131 132 struct { 133 expr_ty test; 134 asdl_seq *body; 135 asdl_seq *orelse; 136 } If; 137 138 struct { 139 expr_ty context_expr; 140 expr_ty optional_vars; 141 asdl_seq *body; 142 string type_comment; 143 } With; 144 145 struct { 146 expr_ty type; 147 expr_ty inst; 148 expr_ty tback; 149 } Raise; 150 151 struct { 152 asdl_seq *body; 153 asdl_seq *handlers; 154 asdl_seq *orelse; 155 } TryExcept; 156 157 struct { 158 asdl_seq *body; 159 asdl_seq *finalbody; 160 } TryFinally; 161 162 struct { 163 expr_ty test; 164 expr_ty msg; 165 } Assert; 166 167 struct { 168 asdl_seq *names; 169 } Import; 170 171 struct { 172 identifier module; 173 asdl_seq *names; 174 int level; 175 } ImportFrom; 176 177 struct { 178 expr_ty body; 179 expr_ty globals; 180 expr_ty locals; 181 } Exec; 182 183 struct { 184 asdl_seq *names; 185 } Global; 186 187 struct { 188 expr_ty value; 189 } Expr; 190 191 } v; 192 int lineno; 193 int col_offset; 194 }; 195 196 enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4, IfExp_kind=5, 197 Dict_kind=6, Set_kind=7, ListComp_kind=8, SetComp_kind=9, DictComp_kind=10, 198 GeneratorExp_kind=11, Yield_kind=12, Compare_kind=13, Call_kind=14, Repr_kind=15, 199 Num_kind=16, Str_kind=17, Attribute_kind=18, Subscript_kind=19, Name_kind=20, 200 List_kind=21, Tuple_kind=22}; 201 struct _expr { 202 enum _expr_kind kind; 203 union { 204 struct { 205 boolop_ty op; 206 asdl_seq *values; 207 } BoolOp; 208 209 struct { 210 expr_ty left; 211 operator_ty op; 212 expr_ty right; 213 } BinOp; 214 215 struct { 216 unaryop_ty op; 217 expr_ty operand; 218 } UnaryOp; 219 220 struct { 221 arguments_ty args; 222 expr_ty body; 223 } Lambda; 224 225 struct { 226 expr_ty test; 227 expr_ty body; 228 expr_ty orelse; 229 } IfExp; 230 231 struct { 232 asdl_seq *keys; 233 asdl_seq *values; 234 } Dict; 235 236 struct { 237 asdl_seq *elts; 238 } Set; 239 240 struct { 241 expr_ty elt; 242 asdl_seq *generators; 243 } ListComp; 244 245 struct { 246 expr_ty elt; 247 asdl_seq *generators; 248 } SetComp; 249 250 struct { 251 expr_ty key; 252 expr_ty value; 253 asdl_seq *generators; 254 } DictComp; 255 256 struct { 257 expr_ty elt; 258 asdl_seq *generators; 259 } GeneratorExp; 260 261 struct { 262 expr_ty value; 263 } Yield; 264 265 struct { 266 expr_ty left; 267 asdl_int_seq *ops; 268 asdl_seq *comparators; 269 } Compare; 270 271 struct { 272 expr_ty func; 273 asdl_seq *args; 274 asdl_seq *keywords; 275 expr_ty starargs; 276 expr_ty kwargs; 277 } Call; 278 279 struct { 280 expr_ty value; 281 } Repr; 282 283 struct { 284 object n; 285 } Num; 286 287 struct { 288 string s; 289 string kind; 290 } Str; 291 292 struct { 293 expr_ty value; 294 identifier attr; 295 expr_context_ty ctx; 296 } Attribute; 297 298 struct { 299 expr_ty value; 300 slice_ty slice; 301 expr_context_ty ctx; 302 } Subscript; 303 304 struct { 305 identifier id; 306 expr_context_ty ctx; 307 } Name; 308 309 struct { 310 asdl_seq *elts; 311 expr_context_ty ctx; 312 } List; 313 314 struct { 315 asdl_seq *elts; 316 expr_context_ty ctx; 317 } Tuple; 318 319 } v; 320 int lineno; 321 int col_offset; 322 }; 323 324 enum _slice_kind {Ellipsis_kind=1, Slice_kind=2, ExtSlice_kind=3, Index_kind=4}; 325 struct _slice { 326 enum _slice_kind kind; 327 union { 328 struct { 329 expr_ty lower; 330 expr_ty upper; 331 expr_ty step; 332 } Slice; 333 334 struct { 335 asdl_seq *dims; 336 } ExtSlice; 337 338 struct { 339 expr_ty value; 340 } Index; 341 342 } v; 343 }; 344 345 struct _comprehension { 346 expr_ty target; 347 expr_ty iter; 348 asdl_seq *ifs; 349 }; 350 351 enum _excepthandler_kind {ExceptHandler_kind=1}; 352 struct _excepthandler { 353 enum _excepthandler_kind kind; 354 union { 355 struct { 356 expr_ty type; 357 expr_ty name; 358 asdl_seq *body; 359 } ExceptHandler; 360 361 } v; 362 int lineno; 363 int col_offset; 364 }; 365 366 struct _arguments { 367 asdl_seq *args; 368 identifier vararg; 369 identifier kwarg; 370 asdl_seq *defaults; 371 asdl_seq *type_comments; 372 }; 373 374 struct _keyword { 375 identifier arg; 376 expr_ty value; 377 }; 378 379 struct _alias { 380 identifier name; 381 identifier asname; 382 }; 383 384 enum _type_ignore_kind {TypeIgnore_kind=1}; 385 struct _type_ignore { 386 enum _type_ignore_kind kind; 387 union { 388 struct { 389 int lineno; 390 string tag; 391 } TypeIgnore; 392 393 } v; 394 }; 395 396 397 #define Module(a0, a1, a2) _Ta27_Module(a0, a1, a2) 398 mod_ty _Ta27_Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena); 399 #define Interactive(a0, a1) _Ta27_Interactive(a0, a1) 400 mod_ty _Ta27_Interactive(asdl_seq * body, PyArena *arena); 401 #define Expression(a0, a1) _Ta27_Expression(a0, a1) 402 mod_ty _Ta27_Expression(expr_ty body, PyArena *arena); 403 #define FunctionType(a0, a1, a2) _Ta27_FunctionType(a0, a1, a2) 404 mod_ty _Ta27_FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena); 405 #define Suite(a0, a1) _Ta27_Suite(a0, a1) 406 mod_ty _Ta27_Suite(asdl_seq * body, PyArena *arena); 407 #define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Ta27_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) 408 stmt_ty _Ta27_FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq * 409 decorator_list, string type_comment, int lineno, int col_offset, PyArena 410 *arena); 411 #define ClassDef(a0, a1, a2, a3, a4, a5, a6) _Ta27_ClassDef(a0, a1, a2, a3, a4, a5, a6) 412 stmt_ty _Ta27_ClassDef(identifier name, asdl_seq * bases, asdl_seq * body, asdl_seq * 413 decorator_list, int lineno, int col_offset, PyArena *arena); 414 #define Return(a0, a1, a2, a3) _Ta27_Return(a0, a1, a2, a3) 415 stmt_ty _Ta27_Return(expr_ty value, int lineno, int col_offset, PyArena *arena); 416 #define Delete(a0, a1, a2, a3) _Ta27_Delete(a0, a1, a2, a3) 417 stmt_ty _Ta27_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena *arena); 418 #define Assign(a0, a1, a2, a3, a4, a5) _Ta27_Assign(a0, a1, a2, a3, a4, a5) 419 stmt_ty _Ta27_Assign(asdl_seq * targets, expr_ty value, string type_comment, int lineno, int 420 col_offset, PyArena *arena); 421 #define AugAssign(a0, a1, a2, a3, a4, a5) _Ta27_AugAssign(a0, a1, a2, a3, a4, a5) 422 stmt_ty _Ta27_AugAssign(expr_ty target, operator_ty op, expr_ty value, int lineno, int col_offset, 423 PyArena *arena); 424 #define Print(a0, a1, a2, a3, a4, a5) _Ta27_Print(a0, a1, a2, a3, a4, a5) 425 stmt_ty _Ta27_Print(expr_ty dest, asdl_seq * values, bool nl, int lineno, int col_offset, PyArena 426 *arena); 427 #define For(a0, a1, a2, a3, a4, a5, a6, a7) _Ta27_For(a0, a1, a2, a3, a4, a5, a6, a7) 428 stmt_ty _Ta27_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse, string 429 type_comment, int lineno, int col_offset, PyArena *arena); 430 #define While(a0, a1, a2, a3, a4, a5) _Ta27_While(a0, a1, a2, a3, a4, a5) 431 stmt_ty _Ta27_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int col_offset, 432 PyArena *arena); 433 #define If(a0, a1, a2, a3, a4, a5) _Ta27_If(a0, a1, a2, a3, a4, a5) 434 stmt_ty _Ta27_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int col_offset, 435 PyArena *arena); 436 #define With(a0, a1, a2, a3, a4, a5, a6) _Ta27_With(a0, a1, a2, a3, a4, a5, a6) 437 stmt_ty _Ta27_With(expr_ty context_expr, expr_ty optional_vars, asdl_seq * body, string 438 type_comment, int lineno, int col_offset, PyArena *arena); 439 #define Raise(a0, a1, a2, a3, a4, a5) _Ta27_Raise(a0, a1, a2, a3, a4, a5) 440 stmt_ty _Ta27_Raise(expr_ty type, expr_ty inst, expr_ty tback, int lineno, int col_offset, PyArena 441 *arena); 442 #define TryExcept(a0, a1, a2, a3, a4, a5) _Ta27_TryExcept(a0, a1, a2, a3, a4, a5) 443 stmt_ty _Ta27_TryExcept(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse, int lineno, int 444 col_offset, PyArena *arena); 445 #define TryFinally(a0, a1, a2, a3, a4) _Ta27_TryFinally(a0, a1, a2, a3, a4) 446 stmt_ty _Ta27_TryFinally(asdl_seq * body, asdl_seq * finalbody, int lineno, int col_offset, PyArena 447 *arena); 448 #define Assert(a0, a1, a2, a3, a4) _Ta27_Assert(a0, a1, a2, a3, a4) 449 stmt_ty _Ta27_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, PyArena *arena); 450 #define Import(a0, a1, a2, a3) _Ta27_Import(a0, a1, a2, a3) 451 stmt_ty _Ta27_Import(asdl_seq * names, int lineno, int col_offset, PyArena *arena); 452 #define ImportFrom(a0, a1, a2, a3, a4, a5) _Ta27_ImportFrom(a0, a1, a2, a3, a4, a5) 453 stmt_ty _Ta27_ImportFrom(identifier module, asdl_seq * names, int level, int lineno, int 454 col_offset, PyArena *arena); 455 #define Exec(a0, a1, a2, a3, a4, a5) _Ta27_Exec(a0, a1, a2, a3, a4, a5) 456 stmt_ty _Ta27_Exec(expr_ty body, expr_ty globals, expr_ty locals, int lineno, int col_offset, 457 PyArena *arena); 458 #define Global(a0, a1, a2, a3) _Ta27_Global(a0, a1, a2, a3) 459 stmt_ty _Ta27_Global(asdl_seq * names, int lineno, int col_offset, PyArena *arena); 460 #define Expr(a0, a1, a2, a3) _Ta27_Expr(a0, a1, a2, a3) 461 stmt_ty _Ta27_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena); 462 #define Pass(a0, a1, a2) _Ta27_Pass(a0, a1, a2) 463 stmt_ty _Ta27_Pass(int lineno, int col_offset, PyArena *arena); 464 #define Break(a0, a1, a2) _Ta27_Break(a0, a1, a2) 465 stmt_ty _Ta27_Break(int lineno, int col_offset, PyArena *arena); 466 #define Continue(a0, a1, a2) _Ta27_Continue(a0, a1, a2) 467 stmt_ty _Ta27_Continue(int lineno, int col_offset, PyArena *arena); 468 #define BoolOp(a0, a1, a2, a3, a4) _Ta27_BoolOp(a0, a1, a2, a3, a4) 469 expr_ty _Ta27_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset, PyArena *arena); 470 #define BinOp(a0, a1, a2, a3, a4, a5) _Ta27_BinOp(a0, a1, a2, a3, a4, a5) 471 expr_ty _Ta27_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int col_offset, 472 PyArena *arena); 473 #define UnaryOp(a0, a1, a2, a3, a4) _Ta27_UnaryOp(a0, a1, a2, a3, a4) 474 expr_ty _Ta27_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset, PyArena *arena); 475 #define Lambda(a0, a1, a2, a3, a4) _Ta27_Lambda(a0, a1, a2, a3, a4) 476 expr_ty _Ta27_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset, PyArena *arena); 477 #define IfExp(a0, a1, a2, a3, a4, a5) _Ta27_IfExp(a0, a1, a2, a3, a4, a5) 478 expr_ty _Ta27_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int col_offset, PyArena 479 *arena); 480 #define Dict(a0, a1, a2, a3, a4) _Ta27_Dict(a0, a1, a2, a3, a4) 481 expr_ty _Ta27_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int col_offset, PyArena *arena); 482 #define Set(a0, a1, a2, a3) _Ta27_Set(a0, a1, a2, a3) 483 expr_ty _Ta27_Set(asdl_seq * elts, int lineno, int col_offset, PyArena *arena); 484 #define ListComp(a0, a1, a2, a3, a4) _Ta27_ListComp(a0, a1, a2, a3, a4) 485 expr_ty _Ta27_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, PyArena 486 *arena); 487 #define SetComp(a0, a1, a2, a3, a4) _Ta27_SetComp(a0, a1, a2, a3, a4) 488 expr_ty _Ta27_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, PyArena 489 *arena); 490 #define DictComp(a0, a1, a2, a3, a4, a5) _Ta27_DictComp(a0, a1, a2, a3, a4, a5) 491 expr_ty _Ta27_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int lineno, int 492 col_offset, PyArena *arena); 493 #define GeneratorExp(a0, a1, a2, a3, a4) _Ta27_GeneratorExp(a0, a1, a2, a3, a4) 494 expr_ty _Ta27_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, PyArena 495 *arena); 496 #define Yield(a0, a1, a2, a3) _Ta27_Yield(a0, a1, a2, a3) 497 expr_ty _Ta27_Yield(expr_ty value, int lineno, int col_offset, PyArena *arena); 498 #define Compare(a0, a1, a2, a3, a4, a5) _Ta27_Compare(a0, a1, a2, a3, a4, a5) 499 expr_ty _Ta27_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno, int 500 col_offset, PyArena *arena); 501 #define Call(a0, a1, a2, a3, a4, a5, a6, a7) _Ta27_Call(a0, a1, a2, a3, a4, a5, a6, a7) 502 expr_ty _Ta27_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, expr_ty starargs, expr_ty 503 kwargs, int lineno, int col_offset, PyArena *arena); 504 #define Repr(a0, a1, a2, a3) _Ta27_Repr(a0, a1, a2, a3) 505 expr_ty _Ta27_Repr(expr_ty value, int lineno, int col_offset, PyArena *arena); 506 #define Num(a0, a1, a2, a3) _Ta27_Num(a0, a1, a2, a3) 507 expr_ty _Ta27_Num(object n, int lineno, int col_offset, PyArena *arena); 508 #define Str(a0, a1, a2, a3, a4) _Ta27_Str(a0, a1, a2, a3, a4) 509 expr_ty _Ta27_Str(string s, string kind, int lineno, int col_offset, PyArena *arena); 510 #define Attribute(a0, a1, a2, a3, a4, a5) _Ta27_Attribute(a0, a1, a2, a3, a4, a5) 511 expr_ty _Ta27_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int lineno, int 512 col_offset, PyArena *arena); 513 #define Subscript(a0, a1, a2, a3, a4, a5) _Ta27_Subscript(a0, a1, a2, a3, a4, a5) 514 expr_ty _Ta27_Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx, int lineno, int 515 col_offset, PyArena *arena); 516 #define Name(a0, a1, a2, a3, a4) _Ta27_Name(a0, a1, a2, a3, a4) 517 expr_ty _Ta27_Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, PyArena *arena); 518 #define List(a0, a1, a2, a3, a4) _Ta27_List(a0, a1, a2, a3, a4) 519 expr_ty _Ta27_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, PyArena 520 *arena); 521 #define Tuple(a0, a1, a2, a3, a4) _Ta27_Tuple(a0, a1, a2, a3, a4) 522 expr_ty _Ta27_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, PyArena 523 *arena); 524 #define Ellipsis(a0) _Ta27_Ellipsis(a0) 525 slice_ty _Ta27_Ellipsis(PyArena *arena); 526 #define Slice(a0, a1, a2, a3) _Ta27_Slice(a0, a1, a2, a3) 527 slice_ty _Ta27_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena); 528 #define ExtSlice(a0, a1) _Ta27_ExtSlice(a0, a1) 529 slice_ty _Ta27_ExtSlice(asdl_seq * dims, PyArena *arena); 530 #define Index(a0, a1) _Ta27_Index(a0, a1) 531 slice_ty _Ta27_Index(expr_ty value, PyArena *arena); 532 #define comprehension(a0, a1, a2, a3) _Ta27_comprehension(a0, a1, a2, a3) 533 comprehension_ty _Ta27_comprehension(expr_ty target, expr_ty iter, asdl_seq * ifs, PyArena *arena); 534 #define ExceptHandler(a0, a1, a2, a3, a4, a5) _Ta27_ExceptHandler(a0, a1, a2, a3, a4, a5) 535 excepthandler_ty _Ta27_ExceptHandler(expr_ty type, expr_ty name, asdl_seq * body, int lineno, int 536 col_offset, PyArena *arena); 537 #define arguments(a0, a1, a2, a3, a4, a5) _Ta27_arguments(a0, a1, a2, a3, a4, a5) 538 arguments_ty _Ta27_arguments(asdl_seq * args, identifier vararg, identifier kwarg, asdl_seq * 539 defaults, asdl_seq * type_comments, PyArena *arena); 540 #define keyword(a0, a1, a2) _Ta27_keyword(a0, a1, a2) 541 keyword_ty _Ta27_keyword(identifier arg, expr_ty value, PyArena *arena); 542 #define alias(a0, a1, a2) _Ta27_alias(a0, a1, a2) 543 alias_ty _Ta27_alias(identifier name, identifier asname, PyArena *arena); 544 #define TypeIgnore(a0, a1, a2) _Ta27_TypeIgnore(a0, a1, a2) 545 type_ignore_ty _Ta27_TypeIgnore(int lineno, string tag, PyArena *arena); 546 547 PyObject* Ta27AST_mod2obj(mod_ty t); 548 mod_ty Ta27AST_obj2mod(PyObject* ast, PyArena* arena, int mode); 549 int Ta27AST_Check(PyObject* obj); 550