@action(Alt(Seq(Star(SeqN(<NUM_LIT:0>, varargslist__26_1, Tok("<STR_LIT:U+002C>"))),<EOL>Alt(varargslist__26_2, varargslist__26_3)),<EOL>Seq(List(varargslist__26_1, "<STR_LIT:U+002C>", trailing=True),<EOL>varargslist__26_4)))<EOL><INDENT>def varargslist__26(self, fparams, args):<DEDENT>
for fparam, default_opt in fparams:<EOL><INDENT>if default_opt:<EOL><INDENT>equals_loc, default = default_opt<EOL>args.equals_locs.append(equals_loc)<EOL>args.defaults.append(default)<EOL><DEDENT>elif len(args.defaults) > <NUM_LIT:0>:<EOL><INDENT>error = diagnostic.Diagnostic(<EOL>"<STR_LIT>", "<STR_LIT>", {},<EOL>fparam.loc, [args.args[-<NUM_LIT:1>].loc.join(args.defaults[-<NUM_LIT:1>].loc)])<EOL>self.diagnostic_engine.process(error)<EOL><DEDENT>args.args.append(fparam)<EOL><DEDENT>def fparam_loc(fparam, default_opt):<EOL><INDENT>if default_opt:<EOL><INDENT>equals_loc, default = default_opt<EOL>return fparam.loc.join(default.loc)<EOL><DEDENT>else:<EOL><INDENT>return fparam.loc<EOL><DEDENT><DEDENT>if args.loc is None:<EOL><INDENT>args.loc = fparam_loc(*fparams[<NUM_LIT:0>]).join(fparam_loc(*fparams[-<NUM_LIT:1>]))<EOL><DEDENT>elif len(fparams) > <NUM_LIT:0>:<EOL><INDENT>args.loc = args.loc.join(fparam_loc(*fparams[<NUM_LIT:0>]))<EOL><DEDENT>return args<EOL>
(2.6, 2.7)
varargslist: ((fpdef ['=' test] ',')*
              ('*' NAME [',' '**' NAME] | '**' NAME) |
              fpdef ['=' test] (',' fpdef ['=' test])* [','])