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

Documentation generated on Mon, 11 Mar 2019 15:27:50 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.