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