mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-15 00:47:11 +08:00
Raise custom errors after break tokens
This commit is contained in:
@@ -6,6 +6,7 @@ from contextlib import contextmanager
|
|||||||
|
|
||||||
from parso.normalizer import Normalizer, NormalizerConfig, Issue, Rule
|
from parso.normalizer import Normalizer, NormalizerConfig, Issue, Rule
|
||||||
from parso.python.tree import search_ancestor
|
from parso.python.tree import search_ancestor
|
||||||
|
from parso.python.tokenize import _get_token_collection
|
||||||
|
|
||||||
_BLOCK_STMTS = ('if_stmt', 'while_stmt', 'for_stmt', 'try_stmt', 'with_stmt')
|
_BLOCK_STMTS = ('if_stmt', 'while_stmt', 'for_stmt', 'try_stmt', 'with_stmt')
|
||||||
_STAR_EXPR_PARENTS = ('testlist_star_expr', 'testlist_comp', 'exprlist')
|
_STAR_EXPR_PARENTS = ('testlist_star_expr', 'testlist_comp', 'exprlist')
|
||||||
@@ -416,6 +417,11 @@ class ErrorFinder(Normalizer):
|
|||||||
match = re.match('\\w{,2}("{1,3}|\'{1,3})', leaf.value)
|
match = re.match('\\w{,2}("{1,3}|\'{1,3})', leaf.value)
|
||||||
if match is None:
|
if match is None:
|
||||||
message = 'invalid syntax'
|
message = 'invalid syntax'
|
||||||
|
if (
|
||||||
|
self.version >= (3, 9)
|
||||||
|
and leaf.value in _get_token_collection(self.version).always_break_tokens
|
||||||
|
):
|
||||||
|
message = "f-string: " + message
|
||||||
else:
|
else:
|
||||||
if len(match.group(1)) == 1:
|
if len(match.group(1)) == 1:
|
||||||
message = 'EOL while scanning string literal'
|
message = 'EOL while scanning string literal'
|
||||||
@@ -481,7 +487,7 @@ class SyntaxRule(Rule):
|
|||||||
|
|
||||||
def _get_message(self, message, node):
|
def _get_message(self, message, node):
|
||||||
message = super(SyntaxRule, self)._get_message(message, node)
|
message = super(SyntaxRule, self)._get_message(message, node)
|
||||||
if "f-string: " not in message and _any_fstring_error(self._normalizer.version, node):
|
if "f-string" not in message and _any_fstring_error(self._normalizer.version, node):
|
||||||
message = "f-string: " + message
|
message = "f-string: " + message
|
||||||
return "SyntaxError: " + message
|
return "SyntaxError: " + message
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user