@@ -289,32 +289,33 @@ def make_func_declaration(func_name: str, lineno: int, class_: CLASS, type_=None
289289
290290def make_arg_list (node , * args ):
291291 """Wrapper: returns a node with an argument_list."""
292- return symbols .ARGLIST .make_node (node , * args )
292+ result = symbols .ARGLIST .make_node (node , * args )
293+ return result
293294
294295
295- def make_argument (expr , lineno , byref = None ):
296+ def make_argument (expr , lineno : int , byref = None , name : str = None ):
296297 """Wrapper: Creates a node containing an ARGUMENT"""
297298 if expr is None :
298299 return # There were a syntax / semantic error
299300
300301 if byref is None :
301302 byref = OPTIONS .default_byref
302- return symbols .ARGUMENT (expr , lineno = lineno , byref = byref )
303+ return symbols .ARGUMENT (expr , lineno = lineno , byref = byref , name = name )
303304
304305
305306def make_param_list (node , * args ):
306307 """Wrapper: Returns a param declaration list (function header)"""
307308 return symbols .PARAMLIST .make_node (node , * args )
308309
309310
310- def make_sub_call (id_ , lineno , params ):
311+ def make_sub_call (id_ , lineno , arg_list ):
311312 """This will return an AST node for a sub/procedure call."""
312- return symbols .CALL .make_node (id_ , params , lineno , gl .FILENAME )
313+ return symbols .CALL .make_node (id_ , arg_list , lineno , gl .FILENAME )
313314
314315
315- def make_func_call (id_ , lineno , params ):
316+ def make_func_call (id_ , lineno , arg_list ):
316317 """This will return an AST node for a function call."""
317- return symbols .FUNCCALL .make_node (id_ , params , lineno , gl .FILENAME )
318+ return symbols .FUNCCALL .make_node (id_ , arg_list , lineno , gl .FILENAME )
318319
319320
320321def make_array_access (id_ , lineno , arglist ):
@@ -2766,6 +2767,11 @@ def p_argument(p):
27662767 p [0 ] = make_argument (p [1 ], p .lineno (1 ))
27672768
27682769
2770+ def p_named_argument (p ):
2771+ """argument : ID WEQ expr %prec ID"""
2772+ p [0 ] = make_argument (p [3 ], p .lineno (1 ), name = p [1 ])
2773+
2774+
27692775def p_argument_array (p ):
27702776 """argument : ARRAY_ID"""
27712777 entry = SYMBOL_TABLE .access_array (p [1 ], p .lineno (1 ))
0 commit comments