1 #include "nit__astvalidation.sep.0.h"
2 /* method astvalidation#ASTValidationVisitor#visit for (self: ASTValidationVisitor, ANode) */
3 void nit___nit__ASTValidationVisitor___nit__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
4 val
* var_node
/* var node: ANode */;
5 val
* var
/* : List[ANode] */;
6 val
* var2
/* : List[ANode] */;
7 val
* var3
/* : List[ANode] */;
8 val
* var5
/* : List[ANode] */;
9 val
* var6
/* : nullable Object */;
12 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:ASTValidationVisitor> */
13 var2
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
14 if (unlikely(var2
== NULL
)) {
15 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
16 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 29);
24 standard___standard__List___standard__abstract_collection__Sequence__unshift(var
, var_node
); /* Direct call list#List#unshift on <var:List[ANode]>*/
27 ((void (*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_nit__astvalidation__ANode__accept_ast_validation
]))(var_node
, self
) /* accept_ast_validation on <var_node:ANode>*/;
30 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:ASTValidationVisitor> */
31 var5
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
32 if (unlikely(var5
== NULL
)) {
33 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
34 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 29);
42 var6
= standard___standard__List___standard__abstract_collection__Sequence__shift(var3
);
46 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
47 val
* nit___nit__ASTValidationVisitor___path(val
* self
) {
48 val
* var
/* : List[ANode] */;
49 val
* var1
/* : List[ANode] */;
50 var1
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
51 if (unlikely(var1
== NULL
)) {
52 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
53 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 29);
60 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
61 val
* nit___nit__ASTValidationVisitor___seen(val
* self
) {
62 val
* var
/* : HashSet[ANode] */;
63 val
* var1
/* : HashSet[ANode] */;
64 var1
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:ASTValidationVisitor> */
65 if (unlikely(var1
== NULL
)) {
66 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
67 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 30);
74 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
75 void nit__astvalidation___ANode___accept_ast_validation(val
* self
, val
* p0
) {
76 val
* var_v
/* var v: ASTValidationVisitor */;
77 val
* var
/* : nullable ANode */;
78 val
* var2
/* : nullable ANode */;
79 val
* var_parent
/* var parent: nullable ANode */;
80 val
* var3
/* : List[ANode] */;
81 val
* var5
/* : List[ANode] */;
82 long var6
/* : Int */;
83 long var7
/* : Int */;
84 short int var8
/* : Bool */;
85 short int var10
/* : Bool */;
88 const char* var_class_name
;
89 short int var11
/* : Bool */;
90 val
* var12
/* : List[ANode] */;
91 val
* var14
/* : List[ANode] */;
92 long var15
/* : Int */;
93 val
* var16
/* : nullable Object */;
94 val
* var_path_parent
/* var path_parent: ANode */;
95 val
* var17
/* : null */;
96 short int var18
/* : Bool */;
97 short int var19
/* : Bool */;
98 val
* var_other
/* var other: nullable Object */;
99 short int var21
/* : Bool */;
100 short int var23
/* : Bool */;
101 short int var25
/* : Bool */;
102 val
* var_other27
/* var other: nullable Object */;
103 short int var28
/* : Bool */;
104 short int var29
/* : Bool */;
106 val
* var31
/* : String */;
107 char* var32
/* : NativeString */;
108 long var33
/* : Int */;
109 val
* var34
/* : FlatString */;
110 static val
* varonce35
;
111 val
* var36
/* : String */;
112 char* var37
/* : NativeString */;
113 long var38
/* : Int */;
114 val
* var39
/* : FlatString */;
115 val
* var40
/* : Array[Object] */;
116 long var41
/* : Int */;
117 val
* var42
/* : NativeArray[Object] */;
118 val
* var43
/* : String */;
119 val
* var44
/* : HashSet[ANode] */;
120 val
* var46
/* : HashSet[ANode] */;
121 short int var47
/* : Bool */;
122 static val
* varonce48
;
123 val
* var49
/* : String */;
124 char* var50
/* : NativeString */;
125 long var51
/* : Int */;
126 val
* var52
/* : FlatString */;
127 val
* var53
/* : HashSet[ANode] */;
128 val
* var55
/* : HashSet[ANode] */;
129 short int var56
/* : Bool */;
130 short int var57
/* : Bool */;
131 val
* var58
/* : nullable ANode */;
132 val
* var60
/* : nullable ANode */;
133 val
* var61
/* : Location */;
134 val
* var63
/* : Location */;
137 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
138 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
145 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
146 var5
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
147 if (unlikely(var5
== NULL
)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 29);
157 var6
= standard___standard__List___standard__abstract_collection__Collection__length(var3
);
161 { /* Inline kernel#Int#> (var6,var7) on <var6:Int> */
162 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
163 /* <var7:Int> isa OTHER */
164 var10
= 1; /* easy <var7:Int> isa OTHER*/
165 if (unlikely(!var10
)) {
166 var_class_name
= type_standard__Int
.name
;
167 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
168 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
179 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
180 var14
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
181 if (unlikely(var14
== NULL
)) {
182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 29);
192 var16
= standard___standard__List___standard__abstract_collection__SequenceRead___91d_93d(var12
, var15
);
194 var_path_parent
= var16
;
196 if (var_parent
== NULL
) {
197 var18
= 1; /* is null */
199 var18
= 0; /* arg is null but recv is not */
202 { /* Inline kernel#Object#== (var_parent,var17) on <var_parent:nullable ANode> */
205 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
206 var23
= var_parent
== var_other
;
220 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
221 self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
227 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
228 var_other27
= var_path_parent
;
230 var28
= ((short int (*)(val
* self
, val
* p0
))(var_parent
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_parent
, var_other27
) /* == on <var_parent:nullable ANode(ANode)>*/;
240 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
241 self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
248 var32
= "PARENT: expected parent: ";
250 var34
= standard___standard__NativeString___to_s_with_length(var32
, var33
);
259 var39
= standard___standard__NativeString___to_s_with_length(var37
, var38
);
263 var40
= NEW_standard__Array(&type_standard__Array__standard__Object
);
264 { /* var40 = array_instance Array[Object] */
266 var42
= NEW_standard__NativeArray(var41
, &type_standard__NativeArray__standard__Object
);
267 ((struct instance_standard__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
268 ((struct instance_standard__NativeArray
*)var42
)->values
[1] = (val
*) var_path_parent
;
269 ((struct instance_standard__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
270 ((struct instance_standard__NativeArray
*)var42
)->values
[3] = (val
*) var_parent
;
272 ((void (*)(val
* self
, val
* p0
, long p1
))(var40
->class->vft
[COLOR_standard__array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
276 var43
= ((val
* (*)(val
* self
))(var40
->class->vft
[COLOR_standard__string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
279 nit___nit__ANode___debug(self
, var43
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
287 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
288 var46
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
289 if (unlikely(var46
== NULL
)) {
290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 30);
299 var47
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var44
, self
);
305 var50
= "DUPLICATE: already seen node. NOTATREE";
307 var52
= standard___standard__NativeString___to_s_with_length(var50
, var51
);
312 nit___nit__ANode___debug(self
, var49
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
317 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
318 var55
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
319 if (unlikely(var55
== NULL
)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 30);
329 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var53
, self
); /* Direct call hash_collection#HashSet#add on <var53:HashSet[ANode]>*/
331 var56
= self
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <self:ANode> */
335 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
336 var60
= self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
342 PRINT_ERROR("Runtime error: %s", "Receiver is null");
343 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 56);
346 { /* Inline parser_nodes#ANode#location (var58) on <var58:nullable ANode> */
347 if (unlikely(var58
== NULL
)) {
348 PRINT_ERROR("Runtime error: %s", "Receiver is null");
349 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 23);
352 var63
= var58
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var58:nullable ANode> */
353 if (unlikely(var63
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 23);
362 self
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
= var61
; /* _location on <self:ANode> */
366 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
370 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
371 void nit__astvalidation___AAnnotations___ANode__accept_ast_validation(val
* self
, val
* p0
) {
372 val
* var_v
/* var v: ASTValidationVisitor */;
376 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
377 void nit__astvalidation___AExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
378 val
* var_v
/* var v: ASTValidationVisitor */;
379 short int var
/* : Bool */;
380 val
* var1
/* : nullable MType */;
381 val
* var2
/* : null */;
382 short int var3
/* : Bool */;
383 short int var4
/* : Bool */;
384 val
* var_other
/* var other: nullable Object */;
385 short int var6
/* : Bool */;
386 short int var8
/* : Bool */;
387 short int var_
/* var : Bool */;
388 short int var9
/* : Bool */;
389 short int var11
/* : Bool */;
390 short int var12
/* : Bool */;
392 val
* var13
/* : String */;
393 char* var14
/* : NativeString */;
394 long var15
/* : Int */;
395 val
* var16
/* : FlatString */;
398 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__astvalidation___AExpr___ANode__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:AExpr>*/;
401 var1
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(self
) /* mtype on <self:AExpr>*/;
405 var3
= 1; /* is null */
407 var3
= 0; /* arg is null but recv is not */
410 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable MType> */
413 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
414 var8
= var1
== var_other
;
429 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
430 var11
= self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
444 var14
= "TYPING: untyped expression";
446 var16
= standard___standard__NativeString___to_s_with_length(var14
, var15
);
451 nit___nit__ANode___debug(self
, var13
); /* Direct call parser_nodes#ANode#debug on <self:AExpr>*/
457 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
458 void nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
459 val
* var_v
/* var v: ASTValidationVisitor */;
461 val
* var
/* : String */;
462 char* var1
/* : NativeString */;
463 long var2
/* : Int */;
464 val
* var3
/* : FlatString */;
467 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:APlaceholderExpr>*/;
472 var1
= "PARENT: remaining placeholder";
474 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
479 nit___nit__ANode___debug(self
, var
); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/