[Python-Dev] Grammar for plus and minus unary ops

Guido van Rossum guido at python.org
Fri Mar 27 20:44:00 CET 2009


Please take this to python-ideas.

On Fri, Mar 27, 2009 at 2:15 PM, Joe Smith <unknown_kev_cat at hotmail.com> wrote:
>
> Jared Grubb wrote:
>>
>> I'm not a EBNF expert, but it seems that we could modify the grammar  to
>> be more restrictive so the above code would not be silently valid.  E.g.,
>> "++5" and "1+++5" and "1+-+5" are syntax errors, but still keep  "1++5",
>> "1+-5", "1-+5" as valid. (Although, '~' throws in a kink...  should '~-5' be
>> legal? Seems so...)
>
> So you want something like
> u_expr :: =
>         power | "-" xyzzy_expr | "+" xyzzy_expr | "\~" u_expr
> xyzzy_expr :: =
>         power | "\~" u_expr
>
> Such that:
> 5   # valid u_expr
> +5  # valid u_expr
> -5  # valid u_expr
> ~5  # valid u_expr
> ~~5 # valid u_expr
> ~+5 # valid u_expr
> +~5 # valid u_expr
> ~-5 # valid u_expr
> -~5 # valid u_expr
> +~-5# valid u_expr
>
> ++5 # not valid u_expr
> +-5 # not valid u_expr
> -+5 # not valid u_expr
> --5 # not valid u_expr
>
> While, I'm not a python developer, (just a python user) that sounds
> reasonable to me, as long as this does not silently change the meaning of
> any expression, but only noisily breaks programs, and that the broken
> constructs are not used frequently.
>
> Can anybody come up with any expressions that would silently change in
> meaning if the above were applied?
>
> Obviously a sane name would need to be chosen to replace xyzzy_expr.
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/guido%40python.org
>



-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list