Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: third_party/closure_linter/closure_linter/runner.py

Issue 2592193002: Remove closure_linter from Chrome (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/closure_linter/closure_linter/runner.py
diff --git a/third_party/closure_linter/closure_linter/runner.py b/third_party/closure_linter/closure_linter/runner.py
deleted file mode 100644
index 04e7fa4ac87a1c58e97b782dc56c638c8f4072ab..0000000000000000000000000000000000000000
--- a/third_party/closure_linter/closure_linter/runner.py
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2012 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.
-
-"""Main lint function. Tokenizes file, runs passes, and feeds to checker."""
-
-# Allow non-Google copyright
-# pylint: disable=g-bad-file-header
-
-__author__ = 'nnaze@google.com (Nathan Naze)'
-
-import traceback
-
-import gflags as flags
-
-from closure_linter import checker
-from closure_linter import ecmalintrules
-from closure_linter import ecmametadatapass
-from closure_linter import error_check
-from closure_linter import errors
-from closure_linter import javascriptstatetracker
-from closure_linter import javascripttokenizer
-
-from closure_linter.common import error
-from closure_linter.common import htmlutil
-from closure_linter.common import tokens
-
-flags.DEFINE_list('limited_doc_files', ['dummy.js', 'externs.js'],
- 'List of files with relaxed documentation checks. Will not '
- 'report errors for missing documentation, some missing '
- 'descriptions, or methods whose @return tags don\'t have a '
- 'matching return statement.')
-flags.DEFINE_boolean('error_trace', False,
- 'Whether to show error exceptions.')
-flags.ADOPT_module_key_flags(checker)
-flags.ADOPT_module_key_flags(ecmalintrules)
-flags.ADOPT_module_key_flags(error_check)
-
-
-def _GetLastNonWhiteSpaceToken(start_token):
- """Get the last non-whitespace token in a token stream."""
- ret_token = None
-
- whitespace_tokens = frozenset([
- tokens.TokenType.WHITESPACE, tokens.TokenType.BLANK_LINE])
- for t in start_token:
- if t.type not in whitespace_tokens:
- ret_token = t
-
- return ret_token
-
-
-def _IsHtml(filename):
- return filename.endswith('.html') or filename.endswith('.htm')
-
-
-def _Tokenize(fileobj):
- """Tokenize a file.
-
- Args:
- fileobj: file-like object (or iterable lines) with the source.
-
- Returns:
- The first token in the token stream and the ending mode of the tokenizer.
- """
- tokenizer = javascripttokenizer.JavaScriptTokenizer()
- start_token = tokenizer.TokenizeFile(fileobj)
- return start_token, tokenizer.mode
-
-
-def _IsLimitedDocCheck(filename, limited_doc_files):
- """Whether this this a limited-doc file.
-
- Args:
- filename: The filename.
- limited_doc_files: Iterable of strings. Suffixes of filenames that should
- be limited doc check.
-
- Returns:
- Whether the file should be limited check.
- """
- for limited_doc_filename in limited_doc_files:
- if filename.endswith(limited_doc_filename):
- return True
- return False
-
-
-def Run(filename, error_handler, source=None):
- """Tokenize, run passes, and check the given file.
-
- Args:
- filename: The path of the file to check
- error_handler: The error handler to report errors to.
- source: A file-like object with the file source. If omitted, the file will
- be read from the filename path.
- """
- if not source:
- try:
- source = open(filename)
- except IOError:
- error_handler.HandleFile(filename, None)
- error_handler.HandleError(
- error.Error(errors.FILE_NOT_FOUND, 'File not found'))
- error_handler.FinishFile()
- return
-
- if _IsHtml(filename):
- source_file = htmlutil.GetScriptLines(source)
- else:
- source_file = source
-
- token, tokenizer_mode = _Tokenize(source_file)
-
- error_handler.HandleFile(filename, token)
-
- # If we did not end in the basic mode, this a failed parse.
- if tokenizer_mode is not javascripttokenizer.JavaScriptModes.TEXT_MODE:
- error_handler.HandleError(
- error.Error(errors.FILE_IN_BLOCK,
- 'File ended in mode "%s".' % tokenizer_mode,
- _GetLastNonWhiteSpaceToken(token)))
-
- # Run the ECMA pass
- error_token = None
-
- ecma_pass = ecmametadatapass.EcmaMetaDataPass()
- error_token = RunMetaDataPass(token, ecma_pass, error_handler, filename)
-
- is_limited_doc_check = (
- _IsLimitedDocCheck(filename, flags.FLAGS.limited_doc_files))
-
- _RunChecker(token, error_handler,
- is_limited_doc_check,
- is_html=_IsHtml(filename),
- stop_token=error_token)
-
- error_handler.FinishFile()
-
-
-def RunMetaDataPass(start_token, metadata_pass, error_handler, filename=''):
- """Run a metadata pass over a token stream.
-
- Args:
- start_token: The first token in a token stream.
- metadata_pass: Metadata pass to run.
- error_handler: The error handler to report errors to.
- filename: Filename of the source.
-
- Returns:
- The token where the error occurred (if any).
- """
-
- try:
- metadata_pass.Process(start_token)
- except ecmametadatapass.ParseError, parse_err:
- if flags.FLAGS.error_trace:
- traceback.print_exc()
- error_token = parse_err.token
- error_msg = str(parse_err)
- error_handler.HandleError(
- error.Error(errors.FILE_DOES_NOT_PARSE,
- ('Error parsing file at token "%s". Unable to '
- 'check the rest of file.'
- '\nError "%s"' % (error_token, error_msg)), error_token))
- return error_token
- except Exception: # pylint: disable=broad-except
- traceback.print_exc()
- error_handler.HandleError(
- error.Error(
- errors.FILE_DOES_NOT_PARSE,
- 'Internal error in %s' % filename))
-
-
-def _RunChecker(start_token, error_handler,
- limited_doc_checks, is_html,
- stop_token=None):
-
- state_tracker = javascriptstatetracker.JavaScriptStateTracker()
-
- style_checker = checker.JavaScriptStyleChecker(
- state_tracker=state_tracker,
- error_handler=error_handler)
-
- style_checker.Check(start_token,
- is_html=is_html,
- limited_doc_checks=limited_doc_checks,
- stop_token=stop_token)

Powered by Google App Engine
This is Rietveld 408576698