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