1 /* File automatically generated by Parser/asdl_c.py. */
2 
3 #include "asdl.h"
4 
5 typedef struct _mod *mod_ty;
6 
7 typedef struct _stmt *stmt_ty;
8 
9 typedef struct _expr *expr_ty;
10 
11 typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5,
12                              Param=6 } expr_context_ty;
13 
14 typedef struct _slice *slice_ty;
15 
16 typedef enum _boolop { And=1, Or=2 } boolop_ty;
17 
18 typedef 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 
22 typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty;
23 
24 typedef 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 
27 typedef struct _comprehension *comprehension_ty;
28 
29 typedef struct _excepthandler *excepthandler_ty;
30 
31 typedef struct _arguments *arguments_ty;
32 
33 typedef struct _keyword *keyword_ty;
34 
35 typedef struct _alias *alias_ty;
36 
37 
38 enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
39                  Suite_kind=4};
40 struct _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 
62 enum _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};
69 struct _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 
187 enum _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};
193 struct _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 
315 enum _slice_kind {Ellipsis_kind=1, Slice_kind=2, ExtSlice_kind=3, Index_kind=4};
316 struct _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 
336 struct _comprehension {
337         expr_ty target;
338         expr_ty iter;
339         asdl_seq *ifs;
340 };
341 
342 enum _excepthandler_kind {ExceptHandler_kind=1};
343 struct _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 
357 struct _arguments {
358         asdl_seq *args;
359         identifier vararg;
360         identifier kwarg;
361         asdl_seq *defaults;
362 };
363 
364 struct _keyword {
365         identifier arg;
366         expr_ty value;
367 };
368 
369 struct _alias {
370         identifier name;
371         identifier asname;
372 };
373 
374 
375 #define Module(a0, a1) _Py_Module(a0, a1)
376 mod_ty _Py_Module(asdl_seq * body, PyArena *arena);
377 #define Interactive(a0, a1) _Py_Interactive(a0, a1)
378 mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
379 #define Expression(a0, a1) _Py_Expression(a0, a1)
380 mod_ty _Py_Expression(expr_ty body, PyArena *arena);
381 #define Suite(a0, a1) _Py_Suite(a0, a1)
382 mod_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)
384 stmt_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)
388 stmt_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)
392 stmt_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)
394 stmt_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)
397 stmt_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)
400 stmt_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)
403 stmt_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)
406 stmt_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)
409 stmt_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)
412 stmt_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)
415 stmt_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)
418 stmt_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)
421 stmt_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)
424 stmt_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)
427 stmt_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)
430 stmt_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)
433 stmt_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)
436 stmt_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)
439 stmt_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)
442 stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
443 #define Pass(a0, a1, a2) _Py_Pass(a0, a1, a2)
444 stmt_ty _Py_Pass(int lineno, int col_offset, PyArena *arena);
445 #define Break(a0, a1, a2) _Py_Break(a0, a1, a2)
446 stmt_ty _Py_Break(int lineno, int col_offset, PyArena *arena);
447 #define Continue(a0, a1, a2) _Py_Continue(a0, a1, a2)
448 stmt_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)
450 expr_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)
453 expr_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)
456 expr_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)
459 expr_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)
462 expr_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)
465 expr_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)
468 expr_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)
470 expr_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)
473 expr_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)
476 expr_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)
479 expr_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)
482 expr_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)
484 expr_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)
487 expr_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)
491 expr_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)
493 expr_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)
495 expr_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)
497 expr_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)
500 expr_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)
503 expr_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)
506 expr_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)
509 expr_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)
512 slice_ty _Py_Ellipsis(PyArena *arena);
513 #define Slice(a0, a1, a2, a3) _Py_Slice(a0, a1, a2, a3)
514 slice_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena);
515 #define ExtSlice(a0, a1) _Py_ExtSlice(a0, a1)
516 slice_ty _Py_ExtSlice(asdl_seq * dims, PyArena *arena);
517 #define Index(a0, a1) _Py_Index(a0, a1)
518 slice_ty _Py_Index(expr_ty value, PyArena *arena);
519 #define comprehension(a0, a1, a2, a3) _Py_comprehension(a0, a1, a2, a3)
520 comprehension_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)
523 excepthandler_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)
526 arguments_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)
529 keyword_ty _Py_keyword(identifier arg, expr_ty value, PyArena *arena);
530 #define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
531 alias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
532 
533 PyObject* PyAST_mod2obj(mod_ty t);
534 mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
535 int PyAST_Check(PyObject* obj);
536