17db96d56Sopenharmony_ci// File automatically generated by Parser/asdl_c.py.
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci#ifndef Py_INTERNAL_AST_H
47db96d56Sopenharmony_ci#define Py_INTERNAL_AST_H
57db96d56Sopenharmony_ci#ifdef __cplusplus
67db96d56Sopenharmony_ciextern "C" {
77db96d56Sopenharmony_ci#endif
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE
107db96d56Sopenharmony_ci#  error "this header requires Py_BUILD_CORE define"
117db96d56Sopenharmony_ci#endif
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci#include "pycore_asdl.h"
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_citypedef struct _mod *mod_ty;
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_citypedef struct _stmt *stmt_ty;
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_citypedef struct _expr *expr_ty;
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_citypedef enum _expr_context { Load=1, Store=2, Del=3 } expr_context_ty;
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_citypedef enum _boolop { And=1, Or=2 } boolop_ty;
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_citypedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7,
267db96d56Sopenharmony_ci                         LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
277db96d56Sopenharmony_ci                         FloorDiv=13 } operator_ty;
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_citypedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty;
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_citypedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8,
327db96d56Sopenharmony_ci                      In=9, NotIn=10 } cmpop_ty;
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_citypedef struct _comprehension *comprehension_ty;
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_citypedef struct _excepthandler *excepthandler_ty;
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_citypedef struct _arguments *arguments_ty;
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_citypedef struct _arg *arg_ty;
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_citypedef struct _keyword *keyword_ty;
437db96d56Sopenharmony_ci
447db96d56Sopenharmony_citypedef struct _alias *alias_ty;
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_citypedef struct _withitem *withitem_ty;
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_citypedef struct _match_case *match_case_ty;
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_citypedef struct _pattern *pattern_ty;
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_citypedef struct _type_ignore *type_ignore_ty;
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci
557db96d56Sopenharmony_citypedef struct {
567db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
577db96d56Sopenharmony_ci    mod_ty typed_elements[1];
587db96d56Sopenharmony_ci} asdl_mod_seq;
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ciasdl_mod_seq *_Py_asdl_mod_seq_new(Py_ssize_t size, PyArena *arena);
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_citypedef struct {
637db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
647db96d56Sopenharmony_ci    stmt_ty typed_elements[1];
657db96d56Sopenharmony_ci} asdl_stmt_seq;
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ciasdl_stmt_seq *_Py_asdl_stmt_seq_new(Py_ssize_t size, PyArena *arena);
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_citypedef struct {
707db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
717db96d56Sopenharmony_ci    expr_ty typed_elements[1];
727db96d56Sopenharmony_ci} asdl_expr_seq;
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ciasdl_expr_seq *_Py_asdl_expr_seq_new(Py_ssize_t size, PyArena *arena);
757db96d56Sopenharmony_ci
767db96d56Sopenharmony_citypedef struct {
777db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
787db96d56Sopenharmony_ci    comprehension_ty typed_elements[1];
797db96d56Sopenharmony_ci} asdl_comprehension_seq;
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_ciasdl_comprehension_seq *_Py_asdl_comprehension_seq_new(Py_ssize_t size, PyArena
827db96d56Sopenharmony_ci                                                       *arena);
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_citypedef struct {
857db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
867db96d56Sopenharmony_ci    excepthandler_ty typed_elements[1];
877db96d56Sopenharmony_ci} asdl_excepthandler_seq;
887db96d56Sopenharmony_ci
897db96d56Sopenharmony_ciasdl_excepthandler_seq *_Py_asdl_excepthandler_seq_new(Py_ssize_t size, PyArena
907db96d56Sopenharmony_ci                                                       *arena);
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_citypedef struct {
937db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
947db96d56Sopenharmony_ci    arguments_ty typed_elements[1];
957db96d56Sopenharmony_ci} asdl_arguments_seq;
967db96d56Sopenharmony_ci
977db96d56Sopenharmony_ciasdl_arguments_seq *_Py_asdl_arguments_seq_new(Py_ssize_t size, PyArena *arena);
987db96d56Sopenharmony_ci
997db96d56Sopenharmony_citypedef struct {
1007db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1017db96d56Sopenharmony_ci    arg_ty typed_elements[1];
1027db96d56Sopenharmony_ci} asdl_arg_seq;
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ciasdl_arg_seq *_Py_asdl_arg_seq_new(Py_ssize_t size, PyArena *arena);
1057db96d56Sopenharmony_ci
1067db96d56Sopenharmony_citypedef struct {
1077db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1087db96d56Sopenharmony_ci    keyword_ty typed_elements[1];
1097db96d56Sopenharmony_ci} asdl_keyword_seq;
1107db96d56Sopenharmony_ci
1117db96d56Sopenharmony_ciasdl_keyword_seq *_Py_asdl_keyword_seq_new(Py_ssize_t size, PyArena *arena);
1127db96d56Sopenharmony_ci
1137db96d56Sopenharmony_citypedef struct {
1147db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1157db96d56Sopenharmony_ci    alias_ty typed_elements[1];
1167db96d56Sopenharmony_ci} asdl_alias_seq;
1177db96d56Sopenharmony_ci
1187db96d56Sopenharmony_ciasdl_alias_seq *_Py_asdl_alias_seq_new(Py_ssize_t size, PyArena *arena);
1197db96d56Sopenharmony_ci
1207db96d56Sopenharmony_citypedef struct {
1217db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1227db96d56Sopenharmony_ci    withitem_ty typed_elements[1];
1237db96d56Sopenharmony_ci} asdl_withitem_seq;
1247db96d56Sopenharmony_ci
1257db96d56Sopenharmony_ciasdl_withitem_seq *_Py_asdl_withitem_seq_new(Py_ssize_t size, PyArena *arena);
1267db96d56Sopenharmony_ci
1277db96d56Sopenharmony_citypedef struct {
1287db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1297db96d56Sopenharmony_ci    match_case_ty typed_elements[1];
1307db96d56Sopenharmony_ci} asdl_match_case_seq;
1317db96d56Sopenharmony_ci
1327db96d56Sopenharmony_ciasdl_match_case_seq *_Py_asdl_match_case_seq_new(Py_ssize_t size, PyArena
1337db96d56Sopenharmony_ci                                                 *arena);
1347db96d56Sopenharmony_ci
1357db96d56Sopenharmony_citypedef struct {
1367db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1377db96d56Sopenharmony_ci    pattern_ty typed_elements[1];
1387db96d56Sopenharmony_ci} asdl_pattern_seq;
1397db96d56Sopenharmony_ci
1407db96d56Sopenharmony_ciasdl_pattern_seq *_Py_asdl_pattern_seq_new(Py_ssize_t size, PyArena *arena);
1417db96d56Sopenharmony_ci
1427db96d56Sopenharmony_citypedef struct {
1437db96d56Sopenharmony_ci    _ASDL_SEQ_HEAD
1447db96d56Sopenharmony_ci    type_ignore_ty typed_elements[1];
1457db96d56Sopenharmony_ci} asdl_type_ignore_seq;
1467db96d56Sopenharmony_ci
1477db96d56Sopenharmony_ciasdl_type_ignore_seq *_Py_asdl_type_ignore_seq_new(Py_ssize_t size, PyArena
1487db96d56Sopenharmony_ci                                                   *arena);
1497db96d56Sopenharmony_ci
1507db96d56Sopenharmony_ci
1517db96d56Sopenharmony_cienum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
1527db96d56Sopenharmony_ci                 FunctionType_kind=4};
1537db96d56Sopenharmony_cistruct _mod {
1547db96d56Sopenharmony_ci    enum _mod_kind kind;
1557db96d56Sopenharmony_ci    union {
1567db96d56Sopenharmony_ci        struct {
1577db96d56Sopenharmony_ci            asdl_stmt_seq *body;
1587db96d56Sopenharmony_ci            asdl_type_ignore_seq *type_ignores;
1597db96d56Sopenharmony_ci        } Module;
1607db96d56Sopenharmony_ci
1617db96d56Sopenharmony_ci        struct {
1627db96d56Sopenharmony_ci            asdl_stmt_seq *body;
1637db96d56Sopenharmony_ci        } Interactive;
1647db96d56Sopenharmony_ci
1657db96d56Sopenharmony_ci        struct {
1667db96d56Sopenharmony_ci            expr_ty body;
1677db96d56Sopenharmony_ci        } Expression;
1687db96d56Sopenharmony_ci
1697db96d56Sopenharmony_ci        struct {
1707db96d56Sopenharmony_ci            asdl_expr_seq *argtypes;
1717db96d56Sopenharmony_ci            expr_ty returns;
1727db96d56Sopenharmony_ci        } FunctionType;
1737db96d56Sopenharmony_ci
1747db96d56Sopenharmony_ci    } v;
1757db96d56Sopenharmony_ci};
1767db96d56Sopenharmony_ci
1777db96d56Sopenharmony_cienum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
1787db96d56Sopenharmony_ci                  Return_kind=4, Delete_kind=5, Assign_kind=6,
1797db96d56Sopenharmony_ci                  AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,
1807db96d56Sopenharmony_ci                  AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,
1817db96d56Sopenharmony_ci                  AsyncWith_kind=14, Match_kind=15, Raise_kind=16, Try_kind=17,
1827db96d56Sopenharmony_ci                  TryStar_kind=18, Assert_kind=19, Import_kind=20,
1837db96d56Sopenharmony_ci                  ImportFrom_kind=21, Global_kind=22, Nonlocal_kind=23,
1847db96d56Sopenharmony_ci                  Expr_kind=24, Pass_kind=25, Break_kind=26, Continue_kind=27};
1857db96d56Sopenharmony_cistruct _stmt {
1867db96d56Sopenharmony_ci    enum _stmt_kind kind;
1877db96d56Sopenharmony_ci    union {
1887db96d56Sopenharmony_ci        struct {
1897db96d56Sopenharmony_ci            identifier name;
1907db96d56Sopenharmony_ci            arguments_ty args;
1917db96d56Sopenharmony_ci            asdl_stmt_seq *body;
1927db96d56Sopenharmony_ci            asdl_expr_seq *decorator_list;
1937db96d56Sopenharmony_ci            expr_ty returns;
1947db96d56Sopenharmony_ci            string type_comment;
1957db96d56Sopenharmony_ci        } FunctionDef;
1967db96d56Sopenharmony_ci
1977db96d56Sopenharmony_ci        struct {
1987db96d56Sopenharmony_ci            identifier name;
1997db96d56Sopenharmony_ci            arguments_ty args;
2007db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2017db96d56Sopenharmony_ci            asdl_expr_seq *decorator_list;
2027db96d56Sopenharmony_ci            expr_ty returns;
2037db96d56Sopenharmony_ci            string type_comment;
2047db96d56Sopenharmony_ci        } AsyncFunctionDef;
2057db96d56Sopenharmony_ci
2067db96d56Sopenharmony_ci        struct {
2077db96d56Sopenharmony_ci            identifier name;
2087db96d56Sopenharmony_ci            asdl_expr_seq *bases;
2097db96d56Sopenharmony_ci            asdl_keyword_seq *keywords;
2107db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2117db96d56Sopenharmony_ci            asdl_expr_seq *decorator_list;
2127db96d56Sopenharmony_ci        } ClassDef;
2137db96d56Sopenharmony_ci
2147db96d56Sopenharmony_ci        struct {
2157db96d56Sopenharmony_ci            expr_ty value;
2167db96d56Sopenharmony_ci        } Return;
2177db96d56Sopenharmony_ci
2187db96d56Sopenharmony_ci        struct {
2197db96d56Sopenharmony_ci            asdl_expr_seq *targets;
2207db96d56Sopenharmony_ci        } Delete;
2217db96d56Sopenharmony_ci
2227db96d56Sopenharmony_ci        struct {
2237db96d56Sopenharmony_ci            asdl_expr_seq *targets;
2247db96d56Sopenharmony_ci            expr_ty value;
2257db96d56Sopenharmony_ci            string type_comment;
2267db96d56Sopenharmony_ci        } Assign;
2277db96d56Sopenharmony_ci
2287db96d56Sopenharmony_ci        struct {
2297db96d56Sopenharmony_ci            expr_ty target;
2307db96d56Sopenharmony_ci            operator_ty op;
2317db96d56Sopenharmony_ci            expr_ty value;
2327db96d56Sopenharmony_ci        } AugAssign;
2337db96d56Sopenharmony_ci
2347db96d56Sopenharmony_ci        struct {
2357db96d56Sopenharmony_ci            expr_ty target;
2367db96d56Sopenharmony_ci            expr_ty annotation;
2377db96d56Sopenharmony_ci            expr_ty value;
2387db96d56Sopenharmony_ci            int simple;
2397db96d56Sopenharmony_ci        } AnnAssign;
2407db96d56Sopenharmony_ci
2417db96d56Sopenharmony_ci        struct {
2427db96d56Sopenharmony_ci            expr_ty target;
2437db96d56Sopenharmony_ci            expr_ty iter;
2447db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2457db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
2467db96d56Sopenharmony_ci            string type_comment;
2477db96d56Sopenharmony_ci        } For;
2487db96d56Sopenharmony_ci
2497db96d56Sopenharmony_ci        struct {
2507db96d56Sopenharmony_ci            expr_ty target;
2517db96d56Sopenharmony_ci            expr_ty iter;
2527db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2537db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
2547db96d56Sopenharmony_ci            string type_comment;
2557db96d56Sopenharmony_ci        } AsyncFor;
2567db96d56Sopenharmony_ci
2577db96d56Sopenharmony_ci        struct {
2587db96d56Sopenharmony_ci            expr_ty test;
2597db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2607db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
2617db96d56Sopenharmony_ci        } While;
2627db96d56Sopenharmony_ci
2637db96d56Sopenharmony_ci        struct {
2647db96d56Sopenharmony_ci            expr_ty test;
2657db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2667db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
2677db96d56Sopenharmony_ci        } If;
2687db96d56Sopenharmony_ci
2697db96d56Sopenharmony_ci        struct {
2707db96d56Sopenharmony_ci            asdl_withitem_seq *items;
2717db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2727db96d56Sopenharmony_ci            string type_comment;
2737db96d56Sopenharmony_ci        } With;
2747db96d56Sopenharmony_ci
2757db96d56Sopenharmony_ci        struct {
2767db96d56Sopenharmony_ci            asdl_withitem_seq *items;
2777db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2787db96d56Sopenharmony_ci            string type_comment;
2797db96d56Sopenharmony_ci        } AsyncWith;
2807db96d56Sopenharmony_ci
2817db96d56Sopenharmony_ci        struct {
2827db96d56Sopenharmony_ci            expr_ty subject;
2837db96d56Sopenharmony_ci            asdl_match_case_seq *cases;
2847db96d56Sopenharmony_ci        } Match;
2857db96d56Sopenharmony_ci
2867db96d56Sopenharmony_ci        struct {
2877db96d56Sopenharmony_ci            expr_ty exc;
2887db96d56Sopenharmony_ci            expr_ty cause;
2897db96d56Sopenharmony_ci        } Raise;
2907db96d56Sopenharmony_ci
2917db96d56Sopenharmony_ci        struct {
2927db96d56Sopenharmony_ci            asdl_stmt_seq *body;
2937db96d56Sopenharmony_ci            asdl_excepthandler_seq *handlers;
2947db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
2957db96d56Sopenharmony_ci            asdl_stmt_seq *finalbody;
2967db96d56Sopenharmony_ci        } Try;
2977db96d56Sopenharmony_ci
2987db96d56Sopenharmony_ci        struct {
2997db96d56Sopenharmony_ci            asdl_stmt_seq *body;
3007db96d56Sopenharmony_ci            asdl_excepthandler_seq *handlers;
3017db96d56Sopenharmony_ci            asdl_stmt_seq *orelse;
3027db96d56Sopenharmony_ci            asdl_stmt_seq *finalbody;
3037db96d56Sopenharmony_ci        } TryStar;
3047db96d56Sopenharmony_ci
3057db96d56Sopenharmony_ci        struct {
3067db96d56Sopenharmony_ci            expr_ty test;
3077db96d56Sopenharmony_ci            expr_ty msg;
3087db96d56Sopenharmony_ci        } Assert;
3097db96d56Sopenharmony_ci
3107db96d56Sopenharmony_ci        struct {
3117db96d56Sopenharmony_ci            asdl_alias_seq *names;
3127db96d56Sopenharmony_ci        } Import;
3137db96d56Sopenharmony_ci
3147db96d56Sopenharmony_ci        struct {
3157db96d56Sopenharmony_ci            identifier module;
3167db96d56Sopenharmony_ci            asdl_alias_seq *names;
3177db96d56Sopenharmony_ci            int level;
3187db96d56Sopenharmony_ci        } ImportFrom;
3197db96d56Sopenharmony_ci
3207db96d56Sopenharmony_ci        struct {
3217db96d56Sopenharmony_ci            asdl_identifier_seq *names;
3227db96d56Sopenharmony_ci        } Global;
3237db96d56Sopenharmony_ci
3247db96d56Sopenharmony_ci        struct {
3257db96d56Sopenharmony_ci            asdl_identifier_seq *names;
3267db96d56Sopenharmony_ci        } Nonlocal;
3277db96d56Sopenharmony_ci
3287db96d56Sopenharmony_ci        struct {
3297db96d56Sopenharmony_ci            expr_ty value;
3307db96d56Sopenharmony_ci        } Expr;
3317db96d56Sopenharmony_ci
3327db96d56Sopenharmony_ci    } v;
3337db96d56Sopenharmony_ci    int lineno;
3347db96d56Sopenharmony_ci    int col_offset;
3357db96d56Sopenharmony_ci    int end_lineno;
3367db96d56Sopenharmony_ci    int end_col_offset;
3377db96d56Sopenharmony_ci};
3387db96d56Sopenharmony_ci
3397db96d56Sopenharmony_cienum _expr_kind {BoolOp_kind=1, NamedExpr_kind=2, BinOp_kind=3, UnaryOp_kind=4,
3407db96d56Sopenharmony_ci                  Lambda_kind=5, IfExp_kind=6, Dict_kind=7, Set_kind=8,
3417db96d56Sopenharmony_ci                  ListComp_kind=9, SetComp_kind=10, DictComp_kind=11,
3427db96d56Sopenharmony_ci                  GeneratorExp_kind=12, Await_kind=13, Yield_kind=14,
3437db96d56Sopenharmony_ci                  YieldFrom_kind=15, Compare_kind=16, Call_kind=17,
3447db96d56Sopenharmony_ci                  FormattedValue_kind=18, JoinedStr_kind=19, Constant_kind=20,
3457db96d56Sopenharmony_ci                  Attribute_kind=21, Subscript_kind=22, Starred_kind=23,
3467db96d56Sopenharmony_ci                  Name_kind=24, List_kind=25, Tuple_kind=26, Slice_kind=27};
3477db96d56Sopenharmony_cistruct _expr {
3487db96d56Sopenharmony_ci    enum _expr_kind kind;
3497db96d56Sopenharmony_ci    union {
3507db96d56Sopenharmony_ci        struct {
3517db96d56Sopenharmony_ci            boolop_ty op;
3527db96d56Sopenharmony_ci            asdl_expr_seq *values;
3537db96d56Sopenharmony_ci        } BoolOp;
3547db96d56Sopenharmony_ci
3557db96d56Sopenharmony_ci        struct {
3567db96d56Sopenharmony_ci            expr_ty target;
3577db96d56Sopenharmony_ci            expr_ty value;
3587db96d56Sopenharmony_ci        } NamedExpr;
3597db96d56Sopenharmony_ci
3607db96d56Sopenharmony_ci        struct {
3617db96d56Sopenharmony_ci            expr_ty left;
3627db96d56Sopenharmony_ci            operator_ty op;
3637db96d56Sopenharmony_ci            expr_ty right;
3647db96d56Sopenharmony_ci        } BinOp;
3657db96d56Sopenharmony_ci
3667db96d56Sopenharmony_ci        struct {
3677db96d56Sopenharmony_ci            unaryop_ty op;
3687db96d56Sopenharmony_ci            expr_ty operand;
3697db96d56Sopenharmony_ci        } UnaryOp;
3707db96d56Sopenharmony_ci
3717db96d56Sopenharmony_ci        struct {
3727db96d56Sopenharmony_ci            arguments_ty args;
3737db96d56Sopenharmony_ci            expr_ty body;
3747db96d56Sopenharmony_ci        } Lambda;
3757db96d56Sopenharmony_ci
3767db96d56Sopenharmony_ci        struct {
3777db96d56Sopenharmony_ci            expr_ty test;
3787db96d56Sopenharmony_ci            expr_ty body;
3797db96d56Sopenharmony_ci            expr_ty orelse;
3807db96d56Sopenharmony_ci        } IfExp;
3817db96d56Sopenharmony_ci
3827db96d56Sopenharmony_ci        struct {
3837db96d56Sopenharmony_ci            asdl_expr_seq *keys;
3847db96d56Sopenharmony_ci            asdl_expr_seq *values;
3857db96d56Sopenharmony_ci        } Dict;
3867db96d56Sopenharmony_ci
3877db96d56Sopenharmony_ci        struct {
3887db96d56Sopenharmony_ci            asdl_expr_seq *elts;
3897db96d56Sopenharmony_ci        } Set;
3907db96d56Sopenharmony_ci
3917db96d56Sopenharmony_ci        struct {
3927db96d56Sopenharmony_ci            expr_ty elt;
3937db96d56Sopenharmony_ci            asdl_comprehension_seq *generators;
3947db96d56Sopenharmony_ci        } ListComp;
3957db96d56Sopenharmony_ci
3967db96d56Sopenharmony_ci        struct {
3977db96d56Sopenharmony_ci            expr_ty elt;
3987db96d56Sopenharmony_ci            asdl_comprehension_seq *generators;
3997db96d56Sopenharmony_ci        } SetComp;
4007db96d56Sopenharmony_ci
4017db96d56Sopenharmony_ci        struct {
4027db96d56Sopenharmony_ci            expr_ty key;
4037db96d56Sopenharmony_ci            expr_ty value;
4047db96d56Sopenharmony_ci            asdl_comprehension_seq *generators;
4057db96d56Sopenharmony_ci        } DictComp;
4067db96d56Sopenharmony_ci
4077db96d56Sopenharmony_ci        struct {
4087db96d56Sopenharmony_ci            expr_ty elt;
4097db96d56Sopenharmony_ci            asdl_comprehension_seq *generators;
4107db96d56Sopenharmony_ci        } GeneratorExp;
4117db96d56Sopenharmony_ci
4127db96d56Sopenharmony_ci        struct {
4137db96d56Sopenharmony_ci            expr_ty value;
4147db96d56Sopenharmony_ci        } Await;
4157db96d56Sopenharmony_ci
4167db96d56Sopenharmony_ci        struct {
4177db96d56Sopenharmony_ci            expr_ty value;
4187db96d56Sopenharmony_ci        } Yield;
4197db96d56Sopenharmony_ci
4207db96d56Sopenharmony_ci        struct {
4217db96d56Sopenharmony_ci            expr_ty value;
4227db96d56Sopenharmony_ci        } YieldFrom;
4237db96d56Sopenharmony_ci
4247db96d56Sopenharmony_ci        struct {
4257db96d56Sopenharmony_ci            expr_ty left;
4267db96d56Sopenharmony_ci            asdl_int_seq *ops;
4277db96d56Sopenharmony_ci            asdl_expr_seq *comparators;
4287db96d56Sopenharmony_ci        } Compare;
4297db96d56Sopenharmony_ci
4307db96d56Sopenharmony_ci        struct {
4317db96d56Sopenharmony_ci            expr_ty func;
4327db96d56Sopenharmony_ci            asdl_expr_seq *args;
4337db96d56Sopenharmony_ci            asdl_keyword_seq *keywords;
4347db96d56Sopenharmony_ci        } Call;
4357db96d56Sopenharmony_ci
4367db96d56Sopenharmony_ci        struct {
4377db96d56Sopenharmony_ci            expr_ty value;
4387db96d56Sopenharmony_ci            int conversion;
4397db96d56Sopenharmony_ci            expr_ty format_spec;
4407db96d56Sopenharmony_ci        } FormattedValue;
4417db96d56Sopenharmony_ci
4427db96d56Sopenharmony_ci        struct {
4437db96d56Sopenharmony_ci            asdl_expr_seq *values;
4447db96d56Sopenharmony_ci        } JoinedStr;
4457db96d56Sopenharmony_ci
4467db96d56Sopenharmony_ci        struct {
4477db96d56Sopenharmony_ci            constant value;
4487db96d56Sopenharmony_ci            string kind;
4497db96d56Sopenharmony_ci        } Constant;
4507db96d56Sopenharmony_ci
4517db96d56Sopenharmony_ci        struct {
4527db96d56Sopenharmony_ci            expr_ty value;
4537db96d56Sopenharmony_ci            identifier attr;
4547db96d56Sopenharmony_ci            expr_context_ty ctx;
4557db96d56Sopenharmony_ci        } Attribute;
4567db96d56Sopenharmony_ci
4577db96d56Sopenharmony_ci        struct {
4587db96d56Sopenharmony_ci            expr_ty value;
4597db96d56Sopenharmony_ci            expr_ty slice;
4607db96d56Sopenharmony_ci            expr_context_ty ctx;
4617db96d56Sopenharmony_ci        } Subscript;
4627db96d56Sopenharmony_ci
4637db96d56Sopenharmony_ci        struct {
4647db96d56Sopenharmony_ci            expr_ty value;
4657db96d56Sopenharmony_ci            expr_context_ty ctx;
4667db96d56Sopenharmony_ci        } Starred;
4677db96d56Sopenharmony_ci
4687db96d56Sopenharmony_ci        struct {
4697db96d56Sopenharmony_ci            identifier id;
4707db96d56Sopenharmony_ci            expr_context_ty ctx;
4717db96d56Sopenharmony_ci        } Name;
4727db96d56Sopenharmony_ci
4737db96d56Sopenharmony_ci        struct {
4747db96d56Sopenharmony_ci            asdl_expr_seq *elts;
4757db96d56Sopenharmony_ci            expr_context_ty ctx;
4767db96d56Sopenharmony_ci        } List;
4777db96d56Sopenharmony_ci
4787db96d56Sopenharmony_ci        struct {
4797db96d56Sopenharmony_ci            asdl_expr_seq *elts;
4807db96d56Sopenharmony_ci            expr_context_ty ctx;
4817db96d56Sopenharmony_ci        } Tuple;
4827db96d56Sopenharmony_ci
4837db96d56Sopenharmony_ci        struct {
4847db96d56Sopenharmony_ci            expr_ty lower;
4857db96d56Sopenharmony_ci            expr_ty upper;
4867db96d56Sopenharmony_ci            expr_ty step;
4877db96d56Sopenharmony_ci        } Slice;
4887db96d56Sopenharmony_ci
4897db96d56Sopenharmony_ci    } v;
4907db96d56Sopenharmony_ci    int lineno;
4917db96d56Sopenharmony_ci    int col_offset;
4927db96d56Sopenharmony_ci    int end_lineno;
4937db96d56Sopenharmony_ci    int end_col_offset;
4947db96d56Sopenharmony_ci};
4957db96d56Sopenharmony_ci
4967db96d56Sopenharmony_cistruct _comprehension {
4977db96d56Sopenharmony_ci    expr_ty target;
4987db96d56Sopenharmony_ci    expr_ty iter;
4997db96d56Sopenharmony_ci    asdl_expr_seq *ifs;
5007db96d56Sopenharmony_ci    int is_async;
5017db96d56Sopenharmony_ci};
5027db96d56Sopenharmony_ci
5037db96d56Sopenharmony_cienum _excepthandler_kind {ExceptHandler_kind=1};
5047db96d56Sopenharmony_cistruct _excepthandler {
5057db96d56Sopenharmony_ci    enum _excepthandler_kind kind;
5067db96d56Sopenharmony_ci    union {
5077db96d56Sopenharmony_ci        struct {
5087db96d56Sopenharmony_ci            expr_ty type;
5097db96d56Sopenharmony_ci            identifier name;
5107db96d56Sopenharmony_ci            asdl_stmt_seq *body;
5117db96d56Sopenharmony_ci        } ExceptHandler;
5127db96d56Sopenharmony_ci
5137db96d56Sopenharmony_ci    } v;
5147db96d56Sopenharmony_ci    int lineno;
5157db96d56Sopenharmony_ci    int col_offset;
5167db96d56Sopenharmony_ci    int end_lineno;
5177db96d56Sopenharmony_ci    int end_col_offset;
5187db96d56Sopenharmony_ci};
5197db96d56Sopenharmony_ci
5207db96d56Sopenharmony_cistruct _arguments {
5217db96d56Sopenharmony_ci    asdl_arg_seq *posonlyargs;
5227db96d56Sopenharmony_ci    asdl_arg_seq *args;
5237db96d56Sopenharmony_ci    arg_ty vararg;
5247db96d56Sopenharmony_ci    asdl_arg_seq *kwonlyargs;
5257db96d56Sopenharmony_ci    asdl_expr_seq *kw_defaults;
5267db96d56Sopenharmony_ci    arg_ty kwarg;
5277db96d56Sopenharmony_ci    asdl_expr_seq *defaults;
5287db96d56Sopenharmony_ci};
5297db96d56Sopenharmony_ci
5307db96d56Sopenharmony_cistruct _arg {
5317db96d56Sopenharmony_ci    identifier arg;
5327db96d56Sopenharmony_ci    expr_ty annotation;
5337db96d56Sopenharmony_ci    string type_comment;
5347db96d56Sopenharmony_ci    int lineno;
5357db96d56Sopenharmony_ci    int col_offset;
5367db96d56Sopenharmony_ci    int end_lineno;
5377db96d56Sopenharmony_ci    int end_col_offset;
5387db96d56Sopenharmony_ci};
5397db96d56Sopenharmony_ci
5407db96d56Sopenharmony_cistruct _keyword {
5417db96d56Sopenharmony_ci    identifier arg;
5427db96d56Sopenharmony_ci    expr_ty value;
5437db96d56Sopenharmony_ci    int lineno;
5447db96d56Sopenharmony_ci    int col_offset;
5457db96d56Sopenharmony_ci    int end_lineno;
5467db96d56Sopenharmony_ci    int end_col_offset;
5477db96d56Sopenharmony_ci};
5487db96d56Sopenharmony_ci
5497db96d56Sopenharmony_cistruct _alias {
5507db96d56Sopenharmony_ci    identifier name;
5517db96d56Sopenharmony_ci    identifier asname;
5527db96d56Sopenharmony_ci    int lineno;
5537db96d56Sopenharmony_ci    int col_offset;
5547db96d56Sopenharmony_ci    int end_lineno;
5557db96d56Sopenharmony_ci    int end_col_offset;
5567db96d56Sopenharmony_ci};
5577db96d56Sopenharmony_ci
5587db96d56Sopenharmony_cistruct _withitem {
5597db96d56Sopenharmony_ci    expr_ty context_expr;
5607db96d56Sopenharmony_ci    expr_ty optional_vars;
5617db96d56Sopenharmony_ci};
5627db96d56Sopenharmony_ci
5637db96d56Sopenharmony_cistruct _match_case {
5647db96d56Sopenharmony_ci    pattern_ty pattern;
5657db96d56Sopenharmony_ci    expr_ty guard;
5667db96d56Sopenharmony_ci    asdl_stmt_seq *body;
5677db96d56Sopenharmony_ci};
5687db96d56Sopenharmony_ci
5697db96d56Sopenharmony_cienum _pattern_kind {MatchValue_kind=1, MatchSingleton_kind=2,
5707db96d56Sopenharmony_ci                     MatchSequence_kind=3, MatchMapping_kind=4,
5717db96d56Sopenharmony_ci                     MatchClass_kind=5, MatchStar_kind=6, MatchAs_kind=7,
5727db96d56Sopenharmony_ci                     MatchOr_kind=8};
5737db96d56Sopenharmony_cistruct _pattern {
5747db96d56Sopenharmony_ci    enum _pattern_kind kind;
5757db96d56Sopenharmony_ci    union {
5767db96d56Sopenharmony_ci        struct {
5777db96d56Sopenharmony_ci            expr_ty value;
5787db96d56Sopenharmony_ci        } MatchValue;
5797db96d56Sopenharmony_ci
5807db96d56Sopenharmony_ci        struct {
5817db96d56Sopenharmony_ci            constant value;
5827db96d56Sopenharmony_ci        } MatchSingleton;
5837db96d56Sopenharmony_ci
5847db96d56Sopenharmony_ci        struct {
5857db96d56Sopenharmony_ci            asdl_pattern_seq *patterns;
5867db96d56Sopenharmony_ci        } MatchSequence;
5877db96d56Sopenharmony_ci
5887db96d56Sopenharmony_ci        struct {
5897db96d56Sopenharmony_ci            asdl_expr_seq *keys;
5907db96d56Sopenharmony_ci            asdl_pattern_seq *patterns;
5917db96d56Sopenharmony_ci            identifier rest;
5927db96d56Sopenharmony_ci        } MatchMapping;
5937db96d56Sopenharmony_ci
5947db96d56Sopenharmony_ci        struct {
5957db96d56Sopenharmony_ci            expr_ty cls;
5967db96d56Sopenharmony_ci            asdl_pattern_seq *patterns;
5977db96d56Sopenharmony_ci            asdl_identifier_seq *kwd_attrs;
5987db96d56Sopenharmony_ci            asdl_pattern_seq *kwd_patterns;
5997db96d56Sopenharmony_ci        } MatchClass;
6007db96d56Sopenharmony_ci
6017db96d56Sopenharmony_ci        struct {
6027db96d56Sopenharmony_ci            identifier name;
6037db96d56Sopenharmony_ci        } MatchStar;
6047db96d56Sopenharmony_ci
6057db96d56Sopenharmony_ci        struct {
6067db96d56Sopenharmony_ci            pattern_ty pattern;
6077db96d56Sopenharmony_ci            identifier name;
6087db96d56Sopenharmony_ci        } MatchAs;
6097db96d56Sopenharmony_ci
6107db96d56Sopenharmony_ci        struct {
6117db96d56Sopenharmony_ci            asdl_pattern_seq *patterns;
6127db96d56Sopenharmony_ci        } MatchOr;
6137db96d56Sopenharmony_ci
6147db96d56Sopenharmony_ci    } v;
6157db96d56Sopenharmony_ci    int lineno;
6167db96d56Sopenharmony_ci    int col_offset;
6177db96d56Sopenharmony_ci    int end_lineno;
6187db96d56Sopenharmony_ci    int end_col_offset;
6197db96d56Sopenharmony_ci};
6207db96d56Sopenharmony_ci
6217db96d56Sopenharmony_cienum _type_ignore_kind {TypeIgnore_kind=1};
6227db96d56Sopenharmony_cistruct _type_ignore {
6237db96d56Sopenharmony_ci    enum _type_ignore_kind kind;
6247db96d56Sopenharmony_ci    union {
6257db96d56Sopenharmony_ci        struct {
6267db96d56Sopenharmony_ci            int lineno;
6277db96d56Sopenharmony_ci            string tag;
6287db96d56Sopenharmony_ci        } TypeIgnore;
6297db96d56Sopenharmony_ci
6307db96d56Sopenharmony_ci    } v;
6317db96d56Sopenharmony_ci};
6327db96d56Sopenharmony_ci
6337db96d56Sopenharmony_ci
6347db96d56Sopenharmony_ci// Note: these macros affect function definitions, not only call sites.
6357db96d56Sopenharmony_cimod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq * type_ignores,
6367db96d56Sopenharmony_ci                     PyArena *arena);
6377db96d56Sopenharmony_cimod_ty _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena);
6387db96d56Sopenharmony_cimod_ty _PyAST_Expression(expr_ty body, PyArena *arena);
6397db96d56Sopenharmony_cimod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns, PyArena
6407db96d56Sopenharmony_ci                           *arena);
6417db96d56Sopenharmony_cistmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq *
6427db96d56Sopenharmony_ci                           body, asdl_expr_seq * decorator_list, expr_ty
6437db96d56Sopenharmony_ci                           returns, string type_comment, int lineno, int
6447db96d56Sopenharmony_ci                           col_offset, int end_lineno, int end_col_offset,
6457db96d56Sopenharmony_ci                           PyArena *arena);
6467db96d56Sopenharmony_cistmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args,
6477db96d56Sopenharmony_ci                                asdl_stmt_seq * body, asdl_expr_seq *
6487db96d56Sopenharmony_ci                                decorator_list, expr_ty returns, string
6497db96d56Sopenharmony_ci                                type_comment, int lineno, int col_offset, int
6507db96d56Sopenharmony_ci                                end_lineno, int end_col_offset, PyArena *arena);
6517db96d56Sopenharmony_cistmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases,
6527db96d56Sopenharmony_ci                        asdl_keyword_seq * keywords, asdl_stmt_seq * body,
6537db96d56Sopenharmony_ci                        asdl_expr_seq * decorator_list, int lineno, int
6547db96d56Sopenharmony_ci                        col_offset, int end_lineno, int end_col_offset, PyArena
6557db96d56Sopenharmony_ci                        *arena);
6567db96d56Sopenharmony_cistmt_ty _PyAST_Return(expr_ty value, int lineno, int col_offset, int
6577db96d56Sopenharmony_ci                      end_lineno, int end_col_offset, PyArena *arena);
6587db96d56Sopenharmony_cistmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int
6597db96d56Sopenharmony_ci                      end_lineno, int end_col_offset, PyArena *arena);
6607db96d56Sopenharmony_cistmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string
6617db96d56Sopenharmony_ci                      type_comment, int lineno, int col_offset, int end_lineno,
6627db96d56Sopenharmony_ci                      int end_col_offset, PyArena *arena);
6637db96d56Sopenharmony_cistmt_ty _PyAST_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
6647db96d56Sopenharmony_ci                         lineno, int col_offset, int end_lineno, int
6657db96d56Sopenharmony_ci                         end_col_offset, PyArena *arena);
6667db96d56Sopenharmony_cistmt_ty _PyAST_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
6677db96d56Sopenharmony_ci                         simple, int lineno, int col_offset, int end_lineno,
6687db96d56Sopenharmony_ci                         int end_col_offset, PyArena *arena);
6697db96d56Sopenharmony_cistmt_ty _PyAST_For(expr_ty target, expr_ty iter, asdl_stmt_seq * body,
6707db96d56Sopenharmony_ci                   asdl_stmt_seq * orelse, string type_comment, int lineno, int
6717db96d56Sopenharmony_ci                   col_offset, int end_lineno, int end_col_offset, PyArena
6727db96d56Sopenharmony_ci                   *arena);
6737db96d56Sopenharmony_cistmt_ty _PyAST_AsyncFor(expr_ty target, expr_ty iter, asdl_stmt_seq * body,
6747db96d56Sopenharmony_ci                        asdl_stmt_seq * orelse, string type_comment, int
6757db96d56Sopenharmony_ci                        lineno, int col_offset, int end_lineno, int
6767db96d56Sopenharmony_ci                        end_col_offset, PyArena *arena);
6777db96d56Sopenharmony_cistmt_ty _PyAST_While(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq *
6787db96d56Sopenharmony_ci                     orelse, int lineno, int col_offset, int end_lineno, int
6797db96d56Sopenharmony_ci                     end_col_offset, PyArena *arena);
6807db96d56Sopenharmony_cistmt_ty _PyAST_If(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * orelse,
6817db96d56Sopenharmony_ci                  int lineno, int col_offset, int end_lineno, int
6827db96d56Sopenharmony_ci                  end_col_offset, PyArena *arena);
6837db96d56Sopenharmony_cistmt_ty _PyAST_With(asdl_withitem_seq * items, asdl_stmt_seq * body, string
6847db96d56Sopenharmony_ci                    type_comment, int lineno, int col_offset, int end_lineno,
6857db96d56Sopenharmony_ci                    int end_col_offset, PyArena *arena);
6867db96d56Sopenharmony_cistmt_ty _PyAST_AsyncWith(asdl_withitem_seq * items, asdl_stmt_seq * body,
6877db96d56Sopenharmony_ci                         string type_comment, int lineno, int col_offset, int
6887db96d56Sopenharmony_ci                         end_lineno, int end_col_offset, PyArena *arena);
6897db96d56Sopenharmony_cistmt_ty _PyAST_Match(expr_ty subject, asdl_match_case_seq * cases, int lineno,
6907db96d56Sopenharmony_ci                     int col_offset, int end_lineno, int end_col_offset,
6917db96d56Sopenharmony_ci                     PyArena *arena);
6927db96d56Sopenharmony_cistmt_ty _PyAST_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
6937db96d56Sopenharmony_ci                     int end_lineno, int end_col_offset, PyArena *arena);
6947db96d56Sopenharmony_cistmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
6957db96d56Sopenharmony_ci                   asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
6967db96d56Sopenharmony_ci                   lineno, int col_offset, int end_lineno, int end_col_offset,
6977db96d56Sopenharmony_ci                   PyArena *arena);
6987db96d56Sopenharmony_cistmt_ty _PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
6997db96d56Sopenharmony_ci                       asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
7007db96d56Sopenharmony_ci                       lineno, int col_offset, int end_lineno, int
7017db96d56Sopenharmony_ci                       end_col_offset, PyArena *arena);
7027db96d56Sopenharmony_cistmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
7037db96d56Sopenharmony_ci                      int end_lineno, int end_col_offset, PyArena *arena);
7047db96d56Sopenharmony_cistmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset, int
7057db96d56Sopenharmony_ci                      end_lineno, int end_col_offset, PyArena *arena);
7067db96d56Sopenharmony_cistmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names, int level,
7077db96d56Sopenharmony_ci                          int lineno, int col_offset, int end_lineno, int
7087db96d56Sopenharmony_ci                          end_col_offset, PyArena *arena);
7097db96d56Sopenharmony_cistmt_ty _PyAST_Global(asdl_identifier_seq * names, int lineno, int col_offset,
7107db96d56Sopenharmony_ci                      int end_lineno, int end_col_offset, PyArena *arena);
7117db96d56Sopenharmony_cistmt_ty _PyAST_Nonlocal(asdl_identifier_seq * names, int lineno, int
7127db96d56Sopenharmony_ci                        col_offset, int end_lineno, int end_col_offset, PyArena
7137db96d56Sopenharmony_ci                        *arena);
7147db96d56Sopenharmony_cistmt_ty _PyAST_Expr(expr_ty value, int lineno, int col_offset, int end_lineno,
7157db96d56Sopenharmony_ci                    int end_col_offset, PyArena *arena);
7167db96d56Sopenharmony_cistmt_ty _PyAST_Pass(int lineno, int col_offset, int end_lineno, int
7177db96d56Sopenharmony_ci                    end_col_offset, PyArena *arena);
7187db96d56Sopenharmony_cistmt_ty _PyAST_Break(int lineno, int col_offset, int end_lineno, int
7197db96d56Sopenharmony_ci                     end_col_offset, PyArena *arena);
7207db96d56Sopenharmony_cistmt_ty _PyAST_Continue(int lineno, int col_offset, int end_lineno, int
7217db96d56Sopenharmony_ci                        end_col_offset, PyArena *arena);
7227db96d56Sopenharmony_ciexpr_ty _PyAST_BoolOp(boolop_ty op, asdl_expr_seq * values, int lineno, int
7237db96d56Sopenharmony_ci                      col_offset, int end_lineno, int end_col_offset, PyArena
7247db96d56Sopenharmony_ci                      *arena);
7257db96d56Sopenharmony_ciexpr_ty _PyAST_NamedExpr(expr_ty target, expr_ty value, int lineno, int
7267db96d56Sopenharmony_ci                         col_offset, int end_lineno, int end_col_offset,
7277db96d56Sopenharmony_ci                         PyArena *arena);
7287db96d56Sopenharmony_ciexpr_ty _PyAST_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno,
7297db96d56Sopenharmony_ci                     int col_offset, int end_lineno, int end_col_offset,
7307db96d56Sopenharmony_ci                     PyArena *arena);
7317db96d56Sopenharmony_ciexpr_ty _PyAST_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int
7327db96d56Sopenharmony_ci                       col_offset, int end_lineno, int end_col_offset, PyArena
7337db96d56Sopenharmony_ci                       *arena);
7347db96d56Sopenharmony_ciexpr_ty _PyAST_Lambda(arguments_ty args, expr_ty body, int lineno, int
7357db96d56Sopenharmony_ci                      col_offset, int end_lineno, int end_col_offset, PyArena
7367db96d56Sopenharmony_ci                      *arena);
7377db96d56Sopenharmony_ciexpr_ty _PyAST_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno,
7387db96d56Sopenharmony_ci                     int col_offset, int end_lineno, int end_col_offset,
7397db96d56Sopenharmony_ci                     PyArena *arena);
7407db96d56Sopenharmony_ciexpr_ty _PyAST_Dict(asdl_expr_seq * keys, asdl_expr_seq * values, int lineno,
7417db96d56Sopenharmony_ci                    int col_offset, int end_lineno, int end_col_offset, PyArena
7427db96d56Sopenharmony_ci                    *arena);
7437db96d56Sopenharmony_ciexpr_ty _PyAST_Set(asdl_expr_seq * elts, int lineno, int col_offset, int
7447db96d56Sopenharmony_ci                   end_lineno, int end_col_offset, PyArena *arena);
7457db96d56Sopenharmony_ciexpr_ty _PyAST_ListComp(expr_ty elt, asdl_comprehension_seq * generators, int
7467db96d56Sopenharmony_ci                        lineno, int col_offset, int end_lineno, int
7477db96d56Sopenharmony_ci                        end_col_offset, PyArena *arena);
7487db96d56Sopenharmony_ciexpr_ty _PyAST_SetComp(expr_ty elt, asdl_comprehension_seq * generators, int
7497db96d56Sopenharmony_ci                       lineno, int col_offset, int end_lineno, int
7507db96d56Sopenharmony_ci                       end_col_offset, PyArena *arena);
7517db96d56Sopenharmony_ciexpr_ty _PyAST_DictComp(expr_ty key, expr_ty value, asdl_comprehension_seq *
7527db96d56Sopenharmony_ci                        generators, int lineno, int col_offset, int end_lineno,
7537db96d56Sopenharmony_ci                        int end_col_offset, PyArena *arena);
7547db96d56Sopenharmony_ciexpr_ty _PyAST_GeneratorExp(expr_ty elt, asdl_comprehension_seq * generators,
7557db96d56Sopenharmony_ci                            int lineno, int col_offset, int end_lineno, int
7567db96d56Sopenharmony_ci                            end_col_offset, PyArena *arena);
7577db96d56Sopenharmony_ciexpr_ty _PyAST_Await(expr_ty value, int lineno, int col_offset, int end_lineno,
7587db96d56Sopenharmony_ci                     int end_col_offset, PyArena *arena);
7597db96d56Sopenharmony_ciexpr_ty _PyAST_Yield(expr_ty value, int lineno, int col_offset, int end_lineno,
7607db96d56Sopenharmony_ci                     int end_col_offset, PyArena *arena);
7617db96d56Sopenharmony_ciexpr_ty _PyAST_YieldFrom(expr_ty value, int lineno, int col_offset, int
7627db96d56Sopenharmony_ci                         end_lineno, int end_col_offset, PyArena *arena);
7637db96d56Sopenharmony_ciexpr_ty _PyAST_Compare(expr_ty left, asdl_int_seq * ops, asdl_expr_seq *
7647db96d56Sopenharmony_ci                       comparators, int lineno, int col_offset, int end_lineno,
7657db96d56Sopenharmony_ci                       int end_col_offset, PyArena *arena);
7667db96d56Sopenharmony_ciexpr_ty _PyAST_Call(expr_ty func, asdl_expr_seq * args, asdl_keyword_seq *
7677db96d56Sopenharmony_ci                    keywords, int lineno, int col_offset, int end_lineno, int
7687db96d56Sopenharmony_ci                    end_col_offset, PyArena *arena);
7697db96d56Sopenharmony_ciexpr_ty _PyAST_FormattedValue(expr_ty value, int conversion, expr_ty
7707db96d56Sopenharmony_ci                              format_spec, int lineno, int col_offset, int
7717db96d56Sopenharmony_ci                              end_lineno, int end_col_offset, PyArena *arena);
7727db96d56Sopenharmony_ciexpr_ty _PyAST_JoinedStr(asdl_expr_seq * values, int lineno, int col_offset,
7737db96d56Sopenharmony_ci                         int end_lineno, int end_col_offset, PyArena *arena);
7747db96d56Sopenharmony_ciexpr_ty _PyAST_Constant(constant value, string kind, int lineno, int
7757db96d56Sopenharmony_ci                        col_offset, int end_lineno, int end_col_offset, PyArena
7767db96d56Sopenharmony_ci                        *arena);
7777db96d56Sopenharmony_ciexpr_ty _PyAST_Attribute(expr_ty value, identifier attr, expr_context_ty ctx,
7787db96d56Sopenharmony_ci                         int lineno, int col_offset, int end_lineno, int
7797db96d56Sopenharmony_ci                         end_col_offset, PyArena *arena);
7807db96d56Sopenharmony_ciexpr_ty _PyAST_Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int
7817db96d56Sopenharmony_ci                         lineno, int col_offset, int end_lineno, int
7827db96d56Sopenharmony_ci                         end_col_offset, PyArena *arena);
7837db96d56Sopenharmony_ciexpr_ty _PyAST_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
7847db96d56Sopenharmony_ci                       col_offset, int end_lineno, int end_col_offset, PyArena
7857db96d56Sopenharmony_ci                       *arena);
7867db96d56Sopenharmony_ciexpr_ty _PyAST_Name(identifier id, expr_context_ty ctx, int lineno, int
7877db96d56Sopenharmony_ci                    col_offset, int end_lineno, int end_col_offset, PyArena
7887db96d56Sopenharmony_ci                    *arena);
7897db96d56Sopenharmony_ciexpr_ty _PyAST_List(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int
7907db96d56Sopenharmony_ci                    col_offset, int end_lineno, int end_col_offset, PyArena
7917db96d56Sopenharmony_ci                    *arena);
7927db96d56Sopenharmony_ciexpr_ty _PyAST_Tuple(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int
7937db96d56Sopenharmony_ci                     col_offset, int end_lineno, int end_col_offset, PyArena
7947db96d56Sopenharmony_ci                     *arena);
7957db96d56Sopenharmony_ciexpr_ty _PyAST_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno,
7967db96d56Sopenharmony_ci                     int col_offset, int end_lineno, int end_col_offset,
7977db96d56Sopenharmony_ci                     PyArena *arena);
7987db96d56Sopenharmony_cicomprehension_ty _PyAST_comprehension(expr_ty target, expr_ty iter,
7997db96d56Sopenharmony_ci                                      asdl_expr_seq * ifs, int is_async,
8007db96d56Sopenharmony_ci                                      PyArena *arena);
8017db96d56Sopenharmony_ciexcepthandler_ty _PyAST_ExceptHandler(expr_ty type, identifier name,
8027db96d56Sopenharmony_ci                                      asdl_stmt_seq * body, int lineno, int
8037db96d56Sopenharmony_ci                                      col_offset, int end_lineno, int
8047db96d56Sopenharmony_ci                                      end_col_offset, PyArena *arena);
8057db96d56Sopenharmony_ciarguments_ty _PyAST_arguments(asdl_arg_seq * posonlyargs, asdl_arg_seq * args,
8067db96d56Sopenharmony_ci                              arg_ty vararg, asdl_arg_seq * kwonlyargs,
8077db96d56Sopenharmony_ci                              asdl_expr_seq * kw_defaults, arg_ty kwarg,
8087db96d56Sopenharmony_ci                              asdl_expr_seq * defaults, PyArena *arena);
8097db96d56Sopenharmony_ciarg_ty _PyAST_arg(identifier arg, expr_ty annotation, string type_comment, int
8107db96d56Sopenharmony_ci                  lineno, int col_offset, int end_lineno, int end_col_offset,
8117db96d56Sopenharmony_ci                  PyArena *arena);
8127db96d56Sopenharmony_cikeyword_ty _PyAST_keyword(identifier arg, expr_ty value, int lineno, int
8137db96d56Sopenharmony_ci                          col_offset, int end_lineno, int end_col_offset,
8147db96d56Sopenharmony_ci                          PyArena *arena);
8157db96d56Sopenharmony_cialias_ty _PyAST_alias(identifier name, identifier asname, int lineno, int
8167db96d56Sopenharmony_ci                      col_offset, int end_lineno, int end_col_offset, PyArena
8177db96d56Sopenharmony_ci                      *arena);
8187db96d56Sopenharmony_ciwithitem_ty _PyAST_withitem(expr_ty context_expr, expr_ty optional_vars,
8197db96d56Sopenharmony_ci                            PyArena *arena);
8207db96d56Sopenharmony_cimatch_case_ty _PyAST_match_case(pattern_ty pattern, expr_ty guard,
8217db96d56Sopenharmony_ci                                asdl_stmt_seq * body, PyArena *arena);
8227db96d56Sopenharmony_cipattern_ty _PyAST_MatchValue(expr_ty value, int lineno, int col_offset, int
8237db96d56Sopenharmony_ci                             end_lineno, int end_col_offset, PyArena *arena);
8247db96d56Sopenharmony_cipattern_ty _PyAST_MatchSingleton(constant value, int lineno, int col_offset,
8257db96d56Sopenharmony_ci                                 int end_lineno, int end_col_offset, PyArena
8267db96d56Sopenharmony_ci                                 *arena);
8277db96d56Sopenharmony_cipattern_ty _PyAST_MatchSequence(asdl_pattern_seq * patterns, int lineno, int
8287db96d56Sopenharmony_ci                                col_offset, int end_lineno, int end_col_offset,
8297db96d56Sopenharmony_ci                                PyArena *arena);
8307db96d56Sopenharmony_cipattern_ty _PyAST_MatchMapping(asdl_expr_seq * keys, asdl_pattern_seq *
8317db96d56Sopenharmony_ci                               patterns, identifier rest, int lineno, int
8327db96d56Sopenharmony_ci                               col_offset, int end_lineno, int end_col_offset,
8337db96d56Sopenharmony_ci                               PyArena *arena);
8347db96d56Sopenharmony_cipattern_ty _PyAST_MatchClass(expr_ty cls, asdl_pattern_seq * patterns,
8357db96d56Sopenharmony_ci                             asdl_identifier_seq * kwd_attrs, asdl_pattern_seq
8367db96d56Sopenharmony_ci                             * kwd_patterns, int lineno, int col_offset, int
8377db96d56Sopenharmony_ci                             end_lineno, int end_col_offset, PyArena *arena);
8387db96d56Sopenharmony_cipattern_ty _PyAST_MatchStar(identifier name, int lineno, int col_offset, int
8397db96d56Sopenharmony_ci                            end_lineno, int end_col_offset, PyArena *arena);
8407db96d56Sopenharmony_cipattern_ty _PyAST_MatchAs(pattern_ty pattern, identifier name, int lineno, int
8417db96d56Sopenharmony_ci                          col_offset, int end_lineno, int end_col_offset,
8427db96d56Sopenharmony_ci                          PyArena *arena);
8437db96d56Sopenharmony_cipattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno, int
8447db96d56Sopenharmony_ci                          col_offset, int end_lineno, int end_col_offset,
8457db96d56Sopenharmony_ci                          PyArena *arena);
8467db96d56Sopenharmony_citype_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena);
8477db96d56Sopenharmony_ci
8487db96d56Sopenharmony_ci
8497db96d56Sopenharmony_ciPyObject* PyAST_mod2obj(mod_ty t);
8507db96d56Sopenharmony_cimod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
8517db96d56Sopenharmony_ciint PyAST_Check(PyObject* obj);
8527db96d56Sopenharmony_ci
8537db96d56Sopenharmony_ciextern int _PyAST_Validate(mod_ty);
8547db96d56Sopenharmony_ci
8557db96d56Sopenharmony_ci/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
8567db96d56Sopenharmony_ciextern PyObject* _PyAST_ExprAsUnicode(expr_ty);
8577db96d56Sopenharmony_ci
8587db96d56Sopenharmony_ci/* Return the borrowed reference to the first literal string in the
8597db96d56Sopenharmony_ci   sequence of statements or NULL if it doesn't start from a literal string.
8607db96d56Sopenharmony_ci   Doesn't set exception. */
8617db96d56Sopenharmony_ciextern PyObject* _PyAST_GetDocString(asdl_stmt_seq *);
8627db96d56Sopenharmony_ci
8637db96d56Sopenharmony_ci#ifdef __cplusplus
8647db96d56Sopenharmony_ci}
8657db96d56Sopenharmony_ci#endif
8667db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_AST_H */
867