For review: PEP 308 - If-then-else expression
Roman Suzi
rnd at onego.ru
Mon Feb 10 00:43:38 EST 2003
On Mon, 10 Feb 2003, Andrew Koenig wrote:
>Erik> Well, it's unambiguous, but it could require some extra
>Erik> lookahead. I'm no Python parser expert, but it seems to me the
>Erik> only case this happens is when the conditional expression is
>Erik> used as a standalone statement, e.g.
>
>Erik> if debug: sys.stderr.write('got here\n') else: None
>
>Why is extra lookahead required here? The "if" is the first token in
>the statement, so it can only denote an if-statement, not an
>if-expression.
In Python, expression is a standalone statement. So in case of
if expr1: expr2 else: expr3
the parser will notice the difference only at "else".
>Then we look at the grammar, which says that
>an if-statement in this case is
>
> "if" expression ":" suite "else" ":" suite
>
>and we see that a suite must end in a newline.
Sincerely yours, Roman Suzi
--
rnd at onego.ru =\= My AI powered by Linux RedHat 7.3
More information about the Python-list
mailing list