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
|