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