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