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