A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2009-March/087826.html below:

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

[Python-Dev] Grammar for plus and minus unary opsJoe Smith unknown_kev_cat at hotmail.com
Fri Mar 27 20:15:21 CET 2009
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. 


More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4