blob: 2913d1d2d0a96b664c9a534e3189291c40d1ad21 [file] [log] [blame]
Thomas Wouterscf297e42007-02-23 15:07:44 +00001/* File automatically generated by Parser/asdl_c.py. */
Jeremy Hylton3e0055f2005-10-20 19:59:25 +00002
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
Benjamin Petersond51374e2014-04-09 23:55:56 -040018typedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7,
19 LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
20 FloorDiv=13 } operator_ty;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000021
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
Neal Norwitzc1505362006-12-28 06:47:50 +000033typedef struct _arg *arg_ty;
34
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000035typedef struct _keyword *keyword_ty;
36
37typedef struct _alias *alias_ty;
38
Benjamin Petersonbf1bbc12011-05-27 13:58:08 -050039typedef struct _withitem *withitem_ty;
40
Neal Norwitz7b5a6042005-11-13 19:14:20 +000041
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000042enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
43 Suite_kind=4};
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000044struct _mod {
Victor Stinnerce72e1c2013-07-27 00:00:36 +020045 enum _mod_kind kind;
46 union {
47 struct {
48 asdl_seq *body;
49 } Module;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030050
Victor Stinnerce72e1c2013-07-27 00:00:36 +020051 struct {
52 asdl_seq *body;
53 } Interactive;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030054
Victor Stinnerce72e1c2013-07-27 00:00:36 +020055 struct {
56 expr_ty body;
57 } Expression;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030058
Victor Stinnerce72e1c2013-07-27 00:00:36 +020059 struct {
60 asdl_seq *body;
61 } Suite;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030062
Victor Stinnerce72e1c2013-07-27 00:00:36 +020063 } v;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000064};
65
Yury Selivanov75445082015-05-11 22:57:16 -040066enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
67 Return_kind=4, Delete_kind=5, Assign_kind=6,
Yury Selivanovf8cb8a12016-09-08 20:50:03 -070068 AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,
69 AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,
70 AsyncWith_kind=14, Raise_kind=15, Try_kind=16,
71 Assert_kind=17, Import_kind=18, ImportFrom_kind=19,
72 Global_kind=20, Nonlocal_kind=21, Expr_kind=22, Pass_kind=23,
73 Break_kind=24, Continue_kind=25};
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000074struct _stmt {
Victor Stinnerce72e1c2013-07-27 00:00:36 +020075 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 expr_ty returns;
83 } FunctionDef;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030084
Victor Stinnerce72e1c2013-07-27 00:00:36 +020085 struct {
86 identifier name;
Yury Selivanov75445082015-05-11 22:57:16 -040087 arguments_ty args;
88 asdl_seq *body;
89 asdl_seq *decorator_list;
90 expr_ty returns;
91 } AsyncFunctionDef;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +030092
Yury Selivanov75445082015-05-11 22:57:16 -040093 struct {
94 identifier name;
Victor Stinnerce72e1c2013-07-27 00:00:36 +020095 asdl_seq *bases;
96 asdl_seq *keywords;
Victor Stinnerce72e1c2013-07-27 00:00:36 +020097 asdl_seq *body;
98 asdl_seq *decorator_list;
99 } ClassDef;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300100
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200101 struct {
102 expr_ty value;
103 } Return;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300104
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200105 struct {
106 asdl_seq *targets;
107 } Delete;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300108
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200109 struct {
110 asdl_seq *targets;
111 expr_ty value;
112 } Assign;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300113
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200114 struct {
115 expr_ty target;
116 operator_ty op;
117 expr_ty value;
118 } AugAssign;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300119
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200120 struct {
121 expr_ty target;
Yury Selivanovf8cb8a12016-09-08 20:50:03 -0700122 expr_ty annotation;
123 expr_ty value;
124 int simple;
125 } AnnAssign;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300126
Yury Selivanovf8cb8a12016-09-08 20:50:03 -0700127 struct {
128 expr_ty target;
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200129 expr_ty iter;
130 asdl_seq *body;
131 asdl_seq *orelse;
132 } For;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300133
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200134 struct {
Yury Selivanov75445082015-05-11 22:57:16 -0400135 expr_ty target;
136 expr_ty iter;
137 asdl_seq *body;
138 asdl_seq *orelse;
139 } AsyncFor;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300140
Yury Selivanov75445082015-05-11 22:57:16 -0400141 struct {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200142 expr_ty test;
143 asdl_seq *body;
144 asdl_seq *orelse;
145 } While;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300146
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200147 struct {
148 expr_ty test;
149 asdl_seq *body;
150 asdl_seq *orelse;
151 } If;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300152
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200153 struct {
154 asdl_seq *items;
155 asdl_seq *body;
156 } With;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300157
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200158 struct {
Yury Selivanov75445082015-05-11 22:57:16 -0400159 asdl_seq *items;
160 asdl_seq *body;
161 } AsyncWith;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300162
Yury Selivanov75445082015-05-11 22:57:16 -0400163 struct {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200164 expr_ty exc;
165 expr_ty cause;
166 } Raise;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300167
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200168 struct {
169 asdl_seq *body;
170 asdl_seq *handlers;
171 asdl_seq *orelse;
172 asdl_seq *finalbody;
173 } Try;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300174
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200175 struct {
176 expr_ty test;
177 expr_ty msg;
178 } Assert;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300179
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200180 struct {
181 asdl_seq *names;
182 } Import;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300183
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200184 struct {
185 identifier module;
186 asdl_seq *names;
187 int level;
188 } ImportFrom;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300189
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200190 struct {
191 asdl_seq *names;
192 } Global;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300193
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200194 struct {
195 asdl_seq *names;
196 } Nonlocal;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300197
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200198 struct {
199 expr_ty value;
200 } Expr;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300201
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200202 } v;
203 int lineno;
204 int col_offset;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000205};
206
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000207enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4,
Guido van Rossum86e58e22006-08-28 15:27:34 +0000208 IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8,
Guido van Rossum992d4a32007-07-11 13:09:30 +0000209 SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11,
Yury Selivanov75445082015-05-11 22:57:16 -0400210 Await_kind=12, Yield_kind=13, YieldFrom_kind=14,
Serhiy Storchaka3f228112018-09-27 17:42:37 +0300211 Compare_kind=15, Call_kind=16, FormattedValue_kind=17,
212 JoinedStr_kind=18, Constant_kind=19, Attribute_kind=20,
213 Subscript_kind=21, Starred_kind=22, Name_kind=23,
214 List_kind=24, Tuple_kind=25};
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000215struct _expr {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200216 enum _expr_kind kind;
217 union {
218 struct {
219 boolop_ty op;
220 asdl_seq *values;
221 } BoolOp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300222
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200223 struct {
224 expr_ty left;
225 operator_ty op;
226 expr_ty right;
227 } BinOp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300228
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200229 struct {
230 unaryop_ty op;
231 expr_ty operand;
232 } UnaryOp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300233
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200234 struct {
235 arguments_ty args;
236 expr_ty body;
237 } Lambda;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300238
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200239 struct {
240 expr_ty test;
241 expr_ty body;
242 expr_ty orelse;
243 } IfExp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300244
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200245 struct {
246 asdl_seq *keys;
247 asdl_seq *values;
248 } Dict;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300249
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200250 struct {
251 asdl_seq *elts;
252 } Set;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300253
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200254 struct {
255 expr_ty elt;
256 asdl_seq *generators;
257 } ListComp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300258
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200259 struct {
260 expr_ty elt;
261 asdl_seq *generators;
262 } SetComp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300263
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200264 struct {
265 expr_ty key;
266 expr_ty value;
267 asdl_seq *generators;
268 } DictComp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300269
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200270 struct {
271 expr_ty elt;
272 asdl_seq *generators;
273 } GeneratorExp;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300274
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200275 struct {
276 expr_ty value;
Yury Selivanov75445082015-05-11 22:57:16 -0400277 } Await;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300278
Yury Selivanov75445082015-05-11 22:57:16 -0400279 struct {
280 expr_ty value;
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200281 } Yield;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300282
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200283 struct {
284 expr_ty value;
285 } YieldFrom;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300286
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200287 struct {
288 expr_ty left;
289 asdl_int_seq *ops;
290 asdl_seq *comparators;
291 } Compare;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300292
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200293 struct {
294 expr_ty func;
295 asdl_seq *args;
296 asdl_seq *keywords;
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200297 } Call;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300298
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200299 struct {
Eric V. Smith235a6f02015-09-19 14:51:32 -0400300 expr_ty value;
301 int conversion;
302 expr_ty format_spec;
303 } FormattedValue;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300304
Eric V. Smith235a6f02015-09-19 14:51:32 -0400305 struct {
306 asdl_seq *values;
307 } JoinedStr;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300308
Eric V. Smith235a6f02015-09-19 14:51:32 -0400309 struct {
Victor Stinnerf2c1aa12016-01-26 00:40:57 +0100310 constant value;
311 } Constant;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300312
Victor Stinnerf2c1aa12016-01-26 00:40:57 +0100313 struct {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200314 expr_ty value;
315 identifier attr;
316 expr_context_ty ctx;
317 } Attribute;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300318
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200319 struct {
320 expr_ty value;
321 slice_ty slice;
322 expr_context_ty ctx;
323 } Subscript;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300324
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200325 struct {
326 expr_ty value;
327 expr_context_ty ctx;
328 } Starred;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300329
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200330 struct {
331 identifier id;
332 expr_context_ty ctx;
333 } Name;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300334
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200335 struct {
336 asdl_seq *elts;
337 expr_context_ty ctx;
338 } List;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300339
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200340 struct {
341 asdl_seq *elts;
342 expr_context_ty ctx;
343 } Tuple;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300344
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200345 } v;
346 int lineno;
347 int col_offset;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000348};
349
Georg Brandl52318d62006-09-06 07:06:08 +0000350enum _slice_kind {Slice_kind=1, ExtSlice_kind=2, Index_kind=3};
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000351struct _slice {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200352 enum _slice_kind kind;
353 union {
354 struct {
355 expr_ty lower;
356 expr_ty upper;
357 expr_ty step;
358 } Slice;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300359
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200360 struct {
361 asdl_seq *dims;
362 } ExtSlice;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300363
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200364 struct {
365 expr_ty value;
366 } Index;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300367
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200368 } v;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000369};
370
371struct _comprehension {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200372 expr_ty target;
373 expr_ty iter;
374 asdl_seq *ifs;
Yury Selivanov52c4e7c2016-09-09 10:36:01 -0700375 int is_async;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000376};
377
Neal Norwitzad74aa82008-03-31 05:14:30 +0000378enum _excepthandler_kind {ExceptHandler_kind=1};
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000379struct _excepthandler {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200380 enum _excepthandler_kind kind;
381 union {
382 struct {
383 expr_ty type;
384 identifier name;
385 asdl_seq *body;
386 } ExceptHandler;
Serhiy Storchaka5d84cb32017-09-15 06:28:22 +0300387
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200388 } v;
389 int lineno;
390 int col_offset;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000391};
392
393struct _arguments {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200394 asdl_seq *args;
Victor Stinneree4b59c2013-07-27 00:01:35 +0200395 arg_ty vararg;
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200396 asdl_seq *kwonlyargs;
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200397 asdl_seq *kw_defaults;
Victor Stinneree4b59c2013-07-27 00:01:35 +0200398 arg_ty kwarg;
399 asdl_seq *defaults;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000400};
401
Neal Norwitzc1505362006-12-28 06:47:50 +0000402struct _arg {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200403 identifier arg;
404 expr_ty annotation;
Victor Stinneree4b59c2013-07-27 00:01:35 +0200405 int lineno;
406 int col_offset;
Neal Norwitzc1505362006-12-28 06:47:50 +0000407};
408
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000409struct _keyword {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200410 identifier arg;
411 expr_ty value;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000412};
413
414struct _alias {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200415 identifier name;
416 identifier asname;
Jeremy Hylton3e0055f2005-10-20 19:59:25 +0000417};
418
Benjamin Petersonbf1bbc12011-05-27 13:58:08 -0500419struct _withitem {
Victor Stinnerce72e1c2013-07-27 00:00:36 +0200420 expr_ty context_expr;
421 expr_ty optional_vars;
Benjamin Petersonbf1bbc12011-05-27 13:58:08 -0500422};
423
Neal Norwitz7b5a6042005-11-13 19:14:20 +0000424
Serhiy Storchaka73cbe7a2018-05-29 12:04:55 +0300425#define Module(a0, a1) _Py_Module(a0, a1)
426mod_ty _Py_Module(asdl_seq * body, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000427#define Interactive(a0, a1) _Py_Interactive(a0, a1)
428mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
429#define Expression(a0, a1) _Py_Expression(a0, a1)
430mod_ty _Py_Expression(expr_ty body, PyArena *arena);
431#define Suite(a0, a1) _Py_Suite(a0, a1)
432mod_ty _Py_Suite(asdl_seq * body, PyArena *arena);
Serhiy Storchaka73cbe7a2018-05-29 12:04:55 +0300433#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
Thomas Woutersb2137042007-02-01 18:02:27 +0000434stmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body,
Serhiy Storchaka73cbe7a2018-05-29 12:04:55 +0300435 asdl_seq * decorator_list, expr_ty returns, int lineno,
436 int col_offset, PyArena *arena);
437#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
Yury Selivanov75445082015-05-11 22:57:16 -0400438stmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq *
439 body, asdl_seq * decorator_list, expr_ty returns,
Serhiy Storchaka73cbe7a2018-05-29 12:04:55 +0300440 int lineno, int col_offset, PyArena *arena);
441#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7)
Guido van Rossum52cc1d82007-03-18 15:41:51 +0000442stmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
Serhiy Storchaka73cbe7a2018-05-29 12:04:55 +0300443 asdl_seq * body, asdl_seq * decorator_list, int lineno,
444 int col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000445#define Return(a0, a1, a2, a3) _Py_Return(a0, a1, a2, a3)
446stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, PyArena *arena);
447#define Delete(a0, a1, a2, a3) _Py_Delete(a0, a1, a2, a3)
448stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena
449 *arena);
450#define Assign(a0, a1, a2, a3, a4) _Py_Assign(a0, a1, a2, a3, a4)
451stmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, int lineno, int
Martin v. Löwis49c5da12006-03-01 22:49:05 +0000452 col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000453#define AugAssign(a0, a1, a2, a3, a4, a5) _Py_AugAssign(a0, a1, a2, a3, a4, a5)
454stmt_ty _Py_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
455 lineno, int col_offset, PyArena *arena);
Yury Selivanovf8cb8a12016-09-08 20:50:03 -0700456#define AnnAssign(a0, a1, a2, a3, a4, a5, a6) _Py_AnnAssign(a0, a1, a2, a3, a4, a5, a6)
457stmt_ty _Py_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
458 simple, int lineno, int col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000459#define For(a0, a1, a2, a3, a4, a5, a6) _Py_For(a0, a1, a2, a3, a4, a5, a6)
460stmt_ty _Py_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
461 orelse, int lineno, int col_offset, PyArena *arena);
Yury Selivanov75445082015-05-11 22:57:16 -0400462#define AsyncFor(a0, a1, a2, a3, a4, a5, a6) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6)
463stmt_ty _Py_AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
464 orelse, int lineno, int col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000465#define While(a0, a1, a2, a3, a4, a5) _Py_While(a0, a1, a2, a3, a4, a5)
466stmt_ty _Py_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
467 int col_offset, PyArena *arena);
468#define If(a0, a1, a2, a3, a4, a5) _Py_If(a0, a1, a2, a3, a4, a5)
469stmt_ty _Py_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
470 int col_offset, PyArena *arena);
Benjamin Petersonbf1bbc12011-05-27 13:58:08 -0500471#define With(a0, a1, a2, a3, a4) _Py_With(a0, a1, a2, a3, a4)
472stmt_ty _Py_With(asdl_seq * items, asdl_seq * body, int lineno, int col_offset,
473 PyArena *arena);
Yury Selivanov75445082015-05-11 22:57:16 -0400474#define AsyncWith(a0, a1, a2, a3, a4) _Py_AsyncWith(a0, a1, a2, a3, a4)
475stmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, int lineno, int
476 col_offset, PyArena *arena);
Collin Winter828f04a2007-08-31 00:04:24 +0000477#define Raise(a0, a1, a2, a3, a4) _Py_Raise(a0, a1, a2, a3, a4)
478stmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
479 PyArena *arena);
Benjamin Peterson43af12b2011-05-29 11:43:10 -0500480#define Try(a0, a1, a2, a3, a4, a5, a6) _Py_Try(a0, a1, a2, a3, a4, a5, a6)
481stmt_ty _Py_Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
482 asdl_seq * finalbody, int lineno, int col_offset, PyArena
483 *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000484#define Assert(a0, a1, a2, a3, a4) _Py_Assert(a0, a1, a2, a3, a4)
485stmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
486 PyArena *arena);
487#define Import(a0, a1, a2, a3) _Py_Import(a0, a1, a2, a3)
488stmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, PyArena
489 *arena);
490#define ImportFrom(a0, a1, a2, a3, a4, a5) _Py_ImportFrom(a0, a1, a2, a3, a4, a5)
491stmt_ty _Py_ImportFrom(identifier module, asdl_seq * names, int level, int
492 lineno, int col_offset, PyArena *arena);
493#define Global(a0, a1, a2, a3) _Py_Global(a0, a1, a2, a3)
494stmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, PyArena
495 *arena);
Jeremy Hylton81e95022007-02-27 06:50:52 +0000496#define Nonlocal(a0, a1, a2, a3) _Py_Nonlocal(a0, a1, a2, a3)
497stmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, PyArena
498 *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000499#define Expr(a0, a1, a2, a3) _Py_Expr(a0, a1, a2, a3)
500stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
501#define Pass(a0, a1, a2) _Py_Pass(a0, a1, a2)
502stmt_ty _Py_Pass(int lineno, int col_offset, PyArena *arena);
503#define Break(a0, a1, a2) _Py_Break(a0, a1, a2)
504stmt_ty _Py_Break(int lineno, int col_offset, PyArena *arena);
505#define Continue(a0, a1, a2) _Py_Continue(a0, a1, a2)
506stmt_ty _Py_Continue(int lineno, int col_offset, PyArena *arena);
507#define BoolOp(a0, a1, a2, a3, a4) _Py_BoolOp(a0, a1, a2, a3, a4)
508expr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
509 PyArena *arena);
510#define BinOp(a0, a1, a2, a3, a4, a5) _Py_BinOp(a0, a1, a2, a3, a4, a5)
511expr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
512 col_offset, PyArena *arena);
513#define UnaryOp(a0, a1, a2, a3, a4) _Py_UnaryOp(a0, a1, a2, a3, a4)
514expr_ty _Py_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
515 PyArena *arena);
516#define Lambda(a0, a1, a2, a3, a4) _Py_Lambda(a0, a1, a2, a3, a4)
517expr_ty _Py_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
518 PyArena *arena);
519#define IfExp(a0, a1, a2, a3, a4, a5) _Py_IfExp(a0, a1, a2, a3, a4, a5)
520expr_ty _Py_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int
521 col_offset, PyArena *arena);
522#define Dict(a0, a1, a2, a3, a4) _Py_Dict(a0, a1, a2, a3, a4)
523expr_ty _Py_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int
Martin v. Löwis49c5da12006-03-01 22:49:05 +0000524 col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000525#define Set(a0, a1, a2, a3) _Py_Set(a0, a1, a2, a3)
526expr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, PyArena *arena);
527#define ListComp(a0, a1, a2, a3, a4) _Py_ListComp(a0, a1, a2, a3, a4)
528expr_ty _Py_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
Martin v. Löwis49c5da12006-03-01 22:49:05 +0000529 col_offset, PyArena *arena);
Nick Coghlan650f0d02007-04-15 12:05:43 +0000530#define SetComp(a0, a1, a2, a3, a4) _Py_SetComp(a0, a1, a2, a3, a4)
531expr_ty _Py_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
532 col_offset, PyArena *arena);
Guido van Rossum992d4a32007-07-11 13:09:30 +0000533#define DictComp(a0, a1, a2, a3, a4, a5) _Py_DictComp(a0, a1, a2, a3, a4, a5)
534expr_ty _Py_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int
535 lineno, int col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000536#define GeneratorExp(a0, a1, a2, a3, a4) _Py_GeneratorExp(a0, a1, a2, a3, a4)
537expr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
538 col_offset, PyArena *arena);
Yury Selivanov75445082015-05-11 22:57:16 -0400539#define Await(a0, a1, a2, a3) _Py_Await(a0, a1, a2, a3)
540expr_ty _Py_Await(expr_ty value, int lineno, int col_offset, PyArena *arena);
Benjamin Peterson527c6222012-01-14 08:58:23 -0500541#define Yield(a0, a1, a2, a3) _Py_Yield(a0, a1, a2, a3)
542expr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, PyArena *arena);
543#define YieldFrom(a0, a1, a2, a3) _Py_YieldFrom(a0, a1, a2, a3)
544expr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, PyArena
545 *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000546#define Compare(a0, a1, a2, a3, a4, a5) _Py_Compare(a0, a1, a2, a3, a4, a5)
547expr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
548 int lineno, int col_offset, PyArena *arena);
Benjamin Peterson025e9eb2015-05-05 20:16:41 -0400549#define Call(a0, a1, a2, a3, a4, a5) _Py_Call(a0, a1, a2, a3, a4, a5)
550expr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
551 lineno, int col_offset, PyArena *arena);
Eric V. Smith235a6f02015-09-19 14:51:32 -0400552#define FormattedValue(a0, a1, a2, a3, a4, a5) _Py_FormattedValue(a0, a1, a2, a3, a4, a5)
553expr_ty _Py_FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
554 int lineno, int col_offset, PyArena *arena);
555#define JoinedStr(a0, a1, a2, a3) _Py_JoinedStr(a0, a1, a2, a3)
556expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, PyArena
557 *arena);
Victor Stinnerf2c1aa12016-01-26 00:40:57 +0100558#define Constant(a0, a1, a2, a3) _Py_Constant(a0, a1, a2, a3)
559expr_ty _Py_Constant(constant value, int lineno, int col_offset, PyArena
560 *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000561#define Attribute(a0, a1, a2, a3, a4, a5) _Py_Attribute(a0, a1, a2, a3, a4, a5)
562expr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int
563 lineno, int col_offset, PyArena *arena);
564#define Subscript(a0, a1, a2, a3, a4, a5) _Py_Subscript(a0, a1, a2, a3, a4, a5)
565expr_ty _Py_Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx, int
566 lineno, int col_offset, PyArena *arena);
Guido van Rossum0368b722007-05-11 16:50:42 +0000567#define Starred(a0, a1, a2, a3, a4) _Py_Starred(a0, a1, a2, a3, a4)
568expr_ty _Py_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
569 col_offset, PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000570#define Name(a0, a1, a2, a3, a4) _Py_Name(a0, a1, a2, a3, a4)
571expr_ty _Py_Name(identifier id, expr_context_ty ctx, int lineno, int
572 col_offset, PyArena *arena);
573#define List(a0, a1, a2, a3, a4) _Py_List(a0, a1, a2, a3, a4)
574expr_ty _Py_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
575 col_offset, PyArena *arena);
576#define Tuple(a0, a1, a2, a3, a4) _Py_Tuple(a0, a1, a2, a3, a4)
577expr_ty _Py_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
578 col_offset, PyArena *arena);
579#define Slice(a0, a1, a2, a3) _Py_Slice(a0, a1, a2, a3)
580slice_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena);
581#define ExtSlice(a0, a1) _Py_ExtSlice(a0, a1)
582slice_ty _Py_ExtSlice(asdl_seq * dims, PyArena *arena);
583#define Index(a0, a1) _Py_Index(a0, a1)
584slice_ty _Py_Index(expr_ty value, PyArena *arena);
Yury Selivanov52c4e7c2016-09-09 10:36:01 -0700585#define comprehension(a0, a1, a2, a3, a4) _Py_comprehension(a0, a1, a2, a3, a4)
Thomas Woutersb2137042007-02-01 18:02:27 +0000586comprehension_ty _Py_comprehension(expr_ty target, expr_ty iter, asdl_seq *
Yury Selivanov52c4e7c2016-09-09 10:36:01 -0700587 ifs, int is_async, PyArena *arena);
Neal Norwitzad74aa82008-03-31 05:14:30 +0000588#define ExceptHandler(a0, a1, a2, a3, a4, a5) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5)
589excepthandler_ty _Py_ExceptHandler(expr_ty type, identifier name, asdl_seq *
Thomas Woutersb2137042007-02-01 18:02:27 +0000590 body, int lineno, int col_offset, PyArena
591 *arena);
Benjamin Petersoncda75be2013-03-18 10:48:58 -0700592#define arguments(a0, a1, a2, a3, a4, a5, a6) _Py_arguments(a0, a1, a2, a3, a4, a5, a6)
593arguments_ty _Py_arguments(asdl_seq * args, arg_ty vararg, asdl_seq *
594 kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg,
595 asdl_seq * defaults, PyArena *arena);
Victor Stinnerc106c682015-11-06 17:01:48 +0100596#define arg(a0, a1, a2, a3, a4) _Py_arg(a0, a1, a2, a3, a4)
597arg_ty _Py_arg(identifier arg, expr_ty annotation, int lineno, int col_offset,
598 PyArena *arena);
Thomas Woutersb2137042007-02-01 18:02:27 +0000599#define keyword(a0, a1, a2) _Py_keyword(a0, a1, a2)
600keyword_ty _Py_keyword(identifier arg, expr_ty value, PyArena *arena);
601#define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
602alias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
Benjamin Petersonbf1bbc12011-05-27 13:58:08 -0500603#define withitem(a0, a1, a2) _Py_withitem(a0, a1, a2)
604withitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
605 *arena);
Neal Norwitz7b5a6042005-11-13 19:14:20 +0000606
Martin v. Löwisbd260da2006-02-26 19:42:26 +0000607PyObject* PyAST_mod2obj(mod_ty t);
Neal Norwitzdb4115f2008-03-31 04:20:05 +0000608mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
Martin v. Löwis618dc5e2008-03-30 20:03:44 +0000609int PyAST_Check(PyObject* obj);