Source for file Tokens.php
Documentation is available at Tokens.php
* Stores weightings and groupings of tokens.
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
namespace PHP_CodeSniffer\Util;
define('T_NONE', 'PHPCS_T_NONE');
define('T_OPEN_CURLY_BRACKET', 'PHPCS_T_OPEN_CURLY_BRACKET');
define('T_CLOSE_CURLY_BRACKET', 'PHPCS_T_CLOSE_CURLY_BRACKET');
define('T_OPEN_SQUARE_BRACKET', 'PHPCS_T_OPEN_SQUARE_BRACKET');
define('T_CLOSE_SQUARE_BRACKET', 'PHPCS_T_CLOSE_SQUARE_BRACKET');
define('T_OPEN_PARENTHESIS', 'PHPCS_T_OPEN_PARENTHESIS');
define('T_CLOSE_PARENTHESIS', 'PHPCS_T_CLOSE_PARENTHESIS');
define('T_COLON', 'PHPCS_T_COLON');
define('T_NULLABLE', 'PHPCS_T_NULLABLE');
define('T_STRING_CONCAT', 'PHPCS_T_STRING_CONCAT');
define('T_INLINE_THEN', 'PHPCS_T_INLINE_THEN');
define('T_INLINE_ELSE', 'PHPCS_T_INLINE_ELSE');
define('T_NULL', 'PHPCS_T_NULL');
define('T_FALSE', 'PHPCS_T_FALSE');
define('T_TRUE', 'PHPCS_T_TRUE');
define('T_SEMICOLON', 'PHPCS_T_SEMICOLON');
define('T_EQUAL', 'PHPCS_T_EQUAL');
define('T_MULTIPLY', 'PHPCS_T_MULTIPLY');
define('T_DIVIDE', 'PHPCS_T_DIVIDE');
define('T_PLUS', 'PHPCS_T_PLUS');
define('T_MINUS', 'PHPCS_T_MINUS');
define('T_MODULUS', 'PHPCS_T_MODULUS');
define('T_BITWISE_AND', 'PHPCS_T_BITWISE_AND');
define('T_BITWISE_OR', 'PHPCS_T_BITWISE_OR');
define('T_BITWISE_XOR', 'PHPCS_T_BITWISE_XOR');
define('T_ARRAY_HINT', 'PHPCS_T_ARRAY_HINT');
define('T_GREATER_THAN', 'PHPCS_T_GREATER_THAN');
define('T_LESS_THAN', 'PHPCS_T_LESS_THAN');
define('T_BOOLEAN_NOT', 'PHPCS_T_BOOLEAN_NOT');
define('T_SELF', 'PHPCS_T_SELF');
define('T_PARENT', 'PHPCS_T_PARENT');
define('T_DOUBLE_QUOTED_STRING', 'PHPCS_T_DOUBLE_QUOTED_STRING');
define('T_COMMA', 'PHPCS_T_COMMA');
define('T_HEREDOC', 'PHPCS_T_HEREDOC');
define('T_PROTOTYPE', 'PHPCS_T_PROTOTYPE');
define('T_THIS', 'PHPCS_T_THIS');
define('T_REGULAR_EXPRESSION', 'PHPCS_T_REGULAR_EXPRESSION');
define('T_PROPERTY', 'PHPCS_T_PROPERTY');
define('T_LABEL', 'PHPCS_T_LABEL');
define('T_OBJECT', 'PHPCS_T_OBJECT');
define('T_CLOSE_OBJECT', 'PHPCS_T_CLOSE_OBJECT');
define('T_COLOUR', 'PHPCS_T_COLOUR');
define('T_HASH', 'PHPCS_T_HASH');
define('T_URL', 'PHPCS_T_URL');
define('T_STYLE', 'PHPCS_T_STYLE');
define('T_ASPERAND', 'PHPCS_T_ASPERAND');
define('T_DOLLAR', 'PHPCS_T_DOLLAR');
define('T_TYPEOF', 'PHPCS_T_TYPEOF');
define('T_CLOSURE', 'PHPCS_T_CLOSURE');
define('T_ANON_CLASS', 'PHPCS_T_ANON_CLASS');
define('T_BACKTICK', 'PHPCS_T_BACKTICK');
define('T_START_NOWDOC', 'PHPCS_T_START_NOWDOC');
define('T_NOWDOC', 'PHPCS_T_NOWDOC');
define('T_END_NOWDOC', 'PHPCS_T_END_NOWDOC');
define('T_OPEN_SHORT_ARRAY', 'PHPCS_T_OPEN_SHORT_ARRAY');
define('T_CLOSE_SHORT_ARRAY', 'PHPCS_T_CLOSE_SHORT_ARRAY');
define('T_GOTO_LABEL', 'PHPCS_T_GOTO_LABEL');
define('T_BINARY_CAST', 'PHPCS_T_BINARY_CAST');
define('T_EMBEDDED_PHP', 'PHPCS_T_EMBEDDED_PHP');
define('T_RETURN_TYPE', 'PHPCS_T_RETURN_TYPE');
define('T_OPEN_USE_GROUP', 'PHPCS_T_OPEN_USE_GROUP');
define('T_CLOSE_USE_GROUP', 'PHPCS_T_CLOSE_USE_GROUP');
define('T_ZSR', 'PHPCS_T_ZSR');
define('T_ZSR_EQUAL', 'PHPCS_T_ZSR_EQUAL');
// Some PHP 5.5 tokens, replicated for lower versions.
if (defined('T_FINALLY') === false ) {
define('T_FINALLY', 'PHPCS_T_FINALLY');
if (defined('T_YIELD') === false ) {
define('T_YIELD', 'PHPCS_T_YIELD');
// Some PHP 5.6 tokens, replicated for lower versions.
if (defined('T_ELLIPSIS') === false ) {
define('T_ELLIPSIS', 'PHPCS_T_ELLIPSIS');
define('T_POW', 'PHPCS_T_POW');
if (defined('T_POW_EQUAL') === false ) {
define('T_POW_EQUAL', 'PHPCS_T_POW_EQUAL');
// Some PHP 7 tokens, replicated for lower versions.
if (defined('T_SPACESHIP') === false ) {
define('T_SPACESHIP', 'PHPCS_T_SPACESHIP');
if (defined('T_COALESCE') === false ) {
define('T_COALESCE', 'PHPCS_T_COALESCE');
if (defined('T_COALESCE_EQUAL') === false ) {
define('T_COALESCE_EQUAL', 'PHPCS_T_COALESCE_EQUAL');
if (defined('T_YIELD_FROM') === false ) {
define('T_YIELD_FROM', 'PHPCS_T_YIELD_FROM');
// Tokens used for parsing doc blocks.
define('T_DOC_COMMENT_STAR', 'PHPCS_T_DOC_COMMENT_STAR');
define('T_DOC_COMMENT_WHITESPACE', 'PHPCS_T_DOC_COMMENT_WHITESPACE');
define('T_DOC_COMMENT_TAG', 'PHPCS_T_DOC_COMMENT_TAG');
define('T_DOC_COMMENT_OPEN_TAG', 'PHPCS_T_DOC_COMMENT_OPEN_TAG');
define('T_DOC_COMMENT_CLOSE_TAG', 'PHPCS_T_DOC_COMMENT_CLOSE_TAG');
define('T_DOC_COMMENT_STRING', 'PHPCS_T_DOC_COMMENT_STRING');
public static $weightings = array (
Operators and arithmetic.
T_IS_SMALLER_OR_EQUAL => 5 ,
T_IS_GREATER_OR_EQUAL => 5 ,
* Tokens that represent assignments.
public static $assignmentTokens = array (
T_AND_EQUAL => T_AND_EQUAL ,
T_OR_EQUAL => T_OR_EQUAL ,
T_CONCAT_EQUAL => T_CONCAT_EQUAL ,
T_DIV_EQUAL => T_DIV_EQUAL ,
T_MINUS_EQUAL => T_MINUS_EQUAL ,
T_POW_EQUAL => T_POW_EQUAL ,
T_MOD_EQUAL => T_MOD_EQUAL ,
T_MUL_EQUAL => T_MUL_EQUAL ,
T_PLUS_EQUAL => T_PLUS_EQUAL ,
T_XOR_EQUAL => T_XOR_EQUAL ,
T_DOUBLE_ARROW => T_DOUBLE_ARROW ,
T_SL_EQUAL => T_SL_EQUAL ,
T_SR_EQUAL => T_SR_EQUAL ,
T_COALESCE_EQUAL => T_COALESCE_EQUAL ,
* Tokens that represent equality comparisons.
public static $equalityTokens = array (
T_IS_EQUAL => T_IS_EQUAL ,
T_IS_NOT_EQUAL => T_IS_NOT_EQUAL ,
T_IS_IDENTICAL => T_IS_IDENTICAL ,
T_IS_NOT_IDENTICAL => T_IS_NOT_IDENTICAL ,
T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL ,
T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL ,
* Tokens that represent comparison operator.
public static $comparisonTokens = array (
T_IS_EQUAL => T_IS_EQUAL ,
T_IS_IDENTICAL => T_IS_IDENTICAL ,
T_IS_NOT_EQUAL => T_IS_NOT_EQUAL ,
T_IS_NOT_IDENTICAL => T_IS_NOT_IDENTICAL ,
T_LESS_THAN => T_LESS_THAN ,
T_GREATER_THAN => T_GREATER_THAN ,
T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL ,
T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL ,
T_SPACESHIP => T_SPACESHIP ,
T_COALESCE => T_COALESCE ,
* Tokens that represent arithmetic operators.
public static $arithmeticTokens = array (
T_MULTIPLY => T_MULTIPLY ,
* Tokens that represent casting.
public static $castTokens = array (
T_INT_CAST => T_INT_CAST ,
T_STRING_CAST => T_STRING_CAST ,
T_DOUBLE_CAST => T_DOUBLE_CAST ,
T_ARRAY_CAST => T_ARRAY_CAST ,
T_BOOL_CAST => T_BOOL_CAST ,
T_OBJECT_CAST => T_OBJECT_CAST ,
T_UNSET_CAST => T_UNSET_CAST ,
T_BINARY_CAST => T_BINARY_CAST ,
* Token types that open parenthesis.
public static $parenthesisOpeners = array (
T_FUNCTION => T_FUNCTION ,
* Tokens that are allowed to open scopes.
public static $scopeOpeners = array (
T_ANON_CLASS => T_ANON_CLASS ,
T_INTERFACE => T_INTERFACE ,
T_NAMESPACE => T_NAMESPACE ,
T_FUNCTION => T_FUNCTION ,
T_PROPERTY => T_PROPERTY ,
* Tokens that represent scope modifiers.
public static $scopeModifiers = array (
T_PROTECTED => T_PROTECTED ,
* Tokens that can prefix a method name
public static $methodPrefixes = array (
T_PROTECTED => T_PROTECTED ,
T_ABSTRACT => T_ABSTRACT ,
* Tokens that perform operations.
public static $operators = array (
T_MULTIPLY => T_MULTIPLY ,
T_SPACESHIP => T_SPACESHIP ,
T_COALESCE => T_COALESCE ,
T_BITWISE_AND => T_BITWISE_AND ,
T_BITWISE_OR => T_BITWISE_OR ,
T_BITWISE_XOR => T_BITWISE_XOR ,
* Tokens that perform boolean operations.
public static $booleanOperators = array (
T_BOOLEAN_AND => T_BOOLEAN_AND ,
T_BOOLEAN_OR => T_BOOLEAN_OR ,
T_LOGICAL_AND => T_LOGICAL_AND ,
T_LOGICAL_OR => T_LOGICAL_OR ,
T_LOGICAL_XOR => T_LOGICAL_XOR ,
* Tokens that open code blocks.
public static $blockOpeners = array (
T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET ,
T_OPEN_SQUARE_BRACKET => T_OPEN_SQUARE_BRACKET ,
T_OPEN_PARENTHESIS => T_OPEN_PARENTHESIS ,
* Tokens that don't represent code.
public static $emptyTokens = array (
T_WHITESPACE => T_WHITESPACE ,
T_DOC_COMMENT => T_DOC_COMMENT ,
T_DOC_COMMENT_STAR => T_DOC_COMMENT_STAR ,
T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE ,
T_DOC_COMMENT_TAG => T_DOC_COMMENT_TAG ,
T_DOC_COMMENT_OPEN_TAG => T_DOC_COMMENT_OPEN_TAG ,
T_DOC_COMMENT_CLOSE_TAG => T_DOC_COMMENT_CLOSE_TAG ,
T_DOC_COMMENT_STRING => T_DOC_COMMENT_STRING ,
* Tokens that are comments.
public static $commentTokens = array (
T_DOC_COMMENT => T_DOC_COMMENT ,
T_DOC_COMMENT_STAR => T_DOC_COMMENT_STAR ,
T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE ,
T_DOC_COMMENT_TAG => T_DOC_COMMENT_TAG ,
T_DOC_COMMENT_OPEN_TAG => T_DOC_COMMENT_OPEN_TAG ,
T_DOC_COMMENT_CLOSE_TAG => T_DOC_COMMENT_CLOSE_TAG ,
T_DOC_COMMENT_STRING => T_DOC_COMMENT_STRING ,
* Tokens that represent strings.
* Note that T_STRINGS are NOT represented in this list.
public static $stringTokens = array (
T_CONSTANT_ENCAPSED_STRING => T_CONSTANT_ENCAPSED_STRING ,
T_DOUBLE_QUOTED_STRING => T_DOUBLE_QUOTED_STRING ,
* Tokens that represent text strings.
public static $textStringTokens = array (
T_CONSTANT_ENCAPSED_STRING => T_CONSTANT_ENCAPSED_STRING ,
T_DOUBLE_QUOTED_STRING => T_DOUBLE_QUOTED_STRING ,
T_INLINE_HTML => T_INLINE_HTML ,
* Tokens that represent brackets and parenthesis.
public static $bracketTokens = array (
T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET ,
T_CLOSE_CURLY_BRACKET => T_CLOSE_CURLY_BRACKET ,
T_OPEN_SQUARE_BRACKET => T_OPEN_SQUARE_BRACKET ,
T_CLOSE_SQUARE_BRACKET => T_CLOSE_SQUARE_BRACKET ,
T_OPEN_PARENTHESIS => T_OPEN_PARENTHESIS ,
T_CLOSE_PARENTHESIS => T_CLOSE_PARENTHESIS ,
* Tokens that include files.
public static $includeTokens = array (
T_REQUIRE_ONCE => T_REQUIRE_ONCE ,
T_INCLUDE_ONCE => T_INCLUDE_ONCE ,
* Tokens that make up a heredoc string.
public static $heredocTokens = array (
T_START_HEREDOC => T_START_HEREDOC ,
T_END_HEREDOC => T_END_HEREDOC ,
T_START_NOWDOC => T_START_NOWDOC ,
T_END_NOWDOC => T_END_NOWDOC ,
* Tokens that represent the names of called functions.
* Mostly, these are just strings. But PHP tokenizes some language
* constructs and functions using their own tokens.
public static $functionNameTokens = array (
T_INCLUDE_ONCE => T_INCLUDE_ONCE ,
T_REQUIRE_ONCE => T_REQUIRE_ONCE ,
* Tokens that are open class and object scopes.
public static $ooScopeTokens = array (
T_ANON_CLASS => T_ANON_CLASS ,
T_INTERFACE => T_INTERFACE ,
* Given a token, returns the name of the token.
* If passed an integer, the token name is sourced from PHP's token_name()
* function. If passed a string, it is assumed to be a PHPCS-supplied token
* that begins with PHPCS_T_, so the name is sourced from the token value itself.
* @param int|string$token The token to get the name for.
public static function tokenName ($token)
// PHP-supplied token name.
* Returns the highest weighted token type.
* Tokens are weighted by their approximate frequency of appearance in code
* - the less frequently they appear in the code, the higher the weighting.
* For example T_CLASS tokens appear very infrequently in a file, and
* therefore have a high weighting.
* Returns false if there are no weightings for any of the specified tokens.
* @param array<int, int> $tokens The token types to get the highest weighted
* @return int The highest weighted token.
public static function getHighestWeightedToken (array $tokens)
$weights = self ::$weightings;
foreach ($tokens as $token) {
if (isset ($weights[$token]) === true ) {
$weight = $weights[$token];
if ($weight > $highest) {
}//end getHighestWeightedToken()
Documentation generated on Mon, 11 Mar 2019 15:27:50 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|