[Python-ideas] Tighten up the formal grammar and parsing a bit?
rosuav at gmail.com
Mon May 15 09:17:48 EDT 2017
On Mon, May 15, 2017 at 11:00 PM, Steven D'Aprano <steve at pearwood.info> wrote:
> On Mon, May 15, 2017 at 08:13:48PM +1000, Chris Angelico wrote:
>> On Mon, May 15, 2017 at 7:38 PM, Hugh Fisher <hugo.fisher at gmail.com> wrote:
>> > I wrote this little Python program using CPython 3.5.2. It's ...
>> > interesting ... that we apparently don't need comments or pass
>> > statements any more. Anyone else think it might be worth tightening up
>> > the grammar definition and parser a bit?
> There's also cases where
> if x > y:
> is *not necessarily* the same as
> if not (x > y):
> (x > y) is not always not(x <= y). E.g. sets, and even floats.
Uhm.... not sure what you're getting at here. I'm fully aware that:
if x > y:
is not the same as:
if x <= y:
but I don't know of any way that it could be different from:
if not (x > y):
because that's going to evaluate (x > y) exactly the same way the
original would, and then perform a boolean negation on it, which is
exactly the same as the if/else will do. Or have I missed something
>> The 'pass' statement has a very specific meaning and only a few
>> use-cases. It could often be omitted in favour of something else, but
>> there's not a lot of value in doing so. Comments have very significant
>> value and should definitely be kept.
> Oh, I see where you are coming from! You have interpreted Hugh as
> suggesting that we remove pass and # comments from the language! I
> interpreted him as suggesting the opposite: that we tighten up the
> grammar to prohibit bare expressions, in order to prevent them from
> being used instead of pass or # comments.
Yes, that was what I was interpreting his statements as. I now know
better, so you can ignore a lot of my comments, which were about that
So. Taking this the other way, that Hugh intended to make dumb code
illegal: I think it's unnecessary, because linters and optimizers are
better for detecting dead code; it's not something that often crops up
as a bug anywhere.
More information about the Python-ideas