1// File automatically generated by Parser/asdl_c.py.
2
3#ifndef Py_INTERNAL_AST_H
4#define Py_INTERNAL_AST_H
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9#ifndef Py_BUILD_CORE
10# error "this header requires Py_BUILD_CORE define"
11#endif
12
13#include "pycore_asdl.h"
14
15typedef struct _mod *mod_ty;
16
17typedef struct _stmt *stmt_ty;
18
19typedef struct _expr *expr_ty;
20
21typedef enum _expr_context { Load=1, Store=2, Del=3 } expr_context_ty;
22
23typedef enum _boolop { And=1, Or=2 } boolop_ty;
24
25typedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7,
26 LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
27 FloorDiv=13 } operator_ty;
28
29typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty;
30
31typedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8,
32 In=9, NotIn=10 } cmpop_ty;
33
34typedef struct _comprehension *comprehension_ty;
35
36typedef struct _excepthandler *excepthandler_ty;
37
38typedef struct _arguments *arguments_ty;
39
40typedef struct _arg *arg_ty;
41
42typedef struct _keyword *keyword_ty;
43
44typedef struct _alias *alias_ty;
45
46typedef struct _withitem *withitem_ty;
47
48typedef struct _match_case *match_case_ty;
49
50typedef struct _pattern *pattern_ty;
51
52typedef struct _type_ignore *type_ignore_ty;
53
54
55typedef struct {
56 _ASDL_SEQ_HEAD
57 mod_ty typed_elements[1];
58} asdl_mod_seq;
59
60asdl_mod_seq *_Py_asdl_mod_seq_new(Py_ssize_t size, PyArena *arena);
61
62typedef struct {
63 _ASDL_SEQ_HEAD
64 stmt_ty typed_elements[1];
65} asdl_stmt_seq;
66
67asdl_stmt_seq *_Py_asdl_stmt_seq_new(Py_ssize_t size, PyArena *arena);
68
69typedef struct {
70 _ASDL_SEQ_HEAD
71 expr_ty typed_elements[1];
72} asdl_expr_seq;
73
74asdl_expr_seq *_Py_asdl_expr_seq_new(Py_ssize_t size, PyArena *arena);
75
76typedef struct {
77 _ASDL_SEQ_HEAD
78 comprehension_ty typed_elements[1];
79} asdl_comprehension_seq;
80
81asdl_comprehension_seq *_Py_asdl_comprehension_seq_new(Py_ssize_t size, PyArena
82 *arena);
83
84typedef struct {
85 _ASDL_SEQ_HEAD
86 excepthandler_ty typed_elements[1];
87} asdl_excepthandler_seq;
88
89asdl_excepthandler_seq *_Py_asdl_excepthandler_seq_new(Py_ssize_t size, PyArena
90 *arena);
91
92typedef struct {
93 _ASDL_SEQ_HEAD
94 arguments_ty typed_elements[1];
95} asdl_arguments_seq;
96
97asdl_arguments_seq *_Py_asdl_arguments_seq_new(Py_ssize_t size, PyArena *arena);
98
99typedef struct {
100 _ASDL_SEQ_HEAD
101 arg_ty typed_elements[1];
102} asdl_arg_seq;
103
104asdl_arg_seq *_Py_asdl_arg_seq_new(Py_ssize_t size, PyArena *arena);
105
106typedef struct {
107 _ASDL_SEQ_HEAD
108 keyword_ty typed_elements[1];
109} asdl_keyword_seq;
110
111asdl_keyword_seq *_Py_asdl_keyword_seq_new(Py_ssize_t size, PyArena *arena);
112
113typedef struct {
114 _ASDL_SEQ_HEAD
115 alias_ty typed_elements[1];
116} asdl_alias_seq;
117
118asdl_alias_seq *_Py_asdl_alias_seq_new(Py_ssize_t size, PyArena *arena);
119
120typedef struct {
121 _ASDL_SEQ_HEAD
122 withitem_ty typed_elements[1];
123} asdl_withitem_seq;
124
125asdl_withitem_seq *_Py_asdl_withitem_seq_new(Py_ssize_t size, PyArena *arena);
126
127typedef struct {
128 _ASDL_SEQ_HEAD
129 match_case_ty typed_elements[1];
130} asdl_match_case_seq;
131
132asdl_match_case_seq *_Py_asdl_match_case_seq_new(Py_ssize_t size, PyArena
133 *arena);
134
135typedef struct {
136 _ASDL_SEQ_HEAD
137 pattern_ty typed_elements[1];
138} asdl_pattern_seq;
139
140asdl_pattern_seq *_Py_asdl_pattern_seq_new(Py_ssize_t size, PyArena *arena);
141
142typedef struct {
143 _ASDL_SEQ_HEAD
144 type_ignore_ty typed_elements[1];
145} asdl_type_ignore_seq;
146
147asdl_type_ignore_seq *_Py_asdl_type_ignore_seq_new(Py_ssize_t size, PyArena
148 *arena);
149
150
151enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
152 FunctionType_kind=4};
153struct _mod {
154 enum _mod_kind kind;
155 union {
156 struct {
157 asdl_stmt_seq *body;
158 asdl_type_ignore_seq *type_ignores;
159 } Module;
160
161 struct {
162 asdl_stmt_seq *body;
163 } Interactive;
164
165 struct {
166 expr_ty body;
167 } Expression;
168
169 struct {
170 asdl_expr_seq *argtypes;
171 expr_ty returns;
172 } FunctionType;
173
174 } v;
175};
176
177enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
178 Return_kind=4, Delete_kind=5, Assign_kind=6,
179 AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,
180 AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,
181 AsyncWith_kind=14, Match_kind=15, Raise_kind=16, Try_kind=17,
182 Assert_kind=18, Import_kind=19, ImportFrom_kind=20,
183 Global_kind=21, Nonlocal_kind=22, Expr_kind=23, Pass_kind=24,
184 Break_kind=25, Continue_kind=26};
185struct _stmt {
186 enum _stmt_kind kind;
187 union {
188 struct {
189 identifier name;
190 arguments_ty args;
191 asdl_stmt_seq *body;
192 asdl_expr_seq *decorator_list;
193 expr_ty returns;
194 string type_comment;
195 } FunctionDef;
196
197 struct {
198 identifier name;
199 arguments_ty args;
200 asdl_stmt_seq *body;
201 asdl_expr_seq *decorator_list;
202 expr_ty returns;
203 string type_comment;
204 } AsyncFunctionDef;
205
206 struct {
207 identifier name;
208 asdl_expr_seq *bases;
209 asdl_keyword_seq *keywords;
210 asdl_stmt_seq *body;
211 asdl_expr_seq *decorator_list;
212 } ClassDef;
213
214 struct {
215 expr_ty value;
216 } Return;
217
218 struct {
219 asdl_expr_seq *targets;
220 } Delete;
221
222 struct {
223 asdl_expr_seq *targets;
224 expr_ty value;
225 string type_comment;
226 } Assign;
227
228 struct {
229 expr_ty target;
230 operator_ty op;
231 expr_ty value;
232 } AugAssign;
233
234 struct {
235 expr_ty target;
236 expr_ty annotation;
237 expr_ty value;
238 int simple;
239 } AnnAssign;
240
241 struct {
242 expr_ty target;
243 expr_ty iter;
244 asdl_stmt_seq *body;
245 asdl_stmt_seq *orelse;
246 string type_comment;
247 } For;
248
249 struct {
250 expr_ty target;
251 expr_ty iter;
252 asdl_stmt_seq *body;
253 asdl_stmt_seq *orelse;
254 string type_comment;
255 } AsyncFor;
256
257 struct {
258 expr_ty test;
259 asdl_stmt_seq *body;
260 asdl_stmt_seq *orelse;
261 } While;
262
263 struct {
264 expr_ty test;
265 asdl_stmt_seq *body;
266 asdl_stmt_seq *orelse;
267 } If;
268
269 struct {
270 asdl_withitem_seq *items;
271 asdl_stmt_seq *body;
272 string type_comment;
273 } With;
274
275 struct {
276 asdl_withitem_seq *items;
277 asdl_stmt_seq *body;
278 string type_comment;
279 } AsyncWith;
280
281 struct {
282 expr_ty subject;
283 asdl_match_case_seq *cases;
284 } Match;
285
286 struct {
287 expr_ty exc;
288 expr_ty cause;
289 } Raise;
290
291 struct {
292 asdl_stmt_seq *body;
293 asdl_excepthandler_seq *handlers;
294 asdl_stmt_seq *orelse;
295 asdl_stmt_seq *finalbody;
296 } Try;
297
298 struct {
299 expr_ty test;
300 expr_ty msg;
301 } Assert;
302
303 struct {
304 asdl_alias_seq *names;
305 } Import;
306
307 struct {
308 identifier module;
309 asdl_alias_seq *names;
310 int level;
311 } ImportFrom;
312
313 struct {
314 asdl_identifier_seq *names;
315 } Global;
316
317 struct {
318 asdl_identifier_seq *names;
319 } Nonlocal;
320
321 struct {
322 expr_ty value;
323 } Expr;
324
325 } v;
326 int lineno;
327 int col_offset;
328 int end_lineno;
329 int end_col_offset;
330};
331
332enum _expr_kind {BoolOp_kind=1, NamedExpr_kind=2, BinOp_kind=3, UnaryOp_kind=4,
333 Lambda_kind=5, IfExp_kind=6, Dict_kind=7, Set_kind=8,
334 ListComp_kind=9, SetComp_kind=10, DictComp_kind=11,
335 GeneratorExp_kind=12, Await_kind=13, Yield_kind=14,
336 YieldFrom_kind=15, Compare_kind=16, Call_kind=17,
337 FormattedValue_kind=18, JoinedStr_kind=19, Constant_kind=20,
338 Attribute_kind=21, Subscript_kind=22, Starred_kind=23,
339 Name_kind=24, List_kind=25, Tuple_kind=26, Slice_kind=27};
340struct _expr {
341 enum _expr_kind kind;
342 union {
343 struct {
344 boolop_ty op;
345 asdl_expr_seq *values;
346 } BoolOp;
347
348 struct {
349 expr_ty target;
350 expr_ty value;
351 } NamedExpr;
352
353 struct {
354 expr_ty left;
355 operator_ty op;
356 expr_ty right;
357 } BinOp;
358
359 struct {
360 unaryop_ty op;
361 expr_ty operand;
362 } UnaryOp;
363
364 struct {
365 arguments_ty args;
366 expr_ty body;
367 } Lambda;
368
369 struct {
370 expr_ty test;
371 expr_ty body;
372 expr_ty orelse;
373 } IfExp;
374
375 struct {
376 asdl_expr_seq *keys;
377 asdl_expr_seq *values;
378 } Dict;
379
380 struct {
381 asdl_expr_seq *elts;
382 } Set;
383
384 struct {
385 expr_ty elt;
386 asdl_comprehension_seq *generators;
387 } ListComp;
388
389 struct {
390 expr_ty elt;
391 asdl_comprehension_seq *generators;
392 } SetComp;
393
394 struct {
395 expr_ty key;
396 expr_ty value;
397 asdl_comprehension_seq *generators;
398 } DictComp;
399
400 struct {
401 expr_ty elt;
402 asdl_comprehension_seq *generators;
403 } GeneratorExp;
404
405 struct {
406 expr_ty value;
407 } Await;
408
409 struct {
410 expr_ty value;
411 } Yield;
412
413 struct {
414 expr_ty value;
415 } YieldFrom;
416
417 struct {
418 expr_ty left;
419 asdl_int_seq *ops;
420 asdl_expr_seq *comparators;
421 } Compare;
422
423 struct {
424 expr_ty func;
425 asdl_expr_seq *args;
426 asdl_keyword_seq *keywords;
427 } Call;
428
429 struct {
430 expr_ty value;
431 int conversion;
432 expr_ty format_spec;
433 } FormattedValue;
434
435 struct {
436 asdl_expr_seq *values;
437 } JoinedStr;
438
439 struct {
440 constant value;
441 string kind;
442 } Constant;
443
444 struct {
445 expr_ty value;
446 identifier attr;
447 expr_context_ty ctx;
448 } Attribute;
449
450 struct {
451 expr_ty value;
452 expr_ty slice;
453 expr_context_ty ctx;
454 } Subscript;
455
456 struct {
457 expr_ty value;
458 expr_context_ty ctx;
459 } Starred;
460
461 struct {
462 identifier id;
463 expr_context_ty ctx;
464 } Name;
465
466 struct {
467 asdl_expr_seq *elts;
468 expr_context_ty ctx;
469 } List;
470
471 struct {
472 asdl_expr_seq *elts;
473 expr_context_ty ctx;
474 } Tuple;
475
476 struct {
477 expr_ty lower;
478 expr_ty upper;
479 expr_ty step;
480 } Slice;
481
482 } v;
483 int lineno;
484 int col_offset;
485 int end_lineno;
486 int end_col_offset;
487};
488
489struct _comprehension {
490 expr_ty target;
491 expr_ty iter;
492 asdl_expr_seq *ifs;
493 int is_async;
494};
495
496enum _excepthandler_kind {ExceptHandler_kind=1};
497struct _excepthandler {
498 enum _excepthandler_kind kind;
499 union {
500 struct {
501 expr_ty type;
502 identifier name;
503 asdl_stmt_seq *body;
504 } ExceptHandler;
505
506 } v;
507 int lineno;
508 int col_offset;
509 int end_lineno;
510 int end_col_offset;
511};
512
513struct _arguments {
514 asdl_arg_seq *posonlyargs;
515 asdl_arg_seq *args;
516 arg_ty vararg;
517 asdl_arg_seq *kwonlyargs;
518 asdl_expr_seq *kw_defaults;
519 arg_ty kwarg;
520 asdl_expr_seq *defaults;
521};
522
523struct _arg {
524 identifier arg;
525 expr_ty annotation;
526 string type_comment;
527 int lineno;
528 int col_offset;
529 int end_lineno;
530 int end_col_offset;
531};
532
533struct _keyword {
534 identifier arg;
535 expr_ty value;
536 int lineno;
537 int col_offset;
538 int end_lineno;
539 int end_col_offset;
540};
541
542struct _alias {
543 identifier name;
544 identifier asname;
545 int lineno;
546 int col_offset;
547 int end_lineno;
548 int end_col_offset;
549};
550
551struct _withitem {
552 expr_ty context_expr;
553 expr_ty optional_vars;
554};
555
556struct _match_case {
557 pattern_ty pattern;
558 expr_ty guard;
559 asdl_stmt_seq *body;
560};
561
562enum _pattern_kind {MatchValue_kind=1, MatchSingleton_kind=2,
563 MatchSequence_kind=3, MatchMapping_kind=4,
564 MatchClass_kind=5, MatchStar_kind=6, MatchAs_kind=7,
565 MatchOr_kind=8};
566struct _pattern {
567 enum _pattern_kind kind;
568 union {
569 struct {
570 expr_ty value;
571 } MatchValue;
572
573 struct {
574 constant value;
575 } MatchSingleton;
576
577 struct {
578 asdl_pattern_seq *patterns;
579 } MatchSequence;
580
581 struct {
582 asdl_expr_seq *keys;
583 asdl_pattern_seq *patterns;
584 identifier rest;
585 } MatchMapping;
586
587 struct {
588 expr_ty cls;
589 asdl_pattern_seq *patterns;
590 asdl_identifier_seq *kwd_attrs;
591 asdl_pattern_seq *kwd_patterns;
592 } MatchClass;
593
594 struct {
595 identifier name;
596 } MatchStar;
597
598 struct {
599 pattern_ty pattern;
600 identifier name;
601 } MatchAs;
602
603 struct {
604 asdl_pattern_seq *patterns;
605 } MatchOr;
606
607 } v;
608 int lineno;
609 int col_offset;
610 int end_lineno;
611 int end_col_offset;
612};
613
614enum _type_ignore_kind {TypeIgnore_kind=1};
615struct _type_ignore {
616 enum _type_ignore_kind kind;
617 union {
618 struct {
619 int lineno;
620 string tag;
621 } TypeIgnore;
622
623 } v;
624};
625
626
627// Note: these macros affect function definitions, not only call sites.
628mod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq * type_ignores,
629 PyArena *arena);
630mod_ty _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena);
631mod_ty _PyAST_Expression(expr_ty body, PyArena *arena);
632mod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns, PyArena
633 *arena);
634stmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq *
635 body, asdl_expr_seq * decorator_list, expr_ty
636 returns, string type_comment, int lineno, int
637 col_offset, int end_lineno, int end_col_offset,
638 PyArena *arena);
639stmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args,
640 asdl_stmt_seq * body, asdl_expr_seq *
641 decorator_list, expr_ty returns, string
642 type_comment, int lineno, int col_offset, int
643 end_lineno, int end_col_offset, PyArena *arena);
644stmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases,
645 asdl_keyword_seq * keywords, asdl_stmt_seq * body,
646 asdl_expr_seq * decorator_list, int lineno, int
647 col_offset, int end_lineno, int end_col_offset, PyArena
648 *arena);
649stmt_ty _PyAST_Return(expr_ty value, int lineno, int col_offset, int
650 end_lineno, int end_col_offset, PyArena *arena);
651stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int
652 end_lineno, int end_col_offset, PyArena *arena);
653stmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string
654 type_comment, int lineno, int col_offset, int end_lineno,
655 int end_col_offset, PyArena *arena);
656stmt_ty _PyAST_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
657 lineno, int col_offset, int end_lineno, int
658 end_col_offset, PyArena *arena);
659stmt_ty _PyAST_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
660 simple, int lineno, int col_offset, int end_lineno,
661 int end_col_offset, PyArena *arena);
662stmt_ty _PyAST_For(expr_ty target, expr_ty iter, asdl_stmt_seq * body,
663 asdl_stmt_seq * orelse, string type_comment, int lineno, int
664 col_offset, int end_lineno, int end_col_offset, PyArena
665 *arena);
666stmt_ty _PyAST_AsyncFor(expr_ty target, expr_ty iter, asdl_stmt_seq * body,
667 asdl_stmt_seq * orelse, string type_comment, int
668 lineno, int col_offset, int end_lineno, int
669 end_col_offset, PyArena *arena);
670stmt_ty _PyAST_While(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq *
671 orelse, int lineno, int col_offset, int end_lineno, int
672 end_col_offset, PyArena *arena);
673stmt_ty _PyAST_If(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * orelse,
674 int lineno, int col_offset, int end_lineno, int
675 end_col_offset, PyArena *arena);
676stmt_ty _PyAST_With(asdl_withitem_seq * items, asdl_stmt_seq * body, string
677 type_comment, int lineno, int col_offset, int end_lineno,
678 int end_col_offset, PyArena *arena);
679stmt_ty _PyAST_AsyncWith(asdl_withitem_seq * items, asdl_stmt_seq * body,
680 string type_comment, int lineno, int col_offset, int
681 end_lineno, int end_col_offset, PyArena *arena);
682stmt_ty _PyAST_Match(expr_ty subject, asdl_match_case_seq * cases, int lineno,
683 int col_offset, int end_lineno, int end_col_offset,
684 PyArena *arena);
685stmt_ty _PyAST_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
686 int end_lineno, int end_col_offset, PyArena *arena);
687stmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
688 asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
689 lineno, int col_offset, int end_lineno, int end_col_offset,
690 PyArena *arena);
691stmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
692 int end_lineno, int end_col_offset, PyArena *arena);
693stmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset, int
694 end_lineno, int end_col_offset, PyArena *arena);
695stmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names, int level,
696 int lineno, int col_offset, int end_lineno, int
697 end_col_offset, PyArena *arena);
698stmt_ty _PyAST_Global(asdl_identifier_seq * names, int lineno, int col_offset,
699 int end_lineno, int end_col_offset, PyArena *arena);
700stmt_ty _PyAST_Nonlocal(asdl_identifier_seq * names, int lineno, int
701 col_offset, int end_lineno, int end_col_offset, PyArena
702 *arena);
703stmt_ty _PyAST_Expr(expr_ty value, int lineno, int col_offset, int end_lineno,
704 int end_col_offset, PyArena *arena);
705stmt_ty _PyAST_Pass(int lineno, int col_offset, int end_lineno, int
706 end_col_offset, PyArena *arena);
707stmt_ty _PyAST_Break(int lineno, int col_offset, int end_lineno, int
708 end_col_offset, PyArena *arena);
709stmt_ty _PyAST_Continue(int lineno, int col_offset, int end_lineno, int
710 end_col_offset, PyArena *arena);
711expr_ty _PyAST_BoolOp(boolop_ty op, asdl_expr_seq * values, int lineno, int
712 col_offset, int end_lineno, int end_col_offset, PyArena
713 *arena);
714expr_ty _PyAST_NamedExpr(expr_ty target, expr_ty value, int lineno, int
715 col_offset, int end_lineno, int end_col_offset,
716 PyArena *arena);
717expr_ty _PyAST_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno,
718 int col_offset, int end_lineno, int end_col_offset,
719 PyArena *arena);
720expr_ty _PyAST_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int
721 col_offset, int end_lineno, int end_col_offset, PyArena
722 *arena);
723expr_ty _PyAST_Lambda(arguments_ty args, expr_ty body, int lineno, int
724 col_offset, int end_lineno, int end_col_offset, PyArena
725 *arena);
726expr_ty _PyAST_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno,
727 int col_offset, int end_lineno, int end_col_offset,
728 PyArena *arena);
729expr_ty _PyAST_Dict(asdl_expr_seq * keys, asdl_expr_seq * values, int lineno,
730 int col_offset, int end_lineno, int end_col_offset, PyArena
731 *arena);
732expr_ty _PyAST_Set(asdl_expr_seq * elts, int lineno, int col_offset, int
733 end_lineno, int end_col_offset, PyArena *arena);
734expr_ty _PyAST_ListComp(expr_ty elt, asdl_comprehension_seq * generators, int
735 lineno, int col_offset, int end_lineno, int
736 end_col_offset, PyArena *arena);
737expr_ty _PyAST_SetComp(expr_ty elt, asdl_comprehension_seq * generators, int
738 lineno, int col_offset, int end_lineno, int
739 end_col_offset, PyArena *arena);
740expr_ty _PyAST_DictComp(expr_ty key, expr_ty value, asdl_comprehension_seq *
741 generators, int lineno, int col_offset, int end_lineno,
742 int end_col_offset, PyArena *arena);
743expr_ty _PyAST_GeneratorExp(expr_ty elt, asdl_comprehension_seq * generators,
744 int lineno, int col_offset, int end_lineno, int
745 end_col_offset, PyArena *arena);
746expr_ty _PyAST_Await(expr_ty value, int lineno, int col_offset, int end_lineno,
747 int end_col_offset, PyArena *arena);
748expr_ty _PyAST_Yield(expr_ty value, int lineno, int col_offset, int end_lineno,
749 int end_col_offset, PyArena *arena);
750expr_ty _PyAST_YieldFrom(expr_ty value, int lineno, int col_offset, int
751 end_lineno, int end_col_offset, PyArena *arena);
752expr_ty _PyAST_Compare(expr_ty left, asdl_int_seq * ops, asdl_expr_seq *
753 comparators, int lineno, int col_offset, int end_lineno,
754 int end_col_offset, PyArena *arena);
755expr_ty _PyAST_Call(expr_ty func, asdl_expr_seq * args, asdl_keyword_seq *
756 keywords, int lineno, int col_offset, int end_lineno, int
757 end_col_offset, PyArena *arena);
758expr_ty _PyAST_FormattedValue(expr_ty value, int conversion, expr_ty
759 format_spec, int lineno, int col_offset, int
760 end_lineno, int end_col_offset, PyArena *arena);
761expr_ty _PyAST_JoinedStr(asdl_expr_seq * values, int lineno, int col_offset,
762 int end_lineno, int end_col_offset, PyArena *arena);
763expr_ty _PyAST_Constant(constant value, string kind, int lineno, int
764 col_offset, int end_lineno, int end_col_offset, PyArena
765 *arena);
766expr_ty _PyAST_Attribute(expr_ty value, identifier attr, expr_context_ty ctx,
767 int lineno, int col_offset, int end_lineno, int
768 end_col_offset, PyArena *arena);
769expr_ty _PyAST_Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int
770 lineno, int col_offset, int end_lineno, int
771 end_col_offset, PyArena *arena);
772expr_ty _PyAST_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
773 col_offset, int end_lineno, int end_col_offset, PyArena
774 *arena);
775expr_ty _PyAST_Name(identifier id, expr_context_ty ctx, int lineno, int
776 col_offset, int end_lineno, int end_col_offset, PyArena
777 *arena);
778expr_ty _PyAST_List(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int
779 col_offset, int end_lineno, int end_col_offset, PyArena
780 *arena);
781expr_ty _PyAST_Tuple(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int
782 col_offset, int end_lineno, int end_col_offset, PyArena
783 *arena);
784expr_ty _PyAST_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno,
785 int col_offset, int end_lineno, int end_col_offset,
786 PyArena *arena);
787comprehension_ty _PyAST_comprehension(expr_ty target, expr_ty iter,
788 asdl_expr_seq * ifs, int is_async,
789 PyArena *arena);
790excepthandler_ty _PyAST_ExceptHandler(expr_ty type, identifier name,
791 asdl_stmt_seq * body, int lineno, int
792 col_offset, int end_lineno, int
793 end_col_offset, PyArena *arena);
794arguments_ty _PyAST_arguments(asdl_arg_seq * posonlyargs, asdl_arg_seq * args,
795 arg_ty vararg, asdl_arg_seq * kwonlyargs,
796 asdl_expr_seq * kw_defaults, arg_ty kwarg,
797 asdl_expr_seq * defaults, PyArena *arena);
798arg_ty _PyAST_arg(identifier arg, expr_ty annotation, string type_comment, int
799 lineno, int col_offset, int end_lineno, int end_col_offset,
800 PyArena *arena);
801keyword_ty _PyAST_keyword(identifier arg, expr_ty value, int lineno, int
802 col_offset, int end_lineno, int end_col_offset,
803 PyArena *arena);
804alias_ty _PyAST_alias(identifier name, identifier asname, int lineno, int
805 col_offset, int end_lineno, int end_col_offset, PyArena
806 *arena);
807withitem_ty _PyAST_withitem(expr_ty context_expr, expr_ty optional_vars,
808 PyArena *arena);
809match_case_ty _PyAST_match_case(pattern_ty pattern, expr_ty guard,
810 asdl_stmt_seq * body, PyArena *arena);
811pattern_ty _PyAST_MatchValue(expr_ty value, int lineno, int col_offset, int
812 end_lineno, int end_col_offset, PyArena *arena);
813pattern_ty _PyAST_MatchSingleton(constant value, int lineno, int col_offset,
814 int end_lineno, int end_col_offset, PyArena
815 *arena);
816pattern_ty _PyAST_MatchSequence(asdl_pattern_seq * patterns, int lineno, int
817 col_offset, int end_lineno, int end_col_offset,
818 PyArena *arena);
819pattern_ty _PyAST_MatchMapping(asdl_expr_seq * keys, asdl_pattern_seq *
820 patterns, identifier rest, int lineno, int
821 col_offset, int end_lineno, int end_col_offset,
822 PyArena *arena);
823pattern_ty _PyAST_MatchClass(expr_ty cls, asdl_pattern_seq * patterns,
824 asdl_identifier_seq * kwd_attrs, asdl_pattern_seq
825 * kwd_patterns, int lineno, int col_offset, int
826 end_lineno, int end_col_offset, PyArena *arena);
827pattern_ty _PyAST_MatchStar(identifier name, int lineno, int col_offset, int
828 end_lineno, int end_col_offset, PyArena *arena);
829pattern_ty _PyAST_MatchAs(pattern_ty pattern, identifier name, int lineno, int
830 col_offset, int end_lineno, int end_col_offset,
831 PyArena *arena);
832pattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno, int
833 col_offset, int end_lineno, int end_col_offset,
834 PyArena *arena);
835type_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena);
836
837
838PyObject* PyAST_mod2obj(mod_ty t);
839mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
840int PyAST_Check(PyObject* obj);
841
842extern int _PyAST_Validate(mod_ty);
843
844/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
845extern PyObject* _PyAST_ExprAsUnicode(expr_ty);
846
847/* Return the borrowed reference to the first literal string in the
848 sequence of statements or NULL if it doesn't start from a literal string.
849 Doesn't set exception. */
850extern PyObject* _PyAST_GetDocString(asdl_stmt_seq *);
851
852#ifdef __cplusplus
853}
854#endif
855#endif /* !Py_INTERNAL_AST_H */
856