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