1package Perl::Lint::Constants::Type; 2use strict; 3use warnings; 4use Compiler::Lexer::Constants; 5use parent qw/Exporter/; 6 7our @EXPORT = qw( 8 VAR_DECL OUR_DECL LOCAL_DECL FUNCTION_DECL FORMAT_DECL STATE_DECL 9 USE_DECL REQUIRE_DECL 10 USED_NAME REQUIRED_NAME 11 CALL FUNCTION 12 VAR CODE_VAR ARRAY_VAR HASH_VAR 13 GLOBAL_VAR GLOBAL_ARRAY_VAR GLOBAL_HASH_VAR 14 LOCAL_VAR LOCAL_ARRAY_VAR LOCAL_HASH_VAR 15 PROGRAM_ARGUMENT LIBRARY_DIRECTORIES ARGUMENT_ARRAY 16 INCLUDE ENVIRONMENT SIGNAL 17 SEMI_COLON COMMA ARROW COLON POINTER 18 ASSIGN REG_OK REG_NOT 19 DOUBLE 20 RIGHT_BRACE LEFT_BRACE 21 RIGHT_PAREN LEFT_PAREN 22 RIGHT_BRACKET LEFT_BRACKET 23 KEY METHOD 24 STRING RAW_STRING EXEC_STRING VERSION_STRING 25 INT 26 HERE_DOCUMENT RAW_HERE_DOCUMENT HERE_DOCUMENT_END HERE_DOCUMENT_TAG HERE_DOCUMENT_RAW_TAG HERE_DOCUMENT_BARE_TAG 27 REG_QUOTE REG_DOUBLE_QUOTE 28 REG_DELIM REG_OPT 29 REG_EXP REG_EXEC REG_LIST REG_ALL_REPLACE REG_MATCH REG_REPLACE REG_REPLACE_TO REG_REPLACE_FROM REG_DECL 30 IF_STATEMENT ELSE_STATEMENT ELSIF_STATEMENT UNLESS_STATEMENT FOR_STATEMENT FOREACH_STATEMENT WHILE_STATEMENT UNTIL_STATEMENT WHEN_STATEMENT 31 CONTINUE 32 BUILTIN_FUNC GOTO RETURN NEXT LAST REDO 33 PACKAGE CLASS NAMESPACE NAMESPACE_RESOLVER 34 AND OR ALPHABET_AND ALPHABET_OR ALPHABET_XOR BIT_AND BIT_OR BIT_XOR OR_EQUAL AND_EQUAL EQUAL_EQUAL NOT ALPHABET_NOT NOT_EQUAL 35 RIGHT_SHIFT_EQUAL LEFT_SHIFT_EQUAL 36 SHORT_SCALAR_DEREFERENCE SHORT_ARRAY_DEREFERENCE SHORT_HASH_DEREFERENCE SHORT_CODE_DEREFERENCE 37 THREE_TERM_OP DEFAULT_OP 38 DO 39 RIGHT_SHIFT LEFT_SHIFT 40 GLOB REF PROTOTYPE 41 MOD_WORD 42 TYPE_STDIN TYPE_STDOUT TYPE_STDERR 43 HANDLE HANDLE_DELIM DIAMOND 44 LESS LESS_EQUAL GREATER GREATER_EQUAL COMPARE 45 STRING_LESS STRING_GREATER STRING_COMPARE STRING_NOT_EQUAL 46 STRING_LESS_EQUAL STRING_GREATER_EQUAL 47 MUL MOD STRING_ADD STRING_MUL 48 SPECIFIC_VALUE SPECIFIC_KEYWORD ARRAY_SIZE 49 DEFAULT 50 PROTOTYPE 51 SCALAR_DEREFERENCE HASH_DEREFERENCE ARRAY_DEREFERENCE ARRAY_SIZE_DEREFERENCE 52 53 POWER_EQUAL ADD_EQUAL MUL_EQUAL AND_BIT_EQUAL SUB_EQUAL DIV_EQUAL 54 OR_BIT_EQUAL MOD_EQUAL NOT_BIT_EQUAL DEFAULT_EQUAL STRING_ADD_EQUAL 55 56 PLUSPLUS MINUSMINUS 57 58 SLICE 59); 60 61use constant { 62 VAR_DECL => Compiler::Lexer::TokenType::T_VarDecl, 63 OUR_DECL => Compiler::Lexer::TokenType::T_OurDecl, 64 LOCAL_DECL => Compiler::Lexer::TokenType::T_LocalDecl, 65 FUNCTION_DECL => Compiler::Lexer::TokenType::T_FunctionDecl, 66 FORMAT_DECL => Compiler::Lexer::TokenType::T_FormatDecl, 67 STATE_DECL => Compiler::Lexer::TokenType::T_StateDecl, 68 69 USE_DECL => Compiler::Lexer::TokenType::T_UseDecl, 70 REQUIRE_DECL => Compiler::Lexer::TokenType::T_RequireDecl, 71 72 USED_NAME => Compiler::Lexer::TokenType::T_UsedName, 73 REQUIRED_NAME => Compiler::Lexer::TokenType::T_RequiredName, 74 75 CALL => Compiler::Lexer::TokenType::T_Call, 76 FUNCTION => Compiler::Lexer::TokenType::T_Function, 77 78 VAR => Compiler::Lexer::TokenType::T_Var, 79 CODE_VAR => Compiler::Lexer::TokenType::T_CodeVar, 80 ARRAY_VAR => Compiler::Lexer::TokenType::T_ArrayVar, 81 HASH_VAR => Compiler::Lexer::TokenType::T_HashVar, 82 83 GLOBAL_VAR => Compiler::Lexer::TokenType::T_GlobalVar, 84 GLOBAL_ARRAY_VAR => Compiler::Lexer::TokenType::T_GlobalArrayVar, 85 GLOBAL_HASH_VAR => Compiler::Lexer::TokenType::T_GlobalHashVar, 86 87 LOCAL_VAR => Compiler::Lexer::TokenType::T_LocalVar, 88 LOCAL_ARRAY_VAR => Compiler::Lexer::TokenType::T_LocalArrayVar, 89 LOCAL_HASH_VAR => Compiler::Lexer::TokenType::T_LocalHashVar, 90 91 PROGRAM_ARGUMENT => Compiler::Lexer::TokenType::T_ProgramArgument, 92 LIBRARY_DIRECTORIES => Compiler::Lexer::TokenType::T_LibraryDirectories, 93 ARGUMENT_ARRAY => Compiler::Lexer::TokenType::T_ArgumentArray, 94 INCLUDE => Compiler::Lexer::TokenType::T_Include, 95 ENVIRONMENT => Compiler::Lexer::TokenType::T_Environment, 96 SIGNAL => Compiler::Lexer::TokenType::T_Signal, 97 98 IF_STATEMENT => Compiler::Lexer::TokenType::T_IfStmt, 99 ELSE_STATEMENT => Compiler::Lexer::TokenType::T_ElseStmt, 100 ELSIF_STATEMENT => Compiler::Lexer::TokenType::T_ElsifStmt, 101 UNLESS_STATEMENT => Compiler::Lexer::TokenType::T_UnlessStmt, 102 WHILE_STATEMENT => Compiler::Lexer::TokenType::T_WhileStmt, 103 FOR_STATEMENT => Compiler::Lexer::TokenType::T_ForStmt, 104 FOREACH_STATEMENT => Compiler::Lexer::TokenType::T_ForeachStmt, 105 UNTIL_STATEMENT => Compiler::Lexer::TokenType::T_UntilStmt, 106 WHEN_STATEMENT => Compiler::Lexer::TokenType::T_WhenStmt, 107 108 CONTINUE => Compiler::Lexer::TokenType::T_Continue, 109 110 BUILTIN_FUNC => Compiler::Lexer::TokenType::T_BuiltinFunc, 111 GOTO => Compiler::Lexer::TokenType::T_Goto, 112 RETURN => Compiler::Lexer::TokenType::T_Return, 113 NEXT => Compiler::Lexer::TokenType::T_Next, 114 LAST => Compiler::Lexer::TokenType::T_Last, 115 REDO => Compiler::Lexer::TokenType::T_Redo, 116 117 RIGHT_BRACE => Compiler::Lexer::TokenType::T_RightBrace, 118 LEFT_BRACE => Compiler::Lexer::TokenType::T_LeftBrace, 119 RIGHT_PAREN => Compiler::Lexer::TokenType::T_RightParenthesis, 120 LEFT_PAREN => Compiler::Lexer::TokenType::T_LeftParenthesis, 121 RIGHT_BRACKET => Compiler::Lexer::TokenType::T_RightBracket, 122 LEFT_BRACKET => Compiler::Lexer::TokenType::T_LeftBracket, 123 124 METHOD => Compiler::Lexer::TokenType::T_Method, 125 KEY => Compiler::Lexer::TokenType::T_Key, 126 STRING => Compiler::Lexer::TokenType::T_String, 127 RAW_STRING => Compiler::Lexer::TokenType::T_RawString, 128 EXEC_STRING => Compiler::Lexer::TokenType::T_ExecString, 129 VERSION_STRING => Compiler::Lexer::TokenType::T_VersionString, 130 131 INT => Compiler::Lexer::TokenType::T_Int, 132 133 HERE_DOCUMENT => Compiler::Lexer::TokenType::T_HereDocument, 134 RAW_HERE_DOCUMENT => Compiler::Lexer::TokenType::T_RawHereDocument, 135 HERE_DOCUMENT_TAG => Compiler::Lexer::TokenType::T_HereDocumentTag, 136 HERE_DOCUMENT_RAW_TAG => Compiler::Lexer::TokenType::T_HereDocumentRawTag, 137 HERE_DOCUMENT_BARE_TAG => Compiler::Lexer::TokenType::T_HereDocumentBareTag, 138 HERE_DOCUMENT_END => Compiler::Lexer::TokenType::T_HereDocumentEnd, 139 140 REG_QUOTE => Compiler::Lexer::TokenType::T_RegQuote, 141 REG_DOUBLE_QUOTE => Compiler::Lexer::TokenType::T_RegDoubleQuote, 142 143 REG_DELIM => Compiler::Lexer::TokenType::T_RegDelim, 144 REG_OPT => Compiler::Lexer::TokenType::T_RegOpt, 145 146 REG_EXP => Compiler::Lexer::TokenType::T_RegExp, 147 REG_EXEC => Compiler::Lexer::TokenType::T_RegExec, 148 REG_LIST => Compiler::Lexer::TokenType::T_RegList, 149 REG_MATCH => Compiler::Lexer::TokenType::T_RegMatch, 150 REG_REPLACE => Compiler::Lexer::TokenType::T_RegReplace, 151 REG_REPLACE_TO => Compiler::Lexer::TokenType::T_RegReplaceTo, 152 REG_REPLACE_FROM => Compiler::Lexer::TokenType::T_RegReplaceFrom, 153 REG_ALL_REPLACE => Compiler::Lexer::TokenType::T_RegAllReplace, 154 REG_DECL => Compiler::Lexer::TokenType::T_RegDecl, 155 156 THREE_TERM_OP => Compiler::Lexer::TokenType::T_ThreeTermOperator, 157 158 DEFAULT_OP => Compiler::Lexer::TokenType::T_DefaultOperator, 159 160 COMMA => Compiler::Lexer::TokenType::T_Comma, 161 SEMI_COLON => Compiler::Lexer::TokenType::T_SemiColon, 162 COLON => Compiler::Lexer::TokenType::T_Colon, 163 ARROW => Compiler::Lexer::TokenType::T_Arrow, 164 ASSIGN => Compiler::Lexer::TokenType::T_Assign, 165 REG_OK => Compiler::Lexer::TokenType::T_RegOK, 166 REG_NOT => Compiler::Lexer::TokenType::T_RegNot, 167 POINTER => Compiler::Lexer::TokenType::T_Pointer, 168 169 DOUBLE => Compiler::Lexer::TokenType::T_Double, 170 171 AND => Compiler::Lexer::TokenType::T_And, 172 OR => Compiler::Lexer::TokenType::T_Or, 173 NOT => Compiler::Lexer::TokenType::T_Not, 174 ALPHABET_AND => Compiler::Lexer::TokenType::T_AlphabetAnd, 175 ALPHABET_OR => Compiler::Lexer::TokenType::T_AlphabetOr, 176 ALPHABET_NOT => Compiler::Lexer::TokenType::T_AlphabetNot, 177 ALPHABET_XOR => Compiler::Lexer::TokenType::T_AlphabetXOr, 178 BIT_AND => Compiler::Lexer::TokenType::T_BitAnd, 179 BIT_OR => Compiler::Lexer::TokenType::T_BitOr, 180 BIT_XOR => Compiler::Lexer::TokenType::T_BitXOr, 181 OR_EQUAL => Compiler::Lexer::TokenType::T_OrEqual, 182 AND_EQUAL => Compiler::Lexer::TokenType::T_AndEqual, 183 EQUAL_EQUAL => Compiler::Lexer::TokenType::T_EqualEqual, 184 NOT_EQUAL => Compiler::Lexer::TokenType::T_NotEqual, 185 186 RIGHT_SHIFT_EQUAL => Compiler::Lexer::TokenType::T_RightShiftEqual, 187 LEFT_SHIFT_EQUAL => Compiler::Lexer::TokenType::T_LeftShiftEqual, 188 189 SHORT_SCALAR_DEREFERENCE => Compiler::Lexer::TokenType::T_ShortScalarDereference, 190 SHORT_ARRAY_DEREFERENCE => Compiler::Lexer::TokenType::T_ShortArrayDereference, 191 SHORT_HASH_DEREFERENCE => Compiler::Lexer::TokenType::T_ShortHashDereference, 192 SHORT_CODE_DEREFERENCE => Compiler::Lexer::TokenType::T_ShortCodeDereference, 193 194 PACKAGE => Compiler::Lexer::TokenType::T_Package, 195 CLASS => Compiler::Lexer::TokenType::T_Class, 196 NAMESPACE => Compiler::Lexer::TokenType::T_Namespace, 197 NAMESPACE_RESOLVER => Compiler::Lexer::TokenType::T_NamespaceResolver, 198 199 GLOB => Compiler::Lexer::TokenType::T_Glob, 200 REF => Compiler::Lexer::TokenType::T_Ref, 201 PROTOTYPE => Compiler::Lexer::TokenType::T_Prototype, 202 203 DO => Compiler::Lexer::TokenType::T_Do, 204 205 RIGHT_SHIFT => Compiler::Lexer::TokenType::T_RightShift, 206 LEFT_SHIFT => Compiler::Lexer::TokenType::T_LeftShift, 207 208 MOD_WORD => Compiler::Lexer::TokenType::T_ModWord, 209 210 TYPE_STDIN => Compiler::Lexer::TokenType::T_STDIN, # STDIN is reserved by main:: 211 TYPE_STDOUT => Compiler::Lexer::TokenType::T_STDOUT, # STDOUT is reserved by main:: 212 TYPE_STDERR => Compiler::Lexer::TokenType::T_STDERR, # STDERR is reserved by main:: 213 214 HANDLE => Compiler::Lexer::TokenType::T_Handle, 215 HANDLE_DELIM => Compiler::Lexer::TokenType::T_HandleDelim, 216 DIAMOND => Compiler::Lexer::TokenType::T_Diamond, 217 218 LESS => Compiler::Lexer::TokenType::T_Less, 219 LESS_EQUAL => Compiler::Lexer::TokenType::T_LessEqual, 220 GREATER => Compiler::Lexer::TokenType::T_Greater, 221 GREATER_EQUAL => Compiler::Lexer::TokenType::T_GreaterEqual, 222 COMPARE => Compiler::Lexer::TokenType::T_Compare, 223 224 STRING_LESS => Compiler::Lexer::TokenType::T_StringLess, 225 STRING_GREATER => Compiler::Lexer::TokenType::T_StringGreater, 226 STRING_COMPARE => Compiler::Lexer::TokenType::T_StringCompare, 227 STRING_NOT_EQUAL => Compiler::Lexer::TokenType::T_StringNotEqual, 228 STRING_LESS_EQUAL => Compiler::Lexer::TokenType::T_StringLessEqual, 229 STRING_GREATER_EQUAL => Compiler::Lexer::TokenType::T_StringGreaterEqual, 230 231 MUL => Compiler::Lexer::TokenType::T_Mul, 232 MOD => Compiler::Lexer::TokenType::T_Mod, 233 STRING_ADD => Compiler::Lexer::TokenType::T_StringAdd, 234 STRING_MUL => Compiler::Lexer::TokenType::T_StringMul, 235 236 SPECIFIC_VALUE => Compiler::Lexer::TokenType::T_SpecificValue, 237 SPECIFIC_KEYWORD => Compiler::Lexer::TokenType::T_SpecificKeyword, 238 ARRAY_SIZE => Compiler::Lexer::TokenType::T_ArraySize, 239 240 DEFAULT => Compiler::Lexer::TokenType::T_Default, 241 242 PROTOTYPE => Compiler::Lexer::TokenType::T_Prototype, 243 244 SCALAR_DEREFERENCE => Compiler::Lexer::TokenType::T_ScalarDereference, 245 HASH_DEREFERENCE => Compiler::Lexer::TokenType::T_HashDereference, 246 ARRAY_DEREFERENCE => Compiler::Lexer::TokenType::T_ArrayDereference, 247 ARRAY_SIZE_DEREFERENCE => Compiler::Lexer::TokenType::T_ArraySizeDereference, 248 249 POWER_EQUAL => Compiler::Lexer::TokenType::T_PowerEqual, 250 ADD_EQUAL => Compiler::Lexer::TokenType::T_AddEqual, 251 MUL_EQUAL => Compiler::Lexer::TokenType::T_MulEqual, 252 AND_BIT_EQUAL => Compiler::Lexer::TokenType::T_AndBitEqual, 253 SUB_EQUAL => Compiler::Lexer::TokenType::T_SubEqual, 254 DIV_EQUAL => Compiler::Lexer::TokenType::T_DivEqual, 255 OR_BIT_EQUAL => Compiler::Lexer::TokenType::T_OrBitEqual, 256 MOD_EQUAL => Compiler::Lexer::TokenType::T_ModEqual, 257 NOT_BIT_EQUAL => Compiler::Lexer::TokenType::T_NotBitEqual, 258 DEFAULT_EQUAL => Compiler::Lexer::TokenType::T_DefaultEqual, 259 STRING_ADD_EQUAL => Compiler::Lexer::TokenType::T_StringAddEqual, 260 261 PLUSPLUS => Compiler::Lexer::TokenType::T_Inc, 262 MINUSMINUS => Compiler::Lexer::TokenType::T_Dec, 263 264 SLICE => Compiler::Lexer::TokenType::T_Slice, 265}; 266 2671; 268 269