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