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