Index: third_party/closure_linter/closure_linter/checkerbase.py |
diff --git a/third_party/closure_linter/closure_linter/checkerbase.py b/third_party/closure_linter/closure_linter/checkerbase.py |
deleted file mode 100755 |
index 6679ded05be1e19b2a6b86fff8e7a794c8f789b5..0000000000000000000000000000000000000000 |
--- a/third_party/closure_linter/closure_linter/checkerbase.py |
+++ /dev/null |
@@ -1,192 +0,0 @@ |
-#!/usr/bin/env python |
-# |
-# Copyright 2008 The Closure Linter Authors. All Rights Reserved. |
-# |
-# Licensed under the Apache License, Version 2.0 (the "License"); |
-# you may not use this file except in compliance with the License. |
-# You may obtain a copy of the License at |
-# |
-# http://www.apache.org/licenses/LICENSE-2.0 |
-# |
-# Unless required by applicable law or agreed to in writing, software |
-# distributed under the License is distributed on an "AS-IS" BASIS, |
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-# See the License for the specific language governing permissions and |
-# limitations under the License. |
- |
-"""Base classes for writing checkers that operate on tokens.""" |
- |
-# Allow non-Google copyright |
-# pylint: disable=g-bad-file-header |
- |
-__author__ = ('robbyw@google.com (Robert Walker)', |
- 'ajp@google.com (Andy Perelson)', |
- 'jacobr@google.com (Jacob Richman)') |
- |
-from closure_linter import errorrules |
-from closure_linter.common import error |
- |
- |
-class LintRulesBase(object): |
- """Base class for all classes defining the lint rules for a language.""" |
- |
- def __init__(self): |
- self.__checker = None |
- |
- def Initialize(self, checker, limited_doc_checks, is_html): |
- """Initializes to prepare to check a file. |
- |
- Args: |
- checker: Class to report errors to. |
- limited_doc_checks: Whether doc checking is relaxed for this file. |
- is_html: Whether the file is an HTML file with extracted contents. |
- """ |
- self.__checker = checker |
- self._limited_doc_checks = limited_doc_checks |
- self._is_html = is_html |
- |
- def _HandleError(self, code, message, token, position=None, |
- fix_data=None): |
- """Call the HandleError function for the checker we are associated with.""" |
- if errorrules.ShouldReportError(code): |
- self.__checker.HandleError(code, message, token, position, fix_data) |
- |
- def _SetLimitedDocChecks(self, limited_doc_checks): |
- """Sets whether doc checking is relaxed for this file. |
- |
- Args: |
- limited_doc_checks: Whether doc checking is relaxed for this file. |
- """ |
- self._limited_doc_checks = limited_doc_checks |
- |
- def CheckToken(self, token, parser_state): |
- """Checks a token, given the current parser_state, for warnings and errors. |
- |
- Args: |
- token: The current token under consideration. |
- parser_state: Object that indicates the parser state in the page. |
- |
- Raises: |
- TypeError: If not overridden. |
- """ |
- raise TypeError('Abstract method CheckToken not implemented') |
- |
- def Finalize(self, parser_state): |
- """Perform all checks that need to occur after all lines are processed. |
- |
- Args: |
- parser_state: State of the parser after parsing all tokens |
- |
- Raises: |
- TypeError: If not overridden. |
- """ |
- raise TypeError('Abstract method Finalize not implemented') |
- |
- |
-class CheckerBase(object): |
- """This class handles checking a LintRules object against a file.""" |
- |
- def __init__(self, error_handler, lint_rules, state_tracker): |
- """Initialize a checker object. |
- |
- Args: |
- error_handler: Object that handles errors. |
- lint_rules: LintRules object defining lint errors given a token |
- and state_tracker object. |
- state_tracker: Object that tracks the current state in the token stream. |
- |
- """ |
- self._error_handler = error_handler |
- self._lint_rules = lint_rules |
- self._state_tracker = state_tracker |
- |
- self._has_errors = False |
- |
- def HandleError(self, code, message, token, position=None, |
- fix_data=None): |
- """Prints out the given error message including a line number. |
- |
- Args: |
- code: The error code. |
- message: The error to print. |
- token: The token where the error occurred, or None if it was a file-wide |
- issue. |
- position: The position of the error, defaults to None. |
- fix_data: Metadata used for fixing the error. |
- """ |
- self._has_errors = True |
- self._error_handler.HandleError( |
- error.Error(code, message, token, position, fix_data)) |
- |
- def HasErrors(self): |
- """Returns true if the style checker has found any errors. |
- |
- Returns: |
- True if the style checker has found any errors. |
- """ |
- return self._has_errors |
- |
- def Check(self, start_token, limited_doc_checks=False, is_html=False, |
- stop_token=None): |
- """Checks a token stream, reporting errors to the error reporter. |
- |
- Args: |
- start_token: First token in token stream. |
- limited_doc_checks: Whether doc checking is relaxed for this file. |
- is_html: Whether the file being checked is an HTML file with extracted |
- contents. |
- stop_token: If given, check should stop at this token. |
- """ |
- |
- self._lint_rules.Initialize(self, limited_doc_checks, is_html) |
- self._ExecutePass(start_token, self._LintPass, stop_token=stop_token) |
- self._lint_rules.Finalize(self._state_tracker) |
- |
- def _LintPass(self, token): |
- """Checks an individual token for lint warnings/errors. |
- |
- Used to encapsulate the logic needed to check an individual token so that it |
- can be passed to _ExecutePass. |
- |
- Args: |
- token: The token to check. |
- """ |
- self._lint_rules.CheckToken(token, self._state_tracker) |
- |
- def _ExecutePass(self, token, pass_function, stop_token=None): |
- """Calls the given function for every token in the given token stream. |
- |
- As each token is passed to the given function, state is kept up to date and, |
- depending on the error_trace flag, errors are either caught and reported, or |
- allowed to bubble up so developers can see the full stack trace. If a parse |
- error is specified, the pass will proceed as normal until the token causing |
- the parse error is reached. |
- |
- Args: |
- token: The first token in the token stream. |
- pass_function: The function to call for each token in the token stream. |
- stop_token: The last token to check (if given). |
- |
- Raises: |
- Exception: If any error occurred while calling the given function. |
- """ |
- |
- self._state_tracker.Reset() |
- while token: |
- # When we are looking at a token and decided to delete the whole line, we |
- # will delete all of them in the "HandleToken()" below. So the current |
- # token and subsequent ones may already be deleted here. The way we |
- # delete a token does not wipe out the previous and next pointers of the |
- # deleted token. So we need to check the token itself to make sure it is |
- # not deleted. |
- if not token.is_deleted: |
- # End the pass at the stop token |
- if stop_token and token is stop_token: |
- return |
- |
- self._state_tracker.HandleToken( |
- token, self._state_tracker.GetLastNonSpaceToken()) |
- pass_function(token) |
- self._state_tracker.HandleAfterToken(token) |
- |
- token = token.next |