PageRenderTime 416ms CodeModel.GetById 101ms app.highlight 196ms RepoModel.GetById 111ms app.codeStats 0ms

/Include/Python-ast.h

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