Mark Dickinson <[email protected]> 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 <[email protected]>
<http://bugs.python.org/issue2009>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com