error in syntax description for comprehensions?
Ned Batchelder
ned at nedbatchelder.com
Thu Mar 30 19:31:41 EDT 2017
On Thursday, March 30, 2017 at 4:59:03 PM UTC-4, Boylan, Ross wrote:
> https://docs.python.org/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries
> describes the syntax for comprehensions as
> comprehension ::= expression comp_for
> comp_for ::= [ASYNC] "for" target_list "in" or_test [comp_iter]
> comp_iter ::= comp_for | comp_if
> comp_if ::= "if" expression_nocond [comp_iter]
>
> Is the comp_for missing an argument after "in"?
> One has to follow the definition of or_test and its components, but I can't find anything that results to a single variable or expression.
>
> Actually, I'm not sure what or_test would do there either with or without an additional element following "in".
Syntax grammars can be obtuse. An or_test can be an and_test, which
can be a not_test, which can be a comparison. It continues from there.
The whole chain of "can be" is:
or_test
and_test
not_test
comparison
or_expr
xor_expr
and_expr
shift_expr
a_expr
m_expr
u_expr
power
primary
atom
identifier
... and identifier is what you are looking for.
--Ned.
More information about the Python-list
mailing list