annotate vendor/squizlabs/php_codesniffer/CodeSniffer/Tokens.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children 5311817fb629
rev   line source
Chris@0 1 <?php
Chris@0 2 /**
Chris@0 3 * The Tokens class contains weightings for tokens based on their
Chris@0 4 * probability of occurrence in a file.
Chris@0 5 *
Chris@0 6 * PHP version 5
Chris@0 7 *
Chris@0 8 * @category PHP
Chris@0 9 * @package PHP_CodeSniffer
Chris@0 10 * @author Greg Sherwood <gsherwood@squiz.net>
Chris@0 11 * @author Marc McIntyre <mmcintyre@squiz.net>
Chris@0 12 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
Chris@0 13 * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
Chris@0 14 * @link http://pear.php.net/package/PHP_CodeSniffer
Chris@0 15 */
Chris@0 16
Chris@0 17 define('T_NONE', 'PHPCS_T_NONE');
Chris@0 18 define('T_OPEN_CURLY_BRACKET', 'PHPCS_T_OPEN_CURLY_BRACKET');
Chris@0 19 define('T_CLOSE_CURLY_BRACKET', 'PHPCS_T_CLOSE_CURLY_BRACKET');
Chris@0 20 define('T_OPEN_SQUARE_BRACKET', 'PHPCS_T_OPEN_SQUARE_BRACKET');
Chris@0 21 define('T_CLOSE_SQUARE_BRACKET', 'PHPCS_T_CLOSE_SQUARE_BRACKET');
Chris@0 22 define('T_OPEN_PARENTHESIS', 'PHPCS_T_OPEN_PARENTHESIS');
Chris@0 23 define('T_CLOSE_PARENTHESIS', 'PHPCS_T_CLOSE_PARENTHESIS');
Chris@0 24 define('T_COLON', 'PHPCS_T_COLON');
Chris@0 25 define('T_NULLABLE', 'PHPCS_T_NULLABLE');
Chris@0 26 define('T_STRING_CONCAT', 'PHPCS_T_STRING_CONCAT');
Chris@0 27 define('T_INLINE_THEN', 'PHPCS_T_INLINE_THEN');
Chris@0 28 define('T_INLINE_ELSE', 'PHPCS_T_INLINE_ELSE');
Chris@0 29 define('T_NULL', 'PHPCS_T_NULL');
Chris@0 30 define('T_FALSE', 'PHPCS_T_FALSE');
Chris@0 31 define('T_TRUE', 'PHPCS_T_TRUE');
Chris@0 32 define('T_SEMICOLON', 'PHPCS_T_SEMICOLON');
Chris@0 33 define('T_EQUAL', 'PHPCS_T_EQUAL');
Chris@0 34 define('T_MULTIPLY', 'PHPCS_T_MULTIPLY');
Chris@0 35 define('T_DIVIDE', 'PHPCS_T_DIVIDE');
Chris@0 36 define('T_PLUS', 'PHPCS_T_PLUS');
Chris@0 37 define('T_MINUS', 'PHPCS_T_MINUS');
Chris@0 38 define('T_MODULUS', 'PHPCS_T_MODULUS');
Chris@0 39 define('T_BITWISE_AND', 'PHPCS_T_BITWISE_AND');
Chris@0 40 define('T_BITWISE_OR', 'PHPCS_T_BITWISE_OR');
Chris@0 41 define('T_BITWISE_XOR', 'PHPCS_T_BITWISE_XOR');
Chris@0 42 define('T_ARRAY_HINT', 'PHPCS_T_ARRAY_HINT');
Chris@0 43 define('T_GREATER_THAN', 'PHPCS_T_GREATER_THAN');
Chris@0 44 define('T_LESS_THAN', 'PHPCS_T_LESS_THAN');
Chris@0 45 define('T_BOOLEAN_NOT', 'PHPCS_T_BOOLEAN_NOT');
Chris@0 46 define('T_SELF', 'PHPCS_T_SELF');
Chris@0 47 define('T_PARENT', 'PHPCS_T_PARENT');
Chris@0 48 define('T_DOUBLE_QUOTED_STRING', 'PHPCS_T_DOUBLE_QUOTED_STRING');
Chris@0 49 define('T_COMMA', 'PHPCS_T_COMMA');
Chris@0 50 define('T_HEREDOC', 'PHPCS_T_HEREDOC');
Chris@0 51 define('T_PROTOTYPE', 'PHPCS_T_PROTOTYPE');
Chris@0 52 define('T_THIS', 'PHPCS_T_THIS');
Chris@0 53 define('T_REGULAR_EXPRESSION', 'PHPCS_T_REGULAR_EXPRESSION');
Chris@0 54 define('T_PROPERTY', 'PHPCS_T_PROPERTY');
Chris@0 55 define('T_LABEL', 'PHPCS_T_LABEL');
Chris@0 56 define('T_OBJECT', 'PHPCS_T_OBJECT');
Chris@0 57 define('T_CLOSE_OBJECT', 'PHPCS_T_CLOSE_OBJECT');
Chris@0 58 define('T_COLOUR', 'PHPCS_T_COLOUR');
Chris@0 59 define('T_HASH', 'PHPCS_T_HASH');
Chris@0 60 define('T_URL', 'PHPCS_T_URL');
Chris@0 61 define('T_STYLE', 'PHPCS_T_STYLE');
Chris@0 62 define('T_ASPERAND', 'PHPCS_T_ASPERAND');
Chris@0 63 define('T_DOLLAR', 'PHPCS_T_DOLLAR');
Chris@0 64 define('T_TYPEOF', 'PHPCS_T_TYPEOF');
Chris@0 65 define('T_CLOSURE', 'PHPCS_T_CLOSURE');
Chris@0 66 define('T_ANON_CLASS', 'PHPCS_T_ANON_CLASS');
Chris@0 67 define('T_BACKTICK', 'PHPCS_T_BACKTICK');
Chris@0 68 define('T_START_NOWDOC', 'PHPCS_T_START_NOWDOC');
Chris@0 69 define('T_NOWDOC', 'PHPCS_T_NOWDOC');
Chris@0 70 define('T_END_NOWDOC', 'PHPCS_T_END_NOWDOC');
Chris@0 71 define('T_OPEN_SHORT_ARRAY', 'PHPCS_T_OPEN_SHORT_ARRAY');
Chris@0 72 define('T_CLOSE_SHORT_ARRAY', 'PHPCS_T_CLOSE_SHORT_ARRAY');
Chris@0 73 define('T_GOTO_LABEL', 'PHPCS_T_GOTO_LABEL');
Chris@0 74 define('T_BINARY_CAST', 'PHPCS_T_BINARY_CAST');
Chris@0 75 define('T_EMBEDDED_PHP', 'PHPCS_T_EMBEDDED_PHP');
Chris@0 76 define('T_RETURN_TYPE', 'PHPCS_T_RETURN_TYPE');
Chris@0 77 define('T_OPEN_USE_GROUP', 'PHPCS_T_OPEN_USE_GROUP');
Chris@0 78 define('T_CLOSE_USE_GROUP', 'PHPCS_T_CLOSE_USE_GROUP');
Chris@0 79 define('T_ZSR', 'PHPCS_T_ZSR');
Chris@0 80 define('T_ZSR_EQUAL', 'PHPCS_T_ZSR_EQUAL');
Chris@0 81
Chris@0 82 // Some PHP 5.3 tokens, replicated for lower versions.
Chris@0 83 if (defined('T_NAMESPACE') === false) {
Chris@0 84 define('T_NAMESPACE', 'PHPCS_T_NAMESPACE');
Chris@0 85 }
Chris@0 86
Chris@0 87 if (defined('T_NS_C') === false) {
Chris@0 88 define('T_NS_C', 'PHPCS_T_NS_C');
Chris@0 89 }
Chris@0 90
Chris@0 91 if (defined('T_NS_SEPARATOR') === false) {
Chris@0 92 define('T_NS_SEPARATOR', 'PHPCS_T_NS_SEPARATOR');
Chris@0 93 }
Chris@0 94
Chris@0 95 if (defined('T_GOTO') === false) {
Chris@0 96 define('T_GOTO', 'PHPCS_T_GOTO');
Chris@0 97 }
Chris@0 98
Chris@0 99 if (defined('T_DIR') === false) {
Chris@0 100 define('T_DIR', 'PHPCS_T_DIR');
Chris@0 101 }
Chris@0 102
Chris@0 103 // Some PHP 5.4 tokens, replicated for lower versions.
Chris@0 104 if (defined('T_TRAIT') === false) {
Chris@0 105 define('T_TRAIT', 'PHPCS_T_TRAIT');
Chris@0 106 }
Chris@0 107
Chris@0 108 if (defined('T_TRAIT_C') === false) {
Chris@0 109 define('T_TRAIT_C', 'PHPCS_T_TRAIT_C');
Chris@0 110 }
Chris@0 111
Chris@0 112 if (defined('T_INSTEADOF') === false) {
Chris@0 113 define('T_INSTEADOF', 'PHPCS_T_INSTEADOF');
Chris@0 114 }
Chris@0 115
Chris@0 116 if (defined('T_CALLABLE') === false) {
Chris@0 117 define('T_CALLABLE', 'PHPCS_T_CALLABLE');
Chris@0 118 }
Chris@0 119
Chris@0 120 // Some PHP 5.5 tokens, replicated for lower versions.
Chris@0 121 if (defined('T_FINALLY') === false) {
Chris@0 122 define('T_FINALLY', 'PHPCS_T_FINALLY');
Chris@0 123 }
Chris@0 124
Chris@0 125 if (defined('T_YIELD') === false) {
Chris@0 126 define('T_YIELD', 'PHPCS_T_YIELD');
Chris@0 127 }
Chris@0 128
Chris@0 129 // Some PHP 5.6 tokens, replicated for lower versions.
Chris@0 130 if (defined('T_ELLIPSIS') === false) {
Chris@0 131 define('T_ELLIPSIS', 'PHPCS_T_ELLIPSIS');
Chris@0 132 }
Chris@0 133
Chris@0 134 if (defined('T_POW') === false) {
Chris@0 135 define('T_POW', 'PHPCS_T_POW');
Chris@0 136 }
Chris@0 137
Chris@0 138 if (defined('T_POW_EQUAL') === false) {
Chris@0 139 define('T_POW_EQUAL', 'PHPCS_T_POW_EQUAL');
Chris@0 140 }
Chris@0 141
Chris@0 142 // Some PHP 7 tokens, replicated for lower versions.
Chris@0 143 if (defined('T_SPACESHIP') === false) {
Chris@0 144 define('T_SPACESHIP', 'PHPCS_T_SPACESHIP');
Chris@0 145 }
Chris@0 146
Chris@0 147 if (defined('T_COALESCE') === false) {
Chris@0 148 define('T_COALESCE', 'PHPCS_T_COALESCE');
Chris@0 149 }
Chris@0 150
Chris@0 151 if (defined('T_COALESCE_EQUAL') === false) {
Chris@0 152 define('T_COALESCE_EQUAL', 'PHPCS_T_COALESCE_EQUAL');
Chris@0 153 }
Chris@0 154
Chris@0 155 // Tokens used for parsing doc blocks.
Chris@0 156 define('T_DOC_COMMENT_STAR', 'PHPCS_T_DOC_COMMENT_STAR');
Chris@0 157 define('T_DOC_COMMENT_WHITESPACE', 'PHPCS_T_DOC_COMMENT_WHITESPACE');
Chris@0 158 define('T_DOC_COMMENT_TAG', 'PHPCS_T_DOC_COMMENT_TAG');
Chris@0 159 define('T_DOC_COMMENT_OPEN_TAG', 'PHPCS_T_DOC_COMMENT_OPEN_TAG');
Chris@0 160 define('T_DOC_COMMENT_CLOSE_TAG', 'PHPCS_T_DOC_COMMENT_CLOSE_TAG');
Chris@0 161 define('T_DOC_COMMENT_STRING', 'PHPCS_T_DOC_COMMENT_STRING');
Chris@0 162
Chris@0 163 /**
Chris@0 164 * The Tokens class contains weightings for tokens based on their
Chris@0 165 * probability of occurrence in a file.
Chris@0 166 *
Chris@0 167 * The less the chance of a high occurrence of an arbitrary token, the higher
Chris@0 168 * the weighting.
Chris@0 169 *
Chris@0 170 * @category PHP
Chris@0 171 * @package PHP_CodeSniffer
Chris@0 172 * @author Greg Sherwood <gsherwood@squiz.net>
Chris@0 173 * @author Marc McIntyre <mmcintyre@squiz.net>
Chris@0 174 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
Chris@0 175 * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
Chris@0 176 * @version Release: @package_version@
Chris@0 177 * @link http://pear.php.net/package/PHP_CodeSniffer
Chris@0 178 */
Chris@0 179 final class PHP_CodeSniffer_Tokens
Chris@0 180 {
Chris@0 181
Chris@0 182 /**
Chris@0 183 * The token weightings.
Chris@0 184 *
Chris@0 185 * @var array(int => int)
Chris@0 186 */
Chris@0 187 public static $weightings = array(
Chris@0 188 T_CLASS => 1000,
Chris@0 189 T_INTERFACE => 1000,
Chris@0 190 T_TRAIT => 1000,
Chris@0 191 T_NAMESPACE => 1000,
Chris@0 192 T_FUNCTION => 100,
Chris@0 193 T_CLOSURE => 100,
Chris@0 194
Chris@0 195 /*
Chris@0 196 Conditions.
Chris@0 197 */
Chris@0 198
Chris@0 199 T_WHILE => 50,
Chris@0 200 T_FOR => 50,
Chris@0 201 T_FOREACH => 50,
Chris@0 202 T_IF => 50,
Chris@0 203 T_ELSE => 50,
Chris@0 204 T_ELSEIF => 50,
Chris@0 205 T_DO => 50,
Chris@0 206 T_TRY => 50,
Chris@0 207 T_CATCH => 50,
Chris@0 208 T_FINALLY => 50,
Chris@0 209 T_SWITCH => 50,
Chris@0 210
Chris@0 211 T_SELF => 25,
Chris@0 212 T_PARENT => 25,
Chris@0 213
Chris@0 214 /*
Chris@0 215 Operators and arithmetic.
Chris@0 216 */
Chris@0 217
Chris@0 218 T_BITWISE_AND => 8,
Chris@0 219 T_BITWISE_OR => 8,
Chris@0 220 T_BITWISE_XOR => 8,
Chris@0 221
Chris@0 222 T_MULTIPLY => 5,
Chris@0 223 T_DIVIDE => 5,
Chris@0 224 T_PLUS => 5,
Chris@0 225 T_MINUS => 5,
Chris@0 226 T_MODULUS => 5,
Chris@0 227 T_POW => 5,
Chris@0 228 T_SPACESHIP => 5,
Chris@0 229 T_COALESCE => 5,
Chris@0 230 T_COALESCE_EQUAL => 5,
Chris@0 231
Chris@0 232 T_SL => 5,
Chris@0 233 T_SR => 5,
Chris@0 234 T_SL_EQUAL => 5,
Chris@0 235 T_SR_EQUAL => 5,
Chris@0 236
Chris@0 237 T_EQUAL => 5,
Chris@0 238 T_AND_EQUAL => 5,
Chris@0 239 T_CONCAT_EQUAL => 5,
Chris@0 240 T_DIV_EQUAL => 5,
Chris@0 241 T_MINUS_EQUAL => 5,
Chris@0 242 T_MOD_EQUAL => 5,
Chris@0 243 T_MUL_EQUAL => 5,
Chris@0 244 T_OR_EQUAL => 5,
Chris@0 245 T_PLUS_EQUAL => 5,
Chris@0 246 T_XOR_EQUAL => 5,
Chris@0 247
Chris@0 248 T_BOOLEAN_AND => 5,
Chris@0 249 T_BOOLEAN_OR => 5,
Chris@0 250
Chris@0 251 /*
Chris@0 252 Equality.
Chris@0 253 */
Chris@0 254
Chris@0 255 T_IS_EQUAL => 5,
Chris@0 256 T_IS_NOT_EQUAL => 5,
Chris@0 257 T_IS_IDENTICAL => 5,
Chris@0 258 T_IS_NOT_IDENTICAL => 5,
Chris@0 259 T_IS_SMALLER_OR_EQUAL => 5,
Chris@0 260 T_IS_GREATER_OR_EQUAL => 5,
Chris@0 261 );
Chris@0 262
Chris@0 263 /**
Chris@0 264 * The token weightings.
Chris@0 265 *
Chris@0 266 * @var array(int => int)
Chris@0 267 */
Chris@0 268 public static $knownLengths = array(
Chris@0 269 T_ABSTRACT => 8,
Chris@0 270 T_AND_EQUAL => 2,
Chris@0 271 T_ARRAY => 5,
Chris@0 272 T_AS => 2,
Chris@0 273 T_BOOLEAN_AND => 2,
Chris@0 274 T_BOOLEAN_OR => 2,
Chris@0 275 T_BREAK => 5,
Chris@0 276 T_CALLABLE => 8,
Chris@0 277 T_CASE => 4,
Chris@0 278 T_CATCH => 5,
Chris@0 279 T_CLASS => 5,
Chris@0 280 T_CLASS_C => 9,
Chris@0 281 T_CLONE => 5,
Chris@0 282 T_CONCAT_EQUAL => 2,
Chris@0 283 T_CONST => 5,
Chris@0 284 T_CONTINUE => 8,
Chris@0 285 T_CURLY_OPEN => 2,
Chris@0 286 T_DEC => 2,
Chris@0 287 T_DECLARE => 7,
Chris@0 288 T_DEFAULT => 7,
Chris@0 289 T_DIR => 7,
Chris@0 290 T_DIV_EQUAL => 2,
Chris@0 291 T_DO => 2,
Chris@0 292 T_DOLLAR_OPEN_CURLY_BRACES => 2,
Chris@0 293 T_DOUBLE_ARROW => 2,
Chris@0 294 T_DOUBLE_COLON => 2,
Chris@0 295 T_ECHO => 4,
Chris@0 296 T_ELSE => 4,
Chris@0 297 T_ELSEIF => 6,
Chris@0 298 T_EMPTY => 5,
Chris@0 299 T_ENDDECLARE => 10,
Chris@0 300 T_ENDFOR => 6,
Chris@0 301 T_ENDFOREACH => 10,
Chris@0 302 T_ENDIF => 5,
Chris@0 303 T_ENDSWITCH => 9,
Chris@0 304 T_ENDWHILE => 8,
Chris@0 305 T_EVAL => 4,
Chris@0 306 T_EXTENDS => 7,
Chris@0 307 T_FILE => 8,
Chris@0 308 T_FINAL => 5,
Chris@0 309 T_FINALLY => 7,
Chris@0 310 T_FOR => 3,
Chris@0 311 T_FOREACH => 7,
Chris@0 312 T_FUNCTION => 8,
Chris@0 313 T_FUNC_C => 12,
Chris@0 314 T_GLOBAL => 6,
Chris@0 315 T_GOTO => 4,
Chris@0 316 T_HALT_COMPILER => 15,
Chris@0 317 T_IF => 2,
Chris@0 318 T_IMPLEMENTS => 10,
Chris@0 319 T_INC => 2,
Chris@0 320 T_INCLUDE => 7,
Chris@0 321 T_INCLUDE_ONCE => 12,
Chris@0 322 T_INSTANCEOF => 10,
Chris@0 323 T_INSTEADOF => 9,
Chris@0 324 T_INTERFACE => 9,
Chris@0 325 T_ISSET => 5,
Chris@0 326 T_IS_EQUAL => 2,
Chris@0 327 T_IS_GREATER_OR_EQUAL => 2,
Chris@0 328 T_IS_IDENTICAL => 3,
Chris@0 329 T_IS_NOT_EQUAL => 2,
Chris@0 330 T_IS_NOT_IDENTICAL => 3,
Chris@0 331 T_IS_SMALLER_OR_EQUAL => 2,
Chris@0 332 T_LINE => 8,
Chris@0 333 T_LIST => 4,
Chris@0 334 T_LOGICAL_AND => 3,
Chris@0 335 T_LOGICAL_OR => 2,
Chris@0 336 T_LOGICAL_XOR => 3,
Chris@0 337 T_METHOD_C => 10,
Chris@0 338 T_MINUS_EQUAL => 2,
Chris@0 339 T_POW_EQUAL => 3,
Chris@0 340 T_MOD_EQUAL => 2,
Chris@0 341 T_MUL_EQUAL => 2,
Chris@0 342 T_NAMESPACE => 9,
Chris@0 343 T_NS_C => 13,
Chris@0 344 T_NS_SEPARATOR => 1,
Chris@0 345 T_NEW => 3,
Chris@0 346 T_OBJECT_OPERATOR => 2,
Chris@0 347 T_OPEN_TAG_WITH_ECHO => 3,
Chris@0 348 T_OR_EQUAL => 2,
Chris@0 349 T_PLUS_EQUAL => 2,
Chris@0 350 T_PRINT => 5,
Chris@0 351 T_PRIVATE => 7,
Chris@0 352 T_PUBLIC => 6,
Chris@0 353 T_PROTECTED => 9,
Chris@0 354 T_REQUIRE => 7,
Chris@0 355 T_REQUIRE_ONCE => 12,
Chris@0 356 T_RETURN => 6,
Chris@0 357 T_STATIC => 6,
Chris@0 358 T_SWITCH => 6,
Chris@0 359 T_THROW => 5,
Chris@0 360 T_TRAIT => 5,
Chris@0 361 T_TRAIT_C => 9,
Chris@0 362 T_TRY => 3,
Chris@0 363 T_UNSET => 5,
Chris@0 364 T_USE => 3,
Chris@0 365 T_VAR => 3,
Chris@0 366 T_WHILE => 5,
Chris@0 367 T_XOR_EQUAL => 2,
Chris@0 368 T_YIELD => 5,
Chris@0 369 T_OPEN_CURLY_BRACKET => 1,
Chris@0 370 T_CLOSE_CURLY_BRACKET => 1,
Chris@0 371 T_OPEN_SQUARE_BRACKET => 1,
Chris@0 372 T_CLOSE_SQUARE_BRACKET => 1,
Chris@0 373 T_OPEN_PARENTHESIS => 1,
Chris@0 374 T_CLOSE_PARENTHESIS => 1,
Chris@0 375 T_COLON => 1,
Chris@0 376 T_NULLABLE => 1,
Chris@0 377 T_STRING_CONCAT => 1,
Chris@0 378 T_INLINE_THEN => 1,
Chris@0 379 T_INLINE_ELSE => 1,
Chris@0 380 T_NULL => 4,
Chris@0 381 T_FALSE => 5,
Chris@0 382 T_TRUE => 4,
Chris@0 383 T_SEMICOLON => 1,
Chris@0 384 T_EQUAL => 1,
Chris@0 385 T_MULTIPLY => 1,
Chris@0 386 T_DIVIDE => 1,
Chris@0 387 T_PLUS => 1,
Chris@0 388 T_MINUS => 1,
Chris@0 389 T_MODULUS => 1,
Chris@0 390 T_POW => 2,
Chris@0 391 T_SPACESHIP => 3,
Chris@0 392 T_COALESCE => 2,
Chris@0 393 T_COALESCE_EQUAL => 3,
Chris@0 394 T_BITWISE_AND => 1,
Chris@0 395 T_BITWISE_OR => 1,
Chris@0 396 T_BITWISE_XOR => 1,
Chris@0 397 T_SL => 2,
Chris@0 398 T_SR => 2,
Chris@0 399 T_SL_EQUAL => 3,
Chris@0 400 T_SR_EQUAL => 3,
Chris@0 401 T_ARRAY_HINT => 5,
Chris@0 402 T_GREATER_THAN => 1,
Chris@0 403 T_LESS_THAN => 1,
Chris@0 404 T_BOOLEAN_NOT => 1,
Chris@0 405 T_SELF => 4,
Chris@0 406 T_PARENT => 6,
Chris@0 407 T_COMMA => 1,
Chris@0 408 T_THIS => 4,
Chris@0 409 T_CLOSURE => 8,
Chris@0 410 T_BACKTICK => 1,
Chris@0 411 T_OPEN_SHORT_ARRAY => 1,
Chris@0 412 T_CLOSE_SHORT_ARRAY => 1,
Chris@0 413 );
Chris@0 414
Chris@0 415 /**
Chris@0 416 * Tokens that represent assignments.
Chris@0 417 *
Chris@0 418 * @var array(int)
Chris@0 419 */
Chris@0 420 public static $assignmentTokens = array(
Chris@0 421 T_EQUAL => T_EQUAL,
Chris@0 422 T_AND_EQUAL => T_AND_EQUAL,
Chris@0 423 T_OR_EQUAL => T_OR_EQUAL,
Chris@0 424 T_CONCAT_EQUAL => T_CONCAT_EQUAL,
Chris@0 425 T_DIV_EQUAL => T_DIV_EQUAL,
Chris@0 426 T_MINUS_EQUAL => T_MINUS_EQUAL,
Chris@0 427 T_POW_EQUAL => T_POW_EQUAL,
Chris@0 428 T_MOD_EQUAL => T_MOD_EQUAL,
Chris@0 429 T_MUL_EQUAL => T_MUL_EQUAL,
Chris@0 430 T_PLUS_EQUAL => T_PLUS_EQUAL,
Chris@0 431 T_XOR_EQUAL => T_XOR_EQUAL,
Chris@0 432 T_DOUBLE_ARROW => T_DOUBLE_ARROW,
Chris@0 433 T_SL_EQUAL => T_SL_EQUAL,
Chris@0 434 T_SR_EQUAL => T_SR_EQUAL,
Chris@0 435 );
Chris@0 436
Chris@0 437 /**
Chris@0 438 * Tokens that represent equality comparisons.
Chris@0 439 *
Chris@0 440 * @var array(int)
Chris@0 441 */
Chris@0 442 public static $equalityTokens = array(
Chris@0 443 T_IS_EQUAL => T_IS_EQUAL,
Chris@0 444 T_IS_NOT_EQUAL => T_IS_NOT_EQUAL,
Chris@0 445 T_IS_IDENTICAL => T_IS_IDENTICAL,
Chris@0 446 T_IS_NOT_IDENTICAL => T_IS_NOT_IDENTICAL,
Chris@0 447 T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL,
Chris@0 448 T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL,
Chris@0 449 );
Chris@0 450
Chris@0 451 /**
Chris@0 452 * Tokens that represent comparison operator.
Chris@0 453 *
Chris@0 454 * @var array(int)
Chris@0 455 */
Chris@0 456 public static $comparisonTokens = array(
Chris@0 457 T_IS_EQUAL => T_IS_EQUAL,
Chris@0 458 T_IS_IDENTICAL => T_IS_IDENTICAL,
Chris@0 459 T_IS_NOT_EQUAL => T_IS_NOT_EQUAL,
Chris@0 460 T_IS_NOT_IDENTICAL => T_IS_NOT_IDENTICAL,
Chris@0 461 T_LESS_THAN => T_LESS_THAN,
Chris@0 462 T_GREATER_THAN => T_GREATER_THAN,
Chris@0 463 T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL,
Chris@0 464 T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL,
Chris@0 465 );
Chris@0 466
Chris@0 467 /**
Chris@0 468 * Tokens that represent arithmetic operators.
Chris@0 469 *
Chris@0 470 * @var array(int)
Chris@0 471 */
Chris@0 472 public static $arithmeticTokens = array(
Chris@0 473 T_PLUS => T_PLUS,
Chris@0 474 T_MINUS => T_MINUS,
Chris@0 475 T_MULTIPLY => T_MULTIPLY,
Chris@0 476 T_DIVIDE => T_DIVIDE,
Chris@0 477 T_MODULUS => T_MODULUS,
Chris@0 478 );
Chris@0 479
Chris@0 480 /**
Chris@0 481 * Tokens that represent casting.
Chris@0 482 *
Chris@0 483 * @var array(int)
Chris@0 484 */
Chris@0 485 public static $castTokens = array(
Chris@0 486 T_INT_CAST => T_INT_CAST,
Chris@0 487 T_STRING_CAST => T_STRING_CAST,
Chris@0 488 T_DOUBLE_CAST => T_DOUBLE_CAST,
Chris@0 489 T_ARRAY_CAST => T_ARRAY_CAST,
Chris@0 490 T_BOOL_CAST => T_BOOL_CAST,
Chris@0 491 T_OBJECT_CAST => T_OBJECT_CAST,
Chris@0 492 T_UNSET_CAST => T_UNSET_CAST,
Chris@0 493 T_BINARY_CAST => T_BINARY_CAST,
Chris@0 494 );
Chris@0 495
Chris@0 496 /**
Chris@0 497 * Token types that open parenthesis.
Chris@0 498 *
Chris@0 499 * @var array(int)
Chris@0 500 */
Chris@0 501 public static $parenthesisOpeners = array(
Chris@0 502 T_ARRAY => T_ARRAY,
Chris@0 503 T_FUNCTION => T_FUNCTION,
Chris@0 504 T_CLOSURE => T_CLOSURE,
Chris@0 505 T_WHILE => T_WHILE,
Chris@0 506 T_FOR => T_FOR,
Chris@0 507 T_FOREACH => T_FOREACH,
Chris@0 508 T_SWITCH => T_SWITCH,
Chris@0 509 T_IF => T_IF,
Chris@0 510 T_ELSEIF => T_ELSEIF,
Chris@0 511 T_CATCH => T_CATCH,
Chris@0 512 T_DECLARE => T_DECLARE,
Chris@0 513 );
Chris@0 514
Chris@0 515 /**
Chris@0 516 * Tokens that are allowed to open scopes.
Chris@0 517 *
Chris@0 518 * @var array(int)
Chris@0 519 */
Chris@0 520 public static $scopeOpeners = array(
Chris@0 521 T_CLASS => T_CLASS,
Chris@0 522 T_ANON_CLASS => T_ANON_CLASS,
Chris@0 523 T_INTERFACE => T_INTERFACE,
Chris@0 524 T_TRAIT => T_TRAIT,
Chris@0 525 T_NAMESPACE => T_NAMESPACE,
Chris@0 526 T_FUNCTION => T_FUNCTION,
Chris@0 527 T_CLOSURE => T_CLOSURE,
Chris@0 528 T_IF => T_IF,
Chris@0 529 T_SWITCH => T_SWITCH,
Chris@0 530 T_CASE => T_CASE,
Chris@0 531 T_DECLARE => T_DECLARE,
Chris@0 532 T_DEFAULT => T_DEFAULT,
Chris@0 533 T_WHILE => T_WHILE,
Chris@0 534 T_ELSE => T_ELSE,
Chris@0 535 T_ELSEIF => T_ELSEIF,
Chris@0 536 T_FOR => T_FOR,
Chris@0 537 T_FOREACH => T_FOREACH,
Chris@0 538 T_DO => T_DO,
Chris@0 539 T_TRY => T_TRY,
Chris@0 540 T_CATCH => T_CATCH,
Chris@0 541 T_FINALLY => T_FINALLY,
Chris@0 542 T_PROPERTY => T_PROPERTY,
Chris@0 543 T_OBJECT => T_OBJECT,
Chris@0 544 T_USE => T_USE,
Chris@0 545 );
Chris@0 546
Chris@0 547 /**
Chris@0 548 * Tokens that represent scope modifiers.
Chris@0 549 *
Chris@0 550 * @var array(int)
Chris@0 551 */
Chris@0 552 public static $scopeModifiers = array(
Chris@0 553 T_PRIVATE => T_PRIVATE,
Chris@0 554 T_PUBLIC => T_PUBLIC,
Chris@0 555 T_PROTECTED => T_PROTECTED,
Chris@0 556 );
Chris@0 557
Chris@0 558 /**
Chris@0 559 * Tokens that can prefix a method name
Chris@0 560 *
Chris@0 561 * @var array(int)
Chris@0 562 */
Chris@0 563 public static $methodPrefixes = array(
Chris@0 564 T_PRIVATE => T_PRIVATE,
Chris@0 565 T_PUBLIC => T_PUBLIC,
Chris@0 566 T_PROTECTED => T_PROTECTED,
Chris@0 567 T_ABSTRACT => T_ABSTRACT,
Chris@0 568 T_STATIC => T_STATIC,
Chris@0 569 T_FINAL => T_FINAL,
Chris@0 570 );
Chris@0 571
Chris@0 572 /**
Chris@0 573 * Tokens that perform operations.
Chris@0 574 *
Chris@0 575 * @var array(int)
Chris@0 576 */
Chris@0 577 public static $operators = array(
Chris@0 578 T_MINUS => T_MINUS,
Chris@0 579 T_PLUS => T_PLUS,
Chris@0 580 T_MULTIPLY => T_MULTIPLY,
Chris@0 581 T_DIVIDE => T_DIVIDE,
Chris@0 582 T_MODULUS => T_MODULUS,
Chris@0 583 T_POW => T_POW,
Chris@0 584 T_SPACESHIP => T_SPACESHIP,
Chris@0 585 T_COALESCE => T_COALESCE,
Chris@0 586 T_COALESCE_EQUAL => T_COALESCE_EQUAL,
Chris@0 587 T_BITWISE_AND => T_BITWISE_AND,
Chris@0 588 T_BITWISE_OR => T_BITWISE_OR,
Chris@0 589 T_BITWISE_XOR => T_BITWISE_XOR,
Chris@0 590 T_SL => T_SL,
Chris@0 591 T_SR => T_SR,
Chris@0 592 );
Chris@0 593
Chris@0 594 /**
Chris@0 595 * Tokens that perform boolean operations.
Chris@0 596 *
Chris@0 597 * @var array(int)
Chris@0 598 */
Chris@0 599 public static $booleanOperators = array(
Chris@0 600 T_BOOLEAN_AND => T_BOOLEAN_AND,
Chris@0 601 T_BOOLEAN_OR => T_BOOLEAN_OR,
Chris@0 602 T_LOGICAL_AND => T_LOGICAL_AND,
Chris@0 603 T_LOGICAL_OR => T_LOGICAL_OR,
Chris@0 604 T_LOGICAL_XOR => T_LOGICAL_XOR,
Chris@0 605 );
Chris@0 606
Chris@0 607 /**
Chris@0 608 * Tokens that open code blocks.
Chris@0 609 *
Chris@0 610 * @var array(int)
Chris@0 611 */
Chris@0 612 public static $blockOpeners = array(
Chris@0 613 T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET,
Chris@0 614 T_OPEN_SQUARE_BRACKET => T_OPEN_SQUARE_BRACKET,
Chris@0 615 T_OPEN_PARENTHESIS => T_OPEN_PARENTHESIS,
Chris@0 616 T_OBJECT => T_OBJECT,
Chris@0 617 );
Chris@0 618
Chris@0 619 /**
Chris@0 620 * Tokens that don't represent code.
Chris@0 621 *
Chris@0 622 * @var array(int)
Chris@0 623 */
Chris@0 624 public static $emptyTokens = array(
Chris@0 625 T_WHITESPACE => T_WHITESPACE,
Chris@0 626 T_COMMENT => T_COMMENT,
Chris@0 627 T_DOC_COMMENT => T_DOC_COMMENT,
Chris@0 628 T_DOC_COMMENT_STAR => T_DOC_COMMENT_STAR,
Chris@0 629 T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE,
Chris@0 630 T_DOC_COMMENT_TAG => T_DOC_COMMENT_TAG,
Chris@0 631 T_DOC_COMMENT_OPEN_TAG => T_DOC_COMMENT_OPEN_TAG,
Chris@0 632 T_DOC_COMMENT_CLOSE_TAG => T_DOC_COMMENT_CLOSE_TAG,
Chris@0 633 T_DOC_COMMENT_STRING => T_DOC_COMMENT_STRING,
Chris@0 634 );
Chris@0 635
Chris@0 636 /**
Chris@0 637 * Tokens that are comments.
Chris@0 638 *
Chris@0 639 * @var array(int)
Chris@0 640 */
Chris@0 641 public static $commentTokens = array(
Chris@0 642 T_COMMENT => T_COMMENT,
Chris@0 643 T_DOC_COMMENT => T_DOC_COMMENT,
Chris@0 644 T_DOC_COMMENT_STAR => T_DOC_COMMENT_STAR,
Chris@0 645 T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE,
Chris@0 646 T_DOC_COMMENT_TAG => T_DOC_COMMENT_TAG,
Chris@0 647 T_DOC_COMMENT_OPEN_TAG => T_DOC_COMMENT_OPEN_TAG,
Chris@0 648 T_DOC_COMMENT_CLOSE_TAG => T_DOC_COMMENT_CLOSE_TAG,
Chris@0 649 T_DOC_COMMENT_STRING => T_DOC_COMMENT_STRING,
Chris@0 650 );
Chris@0 651
Chris@0 652 /**
Chris@0 653 * Tokens that represent strings.
Chris@0 654 *
Chris@0 655 * Note that T_STRINGS are NOT represented in this list.
Chris@0 656 *
Chris@0 657 * @var array(int)
Chris@0 658 */
Chris@0 659 public static $stringTokens = array(
Chris@0 660 T_CONSTANT_ENCAPSED_STRING => T_CONSTANT_ENCAPSED_STRING,
Chris@0 661 T_DOUBLE_QUOTED_STRING => T_DOUBLE_QUOTED_STRING,
Chris@0 662 );
Chris@0 663
Chris@0 664 /**
Chris@0 665 * Tokens that represent brackets and parenthesis.
Chris@0 666 *
Chris@0 667 * @var array(int)
Chris@0 668 */
Chris@0 669 public static $bracketTokens = array(
Chris@0 670 T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET,
Chris@0 671 T_CLOSE_CURLY_BRACKET => T_CLOSE_CURLY_BRACKET,
Chris@0 672 T_OPEN_SQUARE_BRACKET => T_OPEN_SQUARE_BRACKET,
Chris@0 673 T_CLOSE_SQUARE_BRACKET => T_CLOSE_SQUARE_BRACKET,
Chris@0 674 T_OPEN_PARENTHESIS => T_OPEN_PARENTHESIS,
Chris@0 675 T_CLOSE_PARENTHESIS => T_CLOSE_PARENTHESIS,
Chris@0 676 );
Chris@0 677
Chris@0 678 /**
Chris@0 679 * Tokens that include files.
Chris@0 680 *
Chris@0 681 * @var array(int)
Chris@0 682 */
Chris@0 683 public static $includeTokens = array(
Chris@0 684 T_REQUIRE_ONCE => T_REQUIRE_ONCE,
Chris@0 685 T_REQUIRE => T_REQUIRE,
Chris@0 686 T_INCLUDE_ONCE => T_INCLUDE_ONCE,
Chris@0 687 T_INCLUDE => T_INCLUDE,
Chris@0 688 );
Chris@0 689
Chris@0 690 /**
Chris@0 691 * Tokens that make up a heredoc string.
Chris@0 692 *
Chris@0 693 * @var array(int)
Chris@0 694 */
Chris@0 695 public static $heredocTokens = array(
Chris@0 696 T_START_HEREDOC => T_START_HEREDOC,
Chris@0 697 T_END_HEREDOC => T_END_HEREDOC,
Chris@0 698 T_HEREDOC => T_HEREDOC,
Chris@0 699 T_START_NOWDOC => T_START_NOWDOC,
Chris@0 700 T_END_NOWDOC => T_END_NOWDOC,
Chris@0 701 T_NOWDOC => T_NOWDOC,
Chris@0 702 );
Chris@0 703
Chris@0 704 /**
Chris@0 705 * Tokens that represent the names of called functions.
Chris@0 706 *
Chris@0 707 * Mostly, these are just strings. But PHP tokeizes some language
Chris@0 708 * constructs and functions using their own tokens.
Chris@0 709 *
Chris@0 710 * @var array(int)
Chris@0 711 */
Chris@0 712 public static $functionNameTokens = array(
Chris@0 713 T_STRING => T_STRING,
Chris@0 714 T_EVAL => T_EVAL,
Chris@0 715 T_EXIT => T_EXIT,
Chris@0 716 T_INCLUDE => T_INCLUDE,
Chris@0 717 T_INCLUDE_ONCE => T_INCLUDE_ONCE,
Chris@0 718 T_REQUIRE => T_REQUIRE,
Chris@0 719 T_REQUIRE_ONCE => T_REQUIRE_ONCE,
Chris@0 720 T_ISSET => T_ISSET,
Chris@0 721 T_UNSET => T_UNSET,
Chris@0 722 T_EMPTY => T_EMPTY,
Chris@0 723 );
Chris@0 724
Chris@0 725
Chris@0 726 /**
Chris@0 727 * A PHP_CodeSniffer_Tokens class cannot be constructed.
Chris@0 728 *
Chris@0 729 * Only static calls are allowed.
Chris@0 730 */
Chris@0 731 private function __construct()
Chris@0 732 {
Chris@0 733
Chris@0 734 }//end __construct()
Chris@0 735
Chris@0 736
Chris@0 737 /**
Chris@0 738 * Returns the highest weighted token type.
Chris@0 739 *
Chris@0 740 * Tokens are weighted by their approximate frequency of appearance in code
Chris@0 741 * - the less frequently they appear in the code, the higher the weighting.
Chris@0 742 * For example T_CLASS tokens appear very infrequently in a file, and
Chris@0 743 * therefore have a high weighting.
Chris@0 744 *
Chris@0 745 * Returns false if there are no weightings for any of the specified tokens.
Chris@0 746 *
Chris@0 747 * @param array(int) $tokens The token types to get the highest weighted
Chris@0 748 * type for.
Chris@0 749 *
Chris@0 750 * @return int The highest weighted token.
Chris@0 751 */
Chris@0 752 public static function getHighestWeightedToken(array $tokens)
Chris@0 753 {
Chris@0 754 $highest = -1;
Chris@0 755 $highestType = false;
Chris@0 756
Chris@0 757 $weights = self::$weightings;
Chris@0 758
Chris@0 759 foreach ($tokens as $token) {
Chris@0 760 if (isset($weights[$token]) === true) {
Chris@0 761 $weight = $weights[$token];
Chris@0 762 } else {
Chris@0 763 $weight = 0;
Chris@0 764 }
Chris@0 765
Chris@0 766 if ($weight > $highest) {
Chris@0 767 $highest = $weight;
Chris@0 768 $highestType = $token;
Chris@0 769 }
Chris@0 770 }
Chris@0 771
Chris@0 772 return $highestType;
Chris@0 773
Chris@0 774 }//end getHighestWeightedToken()
Chris@0 775
Chris@0 776
Chris@0 777 }//end class