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