@@ -148,119 +148,81 @@ class HashCons extends HCBase {
148
148
149
149
/** Gets the kind of the HC. This can be useful for debugging. */
150
150
string getKind ( ) {
151
- if this instanceof HC_IntLiteral
152
- then result = "IntLiteral"
153
- else
154
- if this instanceof HC_EnumConstantAccess
155
- then result = "EnumConstantAccess"
156
- else
157
- if this instanceof HC_FloatLiteral
158
- then result = "FloatLiteral"
159
- else
160
- if this instanceof HC_StringLiteral
161
- then result = "StringLiteral"
162
- else
163
- if this instanceof HC_Nullptr
164
- then result = "Nullptr"
165
- else
166
- if this instanceof HC_Variable
167
- then result = "Variable"
168
- else
169
- if this instanceof HC_FieldAccess
170
- then result = "FieldAccess"
171
- else
172
- if this instanceof HC_Deref
173
- then result = "Deref"
174
- else
175
- if this instanceof HC_ThisExpr
176
- then result = "ThisExpr"
177
- else
178
- if this instanceof HC_Conversion
179
- then result = "Conversion"
180
- else
181
- if this instanceof HC_BinaryOp
182
- then result = "BinaryOp"
183
- else
184
- if this instanceof HC_UnaryOp
185
- then result = "UnaryOp"
186
- else
187
- if this instanceof HC_ArrayAccess
188
- then result = "ArrayAccess"
189
- else
190
- if this instanceof HC_Unanalyzable
191
- then result = "Unanalyzable"
192
- else
193
- if this instanceof HC_NonmemberFunctionCall
194
- then result = "NonmemberFunctionCall"
195
- else
196
- if this instanceof HC_MemberFunctionCall
197
- then result = "MemberFunctionCall"
198
- else
199
- if this instanceof HC_NewExpr
200
- then result = "NewExpr"
201
- else
202
- if this instanceof HC_NewArrayExpr
203
- then result = "NewArrayExpr"
204
- else
205
- if this instanceof HC_SizeofType
206
- then result = "SizeofTypeOperator"
207
- else
208
- if this instanceof HC_SizeofExpr
209
- then result = "SizeofExprOperator"
210
- else
211
- if this instanceof HC_AlignofType
212
- then result = "AlignofTypeOperator"
213
- else
214
- if this instanceof HC_AlignofExpr
215
- then result = "AlignofExprOperator"
216
- else
217
- if this instanceof HC_UuidofOperator
218
- then result = "UuidofOperator"
219
- else
220
- if this instanceof HC_TypeidType
221
- then result = "TypeidType"
222
- else
223
- if this instanceof HC_TypeidExpr
224
- then result = "TypeidExpr"
225
- else
226
- if this instanceof HC_ArrayAggregateLiteral
227
- then result = "ArrayAggregateLiteral"
228
- else
229
- if this instanceof HC_ClassAggregateLiteral
230
- then result = "ClassAggregateLiteral"
231
- else
232
- if this instanceof HC_DeleteExpr
233
- then result = "DeleteExpr"
234
- else
235
- if this instanceof HC_DeleteArrayExpr
236
- then result = "DeleteArrayExpr"
237
- else
238
- if this instanceof HC_ThrowExpr
239
- then result = "ThrowExpr"
240
- else
241
- if this instanceof HC_ReThrowExpr
242
- then result = "ReThrowExpr"
243
- else
244
- if this instanceof HC_ExprCall
245
- then result = "ExprCall"
246
- else
247
- if
248
- this instanceof
249
- HC_ConditionalExpr
250
- then result = "ConditionalExpr"
251
- else
252
- if
253
- this instanceof
254
- HC_NoExceptExpr
255
- then result = "NoExceptExpr"
256
- else
257
- if
258
- this instanceof
259
- HC_AllocatorArgZero
260
- then
261
- result =
262
- "AllocatorArgZero"
263
- else result = "error"
151
+ result = this .getKind0 ( )
152
+ or
153
+ not exists ( this .getKind0 ( ) ) and result = "error"
154
+ }
155
+
156
+ private string getKind0 ( ) {
157
+ this instanceof HC_IntLiteral and result = "IntLiteral"
158
+ or
159
+ this instanceof HC_EnumConstantAccess and result = "EnumConstantAccess"
160
+ or
161
+ this instanceof HC_FloatLiteral and result = "FloatLiteral"
162
+ or
163
+ this instanceof HC_StringLiteral and result = "StringLiteral"
164
+ or
165
+ this instanceof HC_Nullptr and result = "Nullptr"
166
+ or
167
+ this instanceof HC_Variable and result = "Variable"
168
+ or
169
+ this instanceof HC_FieldAccess and result = "FieldAccess"
170
+ or
171
+ this instanceof HC_Deref and result = "Deref"
172
+ or
173
+ this instanceof HC_ThisExpr and result = "ThisExpr"
174
+ or
175
+ this instanceof HC_Conversion and result = "Conversion"
176
+ or
177
+ this instanceof HC_BinaryOp and result = "BinaryOp"
178
+ or
179
+ this instanceof HC_UnaryOp and result = "UnaryOp"
180
+ or
181
+ this instanceof HC_ArrayAccess and result = "ArrayAccess"
182
+ or
183
+ this instanceof HC_Unanalyzable and result = "Unanalyzable"
184
+ or
185
+ this instanceof HC_NonmemberFunctionCall and result = "NonmemberFunctionCall"
186
+ or
187
+ this instanceof HC_MemberFunctionCall and result = "MemberFunctionCall"
188
+ or
189
+ this instanceof HC_NewExpr and result = "NewExpr"
190
+ or
191
+ this instanceof HC_NewArrayExpr and result = "NewArrayExpr"
192
+ or
193
+ this instanceof HC_SizeofType and result = "SizeofTypeOperator"
194
+ or
195
+ this instanceof HC_SizeofExpr and result = "SizeofExprOperator"
196
+ or
197
+ this instanceof HC_AlignofType and result = "AlignofTypeOperator"
198
+ or
199
+ this instanceof HC_AlignofExpr and result = "AlignofExprOperator"
200
+ or
201
+ this instanceof HC_UuidofOperator and result = "UuidofOperator"
202
+ or
203
+ this instanceof HC_TypeidType and result = "TypeidType"
204
+ or
205
+ this instanceof HC_TypeidExpr and result = "TypeidExpr"
206
+ or
207
+ this instanceof HC_ArrayAggregateLiteral and result = "ArrayAggregateLiteral"
208
+ or
209
+ this instanceof HC_ClassAggregateLiteral and result = "ClassAggregateLiteral"
210
+ or
211
+ this instanceof HC_DeleteExpr and result = "DeleteExpr"
212
+ or
213
+ this instanceof HC_DeleteArrayExpr and result = "DeleteArrayExpr"
214
+ or
215
+ this instanceof HC_ThrowExpr and result = "ThrowExpr"
216
+ or
217
+ this instanceof HC_ReThrowExpr and result = "ReThrowExpr"
218
+ or
219
+ this instanceof HC_ExprCall and result = "ExprCall"
220
+ or
221
+ this instanceof HC_ConditionalExpr and result = "ConditionalExpr"
222
+ or
223
+ this instanceof HC_NoExceptExpr and result = "NoExceptExpr"
224
+ or
225
+ this instanceof HC_AllocatorArgZero and result = "AllocatorArgZero"
264
226
}
265
227
266
228
/**
0 commit comments