From fc80cebfb8c2aebe101fc610d160b023ed171e74 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 16 Aug 2017 22:13:11 +0200 Subject: [PATCH] More normalizer Rule refactoring. --- parso/normalizer.py | 22 ++++++++++++++-------- parso/python/errors.py | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/parso/normalizer.py b/parso/normalizer.py index 4a068c0..76afe4a 100644 --- a/parso/normalizer.py +++ b/parso/normalizer.py @@ -102,19 +102,22 @@ class Issue(object): class Rule(object): - error_code = None + code = None message = None - def check(self, node): + def __init__(self, normalizer): + self._normalizer = normalizer + + def is_issue(self, node): raise NotImplementedError() - def get_error_node(self, node): + def get_node(self, node): return node - def add_error(self, error_code=None, message=None): - if error_code is None: - error_code = self.error_code - if error_code is None: + def add_issue(self, node, code=None, message=None): + if code is None: + code = self.code + if code is None: raise ValueError("The error code on the class is not set.") if message is None: @@ -122,6 +125,9 @@ class Rule(object): if message is None: raise ValueError("The message on the class is not set.") + self._normalizer.add_issue(code, message, node) + def feed_node(self, node): if self.check(node): - error_node = self.get_error_node(node) + issue_node = self.get_node(node) + self.add_issue(issue_node) diff --git a/parso/python/errors.py b/parso/python/errors.py index a359e51..55cb15e 100644 --- a/parso/python/errors.py +++ b/parso/python/errors.py @@ -798,4 +798,5 @@ class AwaitOutsideAsync(SyntaxRule): return not self._context.is_async_funcdef() def get_error_node(self, node): - return node.parent # Return the whole await statement. + # Return the whole await statement. + return node.parent