Python-ast.h revision 7544508f0245173bff5866aa1598c8f6cce1fc5f
15d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com/* File automatically generated by Parser/asdl_c.py. */
25d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com
35d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com#include "asdl.h"
45d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com
55d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.comtypedef struct _mod *mod_ty;
65d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com
75d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.comtypedef struct _stmt *stmt_ty;
833e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume
933e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumetypedef struct _expr *expr_ty;
1033e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume
1133e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumetypedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5,
12c5035e70cc3fb290f95fd1c052c637aa0dbaf9earobertphillips                             Param=6 } expr_context_ty;
133b66ab6f9fdc6eacdf0ee1921da28751de30c018Brian Osman
14856e9d921462136da8562f8f122d42e114cd4710reedtypedef struct _slice *slice_ty;
1597b6b0730dcb0feee9224ff04eb3985ca4bd0216robertphillips@google.com
16e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillipstypedef enum _boolop { And=1, Or=2 } boolop_ty;
172c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman
183b66ab6f9fdc6eacdf0ee1921da28751de30c018Brian Osmantypedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7,
191105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman                         LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
2032342f032e1dfd133040324f851f0365f9d4cb51Brian Osman                         FloorDiv=13 } operator_ty;
21fe3b51636d4216c4ea6cb74ed0964c1d315ca487Brian Osman
22e8e54580c3c91fd485187af040af118aa5153261Brian Osmantypedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty;
2333e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume
24bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillipstypedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8,
25538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips                      In=9, NotIn=10 } cmpop_ty;
2663954c9944a5eed4527e0ed368f4e501faf2c625Brian Osman
27f267c1efe7de7a8e71404afde6cbf93c3808d267bsalomontypedef struct _comprehension *comprehension_ty;
28993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
292c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmantypedef struct _excepthandler *excepthandler_ty;
30262a71b7f95ce98ff3dd8dba845afbd724470903reed
313b65598bceb65736486db27ed49a56d787032747Brian Osmantypedef struct _arguments *arguments_ty;
32262a71b7f95ce98ff3dd8dba845afbd724470903reed
337992da32f02f90e0ac9ab6914eb31676b502eb71Brian Osmantypedef struct _arg *arg_ty;
34cb6266b5aa5bbfd880532f08eec83b0c585e873fMatt Sarett
35b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrktypedef struct _keyword *keyword_ty;
366f1216ac158e36a3a1cc805e7f899c755c5b98a2reed
3703dd6d5208a6e3d92190e7020300e4399178ae4bMatt Saretttypedef struct _alias *alias_ty;
38993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
39b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillipstypedef struct _withitem *withitem_ty;
40b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
41b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
42b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillipsenum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
43b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips                 Suite_kind=4};
44b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillipsstruct _mod {
45b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips    enum _mod_kind kind;
46b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips    union {
47b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
48b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *body;
49c9b5f8b1522e72449d704d30ed6aee4fc6211ee8reed        } Module;
50cef04f818820e59fb534eb226f967f72497845d3piotaixr
516f1216ac158e36a3a1cc805e7f899c755c5b98a2reed        struct {
526f1216ac158e36a3a1cc805e7f899c755c5b98a2reed            asdl_seq *body;
536f1216ac158e36a3a1cc805e7f899c755c5b98a2reed        } Interactive;
546f1216ac158e36a3a1cc805e7f899c755c5b98a2reed
556f1216ac158e36a3a1cc805e7f899c755c5b98a2reed        struct {
566f1216ac158e36a3a1cc805e7f899c755c5b98a2reed            expr_ty body;
57396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman        } Expression;
58396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman
59b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
60396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman            asdl_seq *body;
61396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman        } Suite;
62b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
63396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman    } v;
64396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman};
652084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon
662084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomonenum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
672084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon                  Return_kind=4, Delete_kind=5, Assign_kind=6,
682084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon                  AugAssign_kind=7, For_kind=8, AsyncFor_kind=9, While_kind=10,
69f4d443fd1bd8cffbcd7a07a48f3488ae871414e9Brian Osman                  If_kind=11, With_kind=12, AsyncWith_kind=13, Raise_kind=14,
705fa3d6d4b15fd6417de877561f5e4bca422e383cMike Reed                  Try_kind=15, Assert_kind=16, Import_kind=17,
715fa3d6d4b15fd6417de877561f5e4bca422e383cMike Reed                  ImportFrom_kind=18, Global_kind=19, Nonlocal_kind=20,
726f1216ac158e36a3a1cc805e7f899c755c5b98a2reed                  Expr_kind=21, Pass_kind=22, Break_kind=23, Continue_kind=24};
736f1216ac158e36a3a1cc805e7f899c755c5b98a2reedstruct _stmt {
746f1216ac158e36a3a1cc805e7f899c755c5b98a2reed    enum _stmt_kind kind;
756f1216ac158e36a3a1cc805e7f899c755c5b98a2reed    union {
766f1216ac158e36a3a1cc805e7f899c755c5b98a2reed        struct {
776f1216ac158e36a3a1cc805e7f899c755c5b98a2reed            identifier name;
782084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon            arguments_ty args;
792084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon            asdl_seq *body;
807a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            asdl_seq *decorator_list;
817a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            expr_ty returns;
827a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed        } FunctionDef;
837a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed
847a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed        struct {
857a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            identifier name;
867a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            arguments_ty args;
877a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            asdl_seq *body;
887a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            asdl_seq *decorator_list;
897a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            expr_ty returns;
907a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed        } AsyncFunctionDef;
91b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
92b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
932084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon            identifier name;
942084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon            asdl_seq *bases;
952084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon            asdl_seq *keywords;
96b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *body;
978b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *decorator_list;
988b26b99c97473f020df4b9d4ba789e074e06ceddreed        } ClassDef;
99b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
1007a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed        struct {
1018b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty value;
1028b26b99c97473f020df4b9d4ba789e074e06ceddreed        } Return;
1036f1216ac158e36a3a1cc805e7f899c755c5b98a2reed
1047a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed        struct {
1057a542c559a6e584107b94e6254ac3c7f9f24b591Mike Reed            asdl_seq *targets;
106095530389d8211895309107a4f74beefacce638creed        } Delete;
107095530389d8211895309107a4f74beefacce638creed
1088b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
109ace135453db02cfe83d7c7bbeaa679f98d18fbe2reed@google.com            asdl_seq *targets;
110ace135453db02cfe83d7c7bbeaa679f98d18fbe2reed@google.com            expr_ty value;
111b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } Assign;
112b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
113b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
114b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            expr_ty target;
115b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            operator_ty op;
11630a38ff737c61799b0f36d2e6ba412f7e612f617Robert Phillips            expr_ty value;
117b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } AugAssign;
118b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
119b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
120b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            expr_ty target;
1217992da32f02f90e0ac9ab6914eb31676b502eb71Brian Osman            expr_ty iter;
1227992da32f02f90e0ac9ab6914eb31676b502eb71Brian Osman            asdl_seq *body;
1237992da32f02f90e0ac9ab6914eb31676b502eb71Brian Osman            asdl_seq *orelse;
124b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } For;
1253798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips
1267992da32f02f90e0ac9ab6914eb31676b502eb71Brian Osman        struct {
1273798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips            expr_ty target;
12885d9178832f4a64c9d80ffb14cb9dab4fe0fa54areed            expr_ty iter;
12985d9178832f4a64c9d80ffb14cb9dab4fe0fa54areed            asdl_seq *body;
1308b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *orelse;
1318b26b99c97473f020df4b9d4ba789e074e06ceddreed        } AsyncFor;
1328b26b99c97473f020df4b9d4ba789e074e06ceddreed
1338b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
1348b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty test;
1358b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *body;
1368b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *orelse;
1378b26b99c97473f020df4b9d4ba789e074e06ceddreed        } While;
13897b6b0730dcb0feee9224ff04eb3985ca4bd0216robertphillips@google.com
1398b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
1408b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty test;
1418b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *body;
1428b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *orelse;
1438b26b99c97473f020df4b9d4ba789e074e06ceddreed        } If;
1448b26b99c97473f020df4b9d4ba789e074e06ceddreed
1458b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
1468b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *items;
1478b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *body;
1485d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com        } With;
1494af267b11964d4a8acdb232ac46094c84d890e88reed
150fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com        struct {
1510ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *items;
1520ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *body;
1537ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips        } AsyncWith;
1540ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
1557ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips        struct {
1560ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty exc;
1570ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty cause;
1587ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips        } Raise;
1590ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
1600ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        struct {
1617ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips            asdl_seq *body;
1620ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *handlers;
1630ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *orelse;
1640ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *finalbody;
1650ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        } Try;
1660ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
1670ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        struct {
1680ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty test;
1690ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty msg;
1700ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        } Assert;
1710ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
1720ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        struct {
1730ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            asdl_seq *names;
1740ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        } Import;
1750ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
1760ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        struct {
177538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips            identifier module;
178538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips            asdl_seq *names;
179b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            int level;
180b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } ImportFrom;
181538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips
182538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips        struct {
183538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips            asdl_seq *names;
184538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips        } Global;
185538f1a36e3cd0327ee2639693143179ec0359151Robert Phillips
18603dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett        struct {
187095530389d8211895309107a4f74beefacce638creed            asdl_seq *names;
18803dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett        } Nonlocal;
189cb6266b5aa5bbfd880532f08eec83b0c585e873fMatt Sarett
190cb6266b5aa5bbfd880532f08eec83b0c585e873fMatt Sarett        struct {
191cb6266b5aa5bbfd880532f08eec83b0c585e873fMatt Sarett            expr_ty value;
19203dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett        } Expr;
19303dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett
19403dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett    } v;
19503dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett    int lineno;
19603dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett    int col_offset;
197b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips};
198b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
1998b26b99c97473f020df4b9d4ba789e074e06ceddreedenum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4,
20003dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett                  IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8,
2018b26b99c97473f020df4b9d4ba789e074e06ceddreed                  SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11,
202e78b7259c3d5cbed77b4390150cfb699b0b59cd4Robert Phillips                  Await_kind=12, Yield_kind=13, YieldFrom_kind=14,
2038b26b99c97473f020df4b9d4ba789e074e06ceddreed                  Compare_kind=15, Call_kind=16, Num_kind=17, Str_kind=18,
204b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips                  Bytes_kind=19, NameConstant_kind=20, Ellipsis_kind=21,
2052084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon                  Attribute_kind=22, Subscript_kind=23, Starred_kind=24,
2062084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomon                  Name_kind=25, List_kind=26, Tuple_kind=27};
2072084ffa9a3fa7eb3c7e17ec5b55750be9942bafcBrian Salomonstruct _expr {
208b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips    enum _expr_kind kind;
209b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips    union {
210b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
211b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            boolop_ty op;
212b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *values;
2138b26b99c97473f020df4b9d4ba789e074e06ceddreed        } BoolOp;
2148b26b99c97473f020df4b9d4ba789e074e06ceddreed
215b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
2168b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty left;
2178b26b99c97473f020df4b9d4ba789e074e06ceddreed            operator_ty op;
2188b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty right;
2198b26b99c97473f020df4b9d4ba789e074e06ceddreed        } BinOp;
2208b26b99c97473f020df4b9d4ba789e074e06ceddreed
2218b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
2228b26b99c97473f020df4b9d4ba789e074e06ceddreed            unaryop_ty op;
2238b26b99c97473f020df4b9d4ba789e074e06ceddreed            expr_ty operand;
22403dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett        } UnaryOp;
22503dd6d5208a6e3d92190e7020300e4399178ae4bMatt Sarett
2268b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
2278b26b99c97473f020df4b9d4ba789e074e06ceddreed            arguments_ty args;
2285d4ba8869476831ee73b15a052af8003d0a1fa2ereed@google.com            expr_ty body;
2294af267b11964d4a8acdb232ac46094c84d890e88reed        } Lambda;
2307fb4f8bd031eda87e1da9bc0f749968c0e872e6freed
231b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        struct {
2327b6945bc4e639d7cc4a49b84d492690f8e865566reed            expr_ty test;
2337b6945bc4e639d7cc4a49b84d492690f8e865566reed            expr_ty body;
2347b6945bc4e639d7cc4a49b84d492690f8e865566reed            expr_ty orelse;
235b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } IfExp;
236e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips
237e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips        struct {
238e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips            asdl_seq *keys;
239e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips            asdl_seq *values;
240e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips        } Dict;
241e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips
242e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips        struct {
243b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *elts;
244e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips        } Set;
245e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips
246e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips        struct {
247b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            expr_ty elt;
248b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *generators;
249b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } ListComp;
250e2f7d1899d890c2f08571e1bd6c7fa2c5ea1be0bRobert Phillips
2517b6945bc4e639d7cc4a49b84d492690f8e865566reed        struct {
2527b6945bc4e639d7cc4a49b84d492690f8e865566reed            expr_ty elt;
2538b26b99c97473f020df4b9d4ba789e074e06ceddreed            asdl_seq *generators;
2548b26b99c97473f020df4b9d4ba789e074e06ceddreed        } SetComp;
2557fb4f8bd031eda87e1da9bc0f749968c0e872e6freed
256dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman        struct {
257dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            expr_ty key;
2587fb4f8bd031eda87e1da9bc0f749968c0e872e6freed            expr_ty value;
2597fb4f8bd031eda87e1da9bc0f749968c0e872e6freed            asdl_seq *generators;
2608b26b99c97473f020df4b9d4ba789e074e06ceddreed        } DictComp;
26196fcdcc219d2a0d3579719b84b28bede76efba64halcanary
2628b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
2630ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty elt;
26432342f032e1dfd133040324f851f0365f9d4cb51Brian Osman            asdl_seq *generators;
2658b26b99c97473f020df4b9d4ba789e074e06ceddreed        } GeneratorExp;
26696fcdcc219d2a0d3579719b84b28bede76efba64halcanary
2678b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
268de49988bc24977f97bb1da8c17ceee5432fcc8e7reed            expr_ty value;
269de49988bc24977f97bb1da8c17ceee5432fcc8e7reed        } Await;
270de49988bc24977f97bb1da8c17ceee5432fcc8e7reed
271de49988bc24977f97bb1da8c17ceee5432fcc8e7reed        struct {
272766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osman            expr_ty value;
273766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osman        } Yield;
2740ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips
2750ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips        struct {
2760ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips            expr_ty value;
2776dc6f5f4a153d33ed91565cb3cd397a310a937d0bsalomon        } YieldFrom;
2786dc6f5f4a153d33ed91565cb3cd397a310a937d0bsalomon
2797fb4f8bd031eda87e1da9bc0f749968c0e872e6freed        struct {
280dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            expr_ty left;
281dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            asdl_int_seq *ops;
282dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            asdl_seq *comparators;
283dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman        } Compare;
2846dc6f5f4a153d33ed91565cb3cd397a310a937d0bsalomon
2856dc6f5f4a153d33ed91565cb3cd397a310a937d0bsalomon        struct {
2867fb4f8bd031eda87e1da9bc0f749968c0e872e6freed            expr_ty func;
287dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            asdl_seq *args;
288dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            asdl_seq *keywords;
289dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman        } Call;
2908b26b99c97473f020df4b9d4ba789e074e06ceddreed
2918b26b99c97473f020df4b9d4ba789e074e06ceddreed        struct {
292b445a57e6c36cce86580b618701b5af708a6f271jbauman            object n;
293b445a57e6c36cce86580b618701b5af708a6f271jbauman        } Num;
294b445a57e6c36cce86580b618701b5af708a6f271jbauman
295b445a57e6c36cce86580b618701b5af708a6f271jbauman        struct {
296dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman            string s;
297dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman        } Str;
2985ec26ae9bfca635ccc98283aad5deda11519d826bsalomon
299993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        struct {
300b445a57e6c36cce86580b618701b5af708a6f271jbauman            bytes s;
301b445a57e6c36cce86580b618701b5af708a6f271jbauman        } Bytes;
302b445a57e6c36cce86580b618701b5af708a6f271jbauman
303b445a57e6c36cce86580b618701b5af708a6f271jbauman        struct {
304b445a57e6c36cce86580b618701b5af708a6f271jbauman            singleton value;
30596fcdcc219d2a0d3579719b84b28bede76efba64halcanary        } NameConstant;
306993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
307b445a57e6c36cce86580b618701b5af708a6f271jbauman        struct {
308b445a57e6c36cce86580b618701b5af708a6f271jbauman            expr_ty value;
309b445a57e6c36cce86580b618701b5af708a6f271jbauman            identifier attr;
310993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_context_ty ctx;
311993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        } Attribute;
312993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
313993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        struct {
314993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_ty value;
315993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            slice_ty slice;
316993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_context_ty ctx;
317993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        } Subscript;
318993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
319993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        struct {
320993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_ty value;
321993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_context_ty ctx;
322993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        } Starred;
323993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
324993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        struct {
325993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            identifier id;
32626caf898f1db66bc6923b61ef902132bbdff51ddRobert Phillips            expr_context_ty ctx;
32726caf898f1db66bc6923b61ef902132bbdff51ddRobert Phillips        } Name;
328bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips
329bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips        struct {
330b445a57e6c36cce86580b618701b5af708a6f271jbauman            asdl_seq *elts;
331bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips            expr_context_ty ctx;
332b445a57e6c36cce86580b618701b5af708a6f271jbauman        } List;
333b445a57e6c36cce86580b618701b5af708a6f271jbauman
334b445a57e6c36cce86580b618701b5af708a6f271jbauman        struct {
335b445a57e6c36cce86580b618701b5af708a6f271jbauman            asdl_seq *elts;
336b445a57e6c36cce86580b618701b5af708a6f271jbauman            expr_context_ty ctx;
337b445a57e6c36cce86580b618701b5af708a6f271jbauman        } Tuple;
338b445a57e6c36cce86580b618701b5af708a6f271jbauman
339b445a57e6c36cce86580b618701b5af708a6f271jbauman    } v;
340b445a57e6c36cce86580b618701b5af708a6f271jbauman    int lineno;
34126caf898f1db66bc6923b61ef902132bbdff51ddRobert Phillips    int col_offset;
342b445a57e6c36cce86580b618701b5af708a6f271jbauman};
343bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips
34496fcdcc219d2a0d3579719b84b28bede76efba64halcanaryenum _slice_kind {Slice_kind=1, ExtSlice_kind=2, Index_kind=3};
345993a4216a6014b9de8f4d8120360c94550dc6761bsalomonstruct _slice {
346993a4216a6014b9de8f4d8120360c94550dc6761bsalomon    enum _slice_kind kind;
347d4c741e3d0e0fa633399691c47f76b6c7841ee83robertphillips    union {
348d4c741e3d0e0fa633399691c47f76b6c7841ee83robertphillips        struct {
349d4c741e3d0e0fa633399691c47f76b6c7841ee83robertphillips            expr_ty lower;
350993a4216a6014b9de8f4d8120360c94550dc6761bsalomon            expr_ty upper;
351934292170bade335f972a050a2f64d2cca9ca299Robert Phillips            expr_ty step;
3521105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman        } Slice;
3531105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman
3541105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman        struct {
3551105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman            asdl_seq *dims;
3561105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman        } ExtSlice;
3571105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman
3581105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman        struct {
35996fcdcc219d2a0d3579719b84b28bede76efba64halcanary            expr_ty value;
360993a4216a6014b9de8f4d8120360c94550dc6761bsalomon        } Index;
361993a4216a6014b9de8f4d8120360c94550dc6761bsalomon
362993a4216a6014b9de8f4d8120360c94550dc6761bsalomon    } v;
3637d954ad797176afedb9262fdea4507d0fc60eb9dMike Reed};
364b445a57e6c36cce86580b618701b5af708a6f271jbauman
365296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillipsstruct _comprehension {
366bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips    expr_ty target;
367bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips    expr_ty iter;
368bc7a4fb06780f9829b4b21470fe6f0503d2297cdRobert Phillips    asdl_seq *ifs;
369993a4216a6014b9de8f4d8120360c94550dc6761bsalomon};
370b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
371c9a3706f1ee38c331610ec1e872d9a658566c397robertphillipsenum _excepthandler_kind {ExceptHandler_kind=1};
37282f44319159bb98dcacdbbec7ea643dde5ed024bBrian Salomonstruct _excepthandler {
373e60ad620fe236ce4c1e85a31bd53ed0c848da8c3Robert Phillips    enum _excepthandler_kind kind;
3747ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips    union {
375e60ad620fe236ce4c1e85a31bd53ed0c848da8c3Robert Phillips        struct {
376e60ad620fe236ce4c1e85a31bd53ed0c848da8c3Robert Phillips            expr_ty type;
3777ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips            identifier name;
378b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips            asdl_seq *body;
379b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips        } ExceptHandler;
380b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips
381b726d58efc91c4eefa5cea0881a823ee108db8fdRobert Phillips    } v;
38275a475cf2e7c66eb58b6b8b1441deb5911e53181Robert Phillips    int lineno;
383993a4216a6014b9de8f4d8120360c94550dc6761bsalomon    int col_offset;
3845617900063f69754de62b8b12d32f6e36df14104reed};
385b445a57e6c36cce86580b618701b5af708a6f271jbauman
386b445a57e6c36cce86580b618701b5af708a6f271jbaumanstruct _arguments {
387dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    asdl_seq *args;
388dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    arg_ty vararg;
389dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    asdl_seq *kwonlyargs;
390dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    asdl_seq *kw_defaults;
391b445a57e6c36cce86580b618701b5af708a6f271jbauman    arg_ty kwarg;
392b445a57e6c36cce86580b618701b5af708a6f271jbauman    asdl_seq *defaults;
393b445a57e6c36cce86580b618701b5af708a6f271jbauman};
394b445a57e6c36cce86580b618701b5af708a6f271jbauman
395b445a57e6c36cce86580b618701b5af708a6f271jbaumanstruct _arg {
396dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    identifier arg;
397dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    expr_ty annotation;
398dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    int lineno;
399dddbe380b0e6b690041a4e020aefe57f1b21691abrianosman    int col_offset;
400b445a57e6c36cce86580b618701b5af708a6f271jbauman};
401b445a57e6c36cce86580b618701b5af708a6f271jbauman
4023798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillipsstruct _keyword {
4033798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips    identifier arg;
404041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman    expr_ty value;
405041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman};
4063798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips
4073798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillipsstruct _alias {
4083798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips    identifier name;
4093798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips    identifier asname;
410041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman};
411041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman
4123798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillipsstruct _withitem {
4133798c86f6885f0b47fb2e659a43b48a4468a97efRobert Phillips    expr_ty context_expr;
414041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman    expr_ty optional_vars;
415041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman};
4162c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman
417041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman
418041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define Module(a0, a1) _Py_Module(a0, a1)
419041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanmod_ty _Py_Module(asdl_seq * body, PyArena *arena);
420041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define Interactive(a0, a1) _Py_Interactive(a0, a1)
421041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanmod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
422041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define Expression(a0, a1) _Py_Expression(a0, a1)
423041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanmod_ty _Py_Expression(expr_ty body, PyArena *arena);
424041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define Suite(a0, a1) _Py_Suite(a0, a1)
425041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanmod_ty _Py_Suite(asdl_seq * body, PyArena *arena);
4260ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
4270ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillipsstmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body,
428041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman                        asdl_seq * decorator_list, expr_ty returns, int lineno,
429041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman                        int col_offset, PyArena *arena);
430041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
431041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanstmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq *
4320ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips                             body, asdl_seq * decorator_list, expr_ty returns,
4330ae6faa34d73ffc7ebec3d13f0473703bade821bRobert Phillips                             int lineno, int col_offset, PyArena *arena);
434041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7)
435041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osmanstmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
436041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman                     asdl_seq * body, asdl_seq * decorator_list, int lineno,
437041f7dfc577822f1e97721a865f86a9a02660cf9Brian Osman                     int col_offset, PyArena *arena);
4382c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Return(a0, a1, a2, a3) _Py_Return(a0, a1, a2, a3)
4392c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, PyArena *arena);
4402c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Delete(a0, a1, a2, a3) _Py_Delete(a0, a1, a2, a3)
4412c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena
4422c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                   *arena);
4432c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Assign(a0, a1, a2, a3, a4) _Py_Assign(a0, a1, a2, a3, a4)
4442c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, int lineno, int
4452c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                   col_offset, PyArena *arena);
4462c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define AugAssign(a0, a1, a2, a3, a4, a5) _Py_AugAssign(a0, a1, a2, a3, a4, a5)
4472c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
4482c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                      lineno, int col_offset, PyArena *arena);
4492c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define For(a0, a1, a2, a3, a4, a5, a6) _Py_For(a0, a1, a2, a3, a4, a5, a6)
4502c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
4512c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                orelse, int lineno, int col_offset, PyArena *arena);
4522c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define AsyncFor(a0, a1, a2, a3, a4, a5, a6) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6)
4532c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
4542c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                     orelse, int lineno, int col_offset, PyArena *arena);
4552c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define While(a0, a1, a2, a3, a4, a5) _Py_While(a0, a1, a2, a3, a4, a5)
4562c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
4572c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                  int col_offset, PyArena *arena);
4582c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define If(a0, a1, a2, a3, a4, a5) _Py_If(a0, a1, a2, a3, a4, a5)
4592c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
4602c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman               int col_offset, PyArena *arena);
4612c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define With(a0, a1, a2, a3, a4) _Py_With(a0, a1, a2, a3, a4)
4622c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_With(asdl_seq * items, asdl_seq * body, int lineno, int col_offset,
4632c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                 PyArena *arena);
4642c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define AsyncWith(a0, a1, a2, a3, a4) _Py_AsyncWith(a0, a1, a2, a3, a4)
4652c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, int lineno, int
4662c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                      col_offset, PyArena *arena);
4672c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Raise(a0, a1, a2, a3, a4) _Py_Raise(a0, a1, a2, a3, a4)
4682c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
4692c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                  PyArena *arena);
4707ee385e1dc3cd6a47dc8f7297fef6e175eaba224Robert Phillips#define Try(a0, a1, a2, a3, a4, a5, a6) _Py_Try(a0, a1, a2, a3, a4, a5, a6)
4712c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
4722c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                asdl_seq * finalbody, int lineno, int col_offset, PyArena
4732c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                *arena);
4742c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Assert(a0, a1, a2, a3, a4) _Py_Assert(a0, a1, a2, a3, a4)
4752c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
4762c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                   PyArena *arena);
4772c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Import(a0, a1, a2, a3) _Py_Import(a0, a1, a2, a3)
4782c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, PyArena
4792c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                   *arena);
4802c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define ImportFrom(a0, a1, a2, a3, a4, a5) _Py_ImportFrom(a0, a1, a2, a3, a4, a5)
4812c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_ImportFrom(identifier module, asdl_seq * names, int level, int
4822c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                       lineno, int col_offset, PyArena *arena);
4832c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Global(a0, a1, a2, a3) _Py_Global(a0, a1, a2, a3)
4842c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, PyArena
4852c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman                   *arena);
4862c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Nonlocal(a0, a1, a2, a3) _Py_Nonlocal(a0, a1, a2, a3)
4872c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, PyArena
488fe3b51636d4216c4ea6cb74ed0964c1d315ca487Brian Osman                     *arena);
4892c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define Expr(a0, a1, a2, a3) _Py_Expr(a0, a1, a2, a3)
4902c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
491766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osman#define Pass(a0, a1, a2) _Py_Pass(a0, a1, a2)
492766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osmanstmt_ty _Py_Pass(int lineno, int col_offset, PyArena *arena);
493766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osman#define Break(a0, a1, a2) _Py_Break(a0, a1, a2)
494766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osmanstmt_ty _Py_Break(int lineno, int col_offset, PyArena *arena);
495766fcbb01cece88ad88808581b4ecc5a5cb60e01Brian Osman#define Continue(a0, a1, a2) _Py_Continue(a0, a1, a2)
4962c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osmanstmt_ty _Py_Continue(int lineno, int col_offset, PyArena *arena);
4972c2bc11aea4dfcd7ee2f5859838a2aa0a56939e0Brian Osman#define BoolOp(a0, a1, a2, a3, a4) _Py_BoolOp(a0, a1, a2, a3, a4)
498634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
499396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman                   PyArena *arena);
500634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define BinOp(a0, a1, a2, a3, a4, a5) _Py_BinOp(a0, a1, a2, a3, a4, a5)
501634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
502396fcdba14a0101ed43dcc3863585bf50c4ed6ccbrianosman                  col_offset, PyArena *arena);
503634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define UnaryOp(a0, a1, a2, a3, a4) _Py_UnaryOp(a0, a1, a2, a3, a4)
504634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
505634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon                    PyArena *arena);
506634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define Lambda(a0, a1, a2, a3, a4) _Py_Lambda(a0, a1, a2, a3, a4)
507634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
508634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon                   PyArena *arena);
509634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define IfExp(a0, a1, a2, a3, a4, a5) _Py_IfExp(a0, a1, a2, a3, a4, a5)
510634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int
511634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon                  col_offset, PyArena *arena);
512634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define Dict(a0, a1, a2, a3, a4) _Py_Dict(a0, a1, a2, a3, a4)
513634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomonexpr_ty _Py_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int
514634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon                 col_offset, PyArena *arena);
515634b43008025d039f3f2f1f6c01e8044ffbb901fbsalomon#define Set(a0, a1, a2, a3) _Py_Set(a0, a1, a2, a3)
5165617900063f69754de62b8b12d32f6e36df14104reedexpr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, PyArena *arena);
5175617900063f69754de62b8b12d32f6e36df14104reed#define ListComp(a0, a1, a2, a3, a4) _Py_ListComp(a0, a1, a2, a3, a4)
5184d516a6903d83414b5615ca9388b52064da6990cbsalomonexpr_ty _Py_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
5194d516a6903d83414b5615ca9388b52064da6990cbsalomon                     col_offset, PyArena *arena);
5204d516a6903d83414b5615ca9388b52064da6990cbsalomon#define SetComp(a0, a1, a2, a3, a4) _Py_SetComp(a0, a1, a2, a3, a4)
5214d516a6903d83414b5615ca9388b52064da6990cbsalomonexpr_ty _Py_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
52241b952c296e343eeabb07d52b6a55ba7565a286bbsalomon                    col_offset, PyArena *arena);
52341b952c296e343eeabb07d52b6a55ba7565a286bbsalomon#define DictComp(a0, a1, a2, a3, a4, a5) _Py_DictComp(a0, a1, a2, a3, a4, a5)
5244d516a6903d83414b5615ca9388b52064da6990cbsalomonexpr_ty _Py_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int
5257b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman                     lineno, int col_offset, PyArena *arena);
5267b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman#define GeneratorExp(a0, a1, a2, a3, a4) _Py_GeneratorExp(a0, a1, a2, a3, a4)
5277b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osmanexpr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
5284d516a6903d83414b5615ca9388b52064da6990cbsalomon                         col_offset, PyArena *arena);
5297b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman#define Await(a0, a1, a2, a3) _Py_Await(a0, a1, a2, a3)
5307b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osmanexpr_ty _Py_Await(expr_ty value, int lineno, int col_offset, PyArena *arena);
5317b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman#define Yield(a0, a1, a2, a3) _Py_Yield(a0, a1, a2, a3)
5327b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osmanexpr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, PyArena *arena);
5337b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman#define YieldFrom(a0, a1, a2, a3) _Py_YieldFrom(a0, a1, a2, a3)
5347b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osmanexpr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, PyArena
5357b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman                      *arena);
5364d516a6903d83414b5615ca9388b52064da6990cbsalomon#define Compare(a0, a1, a2, a3, a4, a5) _Py_Compare(a0, a1, a2, a3, a4, a5)
5374d516a6903d83414b5615ca9388b52064da6990cbsalomonexpr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
5384d516a6903d83414b5615ca9388b52064da6990cbsalomon                    int lineno, int col_offset, PyArena *arena);
5397b8400dad2f82dcc6ed3c7cc1707ebaf85f04840Brian Osman#define Call(a0, a1, a2, a3, a4, a5) _Py_Call(a0, a1, a2, a3, a4, a5)
5404d516a6903d83414b5615ca9388b52064da6990cbsalomonexpr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
5414d516a6903d83414b5615ca9388b52064da6990cbsalomon                 lineno, int col_offset, PyArena *arena);
5424d516a6903d83414b5615ca9388b52064da6990cbsalomon#define Num(a0, a1, a2, a3) _Py_Num(a0, a1, a2, a3)
54333e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Num(object n, int lineno, int col_offset, PyArena *arena);
544a422d706b1a92e71c6f940de3ed3d0b84a13eb1bEric Karl#define Str(a0, a1, a2, a3) _Py_Str(a0, a1, a2, a3)
545a422d706b1a92e71c6f940de3ed3d0b84a13eb1bEric Karlexpr_ty _Py_Str(string s, int lineno, int col_offset, PyArena *arena);
546a422d706b1a92e71c6f940de3ed3d0b84a13eb1bEric Karl#define Bytes(a0, a1, a2, a3) _Py_Bytes(a0, a1, a2, a3)
547a422d706b1a92e71c6f940de3ed3d0b84a13eb1bEric Karlexpr_ty _Py_Bytes(bytes s, int lineno, int col_offset, PyArena *arena);
54833e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define NameConstant(a0, a1, a2, a3) _Py_NameConstant(a0, a1, a2, a3)
54933e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_NameConstant(singleton value, int lineno, int col_offset, PyArena
55033e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                         *arena);
55133e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Ellipsis(a0, a1, a2) _Py_Ellipsis(a0, a1, a2)
55233e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Ellipsis(int lineno, int col_offset, PyArena *arena);
55333e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Attribute(a0, a1, a2, a3, a4, a5) _Py_Attribute(a0, a1, a2, a3, a4, a5)
55433e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int
555921bc678a7b81de31b4e672326ed2f37ffb66b10cblume                      lineno, int col_offset, PyArena *arena);
556921bc678a7b81de31b4e672326ed2f37ffb66b10cblume#define Subscript(a0, a1, a2, a3, a4, a5) _Py_Subscript(a0, a1, a2, a3, a4, a5)
55733e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx, int
55833e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                      lineno, int col_offset, PyArena *arena);
559921bc678a7b81de31b4e672326ed2f37ffb66b10cblume#define Starred(a0, a1, a2, a3, a4) _Py_Starred(a0, a1, a2, a3, a4)
56033e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
56133e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                    col_offset, PyArena *arena);
56233e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Name(a0, a1, a2, a3, a4) _Py_Name(a0, a1, a2, a3, a4)
56333e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Name(identifier id, expr_context_ty ctx, int lineno, int
564921bc678a7b81de31b4e672326ed2f37ffb66b10cblume                 col_offset, PyArena *arena);
56533e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define List(a0, a1, a2, a3, a4) _Py_List(a0, a1, a2, a3, a4)
56633e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
56733e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                 col_offset, PyArena *arena);
56833e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Tuple(a0, a1, a2, a3, a4) _Py_Tuple(a0, a1, a2, a3, a4)
56933e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeexpr_ty _Py_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
57033e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                  col_offset, PyArena *arena);
57133e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Slice(a0, a1, a2, a3) _Py_Slice(a0, a1, a2, a3)
57233e0cb5e7f9926b96db209c825f1eeca7c15bb16cblumeslice_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena);
57341b952c296e343eeabb07d52b6a55ba7565a286bbsalomon#define ExtSlice(a0, a1) _Py_ExtSlice(a0, a1)
574b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkslice_ty _Py_ExtSlice(asdl_seq * dims, PyArena *arena);
57533e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define Index(a0, a1) _Py_Index(a0, a1)
5766c15cc7e9d65981ec0363a050d2248f96e21a5daBrian Osmanslice_ty _Py_Index(expr_ty value, PyArena *arena);
577b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk#define comprehension(a0, a1, a2, a3) _Py_comprehension(a0, a1, a2, a3)
578b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkcomprehension_ty _Py_comprehension(expr_ty target, expr_ty iter, asdl_seq *
579b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk                                   ifs, PyArena *arena);
58033e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume#define ExceptHandler(a0, a1, a2, a3, a4, a5) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5)
581b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkexcepthandler_ty _Py_ExceptHandler(expr_ty type, identifier name, asdl_seq *
582b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk                                   body, int lineno, int col_offset, PyArena
583b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk                                   *arena);
584b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk#define arguments(a0, a1, a2, a3, a4, a5, a6) _Py_arguments(a0, a1, a2, a3, a4, a5, a6)
585b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkarguments_ty _Py_arguments(asdl_seq * args, arg_ty vararg, asdl_seq *
58633e0cb5e7f9926b96db209c825f1eeca7c15bb16cblume                           kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg,
587b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk                           asdl_seq * defaults, PyArena *arena);
588b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk#define arg(a0, a1, a2) _Py_arg(a0, a1, a2)
58941b952c296e343eeabb07d52b6a55ba7565a286bbsalomonarg_ty _Py_arg(identifier arg, expr_ty annotation, PyArena *arena);
59041b952c296e343eeabb07d52b6a55ba7565a286bbsalomon#define keyword(a0, a1, a2) _Py_keyword(a0, a1, a2)
59141b952c296e343eeabb07d52b6a55ba7565a286bbsalomonkeyword_ty _Py_keyword(identifier arg, expr_ty value, PyArena *arena);
59241b952c296e343eeabb07d52b6a55ba7565a286bbsalomon#define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
59341b952c296e343eeabb07d52b6a55ba7565a286bbsalomonalias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
594b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk#define withitem(a0, a1, a2) _Py_withitem(a0, a1, a2)
595b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkwithitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
596b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk                         *arena);
597b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk
598b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkPyObject* PyAST_mod2obj(mod_ty t);
599b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkmod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
600b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrkint PyAST_Check(PyObject* obj);
601b4da01d8f719f3c43d492e8f62a7e2c861e9ef27ericrk