Skip to content

Commit 416fa9c

Browse files
committed
Revert "Merge pull request #66 from sunmy2019/enhance-grammar-of-invalid-replacement"
This reverts commit d478c22, reversing changes made to 4d91ff9.
1 parent d478c22 commit 416fa9c

File tree

4 files changed

+430
-1078
lines changed

4 files changed

+430
-1078
lines changed

Grammar/python.gram

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,19 +1358,14 @@ invalid_kvpair:
13581358
invalid_starred_expression:
13591359
| a='*' expression '=' b=expression { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "cannot assign to iterable argument unpacking") }
13601360
invalid_replacement_field:
1361-
| '{' !(yield_expr | star_expressions) { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting expression after '{'")}
1362-
| '{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}') {
1363-
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '=', or '!', or ':', or '}'") }
1364-
| '{' (yield_expr | star_expressions) '=' !('!' | ':' | '}') {
1365-
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '!', or ':', or '}'") }
1366-
| '{' (yield_expr | star_expressions) '='? invalid_conversion_character
1367-
| '{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}') {
1368-
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting ':' or '}'") }
1369-
| '{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}' {
1370-
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}', or format specs") }
1371-
| '{' (yield_expr | star_expressions) '='? ['!' NAME] !'}' {
1372-
PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}'") }
1373-
1361+
| '{' a='=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: expression required before '='") }
1362+
| '{' a=':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: expression required before ':'") }
1363+
| '{' a='!' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: expression required before '!'") }
1364+
| '{' a='}' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: empty expression not allowed") }
1365+
| '{' (yield_expr | star_expressions) "="? invalid_conversion_character
1366+
| '{' (yield_expr | star_expressions) "="? [ "!" NAME ] [ ':' fstring_format_spec* ] !'}' {
1367+
RAISE_SYNTAX_ERROR("f-string: expecting '}'")
1368+
}
13741369
invalid_conversion_character:
1375-
| '!' &(':' | '}') { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: missing conversion character") }
1376-
| '!' !NAME { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: invalid conversion character") }
1370+
| a="!" &(':'|'}') { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: missed conversion character") }
1371+
| a="!" !NAME { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: invalid conversion character") }

0 commit comments

Comments
 (0)