| Index: third_party/closure_linter/closure_linter/javascripttokens.py
|
| diff --git a/third_party/closure_linter/closure_linter/javascripttokens.py b/third_party/closure_linter/closure_linter/javascripttokens.py
|
| deleted file mode 100755
|
| index 2696195aeac9605538ba755482499288d82f2fff..0000000000000000000000000000000000000000
|
| --- a/third_party/closure_linter/closure_linter/javascripttokens.py
|
| +++ /dev/null
|
| @@ -1,157 +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.
|
| -
|
| -"""Classes to represent JavaScript tokens."""
|
| -
|
| -__author__ = ('robbyw@google.com (Robert Walker)',
|
| - 'ajp@google.com (Andy Perelson)')
|
| -
|
| -from closure_linter.common import tokens
|
| -
|
| -class JavaScriptTokenType(tokens.TokenType):
|
| - """Enumeration of JavaScript token types, and useful sets of token types."""
|
| - NUMBER = 'number'
|
| - START_SINGLE_LINE_COMMENT = '//'
|
| - START_BLOCK_COMMENT = '/*'
|
| - START_DOC_COMMENT = '/**'
|
| - END_BLOCK_COMMENT = '*/'
|
| - END_DOC_COMMENT = 'doc */'
|
| - COMMENT = 'comment'
|
| - SINGLE_QUOTE_STRING_START = "'string"
|
| - SINGLE_QUOTE_STRING_END = "string'"
|
| - DOUBLE_QUOTE_STRING_START = '"string'
|
| - DOUBLE_QUOTE_STRING_END = 'string"'
|
| - TEMPLATE_STRING_START = '`string'
|
| - TEMPLATE_STRING_END = 'string`'
|
| - STRING_TEXT = 'string'
|
| - START_BLOCK = '{'
|
| - END_BLOCK = '}'
|
| - START_PAREN = '('
|
| - END_PAREN = ')'
|
| - START_BRACKET = '['
|
| - END_BRACKET = ']'
|
| - REGEX = '/regex/'
|
| - FUNCTION_DECLARATION = 'function(...)'
|
| - FUNCTION_NAME = 'function functionName(...)'
|
| - START_PARAMETERS = 'startparams('
|
| - PARAMETERS = 'pa,ra,ms'
|
| - END_PARAMETERS = ')endparams'
|
| - SEMICOLON = ';'
|
| - DOC_FLAG = '@flag'
|
| - DOC_INLINE_FLAG = '{@flag ...}'
|
| - DOC_START_BRACE = 'doc {'
|
| - DOC_END_BRACE = 'doc }'
|
| - DOC_PREFIX = 'comment prefix: * '
|
| - DOC_TYPE_START_BLOCK = 'Type <'
|
| - DOC_TYPE_END_BLOCK = 'Type >'
|
| - DOC_TYPE_MODIFIER = 'modifier'
|
| - SIMPLE_LVALUE = 'lvalue='
|
| - KEYWORD = 'keyword'
|
| - OPERATOR = 'operator'
|
| - IDENTIFIER = 'identifier'
|
| -
|
| - STRING_TYPES = frozenset([
|
| - SINGLE_QUOTE_STRING_START, SINGLE_QUOTE_STRING_END,
|
| - DOUBLE_QUOTE_STRING_START, DOUBLE_QUOTE_STRING_END,
|
| - TEMPLATE_STRING_START, TEMPLATE_STRING_END, STRING_TEXT])
|
| -
|
| - COMMENT_TYPES = frozenset([
|
| - START_SINGLE_LINE_COMMENT, COMMENT,
|
| - START_BLOCK_COMMENT, START_DOC_COMMENT,
|
| - END_BLOCK_COMMENT, END_DOC_COMMENT,
|
| - DOC_START_BRACE, DOC_END_BRACE,
|
| - DOC_FLAG, DOC_INLINE_FLAG, DOC_PREFIX,
|
| - DOC_TYPE_START_BLOCK, DOC_TYPE_END_BLOCK, DOC_TYPE_MODIFIER])
|
| -
|
| - FLAG_DESCRIPTION_TYPES = frozenset([
|
| - DOC_INLINE_FLAG, COMMENT, DOC_START_BRACE, DOC_END_BRACE,
|
| - DOC_TYPE_START_BLOCK, DOC_TYPE_END_BLOCK, DOC_TYPE_MODIFIER])
|
| -
|
| - FLAG_ENDING_TYPES = frozenset([DOC_FLAG, END_DOC_COMMENT])
|
| -
|
| - NON_CODE_TYPES = COMMENT_TYPES | frozenset([
|
| - tokens.TokenType.WHITESPACE, tokens.TokenType.BLANK_LINE])
|
| -
|
| - UNARY_OPERATORS = ['!', 'new', 'delete', 'typeof', 'void']
|
| -
|
| - UNARY_OK_OPERATORS = ['--', '++', '-', '+'] + UNARY_OPERATORS
|
| -
|
| - UNARY_POST_OPERATORS = ['--', '++']
|
| -
|
| - # An expression ender is any token that can end an object - i.e. we could have
|
| - # x.y or [1, 2], or (10 + 9) or {a: 10}.
|
| - EXPRESSION_ENDER_TYPES = [tokens.TokenType.NORMAL, IDENTIFIER, NUMBER,
|
| - SIMPLE_LVALUE, END_BRACKET, END_PAREN, END_BLOCK,
|
| - SINGLE_QUOTE_STRING_END, DOUBLE_QUOTE_STRING_END,
|
| - TEMPLATE_STRING_END]
|
| -
|
| -
|
| -class JavaScriptToken(tokens.Token):
|
| - """JavaScript token subclass of Token, provides extra instance checks.
|
| -
|
| - The following token types have data in attached_object:
|
| - - All JsDoc flags: a parser.JsDocFlag object.
|
| - """
|
| -
|
| - def IsKeyword(self, keyword):
|
| - """Tests if this token is the given keyword.
|
| -
|
| - Args:
|
| - keyword: The keyword to compare to.
|
| -
|
| - Returns:
|
| - True if this token is a keyword token with the given name.
|
| - """
|
| - return self.type == JavaScriptTokenType.KEYWORD and self.string == keyword
|
| -
|
| - def IsOperator(self, operator):
|
| - """Tests if this token is the given operator.
|
| -
|
| - Args:
|
| - operator: The operator to compare to.
|
| -
|
| - Returns:
|
| - True if this token is a operator token with the given name.
|
| - """
|
| - return self.type == JavaScriptTokenType.OPERATOR and self.string == operator
|
| -
|
| - def IsAssignment(self):
|
| - """Tests if this token is an assignment operator.
|
| -
|
| - Returns:
|
| - True if this token is an assignment operator.
|
| - """
|
| - return (self.type == JavaScriptTokenType.OPERATOR and
|
| - self.string.endswith('=') and
|
| - self.string not in ('==', '!=', '>=', '<=', '===', '!=='))
|
| -
|
| - def IsComment(self):
|
| - """Tests if this token is any part of a comment.
|
| -
|
| - Returns:
|
| - True if this token is any part of a comment.
|
| - """
|
| - return self.type in JavaScriptTokenType.COMMENT_TYPES
|
| -
|
| - def IsCode(self):
|
| - """Tests if this token is code, as opposed to a comment or whitespace."""
|
| - return self.type not in JavaScriptTokenType.NON_CODE_TYPES
|
| -
|
| - def __repr__(self):
|
| - return '<JavaScriptToken: %d, %s, "%s", %r, %r>' % (self.line_number,
|
| - self.type, self.string,
|
| - self.values,
|
| - self.metadata)
|
|
|