[Python-3000] Is this really a SyntaxError?
Guido van Rossum
guido at python.org
Wed Jul 30 21:35:07 CEST 2008
On Wed, Jul 30, 2008 at 2:34 AM, Amaury Forgeot d'Arc
<amauryfa at gmail.com> wrote:
> I hope this patch is simple enough for you:
>
> Index: Grammar/Grammar
> ===================================================================
> --- Grammar/Grammar (revision 65298)
> +++ Grammar/Grammar (working copy)
> @@ -113,7 +113,9 @@
>
> classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
>
> -arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test)
> +arglist: (argument ',')* (argument [',']
> + |'*' test (',' NAME '=' test)* [',' '**' test]
> + |'**' test)
> argument: test [comp_for] | test '=' test # Really [keyword '='] test
>
> comp_iter: comp_for | comp_if
>
>
> (and call pgen to rebuild the graminit.c)
>
> Positional arguments after the *args are explicitly disallowed:
> f(1, *[2, 3], 4, z=5)
> The syntax could make sense, but this would require more changes in
> the compiler,
> to properly order the parameters.
Are you saying that after the above Grammar change, the code generator
already does the right thing for Raymond's code? Then I say go for it
-- but please do add new unit tests.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-3000
mailing list