• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Camelcade / Perl5-IDEA / #525521557

29 May 2025 01:55PM UTC coverage: 82.275% (+0.001%) from 82.274%
#525521557

push

github

hurricup
Migrated to ProjectActivity

0 of 1 new or added line in 1 file covered. (0.0%)

104 existing lines in 12 files now uncovered.

30882 of 37535 relevant lines covered (82.28%)

0.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.54
/plugin/core/src/main/java/com/perl5/lang/perl/parser/elementTypes/PerlElementTypeFactory.java
1
/*
2
 * Copyright 2015-2025 Alexandr Evstigneev
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 * http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16

17
package com.perl5.lang.perl.parser.elementTypes;
18

19
import com.intellij.lang.ASTNode;
20
import com.intellij.openapi.diagnostic.Logger;
21
import com.intellij.psi.PsiElement;
22
import com.intellij.psi.impl.source.tree.LeafPsiElement;
23
import com.intellij.psi.impl.source.tree.PsiCommentImpl;
24
import com.intellij.psi.tree.IElementType;
25
import com.perl5.lang.perl.psi.impl.*;
26
import com.perl5.lang.perl.psi.stubs.PerlStubElementTypes;
27
import com.perl5.lang.perl.psi.stubs.calls.PerlSubCallElementType;
28
import org.jetbrains.annotations.NotNull;
29

30
import static com.perl5.lang.perl.util.PerlPackageUtil.__PACKAGE__;
31

32

33
public class PerlElementTypeFactory {
×
34
  private static final Logger LOG = Logger.getInstance(PerlElementTypeFactory.class);
1✔
35

36
  public static @NotNull IElementType getTokenType(@NotNull String name) {
37
    return switch (name) {
1✔
38
      case "COMMENT_BLOCK" -> new PerlBlockCommentTokenType(name);
1✔
39
      case "ATTRIBUTE_IDENTIFIER" -> new PerlAttributeIdentifierTokenType(name);
1✔
40
      case "regex" -> new PerlRegexTokenType(name, LeafPsiElement.class);
1✔
41
      case "STRING_CONTENT", "STRING_CONTENT_QQ", "STRING_CONTENT_XQ" -> new PerlStringContentTokenType(name);
1✔
42
      case "SCALAR_NAME", "ARRAY_NAME", "HASH_NAME", "GLOB_NAME", "CODE_NAME" -> new PerlVariableNameTokenType(name);
1✔
43
      case "POD" -> new PerlPodReparseableTokenType(name);
1✔
44
      case "subname", "list", "unary", "unary_custom", "argumentless" -> new PerlSubNameTokenType(name);
1✔
45
      case "package::name", "package::name::", "constant", "vars", __PACKAGE__ -> new PerlNamespaceNameTokenType(name);
1✔
46
      case "HEREDOC_END", "HEREDOC_END_INDENTABLE" -> new PerlTokenTypeEx(name, PerlHeredocTerminatorElementImpl.class);
1✔
47
      case "VERSION_ELEMENT" -> new PerlTokenTypeEx(name, PerlVersionElementImpl.class);
1✔
48
      case "COMMENT_LINE" -> new PerlReparseableCommentTokenType(name, PsiCommentImpl.class);
1✔
49
      default -> new PerlTokenType(name);
1✔
50
    };
51
  }
52

53
  public static @NotNull IElementType getElementType(@NotNull String name) {
54
    return switch (name) {
1✔
55
      case "PARSABLE_STRING_USE_VARS" -> new PerlUseVarsStringElementType();
1✔
56
      case "COMMENT_ANNOTATION" -> new PerlAnnotationElementType(name);
1✔
57
      case "HEREDOC_QQ", "HEREDOC_QX", "HEREDOC" -> new PerlHeredocElementType(name, PerlHeredocElementImpl.class);
1✔
58
      case "SUB_DEFINITION" -> PerlStubElementTypes.SUB_DEFINITION;
1✔
59
      case "METHOD_DEFINITION" -> PerlStubElementTypes.METHOD_DEFINITION;
1✔
60
      case "FUNC_DEFINITION" -> PerlStubElementTypes.FUNC_DEFINITION;
1✔
61
      case "SUB_DECLARATION" -> PerlStubElementTypes.SUB_DECLARATION;
1✔
62
      case "GLOB_VARIABLE" -> PerlStubElementTypes.PERL_GLOB;
1✔
63
      case "NAMESPACE_DEFINITION" -> PerlStubElementTypes.PERL_NAMESPACE;
1✔
64
      case "VARIABLE_DECLARATION_ELEMENT" -> PerlStubElementTypes.PERL_VARIABLE_DECLARATION_ELEMENT;
1✔
65
      case "DO_EXPR" -> PerlStubElementTypes.PERL_DO_EXPR;
1✔
66
      case "DO_BLOCK_EXPR" -> new PerlElementTypeEx(name, PsiPerlDoBlockExprImpl.class);
1✔
67
      case "REQUIRE_EXPR" -> PerlStubElementTypes.PERL_REQUIRE_EXPR;
1✔
68
      case "AFTER_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlAfterModifierImpl.class);
1✔
69
      case "BEFORE_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlBeforeModifierImpl.class);
1✔
70
      case "AROUND_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlAroundModifierImpl.class);
1✔
71
      case "AROUND_SIGNATURE_INVOCANTS" -> new PerlElementTypeEx(name, PsiPerlAroundSignatureInvocantsImpl.class);
1✔
72
      case "AUGMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlAugmentModifierImpl.class);
1✔
73
      case "ADD_EXPR" -> new PerlElementTypeEx(name, PsiPerlAddExprImpl.class);
1✔
74
      case "AND_EXPR" -> new PerlElementTypeEx(name, PsiPerlAndExprImpl.class);
1✔
75
      case "ANON_ARRAY" -> new PerlAnonArrayElementType(name, PsiPerlAnonArrayImpl.class);
1✔
76
      case "UNICODE_CHAR" -> new PerlElementTypeEx(name, PsiPerlUnicodeCharImpl.class);
1✔
77
      case "HEX_CHAR" -> new PerlElementTypeEx(name, PsiPerlHexCharImpl.class);
1✔
78
      case "OCT_CHAR" -> new PerlElementTypeEx(name, PsiPerlOctCharImpl.class);
1✔
79
      case "ESC_CHAR" -> new PerlElementTypeEx(name, PsiPerlEscCharImpl.class);
1✔
80
      case "ANON_HASH" -> new PerlAnonHashElementType();
1✔
81
      case "ARRAY_SLICE" -> new PerlElementTypeEx(name, PsiPerlArraySliceImpl.class);
1✔
82
      case "HASH_ARRAY_SLICE" -> new PerlElementTypeEx(name, PsiPerlHashArraySliceImpl.class);
1✔
83
      case "ARRAY_CAST_EXPR" -> new PerlDereferenceElementType.Array(name, PsiPerlArrayCastExprImpl.class);
1✔
84
      case "HASH_SLICE" -> new PerlElementTypeEx(name, PsiPerlHashSliceImpl.class);
1✔
85
      case "HASH_HASH_SLICE" -> new PerlElementTypeEx(name, PsiPerlHashHashSliceImpl.class);
1✔
86
      case "ARRAY_INDEX" -> new PerlAnonArrayElementType(name, PsiPerlArrayIndexImpl.class);
1✔
87
      case "ARRAY_INDEX_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlArrayIndexVariableImpl.class);
1✔
88
      case "ARRAY_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlArrayVariableImpl.class);
1✔
89
      case "ASSIGN_EXPR" -> new PerlElementTypeEx(name, PsiPerlAssignExprImpl.class);
1✔
90
      case "ATTRIBUTE" -> new PerlElementTypeEx(name, PsiPerlAttributeImpl.class);
1✔
91
      case "ISA_EXPR" -> new PerlElementTypeEx(name, PsiPerlIsaExprImpl.class);
1✔
92
      case "BITWISE_AND_EXPR" -> new PerlElementTypeEx(name, PsiPerlBitwiseAndExprImpl.class);
1✔
93
      case "BITWISE_OR_XOR_EXPR" -> new PerlElementTypeEx(name, PsiPerlBitwiseOrXorExprImpl.class);
1✔
94
      case "BLOCK" -> new PerlCodeBlockElementType();
1✔
95
      case "BLOCK_BRACELESS" -> new PerlElementTypeEx(name, PsiPerlBlockBracelessImpl.class);
1✔
96
      case "BLOCK_SCALAR" -> new PerlElementTypeEx(name, PsiPerlBlockScalarImpl.class);
1✔
97
      case "BLOCK_ARRAY" -> new PerlElementTypeEx(name, PsiPerlBlockArrayImpl.class);
1✔
98
      case "BLOCK_HASH" -> new PerlElementTypeEx(name, PsiPerlBlockHashImpl.class);
1✔
99
      case "BLOCK_GLOB" -> new PerlElementTypeEx(name, PsiPerlBlockGlobImpl.class);
1✔
100
      case "BLOCK_CODE" -> new PerlElementTypeEx(name, PsiPerlBlockCodeImpl.class);
1✔
101
      case "BLOCK_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlBlockCompoundImpl.class);
1✔
102
      case "CALL_ARGUMENTS" -> new PerlElementTypeEx(name, PsiPerlCallArgumentsImpl.class);
1✔
103
      case "CODE_CAST_EXPR" -> new PerlDereferenceElementType.Code(name, PsiPerlCodeCastExprImpl.class);
1✔
104
      case "CODE_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlCodeVariableImpl.class);
1✔
105
      case "COMMA_SEQUENCE_EXPR" -> new PerlElementTypeEx(name, PsiPerlCommaSequenceExprImpl.class);
1✔
106
      case "COMPARE_EXPR" -> new PerlElementTypeEx(name, PsiPerlCompareExprImpl.class);
1✔
107
      case "COMPILE_REGEX" -> new PerlCompileRegexpElementType(name, PsiPerlCompileRegexImpl.class);
1✔
108
      case "CONDITIONAL_BLOCK" -> new PerlElementTypeEx(name, PsiPerlConditionalBlockImpl.class);
1✔
109
      case "UNCONDITIONAL_BLOCK" -> new PerlElementTypeEx(name, PsiPerlUnconditionalBlockImpl.class);
1✔
110
      case "CONDITION_EXPR" -> new PerlParenthesizedElementType(name, PsiPerlConditionExprImpl.class);
1✔
111
      case "CONTINUE_BLOCK" -> new PerlElementTypeEx(name, PsiPerlContinueBlockImpl.class);
1✔
112
      case "DEFAULT_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlDefaultCompoundImpl.class);
1✔
113
      case "DEREF_EXPR" -> new PerlElementTypeEx(name, PsiPerlDerefExprImpl.class);
1✔
114
      case "EQUAL_EXPR" -> new PerlElementTypeEx(name, PsiPerlEqualExprImpl.class);
1✔
115
      case "EVAL_EXPR" -> new PerlElementTypeEx(name, PsiPerlEvalExprImpl.class);
1✔
116
      case "EXPR" -> new PerlElementTypeEx(name) {
1✔
117
        @Override
118
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
UNCOV
119
          throw new RuntimeException("Instantiating " + node);
×
120
        }
121
      };
122
      case "FILE_READ_EXPR" -> new PerlElementTypeEx(name, PsiPerlFileReadExprImpl.class);
1✔
123
      case "FILE_GLOB_EXPR" -> new PerlElementTypeEx(name, PsiPerlFileGlobExprImpl.class);
1✔
124
      case "FLIPFLOP_EXPR" -> new PerlElementTypeEx(name, PsiPerlFlipflopExprImpl.class);
1✔
125
      case "FORMAT_DEFINITION" -> new PerlElementTypeEx(name, PsiPerlFormatDefinitionImpl.class);
1✔
126
      case "FOR_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlForCompoundImpl.class);
1✔
127
      case "FOREACH_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlForeachCompoundImpl.class);
1✔
UNCOV
128
      case "FOR_OR_FOREACH" -> new PerlElementTypeEx(name) {
×
129
        @Override
130
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
UNCOV
131
          throw new RuntimeException("Instantiating " + node);
×
132
        }
133
      };
134
      case "FOR_INIT" -> new PerlElementTypeEx(name, PsiPerlForInitImpl.class);
1✔
135
      case "FOR_CONDITION" -> new PerlElementTypeEx(name, PsiPerlForConditionImpl.class);
1✔
136
      case "FOR_MUTATOR" -> new PerlElementTypeEx(name, PsiPerlForMutatorImpl.class);
1✔
137
      case "FOR_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlForStatementModifierImpl.class);
1✔
138
      case "GIVEN_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlGivenCompoundImpl.class);
1✔
139
      case "GLOB_CAST_EXPR" -> new PerlDereferenceElementType.Glob(name, PsiPerlGlobCastExprImpl.class);
1✔
140
      case "GLOB_SLOT" -> new PerlElementTypeEx(name, PsiPerlGlobSlotImpl.class);
1✔
141
      case "GOTO_EXPR" -> new PerlElementTypeEx(name, PsiPerlGotoExprImpl.class);
1✔
142
      case "GREP_EXPR" -> new PerlElementTypeEx(name, PsiPerlGrepExprImpl.class);
1✔
143
      case "HASH_CAST_EXPR" -> new PerlDereferenceElementType.Hash(name, PsiPerlHashCastExprImpl.class);
1✔
144
      case "HASH_INDEX" -> new PerlHashIndexElementType(name, PsiPerlHashIndexImpl.class);
1✔
145
      case "HASH_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlHashVariableImpl.class);
1✔
146
      case "HEREDOC_OPENER" -> new PerlElementTypeEx(name, PsiPerlHeredocOpenerImpl.class);
1✔
147
      case "IF_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlIfCompoundImpl.class);
1✔
148
      case "IF_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlIfStatementModifierImpl.class);
1✔
149
      case "LAST_EXPR" -> new PerlElementTypeEx(name, PsiPerlLastExprImpl.class);
1✔
150
      case "LP_AND_EXPR" -> new PerlElementTypeEx(name, PsiPerlLpAndExprImpl.class);
1✔
151
      case "LP_NOT_EXPR" -> new PerlElementTypeEx(name, PsiPerlLpNotExprImpl.class);
1✔
152
      case "LP_OR_XOR_EXPR" -> new PerlElementTypeEx(name, PsiPerlLpOrXorExprImpl.class);
1✔
153
      case "MAP_EXPR" -> new PerlElementTypeEx(name, PsiPerlMapExprImpl.class);
1✔
154
      case "MATCH_REGEX" -> new PerlMatchRegexpElementType(name, PsiPerlMatchRegexImpl.class);
1✔
155
      case "METHOD" -> new PerlElementTypeEx(name, PsiPerlMethodImpl.class);
1✔
156
      case "METHOD_SIGNATURE_INVOCANT" -> new PerlElementTypeEx(name, PsiPerlMethodSignatureInvocantImpl.class);
1✔
157
      case "MUL_EXPR" -> new PerlElementTypeEx(name, PsiPerlMulExprImpl.class);
1✔
158
      case "NAMED_BLOCK" -> new PerlElementTypeEx(name, PsiPerlNamedBlockImpl.class);
1✔
159
      case "NAMESPACE_CONTENT" -> new PerlElementTypeEx(name, PsiPerlNamespaceContentImpl.class);
1✔
160
      case "NEXT_EXPR" -> new PerlElementTypeEx(name, PsiPerlNextExprImpl.class);
1✔
161
      case "NUMBER_CONSTANT" -> new PerlElementTypeEx(name, PsiPerlNumberConstantImpl.class);
1✔
162
      case "NYI_STATEMENT" -> new PerlElementTypeEx(name, PsiPerlNyiStatementImpl.class);
1✔
163
      case "OR_EXPR" -> new PerlElementTypeEx(name, PsiPerlOrExprImpl.class);
1✔
164
      case "PARENTHESISED_EXPR" -> new PerlParenthesizedElementType(name, PsiPerlParenthesisedExprImpl.class);
1✔
165
      case "PERL_HANDLE_EXPR" -> new PerlElementTypeEx(name, PsiPerlPerlHandleExprImpl.class);
1✔
166
      case "PERL_REGEX" -> new PerlElementTypeEx(name, PsiPerlPerlRegexImpl.class);
1✔
167
      case "PERL_REGEX_MODIFIERS" -> new PerlElementTypeEx(name, PsiPerlPerlRegexModifiersImpl.class);
1✔
168
      case "REGEX_REPLACEMENT" -> new PerlElementTypeEx(name, PsiPerlRegexReplacementImpl.class);
1✔
169
      case "POW_EXPR" -> new PerlElementTypeEx(name, PsiPerlPowExprImpl.class);
1✔
170
      case "PREFIX_UNARY_EXPR" -> new PerlElementTypeEx(name, PsiPerlPrefixUnaryExprImpl.class);
1✔
171
      case "PREF_PP_EXPR" -> new PerlElementTypeEx(name, PsiPerlPrefPpExprImpl.class);
1✔
172
      case "PRINT_EXPR" -> new PerlElementTypeEx(name, PsiPerlPrintExprImpl.class);
1✔
173
      case "REDO_EXPR" -> new PerlElementTypeEx(name, PsiPerlRedoExprImpl.class);
1✔
174
      case "REF_EXPR" -> new PerlElementTypeEx(name, PsiPerlRefExprImpl.class);
1✔
175
      case "REGEX_EXPR" -> new PerlElementTypeEx(name, PsiPerlRegexExprImpl.class);
1✔
176
      case "REPLACEMENT_REGEX" -> new PerlRegexReplacementElementType(name, PsiPerlReplacementRegexImpl.class);
1✔
177
      case "RETURN_EXPR" -> new PerlElementTypeEx(name, PsiPerlReturnExprImpl.class);
1✔
178
      case "ARRAY_SHIFT_EXPR" -> new PerlElementTypeEx(name, PsiPerlArrayShiftExprImpl.class);
1✔
179
      case "ARRAY_UNSHIFT_EXPR" -> new PerlElementTypeEx(name, PsiPerlArrayUnshiftExprImpl.class);
1✔
180
      case "ARRAY_PUSH_EXPR" -> new PerlElementTypeEx(name, PsiPerlArrayPushExprImpl.class);
1✔
181
      case "ARRAY_POP_EXPR" -> new PerlElementTypeEx(name, PsiPerlArrayPopExprImpl.class);
1✔
182
      case "SCALAR_EXPR" -> new PerlElementTypeEx(name, PsiPerlScalarExprImpl.class);
1✔
183
      case "DELETE_EXPR" -> new PerlElementTypeEx(name, PsiPerlDeleteExprImpl.class);
1✔
184
      case "SPLICE_EXPR" -> new PerlElementTypeEx(name, PsiPerlSpliceExprImpl.class);
1✔
185
      case "BLESS_EXPR" -> new PerlElementTypeEx(name, PsiPerlBlessExprImpl.class);
1✔
186
      case "KEYS_EXPR" -> new PerlElementTypeEx(name, PsiPerlKeysExprImpl.class);
1✔
187
      case "DEFINED_EXPR" -> new PerlElementTypeEx(name, PsiPerlDefinedExprImpl.class);
1✔
188
      case "WANTARRAY_EXPR" -> new PerlElementTypeEx(name, PsiPerlWantarrayExprImpl.class);
1✔
189
      case "VALUES_EXPR" -> new PerlElementTypeEx(name, PsiPerlValuesExprImpl.class);
1✔
190
      case "EACH_EXPR" -> new PerlElementTypeEx(name, PsiPerlEachExprImpl.class);
1✔
191
      case "EXIT_EXPR" -> new PerlElementTypeEx(name, PsiPerlExitExprImpl.class);
1✔
192
      case "ARRAY_ELEMENT" -> new PerlElementTypeEx(name, PsiPerlArrayElementImpl.class);
1✔
193
      case "SCALAR_CALL" -> new PerlElementTypeEx(name, PsiPerlScalarCallImpl.class);
1✔
194
      case "SCALAR_CAST_EXPR" -> new PerlDereferenceElementType.Scalar(name, PsiPerlScalarCastExprImpl.class);
1✔
195
      case "HASH_ELEMENT" -> new PerlElementTypeEx(name, PsiPerlHashElementImpl.class);
1✔
196
      case "SCALAR_INDEX_CAST_EXPR" -> new PerlDereferenceElementType.ScalarIndex(name, PsiPerlScalarIndexCastExprImpl.class);
1✔
197
      case "SCALAR_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlScalarVariableImpl.class);
1✔
198
      case "SHIFT_EXPR" -> new PerlElementTypeEx(name, PsiPerlShiftExprImpl.class);
1✔
199
      case "SORT_EXPR" -> new PerlElementTypeEx(name, PsiPerlSortExprImpl.class);
1✔
200
      case "STATEMENT" -> new PerlElementTypeEx(name, PsiPerlStatementImpl.class);
1✔
201
      case "STATEMENT_MODIFIER" -> new PerlElementTypeEx(name) {
1✔
202
        @Override
203
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
UNCOV
204
          throw new RuntimeException("Instantiating " + node);
×
205
        }
206
      };
207
      case "STRING_BARE" -> new PerlElementTypeEx(name, PsiPerlStringBareImpl.class);
1✔
208
      case "STRING_DQ" -> new PerlQQStringElementType(name, PsiPerlStringDqImpl.class);
1✔
209
      case "STRING_LIST" -> new PerlStringListElementType(name, PsiPerlStringListImpl.class);
1✔
210
      case "STRING_SQ" -> new PerlQStringElementType(name, PsiPerlStringSqImpl.class);
1✔
211
      case "STRING_XQ" -> new PerlQXStringElementType(name, PsiPerlStringXqImpl.class);
1✔
212
      case "SUB_CALL" -> new PerlSubCallElementType(name);
1✔
213
      case "SUB_EXPR" -> new PerlElementTypeEx(name, PsiPerlSubExprImpl.class);
1✔
214
      case "FUN_EXPR" -> new PerlElementTypeEx(name, PsiPerlFunExprImpl.class);
1✔
215
      case "METHOD_EXPR" -> new PerlElementTypeEx(name, PsiPerlMethodExprImpl.class);
1✔
216
      case "CONTINUE_EXPR" -> new PerlElementTypeEx(name, PsiPerlContinueExprImpl.class);
1✔
217
      case "SIGNATURE_CONTENT" -> new PerlElementTypeEx(name, PsiPerlSignatureContentImpl.class);
1✔
218
      case "SIGNATURE_ELEMENT" -> new PerlElementTypeEx(name, PsiPerlSignatureElementImpl.class);
1✔
219
      case "SUB_SIGNATURE_ELEMENT_IGNORE" -> new PerlElementTypeEx(name, PsiPerlSubSignatureElementIgnoreImpl.class);
1✔
220
      case "SUFF_PP_EXPR" -> new PerlElementTypeEx(name, PsiPerlSuffPpExprImpl.class);
1✔
221
      case "TAG_SCALAR" -> new PerlElementTypeEx(name, PsiPerlTagScalarImpl.class);
1✔
222
      case "TERNARY_EXPR" -> new PerlElementTypeEx(name, PsiPerlTernaryExprImpl.class);
1✔
223
      case "TR_MODIFIERS" -> new PerlElementTypeEx(name, PsiPerlTrModifiersImpl.class);
1✔
224
      case "TR_REGEX" -> new PerlRegexReplacementElementType(name, PsiPerlTrRegexImpl.class);
1✔
225
      case "TR_REPLACEMENTLIST" -> new PerlElementTypeEx(name, PsiPerlTrReplacementlistImpl.class);
1✔
226
      case "TR_SEARCHLIST" -> new PerlElementTypeEx(name, PsiPerlTrSearchlistImpl.class);
1✔
227
      case "UNDEF_EXPR" -> new PerlElementTypeEx(name, PsiPerlUndefExprImpl.class);
1✔
228
      case "UNLESS_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlUnlessCompoundImpl.class);
1✔
229
      case "UNLESS_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlUnlessStatementModifierImpl.class);
1✔
230
      case "UNTIL_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlUntilCompoundImpl.class);
1✔
231
      case "UNTIL_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlUntilStatementModifierImpl.class);
1✔
232
      case "VARIABLE_DECLARATION_GLOBAL" -> new PerlElementTypeEx(name, PsiPerlVariableDeclarationGlobalImpl.class);
1✔
233
      case "VARIABLE_DECLARATION_LEXICAL" -> new PerlElementTypeEx(name, PsiPerlVariableDeclarationLexicalImpl.class);
1✔
234
      case "VARIABLE_DECLARATION_LOCAL" -> new PerlElementTypeEx(name, PsiPerlVariableDeclarationLocalImpl.class);
1✔
UNCOV
235
      case "VARIABLE_DECLARATION_WRAPPER" -> new PerlElementTypeEx(name, PsiPerlVariableDeclarationElementImpl.class);
×
236
      case "WHEN_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlWhenCompoundImpl.class);
1✔
237
      case "WHEN_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlWhenStatementModifierImpl.class);
1✔
238
      case "WHILE_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlWhileCompoundImpl.class);
1✔
239
      case "WHILE_STATEMENT_MODIFIER" -> new PerlElementTypeEx(name, PsiPerlWhileStatementModifierImpl.class);
1✔
240
      case "TRYCATCH_EXPR" -> new PerlElementTypeEx(name, PsiPerlTrycatchExprImpl.class);
1✔
241
      case "TRYCATCH_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlTrycatchCompoundImpl.class);
1✔
242
      case "TRY_EXPR" -> new PerlElementTypeEx(name, PsiPerlTryExprImpl.class);
1✔
243
      case "CATCH_EXPR" -> new PerlElementTypeEx(name, PsiPerlCatchExprImpl.class);
1✔
244
      case "CATCH_CONDITION" -> new PerlElementTypeEx(name, PsiPerlCatchConditionImpl.class);
1✔
245
      case "TYPE_CONSTRAINTS" -> new PerlElementTypeEx(name, PsiPerlTypeConstraintsImpl.class);
1✔
246
      case "TYPE_SPECIFIER" -> new PerlElementTypeEx(name, PsiPerlTypeSpecifierImpl.class);
1✔
247
      case "FINALLY_EXPR" -> new PerlElementTypeEx(name, PsiPerlFinallyExprImpl.class);
1✔
248
      case "EXCEPT_EXPR" -> new PerlElementTypeEx(name, PsiPerlExceptExprImpl.class);
1✔
249
      case "OTHERWISE_EXPR" -> new PerlElementTypeEx(name, PsiPerlOtherwiseExprImpl.class);
1✔
250
      case "CONTINUATION_EXPR" -> new PerlElementTypeEx(name, PsiPerlContinuationExprImpl.class);
1✔
251
      case "POST_DEREF_EXPR" -> new PerlElementTypeEx(name, PsiPerlPostDerefExprImpl.class);
1✔
252
      case "POST_DEREF_GLOB_EXPR" -> new PerlElementTypeEx(name, PsiPerlPostDerefGlobExprImpl.class);
1✔
253
      case "POST_DEREF_ARRAY_SLICE_EXPR" -> new PerlElementTypeEx(name, PsiPerlPostDerefArraySliceExprImpl.class);
1✔
254
      case "POST_DEREF_HASH_SLICE_EXPR" -> new PerlElementTypeEx(name, PsiPerlPostDerefHashSliceExprImpl.class);
1✔
255
      case "LABEL_DECLARATION" -> new PerlElementTypeEx(name, PsiPerlLabelDeclarationImpl.class);
1✔
256
      case "LABEL_EXPR" -> new PerlElementTypeEx(name, PsiPerlLabelExprImpl.class);
1✔
257
      case "ANNOTATION_ABSTRACT" -> new PerlElementTypeEx(name, PsiPerlAnnotationAbstractImpl.class);
1✔
258
      case "ANNOTATION_DEPRECATED" -> new PerlElementTypeEx(name, PsiPerlAnnotationDeprecatedImpl.class);
1✔
259
      case "ANNOTATION_METHOD" -> new PerlElementTypeEx(name, PsiPerlAnnotationMethodImpl.class);
1✔
260
      case "ANNOTATION_OVERRIDE" -> new PerlElementTypeEx(name, PsiPerlAnnotationOverrideImpl.class);
1✔
261
      case "ANNOTATION_RETURNS" -> new PerlElementTypeEx(name, PsiPerlAnnotationReturnsImpl.class);
1✔
262
      case "ANNOTATION_TYPE" -> new PerlElementTypeEx(name, PsiPerlAnnotationTypeImpl.class);
1✔
263
      case "ANNOTATION_INJECT" -> new PerlElementTypeEx(name, PsiPerlAnnotationInjectImpl.class);
1✔
264
      case "ANNOTATION_NO_INJECT" -> new PerlElementTypeEx(name, PsiPerlAnnotationNoInjectImpl.class);
1✔
265
      case "ANNOTATION_NOINSPECTION" -> new PerlElementTypeEx(name, PsiPerlAnnotationNoinspectionImpl.class);
1✔
266
      case "PARENTHESISED_CALL_ARGUMENTS" ->
267
        new PerlParenthesizedCallArgumentsElementType(name, PsiPerlParenthesisedCallArgumentsImpl.class);
1✔
268
      case "PACKAGE_EXPR" -> new PerlElementTypeEx(name, PsiPerlPackageExprImpl.class);
1✔
269
      case "ARRAYREF_TYPE" -> new PerlElementTypeEx(name, PsiPerlArrayrefTypeImpl.class);
1✔
270
      case "HASHREF_TYPE" -> new PerlElementTypeEx(name, PsiPerlHashrefTypeImpl.class);
1✔
271
      case "FOREACH_ITERATOR" -> new PerlElementTypeEx(name, PsiPerlForeachIteratorImpl.class);
1✔
272
      case "ATTRIBUTES" -> new PerlElementTypeEx(name, PsiPerlAttributesImpl.class);
1✔
273
      case "SWITCH_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlSwitchCompoundImpl.class);
1✔
274
      case "SWITCH_CONDITION" -> new PerlElementTypeEx(name, PsiPerlSwitchConditionImpl.class);
1✔
275
      case "CASE_COMPOUND" -> new PerlElementTypeEx(name, PsiPerlCaseCompoundImpl.class);
1✔
276
      case "CASE_DEFAULT" -> new PerlElementTypeEx(name, PsiPerlCaseDefaultImpl.class);
1✔
277
      case "CASE_CONDITION" -> new PerlElementTypeEx(name, PsiPerlCaseConditionImpl.class);
1✔
278
      case "CUSTOM_ATOM_EXPR" -> new PerlElementTypeEx(name, PsiPerlCustomAtomExprImpl.class);
1✔
279
      case "COMPOSITE_ATOM_EXPR" -> new PerlElementTypeEx(name, PsiPerlCompositeAtomExprImpl.class);
1✔
280
      case "ANNOTATION_VARIABLE" -> new PerlElementTypeEx(name, PsiPerlAnnotationVariableImpl.class);
1✔
281
      default -> {
UNCOV
282
        LOG.error("Unknown token:" + name);
×
UNCOV
283
        throw new RuntimeException("Unknown token:" + name);
×
284
      }
285
    };
286
  }
287
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc