[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

AltStyle によって変換されたページ (->オリジナル) /