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