File Coverage

blib/lib/Perl/Lint/Constants/Type.pm
Criterion Covered Total %
statement 15 15 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 20 20 100.0


line stmt bran cond sub pod time code
1             package Perl::Lint::Constants::Type;
2 135     135   787 use strict;
  135         175  
  135         4657  
3 135     135   566 use warnings;
  135         169  
  135         3158  
4 135     135   74319 use Compiler::Lexer::Constants;
  135         276226  
  135         4375  
5 135     135   74386 use parent qw/Exporter/;
  135         44590  
  135         693  
6              
7             our @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              
61             use constant {
62 135         243242 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 135     135   167259 };
  135         296  
266              
267             1;
268