diff options
author | Lysandros Nikolaou <lisandrosnik@gmail.com> | 2022-11-20 17:11:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-20 17:11:02 (GMT) |
commit | 9c4232ae8972a33f84e875cfdd866318a1233e47 (patch) | |
tree | ee1b0534bb4149354fad86d837468c223edb9b80 /Grammar | |
parent | b0e1f9c241cd8f8c864d51059217f997d3b792bf (diff) | |
download | cpython-9c4232ae8972a33f84e875cfdd866318a1233e47.zip cpython-9c4232ae8972a33f84e875cfdd866318a1233e47.tar.gz cpython-9c4232ae8972a33f84e875cfdd866318a1233e47.tar.bz2 |
gh-99211: Point to except/except* on syntax errors when mixing them (GH-99215)
Automerge-Triggered-By: GH:lysnikolaou
Diffstat (limited to 'Grammar')
-rw-r--r-- | Grammar/python.gram | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram index c947d22..787fbad 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1254,7 +1254,9 @@ invalid_try_stmt: | a='try' ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'try' statement on line %d", a->lineno) } | 'try' ':' block !('except' | 'finally') { RAISE_SYNTAX_ERROR("expected 'except' or 'finally' block") } - | a='try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block* { + | 'try' ':' block* except_block+ a='except' b='*' expression ['as' NAME] ':' { + RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "cannot have both 'except' and 'except*' on the same 'try'") } + | 'try' ':' block* except_star_block+ a='except' [expression ['as' NAME]] ':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "cannot have both 'except' and 'except*' on the same 'try'") } invalid_except_stmt: | 'except' '*'? a=expression ',' expressions ['as' NAME ] ':' { |