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, MatMult=4, Div=5, Mod=6, Pow=7,
19                         LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
20                         FloorDiv=13 } 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, AsyncFunctionDef_kind=2, ClassDef_kind=3,
67                  Return_kind=4, Delete_kind=5, Assign_kind=6,
68                  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};
74struct _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            expr_ty returns;
83        } FunctionDef;
84
85        struct {
86            identifier name;
87            arguments_ty args;
88            asdl_seq *body;
89            asdl_seq *decorator_list;
90            expr_ty returns;
91        } AsyncFunctionDef;
92
93        struct {
94            identifier name;
95            asdl_seq *bases;
96            asdl_seq *keywords;
97            asdl_seq *body;
98            asdl_seq *decorator_list;
99        } ClassDef;
100
101        struct {
102            expr_ty value;
103        } Return;
104
105        struct {
106            asdl_seq *targets;
107        } Delete;
108
109        struct {
110            asdl_seq *targets;
111            expr_ty value;
112        } Assign;
113
114        struct {
115            expr_ty target;
116            operator_ty op;
117            expr_ty value;
118        } AugAssign;
119
120        struct {
121            expr_ty target;
122            expr_ty annotation;
123            expr_ty value;
124            int simple;
125        } AnnAssign;
126
127        struct {
128            expr_ty target;
129            expr_ty iter;
130            asdl_seq *body;
131            asdl_seq *orelse;
132        } For;
133
134        struct {
135            expr_ty target;
136            expr_ty iter;
137            asdl_seq *body;
138            asdl_seq *orelse;
139        } AsyncFor;
140
141        struct {
142            expr_ty test;
143            asdl_seq *body;
144            asdl_seq *orelse;
145        } While;
146
147        struct {
148            expr_ty test;
149            asdl_seq *body;
150            asdl_seq *orelse;
151        } If;
152
153        struct {
154            asdl_seq *items;
155            asdl_seq *body;
156        } With;
157
158        struct {
159            asdl_seq *items;
160            asdl_seq *body;
161        } AsyncWith;
162
163        struct {
164            expr_ty exc;
165            expr_ty cause;
166        } Raise;
167
168        struct {
169            asdl_seq *body;
170            asdl_seq *handlers;
171            asdl_seq *orelse;
172            asdl_seq *finalbody;
173        } Try;
174
175        struct {
176            expr_ty test;
177            expr_ty msg;
178        } Assert;
179
180        struct {
181            asdl_seq *names;
182        } Import;
183
184        struct {
185            identifier module;
186            asdl_seq *names;
187            int level;
188        } ImportFrom;
189
190        struct {
191            asdl_seq *names;
192        } Global;
193
194        struct {
195            asdl_seq *names;
196        } Nonlocal;
197
198        struct {
199            expr_ty value;
200        } Expr;
201
202    } v;
203    int lineno;
204    int col_offset;
205};
206
207enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4,
208                  IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8,
209                  SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11,
210                  Await_kind=12, Yield_kind=13, YieldFrom_kind=14,
211                  Compare_kind=15, Call_kind=16, Num_kind=17, Str_kind=18,
212                  FormattedValue_kind=19, JoinedStr_kind=20, Bytes_kind=21,
213                  NameConstant_kind=22, Ellipsis_kind=23, Constant_kind=24,
214                  Attribute_kind=25, Subscript_kind=26, Starred_kind=27,
215                  Name_kind=28, List_kind=29, Tuple_kind=30};
216struct _expr {
217    enum _expr_kind kind;
218    union {
219        struct {
220            boolop_ty op;
221            asdl_seq *values;
222        } BoolOp;
223
224        struct {
225            expr_ty left;
226            operator_ty op;
227            expr_ty right;
228        } BinOp;
229
230        struct {
231            unaryop_ty op;
232            expr_ty operand;
233        } UnaryOp;
234
235        struct {
236            arguments_ty args;
237            expr_ty body;
238        } Lambda;
239
240        struct {
241            expr_ty test;
242            expr_ty body;
243            expr_ty orelse;
244        } IfExp;
245
246        struct {
247            asdl_seq *keys;
248            asdl_seq *values;
249        } Dict;
250
251        struct {
252            asdl_seq *elts;
253        } Set;
254
255        struct {
256            expr_ty elt;
257            asdl_seq *generators;
258        } ListComp;
259
260        struct {
261            expr_ty elt;
262            asdl_seq *generators;
263        } SetComp;
264
265        struct {
266            expr_ty key;
267            expr_ty value;
268            asdl_seq *generators;
269        } DictComp;
270
271        struct {
272            expr_ty elt;
273            asdl_seq *generators;
274        } GeneratorExp;
275
276        struct {
277            expr_ty value;
278        } Await;
279
280        struct {
281            expr_ty value;
282        } Yield;
283
284        struct {
285            expr_ty value;
286        } YieldFrom;
287
288        struct {
289            expr_ty left;
290            asdl_int_seq *ops;
291            asdl_seq *comparators;
292        } Compare;
293
294        struct {
295            expr_ty func;
296            asdl_seq *args;
297            asdl_seq *keywords;
298        } Call;
299
300        struct {
301            object n;
302        } Num;
303
304        struct {
305            string s;
306        } Str;
307
308        struct {
309            expr_ty value;
310            int conversion;
311            expr_ty format_spec;
312        } FormattedValue;
313
314        struct {
315            asdl_seq *values;
316        } JoinedStr;
317
318        struct {
319            bytes s;
320        } Bytes;
321
322        struct {
323            singleton value;
324        } NameConstant;
325
326        struct {
327            constant value;
328        } Constant;
329
330        struct {
331            expr_ty value;
332            identifier attr;
333            expr_context_ty ctx;
334        } Attribute;
335
336        struct {
337            expr_ty value;
338            slice_ty slice;
339            expr_context_ty ctx;
340        } Subscript;
341
342        struct {
343            expr_ty value;
344            expr_context_ty ctx;
345        } Starred;
346
347        struct {
348            identifier id;
349            expr_context_ty ctx;
350        } Name;
351
352        struct {
353            asdl_seq *elts;
354            expr_context_ty ctx;
355        } List;
356
357        struct {
358            asdl_seq *elts;
359            expr_context_ty ctx;
360        } Tuple;
361
362    } v;
363    int lineno;
364    int col_offset;
365};
366
367enum _slice_kind {Slice_kind=1, ExtSlice_kind=2, Index_kind=3};
368struct _slice {
369    enum _slice_kind kind;
370    union {
371        struct {
372            expr_ty lower;
373            expr_ty upper;
374            expr_ty step;
375        } Slice;
376
377        struct {
378            asdl_seq *dims;
379        } ExtSlice;
380
381        struct {
382            expr_ty value;
383        } Index;
384
385    } v;
386};
387
388struct _comprehension {
389    expr_ty target;
390    expr_ty iter;
391    asdl_seq *ifs;
392    int is_async;
393};
394
395enum _excepthandler_kind {ExceptHandler_kind=1};
396struct _excepthandler {
397    enum _excepthandler_kind kind;
398    union {
399        struct {
400            expr_ty type;
401            identifier name;
402            asdl_seq *body;
403        } ExceptHandler;
404
405    } v;
406    int lineno;
407    int col_offset;
408};
409
410struct _arguments {
411    asdl_seq *args;
412    arg_ty vararg;
413    asdl_seq *kwonlyargs;
414    asdl_seq *kw_defaults;
415    arg_ty kwarg;
416    asdl_seq *defaults;
417};
418
419struct _arg {
420    identifier arg;
421    expr_ty annotation;
422    int lineno;
423    int col_offset;
424};
425
426struct _keyword {
427    identifier arg;
428    expr_ty value;
429};
430
431struct _alias {
432    identifier name;
433    identifier asname;
434};
435
436struct _withitem {
437    expr_ty context_expr;
438    expr_ty optional_vars;
439};
440
441
442#define Module(a0, a1) _Py_Module(a0, a1)
443mod_ty _Py_Module(asdl_seq * body, PyArena *arena);
444#define Interactive(a0, a1) _Py_Interactive(a0, a1)
445mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
446#define Expression(a0, a1) _Py_Expression(a0, a1)
447mod_ty _Py_Expression(expr_ty body, PyArena *arena);
448#define Suite(a0, a1) _Py_Suite(a0, a1)
449mod_ty _Py_Suite(asdl_seq * body, PyArena *arena);
450#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
451stmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body,
452                        asdl_seq * decorator_list, expr_ty returns, int lineno,
453                        int col_offset, PyArena *arena);
454#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
455stmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq *
456                             body, asdl_seq * decorator_list, expr_ty returns,
457                             int lineno, int col_offset, PyArena *arena);
458#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7)
459stmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
460                     asdl_seq * body, asdl_seq * decorator_list, int lineno,
461                     int col_offset, PyArena *arena);
462#define Return(a0, a1, a2, a3) _Py_Return(a0, a1, a2, a3)
463stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, PyArena *arena);
464#define Delete(a0, a1, a2, a3) _Py_Delete(a0, a1, a2, a3)
465stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena
466                   *arena);
467#define Assign(a0, a1, a2, a3, a4) _Py_Assign(a0, a1, a2, a3, a4)
468stmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, int lineno, int
469                   col_offset, PyArena *arena);
470#define AugAssign(a0, a1, a2, a3, a4, a5) _Py_AugAssign(a0, a1, a2, a3, a4, a5)
471stmt_ty _Py_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
472                      lineno, int col_offset, PyArena *arena);
473#define AnnAssign(a0, a1, a2, a3, a4, a5, a6) _Py_AnnAssign(a0, a1, a2, a3, a4, a5, a6)
474stmt_ty _Py_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
475                      simple, int lineno, int col_offset, PyArena *arena);
476#define For(a0, a1, a2, a3, a4, a5, a6) _Py_For(a0, a1, a2, a3, a4, a5, a6)
477stmt_ty _Py_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
478                orelse, int lineno, int col_offset, PyArena *arena);
479#define AsyncFor(a0, a1, a2, a3, a4, a5, a6) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6)
480stmt_ty _Py_AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
481                     orelse, int lineno, int col_offset, PyArena *arena);
482#define While(a0, a1, a2, a3, a4, a5) _Py_While(a0, a1, a2, a3, a4, a5)
483stmt_ty _Py_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
484                  int col_offset, PyArena *arena);
485#define If(a0, a1, a2, a3, a4, a5) _Py_If(a0, a1, a2, a3, a4, a5)
486stmt_ty _Py_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
487               int col_offset, PyArena *arena);
488#define With(a0, a1, a2, a3, a4) _Py_With(a0, a1, a2, a3, a4)
489stmt_ty _Py_With(asdl_seq * items, asdl_seq * body, int lineno, int col_offset,
490                 PyArena *arena);
491#define AsyncWith(a0, a1, a2, a3, a4) _Py_AsyncWith(a0, a1, a2, a3, a4)
492stmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, int lineno, int
493                      col_offset, PyArena *arena);
494#define Raise(a0, a1, a2, a3, a4) _Py_Raise(a0, a1, a2, a3, a4)
495stmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
496                  PyArena *arena);
497#define Try(a0, a1, a2, a3, a4, a5, a6) _Py_Try(a0, a1, a2, a3, a4, a5, a6)
498stmt_ty _Py_Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
499                asdl_seq * finalbody, int lineno, int col_offset, PyArena
500                *arena);
501#define Assert(a0, a1, a2, a3, a4) _Py_Assert(a0, a1, a2, a3, a4)
502stmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
503                   PyArena *arena);
504#define Import(a0, a1, a2, a3) _Py_Import(a0, a1, a2, a3)
505stmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, PyArena
506                   *arena);
507#define ImportFrom(a0, a1, a2, a3, a4, a5) _Py_ImportFrom(a0, a1, a2, a3, a4, a5)
508stmt_ty _Py_ImportFrom(identifier module, asdl_seq * names, int level, int
509                       lineno, int col_offset, PyArena *arena);
510#define Global(a0, a1, a2, a3) _Py_Global(a0, a1, a2, a3)
511stmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, PyArena
512                   *arena);
513#define Nonlocal(a0, a1, a2, a3) _Py_Nonlocal(a0, a1, a2, a3)
514stmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, PyArena
515                     *arena);
516#define Expr(a0, a1, a2, a3) _Py_Expr(a0, a1, a2, a3)
517stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
518#define Pass(a0, a1, a2) _Py_Pass(a0, a1, a2)
519stmt_ty _Py_Pass(int lineno, int col_offset, PyArena *arena);
520#define Break(a0, a1, a2) _Py_Break(a0, a1, a2)
521stmt_ty _Py_Break(int lineno, int col_offset, PyArena *arena);
522#define Continue(a0, a1, a2) _Py_Continue(a0, a1, a2)
523stmt_ty _Py_Continue(int lineno, int col_offset, PyArena *arena);
524#define BoolOp(a0, a1, a2, a3, a4) _Py_BoolOp(a0, a1, a2, a3, a4)
525expr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
526                   PyArena *arena);
527#define BinOp(a0, a1, a2, a3, a4, a5) _Py_BinOp(a0, a1, a2, a3, a4, a5)
528expr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
529                  col_offset, PyArena *arena);
530#define UnaryOp(a0, a1, a2, a3, a4) _Py_UnaryOp(a0, a1, a2, a3, a4)
531expr_ty _Py_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
532                    PyArena *arena);
533#define Lambda(a0, a1, a2, a3, a4) _Py_Lambda(a0, a1, a2, a3, a4)
534expr_ty _Py_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
535                   PyArena *arena);
536#define IfExp(a0, a1, a2, a3, a4, a5) _Py_IfExp(a0, a1, a2, a3, a4, a5)
537expr_ty _Py_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int
538                  col_offset, PyArena *arena);
539#define Dict(a0, a1, a2, a3, a4) _Py_Dict(a0, a1, a2, a3, a4)
540expr_ty _Py_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int
541                 col_offset, PyArena *arena);
542#define Set(a0, a1, a2, a3) _Py_Set(a0, a1, a2, a3)
543expr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, PyArena *arena);
544#define ListComp(a0, a1, a2, a3, a4) _Py_ListComp(a0, a1, a2, a3, a4)
545expr_ty _Py_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
546                     col_offset, PyArena *arena);
547#define SetComp(a0, a1, a2, a3, a4) _Py_SetComp(a0, a1, a2, a3, a4)
548expr_ty _Py_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
549                    col_offset, PyArena *arena);
550#define DictComp(a0, a1, a2, a3, a4, a5) _Py_DictComp(a0, a1, a2, a3, a4, a5)
551expr_ty _Py_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int
552                     lineno, int col_offset, PyArena *arena);
553#define GeneratorExp(a0, a1, a2, a3, a4) _Py_GeneratorExp(a0, a1, a2, a3, a4)
554expr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
555                         col_offset, PyArena *arena);
556#define Await(a0, a1, a2, a3) _Py_Await(a0, a1, a2, a3)
557expr_ty _Py_Await(expr_ty value, int lineno, int col_offset, PyArena *arena);
558#define Yield(a0, a1, a2, a3) _Py_Yield(a0, a1, a2, a3)
559expr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, PyArena *arena);
560#define YieldFrom(a0, a1, a2, a3) _Py_YieldFrom(a0, a1, a2, a3)
561expr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, PyArena
562                      *arena);
563#define Compare(a0, a1, a2, a3, a4, a5) _Py_Compare(a0, a1, a2, a3, a4, a5)
564expr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
565                    int lineno, int col_offset, PyArena *arena);
566#define Call(a0, a1, a2, a3, a4, a5) _Py_Call(a0, a1, a2, a3, a4, a5)
567expr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
568                 lineno, int col_offset, PyArena *arena);
569#define Num(a0, a1, a2, a3) _Py_Num(a0, a1, a2, a3)
570expr_ty _Py_Num(object n, int lineno, int col_offset, PyArena *arena);
571#define Str(a0, a1, a2, a3) _Py_Str(a0, a1, a2, a3)
572expr_ty _Py_Str(string s, int lineno, int col_offset, PyArena *arena);
573#define FormattedValue(a0, a1, a2, a3, a4, a5) _Py_FormattedValue(a0, a1, a2, a3, a4, a5)
574expr_ty _Py_FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
575                           int lineno, int col_offset, PyArena *arena);
576#define JoinedStr(a0, a1, a2, a3) _Py_JoinedStr(a0, a1, a2, a3)
577expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, PyArena
578                      *arena);
579#define Bytes(a0, a1, a2, a3) _Py_Bytes(a0, a1, a2, a3)
580expr_ty _Py_Bytes(bytes s, int lineno, int col_offset, PyArena *arena);
581#define NameConstant(a0, a1, a2, a3) _Py_NameConstant(a0, a1, a2, a3)
582expr_ty _Py_NameConstant(singleton value, int lineno, int col_offset, PyArena
583                         *arena);
584#define Ellipsis(a0, a1, a2) _Py_Ellipsis(a0, a1, a2)
585expr_ty _Py_Ellipsis(int lineno, int col_offset, PyArena *arena);
586#define Constant(a0, a1, a2, a3) _Py_Constant(a0, a1, a2, a3)
587expr_ty _Py_Constant(constant value, int lineno, int col_offset, PyArena
588                     *arena);
589#define Attribute(a0, a1, a2, a3, a4, a5) _Py_Attribute(a0, a1, a2, a3, a4, a5)
590expr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int
591                      lineno, int col_offset, PyArena *arena);
592#define Subscript(a0, a1, a2, a3, a4, a5) _Py_Subscript(a0, a1, a2, a3, a4, a5)
593expr_ty _Py_Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx, int
594                      lineno, int col_offset, PyArena *arena);
595#define Starred(a0, a1, a2, a3, a4) _Py_Starred(a0, a1, a2, a3, a4)
596expr_ty _Py_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
597                    col_offset, PyArena *arena);
598#define Name(a0, a1, a2, a3, a4) _Py_Name(a0, a1, a2, a3, a4)
599expr_ty _Py_Name(identifier id, expr_context_ty ctx, int lineno, int
600                 col_offset, PyArena *arena);
601#define List(a0, a1, a2, a3, a4) _Py_List(a0, a1, a2, a3, a4)
602expr_ty _Py_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
603                 col_offset, PyArena *arena);
604#define Tuple(a0, a1, a2, a3, a4) _Py_Tuple(a0, a1, a2, a3, a4)
605expr_ty _Py_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
606                  col_offset, PyArena *arena);
607#define Slice(a0, a1, a2, a3) _Py_Slice(a0, a1, a2, a3)
608slice_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena);
609#define ExtSlice(a0, a1) _Py_ExtSlice(a0, a1)
610slice_ty _Py_ExtSlice(asdl_seq * dims, PyArena *arena);
611#define Index(a0, a1) _Py_Index(a0, a1)
612slice_ty _Py_Index(expr_ty value, PyArena *arena);
613#define comprehension(a0, a1, a2, a3, a4) _Py_comprehension(a0, a1, a2, a3, a4)
614comprehension_ty _Py_comprehension(expr_ty target, expr_ty iter, asdl_seq *
615                                   ifs, int is_async, PyArena *arena);
616#define ExceptHandler(a0, a1, a2, a3, a4, a5) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5)
617excepthandler_ty _Py_ExceptHandler(expr_ty type, identifier name, asdl_seq *
618                                   body, int lineno, int col_offset, PyArena
619                                   *arena);
620#define arguments(a0, a1, a2, a3, a4, a5, a6) _Py_arguments(a0, a1, a2, a3, a4, a5, a6)
621arguments_ty _Py_arguments(asdl_seq * args, arg_ty vararg, asdl_seq *
622                           kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg,
623                           asdl_seq * defaults, PyArena *arena);
624#define arg(a0, a1, a2, a3, a4) _Py_arg(a0, a1, a2, a3, a4)
625arg_ty _Py_arg(identifier arg, expr_ty annotation, int lineno, int col_offset,
626               PyArena *arena);
627#define keyword(a0, a1, a2) _Py_keyword(a0, a1, a2)
628keyword_ty _Py_keyword(identifier arg, expr_ty value, PyArena *arena);
629#define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
630alias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
631#define withitem(a0, a1, a2) _Py_withitem(a0, a1, a2)
632withitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
633                         *arena);
634
635PyObject* PyAST_mod2obj(mod_ty t);
636mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
637int PyAST_Check(PyObject* obj);
638