mirror of
https://github.com/davidhalter/parso.git
synced 2026-05-19 23:10:16 +08:00
More normalizer Rule refactoring.
This commit is contained in:
+14
-8
@@ -102,19 +102,22 @@ class Issue(object):
|
|||||||
|
|
||||||
|
|
||||||
class Rule(object):
|
class Rule(object):
|
||||||
error_code = None
|
code = None
|
||||||
message = None
|
message = None
|
||||||
|
|
||||||
def check(self, node):
|
def __init__(self, normalizer):
|
||||||
|
self._normalizer = normalizer
|
||||||
|
|
||||||
|
def is_issue(self, node):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def get_error_node(self, node):
|
def get_node(self, node):
|
||||||
return node
|
return node
|
||||||
|
|
||||||
def add_error(self, error_code=None, message=None):
|
def add_issue(self, node, code=None, message=None):
|
||||||
if error_code is None:
|
if code is None:
|
||||||
error_code = self.error_code
|
code = self.code
|
||||||
if error_code is None:
|
if code is None:
|
||||||
raise ValueError("The error code on the class is not set.")
|
raise ValueError("The error code on the class is not set.")
|
||||||
|
|
||||||
if message is None:
|
if message is None:
|
||||||
@@ -122,6 +125,9 @@ class Rule(object):
|
|||||||
if message is None:
|
if message is None:
|
||||||
raise ValueError("The message on the class is not set.")
|
raise ValueError("The message on the class is not set.")
|
||||||
|
|
||||||
|
self._normalizer.add_issue(code, message, node)
|
||||||
|
|
||||||
def feed_node(self, node):
|
def feed_node(self, node):
|
||||||
if self.check(node):
|
if self.check(node):
|
||||||
error_node = self.get_error_node(node)
|
issue_node = self.get_node(node)
|
||||||
|
self.add_issue(issue_node)
|
||||||
|
|||||||
@@ -798,4 +798,5 @@ class AwaitOutsideAsync(SyntaxRule):
|
|||||||
return not self._context.is_async_funcdef()
|
return not self._context.is_async_funcdef()
|
||||||
|
|
||||||
def get_error_node(self, node):
|
def get_error_node(self, node):
|
||||||
return node.parent # Return the whole await statement.
|
# Return the whole await statement.
|
||||||
|
return node.parent
|
||||||
|
|||||||
Reference in New Issue
Block a user