@@ -915,7 +915,7 @@ fstring_middle[expr_ty]:
915
915
| fstring_replacement_field
916
916
| t=FSTRING_MIDDLE { _PyPegen_constant_from_token(p, t) }
917
917
fstring_replacement_field[expr_ty]:
918
- | '{' a=(yield_expr | star_expressions) debug_expr='='? conversion=[fstring_conversion] format=[fstring_full_format_spec] rbrace='}' {
918
+ | '{' a=annotated_rhs debug_expr='='? conversion=[fstring_conversion] format=[fstring_full_format_spec] rbrace='}' {
919
919
_PyPegen_formatted_value(p, a, debug_expr, conversion, format, rbrace, EXTRA) }
920
920
| invalid_replacement_field
921
921
fstring_conversion[ResultTokenWithMetadata*]:
@@ -1201,7 +1201,7 @@ invalid_assignment:
1201
1201
| (star_targets '=')* a=star_expressions '=' {
1202
1202
RAISE_SYNTAX_ERROR_INVALID_TARGET(STAR_TARGETS, a) }
1203
1203
| (star_targets '=')* a=yield_expr '=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "assignment to yield expression not possible") }
1204
- | a=star_expressions augassign (yield_expr | star_expressions) {
1204
+ | a=star_expressions augassign annotated_rhs {
1205
1205
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
1206
1206
a,
1207
1207
"'%s' is an illegal expression for augmented assignment",
@@ -1407,17 +1407,17 @@ invalid_replacement_field:
1407
1407
| '{' a='!' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before '!'") }
1408
1408
| '{' a=':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before ':'") }
1409
1409
| '{' a='}' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before '}'") }
1410
- | '{' !(yield_expr | star_expressions) { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting a valid expression after '{'")}
1411
- | '{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}') {
1410
+ | '{' !annotated_rhs { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting a valid expression after '{'")}
1411
+ | '{' annotated_rhs !('=' | '!' | ':' | '}') {
1412
1412
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '=', or '!', or ':', or '}'") }
1413
- | '{' (yield_expr | star_expressions) '=' !('!' | ':' | '}') {
1413
+ | '{' annotated_rhs '=' !('!' | ':' | '}') {
1414
1414
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '!', or ':', or '}'") }
1415
- | '{' (yield_expr | star_expressions) '='? invalid_conversion_character
1416
- | '{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}') {
1415
+ | '{' annotated_rhs '='? invalid_conversion_character
1416
+ | '{' annotated_rhs '='? ['!' NAME] !(':' | '}') {
1417
1417
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting ':' or '}'") }
1418
- | '{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}' {
1418
+ | '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}' {
1419
1419
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}', or format specs") }
1420
- | '{' (yield_expr | star_expressions) '='? ['!' NAME] !'}' {
1420
+ | '{' annotated_rhs '='? ['!' NAME] !'}' {
1421
1421
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}'") }
1422
1422
1423
1423
invalid_conversion_character:
0 commit comments