PHP_CodeSniffer
[ class tree: PHP_CodeSniffer ] [ index: PHP_CodeSniffer ] [ all elements ]

Source for file Tokens.php

Documentation is available at Tokens.php

  1. <?php
  2. /**
  3.  * Stores weightings and groupings of tokens.
  4.  *
  5.  * @author    Greg Sherwood <gsherwood@squiz.net>
  6.  * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
  7.  * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
  8.  */
  9.  
  10. namespace PHP_CodeSniffer\Util;
  11.  
  12. define('T_NONE''PHPCS_T_NONE');
  13. define('T_OPEN_CURLY_BRACKET''PHPCS_T_OPEN_CURLY_BRACKET');
  14. define('T_CLOSE_CURLY_BRACKET''PHPCS_T_CLOSE_CURLY_BRACKET');
  15. define('T_OPEN_SQUARE_BRACKET''PHPCS_T_OPEN_SQUARE_BRACKET');
  16. define('T_CLOSE_SQUARE_BRACKET''PHPCS_T_CLOSE_SQUARE_BRACKET');
  17. define('T_OPEN_PARENTHESIS''PHPCS_T_OPEN_PARENTHESIS');
  18. define('T_CLOSE_PARENTHESIS''PHPCS_T_CLOSE_PARENTHESIS');
  19. define('T_COLON''PHPCS_T_COLON');
  20. define('T_STRING_CONCAT''PHPCS_T_STRING_CONCAT');
  21. define('T_INLINE_THEN''PHPCS_T_INLINE_THEN');
  22. define('T_INLINE_ELSE''PHPCS_T_INLINE_ELSE');
  23. define('T_NULL''PHPCS_T_NULL');
  24. define('T_FALSE''PHPCS_T_FALSE');
  25. define('T_TRUE''PHPCS_T_TRUE');
  26. define('T_SEMICOLON''PHPCS_T_SEMICOLON');
  27. define('T_EQUAL''PHPCS_T_EQUAL');
  28. define('T_MULTIPLY''PHPCS_T_MULTIPLY');
  29. define('T_DIVIDE''PHPCS_T_DIVIDE');
  30. define('T_PLUS''PHPCS_T_PLUS');
  31. define('T_MINUS''PHPCS_T_MINUS');
  32. define('T_MODULUS''PHPCS_T_MODULUS');
  33. define('T_BITWISE_AND''PHPCS_T_BITWISE_AND');
  34. define('T_BITWISE_OR''PHPCS_T_BITWISE_OR');
  35. define('T_BITWISE_XOR''PHPCS_T_BITWISE_XOR');
  36. define('T_ARRAY_HINT''PHPCS_T_ARRAY_HINT');
  37. define('T_GREATER_THAN''PHPCS_T_GREATER_THAN');
  38. define('T_LESS_THAN''PHPCS_T_LESS_THAN');
  39. define('T_BOOLEAN_NOT''PHPCS_T_BOOLEAN_NOT');
  40. define('T_SELF''PHPCS_T_SELF');
  41. define('T_PARENT''PHPCS_T_PARENT');
  42. define('T_DOUBLE_QUOTED_STRING''PHPCS_T_DOUBLE_QUOTED_STRING');
  43. define('T_COMMA''PHPCS_T_COMMA');
  44. define('T_HEREDOC''PHPCS_T_HEREDOC');
  45. define('T_PROTOTYPE''PHPCS_T_PROTOTYPE');
  46. define('T_THIS''PHPCS_T_THIS');
  47. define('T_REGULAR_EXPRESSION''PHPCS_T_REGULAR_EXPRESSION');
  48. define('T_PROPERTY''PHPCS_T_PROPERTY');
  49. define('T_LABEL''PHPCS_T_LABEL');
  50. define('T_OBJECT''PHPCS_T_OBJECT');
  51. define('T_CLOSE_OBJECT''PHPCS_T_CLOSE_OBJECT');
  52. define('T_COLOUR''PHPCS_T_COLOUR');
  53. define('T_HASH''PHPCS_T_HASH');
  54. define('T_URL''PHPCS_T_URL');
  55. define('T_STYLE''PHPCS_T_STYLE');
  56. define('T_ASPERAND''PHPCS_T_ASPERAND');
  57. define('T_DOLLAR''PHPCS_T_DOLLAR');
  58. define('T_TYPEOF''PHPCS_T_TYPEOF');
  59. define('T_CLOSURE''PHPCS_T_CLOSURE');
  60. define('T_ANON_CLASS''PHPCS_T_ANON_CLASS');
  61. define('T_BACKTICK''PHPCS_T_BACKTICK');
  62. define('T_START_NOWDOC''PHPCS_T_START_NOWDOC');
  63. define('T_NOWDOC''PHPCS_T_NOWDOC');
  64. define('T_END_NOWDOC''PHPCS_T_END_NOWDOC');
  65. define('T_OPEN_SHORT_ARRAY''PHPCS_T_OPEN_SHORT_ARRAY');
  66. define('T_CLOSE_SHORT_ARRAY''PHPCS_T_CLOSE_SHORT_ARRAY');
  67. define('T_GOTO_LABEL''PHPCS_T_GOTO_LABEL');
  68. define('T_BINARY_CAST''PHPCS_T_BINARY_CAST');
  69. define('T_EMBEDDED_PHP''PHPCS_T_EMBEDDED_PHP');
  70. define('T_RETURN_TYPE''PHPCS_T_RETURN_TYPE');
  71. define('T_OPEN_USE_GROUP''PHPCS_T_OPEN_USE_GROUP');
  72. define('T_CLOSE_USE_GROUP''PHPCS_T_CLOSE_USE_GROUP');
  73.  
  74. // Some PHP 5.3 tokens, replicated for lower versions.
  75. if (defined('T_NAMESPACE'=== false{
  76.     define('T_NAMESPACE''PHPCS_T_NAMESPACE');
  77. }
  78.  
  79. if (defined('T_NS_C'=== false{
  80.     define('T_NS_C''PHPCS_T_NS_C');
  81. }
  82.  
  83. if (defined('T_NS_SEPARATOR'=== false{
  84.     define('T_NS_SEPARATOR''PHPCS_T_NS_SEPARATOR');
  85. }
  86.  
  87. if (defined('T_GOTO'=== false{
  88.     define('T_GOTO''PHPCS_T_GOTO');
  89. }
  90.  
  91. if (defined('T_DIR'=== false{
  92.     define('T_DIR''PHPCS_T_DIR');
  93. }
  94.  
  95. // Some PHP 5.4 tokens, replicated for lower versions.
  96. if (defined('T_TRAIT'=== false{
  97.     define('T_TRAIT''PHPCS_T_TRAIT');
  98. }
  99.  
  100. if (defined('T_TRAIT_C'=== false{
  101.     define('T_TRAIT_C''PHPCS_T_TRAIT_C');
  102. }
  103.  
  104. if (defined('T_INSTEADOF'=== false{
  105.     define('T_INSTEADOF''PHPCS_T_INSTEADOF');
  106. }
  107.  
  108. if (defined('T_CALLABLE'=== false{
  109.     define('T_CALLABLE''PHPCS_T_CALLABLE');
  110. }
  111.  
  112. // Some PHP 5.5 tokens, replicated for lower versions.
  113. if (defined('T_FINALLY'=== false{
  114.     define('T_FINALLY''PHPCS_T_FINALLY');
  115. }
  116.  
  117. if (defined('T_YIELD'=== false{
  118.     define('T_YIELD''PHPCS_T_YIELD');
  119. }
  120.  
  121. // Some PHP 5.6 tokens, replicated for lower versions.
  122. if (defined('T_ELLIPSIS'=== false{
  123.     define('T_ELLIPSIS''PHPCS_T_ELLIPSIS');
  124. }
  125.  
  126. if (defined('T_POW'=== false{
  127.     define('T_POW''PHPCS_T_POW');
  128. }
  129.  
  130. if (defined('T_POW_EQUAL'=== false{
  131.     define('T_POW_EQUAL''PHPCS_T_POW_EQUAL');
  132. }
  133.  
  134. // Some PHP 7 tokens, replicated for lower versions.
  135. if (defined('T_SPACESHIP'=== false{
  136.     define('T_SPACESHIP''PHPCS_T_SPACESHIP');
  137. }
  138.  
  139. if (defined('T_COALESCE'=== false{
  140.     define('T_COALESCE''PHPCS_T_COALESCE');
  141. }
  142.  
  143. // Tokens used for parsing doc blocks.
  144. define('T_DOC_COMMENT_STAR''PHPCS_T_DOC_COMMENT_STAR');
  145. define('T_DOC_COMMENT_WHITESPACE''PHPCS_T_DOC_COMMENT_WHITESPACE');
  146. define('T_DOC_COMMENT_TAG''PHPCS_T_DOC_COMMENT_TAG');
  147. define('T_DOC_COMMENT_OPEN_TAG''PHPCS_T_DOC_COMMENT_OPEN_TAG');
  148. define('T_DOC_COMMENT_CLOSE_TAG''PHPCS_T_DOC_COMMENT_CLOSE_TAG');
  149. define('T_DOC_COMMENT_STRING''PHPCS_T_DOC_COMMENT_STRING');
  150.  
  151. final class Tokens
  152. {
  153.  
  154.     /**
  155.      * The token weightings.
  156.      *
  157.      * @var array<int, int>
  158.      */
  159.     public static $weightings = array(
  160.                                  T_CLASS               => 1000,
  161.                                  T_INTERFACE           => 1000,
  162.                                  T_TRAIT               => 1000,
  163.                                  T_NAMESPACE           => 1000,
  164.                                  T_FUNCTION            => 100,
  165.                                  T_CLOSURE             => 100,
  166.  
  167.                                  /*
  168.                                      Conditions.
  169.                                  */
  170.  
  171.                                  T_WHILE               => 50,
  172.                                  T_FOR                 => 50,
  173.                                  T_FOREACH             => 50,
  174.                                  T_IF                  => 50,
  175.                                  T_ELSE                => 50,
  176.                                  T_ELSEIF              => 50,
  177.                                  T_DO                  => 50,
  178.                                  T_TRY                 => 50,
  179.                                  T_CATCH               => 50,
  180.                                  T_FINALLY             => 50,
  181.                                  T_SWITCH              => 50,
  182.  
  183.                                  T_SELF                => 25,
  184.                                  T_PARENT              => 25,
  185.  
  186.                                  /*
  187.                                      Operators and arithmetic.
  188.                                  */
  189.  
  190.                                  T_BITWISE_AND         => 8,
  191.                                  T_BITWISE_OR          => 8,
  192.                                  T_BITWISE_XOR         => 8,
  193.  
  194.                                  T_MULTIPLY            => 5,
  195.                                  T_DIVIDE              => 5,
  196.                                  T_PLUS                => 5,
  197.                                  T_MINUS               => 5,
  198.                                  T_MODULUS             => 5,
  199.                                  T_POW                 => 5,
  200.                                  T_SPACESHIP           => 5,
  201.                                  T_COALESCE            => 5,
  202.  
  203.                                  T_SL                  => 5,
  204.                                  T_SR                  => 5,
  205.                                  T_SL_EQUAL            => 5,
  206.                                  T_SR_EQUAL            => 5,
  207.  
  208.                                  T_EQUAL               => 5,
  209.                                  T_AND_EQUAL           => 5,
  210.                                  T_CONCAT_EQUAL        => 5,
  211.                                  T_DIV_EQUAL           => 5,
  212.                                  T_MINUS_EQUAL         => 5,
  213.                                  T_MOD_EQUAL           => 5,
  214.                                  T_MUL_EQUAL           => 5,
  215.                                  T_OR_EQUAL            => 5,
  216.                                  T_PLUS_EQUAL          => 5,
  217.                                  T_XOR_EQUAL           => 5,
  218.  
  219.                                  T_BOOLEAN_AND         => 5,
  220.                                  T_BOOLEAN_OR          => 5,
  221.  
  222.                                  /*
  223.                                      Equality.
  224.                                  */
  225.  
  226.                                  T_IS_EQUAL            => 5,
  227.                                  T_IS_NOT_EQUAL        => 5,
  228.                                  T_IS_IDENTICAL        => 5,
  229.                                  T_IS_NOT_IDENTICAL    => 5,
  230.                                  T_IS_SMALLER_OR_EQUAL => 5,
  231.                                  T_IS_GREATER_OR_EQUAL => 5,
  232.                                 );
  233.  
  234.     /**
  235.      * Tokens that represent assignments.
  236.      *
  237.      * @var array<int, int>
  238.      */
  239.     public static $assignmentTokens = array(
  240.                                        T_EQUAL        => T_EQUAL,
  241.                                        T_AND_EQUAL    => T_AND_EQUAL,
  242.                                        T_OR_EQUAL     => T_OR_EQUAL,
  243.                                        T_CONCAT_EQUAL => T_CONCAT_EQUAL,
  244.                                        T_DIV_EQUAL    => T_DIV_EQUAL,
  245.                                        T_MINUS_EQUAL  => T_MINUS_EQUAL,
  246.                                        T_POW_EQUAL    => T_POW_EQUAL,
  247.                                        T_MOD_EQUAL    => T_MOD_EQUAL,
  248.                                        T_MUL_EQUAL    => T_MUL_EQUAL,
  249.                                        T_PLUS_EQUAL   => T_PLUS_EQUAL,
  250.                                        T_XOR_EQUAL    => T_XOR_EQUAL,
  251.                                        T_DOUBLE_ARROW => T_DOUBLE_ARROW,
  252.                                        T_SL_EQUAL     => T_SL_EQUAL,
  253.                                        T_SR_EQUAL     => T_SR_EQUAL,
  254.                                       );
  255.  
  256.     /**
  257.      * Tokens that represent equality comparisons.
  258.      *
  259.      * @var array<int, int>
  260.      */
  261.     public static $equalityTokens = array(
  262.                                      T_IS_EQUAL            => T_IS_EQUAL,
  263.                                      T_IS_NOT_EQUAL        => T_IS_NOT_EQUAL,
  264.                                      T_IS_IDENTICAL        => T_IS_IDENTICAL,
  265.                                      T_IS_NOT_IDENTICAL    => T_IS_NOT_IDENTICAL,
  266.                                      T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL,
  267.                                      T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL,
  268.                                     );
  269.  
  270.     /**
  271.      * Tokens that represent comparison operator.
  272.      *
  273.      * @var array<int, int>
  274.      */
  275.     public static $comparisonTokens = array(
  276.                                        T_IS_EQUAL            => T_IS_EQUAL,
  277.                                        T_IS_IDENTICAL        => T_IS_IDENTICAL,
  278.                                        T_IS_NOT_EQUAL        => T_IS_NOT_EQUAL,
  279.                                        T_IS_NOT_IDENTICAL    => T_IS_NOT_IDENTICAL,
  280.                                        T_LESS_THAN           => T_LESS_THAN,
  281.                                        T_GREATER_THAN        => T_GREATER_THAN,
  282.                                        T_IS_SMALLER_OR_EQUAL => T_IS_SMALLER_OR_EQUAL,
  283.                                        T_IS_GREATER_OR_EQUAL => T_IS_GREATER_OR_EQUAL,
  284.                                       );
  285.  
  286.     /**
  287.      * Tokens that represent arithmetic operators.
  288.      *
  289.      * @var array<int, int>
  290.      */
  291.     public static $arithmeticTokens = array(
  292.                                        T_PLUS     => T_PLUS,
  293.                                        T_MINUS    => T_MINUS,
  294.                                        T_MULTIPLY => T_MULTIPLY,
  295.                                        T_DIVIDE   => T_DIVIDE,
  296.                                        T_MODULUS  => T_MODULUS,
  297.                                       );
  298.  
  299.     /**
  300.      * Tokens that represent casting.
  301.      *
  302.      * @var array<int, int>
  303.      */
  304.     public static $castTokens = array(
  305.                                  T_INT_CAST    => T_INT_CAST,
  306.                                  T_STRING_CAST => T_STRING_CAST,
  307.                                  T_DOUBLE_CAST => T_DOUBLE_CAST,
  308.                                  T_ARRAY_CAST  => T_ARRAY_CAST,
  309.                                  T_BOOL_CAST   => T_BOOL_CAST,
  310.                                  T_OBJECT_CAST => T_OBJECT_CAST,
  311.                                  T_UNSET_CAST  => T_UNSET_CAST,
  312.                                  T_BINARY_CAST => T_BINARY_CAST,
  313.                                 );
  314.  
  315.     /**
  316.      * Token types that open parenthesis.
  317.      *
  318.      * @var array<int, int>
  319.      */
  320.     public static $parenthesisOpeners = array(
  321.                                          T_ARRAY    => T_ARRAY,
  322.                                          T_FUNCTION => T_FUNCTION,
  323.                                          T_CLOSURE  => T_CLOSURE,
  324.                                          T_WHILE    => T_WHILE,
  325.                                          T_FOR      => T_FOR,
  326.                                          T_FOREACH  => T_FOREACH,
  327.                                          T_SWITCH   => T_SWITCH,
  328.                                          T_IF       => T_IF,
  329.                                          T_ELSEIF   => T_ELSEIF,
  330.                                          T_CATCH    => T_CATCH,
  331.                                          T_DECLARE  => T_DECLARE,
  332.                                         );
  333.  
  334.     /**
  335.      * Tokens that are allowed to open scopes.
  336.      *
  337.      * @var array<int, int>
  338.      */
  339.     public static $scopeOpeners = array(
  340.                                    T_CLASS      => T_CLASS,
  341.                                    T_ANON_CLASS => T_ANON_CLASS,
  342.                                    T_INTERFACE  => T_INTERFACE,
  343.                                    T_TRAIT      => T_TRAIT,
  344.                                    T_NAMESPACE  => T_NAMESPACE,
  345.                                    T_FUNCTION   => T_FUNCTION,
  346.                                    T_CLOSURE    => T_CLOSURE,
  347.                                    T_IF         => T_IF,
  348.                                    T_SWITCH     => T_SWITCH,
  349.                                    T_CASE       => T_CASE,
  350.                                    T_DECLARE    => T_DECLARE,
  351.                                    T_DEFAULT    => T_DEFAULT,
  352.                                    T_WHILE      => T_WHILE,
  353.                                    T_ELSE       => T_ELSE,
  354.                                    T_ELSEIF     => T_ELSEIF,
  355.                                    T_FOR        => T_FOR,
  356.                                    T_FOREACH    => T_FOREACH,
  357.                                    T_DO         => T_DO,
  358.                                    T_TRY        => T_TRY,
  359.                                    T_CATCH      => T_CATCH,
  360.                                    T_FINALLY    => T_FINALLY,
  361.                                    T_PROPERTY   => T_PROPERTY,
  362.                                    T_OBJECT     => T_OBJECT,
  363.                                    T_USE        => T_USE,
  364.                                   );
  365.  
  366.     /**
  367.      * Tokens that represent scope modifiers.
  368.      *
  369.      * @var array<int, int>
  370.      */
  371.     public static $scopeModifiers = array(
  372.                                      T_PRIVATE   => T_PRIVATE,
  373.                                      T_PUBLIC    => T_PUBLIC,
  374.                                      T_PROTECTED => T_PROTECTED,
  375.                                     );
  376.  
  377.     /**
  378.      * Tokens that can prefix a method name
  379.      *
  380.      * @var array<int, int>
  381.      */
  382.     public static $methodPrefixes = array(
  383.                                      T_PRIVATE   => T_PRIVATE,
  384.                                      T_PUBLIC    => T_PUBLIC,
  385.                                      T_PROTECTED => T_PROTECTED,
  386.                                      T_ABSTRACT  => T_ABSTRACT,
  387.                                      T_STATIC    => T_STATIC,
  388.                                      T_FINAL     => T_FINAL,
  389.                                     );
  390.  
  391.     /**
  392.      * Tokens that perform operations.
  393.      *
  394.      * @var array<int, int>
  395.      */
  396.     public static $operators = array(
  397.                                 T_MINUS       => T_MINUS,
  398.                                 T_PLUS        => T_PLUS,
  399.                                 T_MULTIPLY    => T_MULTIPLY,
  400.                                 T_DIVIDE      => T_DIVIDE,
  401.                                 T_MODULUS     => T_MODULUS,
  402.                                 T_POW         => T_POW,
  403.                                 T_SPACESHIP   => T_SPACESHIP,
  404.                                 T_COALESCE    => T_COALESCE,
  405.                                 T_BITWISE_AND => T_BITWISE_AND,
  406.                                 T_BITWISE_OR  => T_BITWISE_OR,
  407.                                 T_BITWISE_XOR => T_BITWISE_XOR,
  408.                                 T_SL          => T_SL,
  409.                                 T_SR          => T_SR,
  410.                                );
  411.  
  412.     /**
  413.      * Tokens that perform boolean operations.
  414.      *
  415.      * @var array<int, int>
  416.      */
  417.     public static $booleanOperators = array(
  418.                                        T_BOOLEAN_AND => T_BOOLEAN_AND,
  419.                                        T_BOOLEAN_OR  => T_BOOLEAN_OR,
  420.                                        T_LOGICAL_AND => T_LOGICAL_AND,
  421.                                        T_LOGICAL_OR  => T_LOGICAL_OR,
  422.                                        T_LOGICAL_XOR => T_LOGICAL_XOR,
  423.                                       );
  424.  
  425.     /**
  426.      * Tokens that open code blocks.
  427.      *
  428.      * @var array<int, int>
  429.      */
  430.     public static $blockOpeners = array(
  431.                                    T_OPEN_CURLY_BRACKET  => T_OPEN_CURLY_BRACKET,
  432.                                    T_OPEN_SQUARE_BRACKET => T_OPEN_SQUARE_BRACKET,
  433.                                    T_OPEN_PARENTHESIS    => T_OPEN_PARENTHESIS,
  434.                                    T_OBJECT              => T_OBJECT,
  435.                                   );
  436.  
  437.     /**
  438.      * Tokens that don't represent code.
  439.      *
  440.      * @var array<int, int>
  441.      */
  442.     public static $emptyTokens = array(
  443.                                   T_WHITESPACE             => T_WHITESPACE,
  444.                                   T_COMMENT                => T_COMMENT,
  445.                                   T_DOC_COMMENT            => T_DOC_COMMENT,
  446.                                   T_DOC_COMMENT_STAR       => T_DOC_COMMENT_STAR,
  447.                                   T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE,
  448.                                   T_DOC_COMMENT_TAG        => T_DOC_COMMENT_TAG,
  449.                                   T_DOC_COMMENT_OPEN_TAG   => T_DOC_COMMENT_OPEN_TAG,
  450.                                   T_DOC_COMMENT_CLOSE_TAG  => T_DOC_COMMENT_CLOSE_TAG,
  451.                                   T_DOC_COMMENT_STRING     => T_DOC_COMMENT_STRING,
  452.                                  );
  453.  
  454.     /**
  455.      * Tokens that are comments.
  456.      *
  457.      * @var array<int, int>
  458.      */
  459.     public static $commentTokens = array(
  460.                                     T_COMMENT                => T_COMMENT,
  461.                                     T_DOC_COMMENT            => T_DOC_COMMENT,
  462.                                     T_DOC_COMMENT_STAR       => T_DOC_COMMENT_STAR,
  463.                                     T_DOC_COMMENT_WHITESPACE => T_DOC_COMMENT_WHITESPACE,
  464.                                     T_DOC_COMMENT_TAG        => T_DOC_COMMENT_TAG,
  465.                                     T_DOC_COMMENT_OPEN_TAG   => T_DOC_COMMENT_OPEN_TAG,
  466.                                     T_DOC_COMMENT_CLOSE_TAG  => T_DOC_COMMENT_CLOSE_TAG,
  467.                                     T_DOC_COMMENT_STRING     => T_DOC_COMMENT_STRING,
  468.                                    );
  469.  
  470.     /**
  471.      * Tokens that represent strings.
  472.      *
  473.      * Note that T_STRINGS are NOT represented in this list.
  474.      *
  475.      * @var array<int, int>
  476.      */
  477.     public static $stringTokens = array(
  478.                                    T_CONSTANT_ENCAPSED_STRING => T_CONSTANT_ENCAPSED_STRING,
  479.                                    T_DOUBLE_QUOTED_STRING     => T_DOUBLE_QUOTED_STRING,
  480.                                   );
  481.  
  482.     /**
  483.      * Tokens that represent brackets and parenthesis.
  484.      *
  485.      * @var array<int, int>
  486.      */
  487.     public static $bracketTokens = array(
  488.                                     T_OPEN_CURLY_BRACKET   => T_OPEN_CURLY_BRACKET,
  489.                                     T_CLOSE_CURLY_BRACKET  => T_CLOSE_CURLY_BRACKET,
  490.                                     T_OPEN_SQUARE_BRACKET  => T_OPEN_SQUARE_BRACKET,
  491.                                     T_CLOSE_SQUARE_BRACKET => T_CLOSE_SQUARE_BRACKET,
  492.                                     T_OPEN_PARENTHESIS     => T_OPEN_PARENTHESIS,
  493.                                     T_CLOSE_PARENTHESIS    => T_CLOSE_PARENTHESIS,
  494.                                    );
  495.  
  496.     /**
  497.      * Tokens that include files.
  498.      *
  499.      * @var array<int, int>
  500.      */
  501.     public static $includeTokens = array(
  502.                                     T_REQUIRE_ONCE => T_REQUIRE_ONCE,
  503.                                     T_REQUIRE      => T_REQUIRE,
  504.                                     T_INCLUDE_ONCE => T_INCLUDE_ONCE,
  505.                                     T_INCLUDE      => T_INCLUDE,
  506.                                    );
  507.  
  508.     /**
  509.      * Tokens that make up a heredoc string.
  510.      *
  511.      * @var array<int, int>
  512.      */
  513.     public static $heredocTokens = array(
  514.                                     T_START_HEREDOC => T_START_HEREDOC,
  515.                                     T_END_HEREDOC   => T_END_HEREDOC,
  516.                                     T_HEREDOC       => T_HEREDOC,
  517.                                     T_START_NOWDOC  => T_START_NOWDOC,
  518.                                     T_END_NOWDOC    => T_END_NOWDOC,
  519.                                     T_NOWDOC        => T_NOWDOC,
  520.                                    );
  521.  
  522.     /**
  523.      * Tokens that represent the names of called functions.
  524.      *
  525.      * Mostly, these are just strings. But PHP tokeizes some language
  526.      * constructs and functions using their own tokens.
  527.      *
  528.      * @var array<int, int>
  529.      */
  530.     public static $functionNameTokens = array(
  531.                                          T_STRING       => T_STRING,
  532.                                          T_EVAL         => T_EVAL,
  533.                                          T_EXIT         => T_EXIT,
  534.                                          T_INCLUDE      => T_INCLUDE,
  535.                                          T_INCLUDE_ONCE => T_INCLUDE_ONCE,
  536.                                          T_REQUIRE      => T_REQUIRE,
  537.                                          T_REQUIRE_ONCE => T_REQUIRE_ONCE,
  538.                                          T_ISSET        => T_ISSET,
  539.                                          T_UNSET        => T_UNSET,
  540.                                          T_EMPTY        => T_EMPTY,
  541.                                         );
  542.  
  543.  
  544.     /**
  545.      * Returns the highest weighted token type.
  546.      *
  547.      * Tokens are weighted by their approximate frequency of appearance in code
  548.      * - the less frequently they appear in the code, the higher the weighting.
  549.      * For example T_CLASS tokens appear very infrequently in a file, and
  550.      * therefore have a high weighting.
  551.      *
  552.      * Returns false if there are no weightings for any of the specified tokens.
  553.      *
  554.      * @param array<int, int> $tokens The token types to get the highest weighted
  555.      *                                 type for.
  556.      *
  557.      * @return int The highest weighted token.
  558.      */
  559.     public static function getHighestWeightedToken(array $tokens)
  560.     {
  561.         $highest     = -1;
  562.         $highestType = false;
  563.  
  564.         $weights = self::$weightings;
  565.  
  566.         foreach ($tokens as $token{
  567.             if (isset($weights[$token]=== true{
  568.                 $weight $weights[$token];
  569.             else {
  570.                 $weight = 0;
  571.             }
  572.  
  573.             if ($weight $highest{
  574.                 $highest     $weight;
  575.                 $highestType $token;
  576.             }
  577.         }
  578.  
  579.         return $highestType;
  580.  
  581.     }//end getHighestWeightedToken()
  582.  
  583.  
  584. }//end class

Documentation generated on Mon, 11 Mar 2019 14:53:45 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.