Mark Dickinson <dicki...@gmail.com> added the comment:

+!. I had to do a very similar refactoring recently when trying to fix the 
parser module to understand keyword-only arguments and annotations.

Taking keyword-only arguments into account, I think the replacement needs to be:

varargslist: (vfpdef ['=' test] (',' vfpdef ['=' test])* [',' 
   ['*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef]]
 |  '*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef)

and the analogous replacement needs to be made in the production for 
'typedargslist', too.

BTW, I'm a bit surprised that the grammar doesn't allow for trailing commas 
after keyword-only arguments:  that is,

def f(a, b,): ...     is fine, but
def f(*, a, b,): ...  is a SyntaxError

----------
nosy: +mark.dickinson

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue2009>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to