@@ -30,6 +30,8 @@ typedef struct _excepthandler *excepthandler_ty;
3030
3131typedef struct _arguments * arguments_ty ;
3232
33+ typedef struct _arg * arg_ty ;
34+
3335typedef struct _keyword * keyword_ty ;
3436
3537typedef struct _alias * alias_ty ;
@@ -74,6 +76,7 @@ struct _stmt {
7476 arguments_ty args ;
7577 asdl_seq * body ;
7678 asdl_seq * decorators ;
79+ expr_ty returns ;
7780 } FunctionDef ;
7881
7982 struct {
@@ -328,12 +331,30 @@ struct _excepthandler {
328331struct _arguments {
329332 asdl_seq * args ;
330333 identifier vararg ;
334+ expr_ty varargannotation ;
331335 asdl_seq * kwonlyargs ;
332336 identifier kwarg ;
337+ expr_ty kwargannotation ;
333338 asdl_seq * defaults ;
334339 asdl_seq * kw_defaults ;
335340};
336341
342+ enum _arg_kind {SimpleArg_kind = 1 , NestedArgs_kind = 2 };
343+ struct _arg {
344+ enum _arg_kind kind ;
345+ union {
346+ struct {
347+ identifier arg ;
348+ expr_ty annotation ;
349+ } SimpleArg ;
350+
351+ struct {
352+ asdl_seq * args ;
353+ } NestedArgs ;
354+
355+ } v ;
356+ };
357+
337358struct _keyword {
338359 identifier arg ;
339360 expr_ty value ;
@@ -350,8 +371,8 @@ mod_ty Interactive(asdl_seq * body, PyArena *arena);
350371mod_ty Expression (expr_ty body , PyArena * arena );
351372mod_ty Suite (asdl_seq * body , PyArena * arena );
352373stmt_ty FunctionDef (identifier name , arguments_ty args , asdl_seq * body ,
353- asdl_seq * decorators , int lineno , int col_offset , PyArena
354- * arena );
374+ asdl_seq * decorators , expr_ty returns , int lineno , int
375+ col_offset , PyArena * arena );
355376stmt_ty ClassDef (identifier name , asdl_seq * bases , asdl_seq * body , int
356377 lineno , int col_offset , PyArena * arena );
357378stmt_ty Return (expr_ty value , int lineno , int col_offset , PyArena * arena );
@@ -429,9 +450,12 @@ comprehension_ty comprehension(expr_ty target, expr_ty iter, asdl_seq * ifs,
429450 PyArena * arena );
430451excepthandler_ty excepthandler (expr_ty type , expr_ty name , asdl_seq * body , int
431452 lineno , int col_offset , PyArena * arena );
432- arguments_ty arguments (asdl_seq * args , identifier vararg , asdl_seq *
433- kwonlyargs , identifier kwarg , asdl_seq * defaults ,
453+ arguments_ty arguments (asdl_seq * args , identifier vararg , expr_ty
454+ varargannotation , asdl_seq * kwonlyargs , identifier
455+ kwarg , expr_ty kwargannotation , asdl_seq * defaults ,
434456 asdl_seq * kw_defaults , PyArena * arena );
457+ arg_ty SimpleArg (identifier arg , expr_ty annotation , PyArena * arena );
458+ arg_ty NestedArgs (asdl_seq * args , PyArena * arena );
435459keyword_ty keyword (identifier arg , expr_ty value , PyArena * arena );
436460alias_ty alias (identifier name , identifier asname , PyArena * arena );
437461
0 commit comments