Skip to content

Replace "starred_list" with standard grammar term "expression_list" in for statement documentation #134026

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Yash-Vijay29 opened this issue May 15, 2025 · 9 comments
Labels
docs Documentation in the Doc dir

Comments

@Yash-Vijay29
Copy link
Contributor

Yash-Vijay29 commented May 15, 2025

Documentation

In the compound statements docs, section 8.3 i found:

for_stmt ::= "for" target_list "in" starred_list ":" suite
["else" ":" suite]

However, starred_list does not appear to be a defined production rule elsewhere in the language reference. It seems to act more like a semantic placeholder to indicate that starred_expressions (like *x) are allowed in the iterable.

Since the real grammar uses expression_list — which already includes starred_expression — would it be more consistent and accurate to write this instead?:

for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]

…and then note in the accompanying text that starred_expression is supported?
This might reduce confusion for readers trying to understand or implement the formal grammar.
Can I work on that?

Linked PRs

@Yash-Vijay29 Yash-Vijay29 added the docs Documentation in the Doc dir label May 15, 2025
@sanjai-11
Copy link

Hi, I am willing to work on this issue #134026
Assign me to this issue.

@Yash-Vijay29
Copy link
Contributor Author

Yash-Vijay29 commented May 15, 2025

Hi, I am willing to work on this issue #134026 Assign me to this issue.

Hi, I actually opened this issue because I noticed the inconsistency and proposed the solution. I'm planning to submit a PR for it shortly. Appreciate the interest, but I’ll be taking this one. I asked in the issues because even i am not sure if its supposed to be changed or whether "starred_list" is correct. Im hoping for someone more experienced to help clarify it. I am new here too and this is my first doc inconsistency, I do not have the power to assign issues as thats only for trusted developers i believe

@sanjai-11
Copy link

Got it, Thanks

@skirpichev
Copy link
Contributor

See

cpython/Grammar/python.gram

Lines 715 to 723 in 6df3976

star_expressions[expr_ty]:
| a=star_expression b=(',' c=star_expression { c })+ [','] {
_PyAST_Tuple(CHECK(asdl_expr_seq*, _PyPegen_seq_insert_in_front(p, a, b)), Load, EXTRA) }
| a=star_expression ',' { _PyAST_Tuple(CHECK(asdl_expr_seq*, _PyPegen_singleton_seq(p, a)), Load, EXTRA) }
| star_expression
star_expression[expr_ty] (memo):
| '*' a=bitwise_or { _PyAST_Starred(a, Load, EXTRA) }
| expression

@Yash-Vijay29
Copy link
Contributor Author

ah okay. Sorry to bother i must have missed it as i hit "starred" on my ctrl+f in the grammar. Thank you

@skirpichev
Copy link
Contributor

No, you misunderstood. This is a quote from the grammar for your reference. I believe issue is valid.

@Yash-Vijay29
Copy link
Contributor Author

No, you misunderstood. This is a quote from the grammar for your reference. I believe issue is valid.

oh okay.. its my first issue ever on github so am a bit nervous.
so i change the starred_list into star_expression?

@skirpichev
Copy link
Contributor

so i change the starred_list into star_expression?

I'm not sure about naming. But whatever it will be, you should define the starred_list.

@Yash-Vijay29
Copy link
Contributor Author

Oh okay. I will look into doing that

miss-islington pushed a commit to miss-islington/cpython that referenced this issue May 21, 2025
…34034)

(cherry picked from commit 4eacf38)

Co-authored-by: Yash Vijay <yash_vijay@outlook.com>
encukou pushed a commit that referenced this issue May 21, 2025
GH-134424)

gh-134026: Fix grammar description of for statement (GH-134034)
(cherry picked from commit 4eacf38)

Co-authored-by: Yash Vijay <yash_vijay@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir
Projects
Status: Todo
Development

No branches or pull requests

3 participants