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 */;
7 ((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>*/
11 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
12 val
* nit___nit__ASTValidationVisitor___path(val
* self
) {
13 val
* var
/* : List[ANode] */;
14 val
* var1
/* : List[ANode] */;
15 var1
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
16 if (unlikely(var1
== NULL
)) {
17 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
18 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 27);
25 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
26 val
* nit___nit__ASTValidationVisitor___seen(val
* self
) {
27 val
* var
/* : HashSet[ANode] */;
28 val
* var1
/* : HashSet[ANode] */;
29 var1
= self
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:ASTValidationVisitor> */
30 if (unlikely(var1
== NULL
)) {
31 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
32 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 28);
39 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
40 void nit__astvalidation___ANode___accept_ast_validation(val
* self
, val
* p0
) {
41 val
* var_v
/* var v: ASTValidationVisitor */;
42 val
* var
/* : nullable ANode */;
43 val
* var2
/* : nullable ANode */;
44 val
* var_parent
/* var parent: nullable ANode */;
45 val
* var3
/* : List[ANode] */;
46 val
* var5
/* : List[ANode] */;
47 val
* var_path
/* var path: List[ANode] */;
48 long var6
/* : Int */;
49 short int var7
/* : Bool */;
50 short int var9
/* : Bool */;
53 const char* var_class_name
;
54 short int var10
/* : Bool */;
55 val
* var11
/* : List[ANode] */;
56 val
* var13
/* : List[ANode] */;
57 val
* var14
/* : nullable Object */;
58 val
* var_path_parent
/* var path_parent: ANode */;
59 short int var15
/* : Bool */;
60 short int var16
/* : Bool */;
61 val
* var_other
/* var other: nullable Object */;
62 short int var18
/* : Bool */;
63 short int var20
/* : Bool */;
64 val
* var22
/* : HashSet[ANode] */;
65 val
* var24
/* : HashSet[ANode] */;
66 short int var25
/* : Bool */;
67 val
* var_other27
/* var other: nullable Object */;
68 short int var28
/* : Bool */;
69 short int var29
/* : Bool */;
70 val
* var31
/* : HashSet[ANode] */;
71 val
* var33
/* : HashSet[ANode] */;
72 short int var34
/* : Bool */;
73 val
* var35
/* : NativeArray[String] */;
75 static val
* varonce36
;
76 val
* var37
/* : String */;
77 char* var38
/* : NativeString */;
78 val
* var39
/* : FlatString */;
79 static val
* varonce40
;
80 val
* var41
/* : String */;
81 char* var42
/* : NativeString */;
82 val
* var43
/* : FlatString */;
83 static val
* varonce44
;
84 val
* var45
/* : String */;
85 char* var46
/* : NativeString */;
86 val
* var47
/* : FlatString */;
87 val
* var48
/* : String */;
88 val
* var49
/* : String */;
89 val
* var50
/* : String */;
90 val
* var51
/* : HashSet[ANode] */;
91 val
* var53
/* : HashSet[ANode] */;
92 val
* var55
/* : NativeArray[String] */;
93 static val
* varonce54
;
94 static val
* varonce56
;
95 val
* var57
/* : String */;
96 char* var58
/* : NativeString */;
97 val
* var59
/* : FlatString */;
98 static val
* varonce60
;
99 val
* var61
/* : String */;
100 char* var62
/* : NativeString */;
101 val
* var63
/* : FlatString */;
102 val
* var64
/* : String */;
103 val
* var65
/* : String */;
104 val
* var66
/* : String */;
105 short int var67
/* : Bool */;
106 short int var68
/* : Bool */;
107 val
* var69
/* : nullable ANode */;
108 val
* var71
/* : nullable ANode */;
109 val
* var72
/* : Location */;
110 val
* var74
/* : Location */;
111 val
* var75
/* : nullable Object */;
114 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
115 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
122 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
123 var5
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
124 if (unlikely(var5
== NULL
)) {
125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
126 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 27);
135 var6
= standard___standard__List___standard__abstract_collection__Collection__length(var_path
);
138 { /* Inline kernel#Int#> (var6,0l) on <var6:Int> */
139 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
140 /* <0l:Int> isa OTHER */
141 var9
= 1; /* easy <0l:Int> isa OTHER*/
142 if (unlikely(!var9
)) {
143 var_class_name
= type_standard__Int
.name
;
144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
145 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
156 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
157 var13
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
158 if (unlikely(var13
== NULL
)) {
159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 27);
168 var14
= standard___standard__List___standard__abstract_collection__Collection__first(var11
);
170 var_path_parent
= var14
;
171 if (var_parent
== NULL
) {
172 var15
= 1; /* is null */
174 var15
= 0; /* arg is null but recv is not */
177 { /* Inline kernel#Object#== (var_parent,((val*)NULL)) on <var_parent:nullable ANode> */
178 var_other
= ((val
*)NULL
);
180 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
181 var20
= var_parent
== var_other
;
195 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
196 self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
201 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
202 var24
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
203 if (unlikely(var24
== NULL
)) {
204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 28);
213 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var22
, self
); /* Direct call hash_collection#HashSet#add on <var22:HashSet[ANode]>*/
217 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
218 var_other27
= var_path_parent
;
220 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)>*/
230 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
231 self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
236 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
237 var33
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
238 if (unlikely(var33
== NULL
)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 28);
248 var34
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var31
, self
);
251 if (unlikely(varonce
==NULL
)) {
252 var35
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
253 if (likely(varonce36
!=NULL
)) {
256 var38
= "DUPLICATE (NOTATREE): already seen node with parent ";
257 var39
= standard___standard__NativeString___to_s_with_length(var38
, 52l);
261 ((struct instance_standard__NativeArray
*)var35
)->values
[0]=var37
;
262 if (likely(varonce40
!=NULL
)) {
265 var42
= " now with ";
266 var43
= standard___standard__NativeString___to_s_with_length(var42
, 10l);
270 ((struct instance_standard__NativeArray
*)var35
)->values
[2]=var41
;
271 if (likely(varonce44
!=NULL
)) {
275 var47
= standard___standard__NativeString___to_s_with_length(var46
, 1l);
279 ((struct instance_standard__NativeArray
*)var35
)->values
[4]=var45
;
285 var48
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
287 ((struct instance_standard__NativeArray
*)var35
)->values
[1]=var48
;
289 var49
= ((val
*(*)(val
* self
))(var_path_parent
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_path_parent
); /* to_s on <var_path_parent:ANode>*/
291 ((struct instance_standard__NativeArray
*)var35
)->values
[3]=var49
;
293 var50
= ((val
*(*)(val
* self
))(var35
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var35
); /* native_to_s on <var35:NativeArray[String]>*/
297 nit___nit__ANode___debug(self
, var50
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
301 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
302 var53
= var_v
->attrs
[COLOR_nit__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
303 if (unlikely(var53
== NULL
)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 28);
313 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var51
, self
); /* Direct call hash_collection#HashSet#add on <var51:HashSet[ANode]>*/
315 if (unlikely(varonce54
==NULL
)) {
316 var55
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
317 if (likely(varonce56
!=NULL
)) {
320 var58
= "PARENT: expected parent: ";
321 var59
= standard___standard__NativeString___to_s_with_length(var58
, 25l);
325 ((struct instance_standard__NativeArray
*)var55
)->values
[0]=var57
;
326 if (likely(varonce60
!=NULL
)) {
330 var63
= standard___standard__NativeString___to_s_with_length(var62
, 6l);
334 ((struct instance_standard__NativeArray
*)var55
)->values
[2]=var61
;
340 var64
= ((val
*(*)(val
* self
))(var_path_parent
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_path_parent
); /* to_s on <var_path_parent:ANode>*/
342 ((struct instance_standard__NativeArray
*)var55
)->values
[1]=var64
;
344 var65
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
346 ((struct instance_standard__NativeArray
*)var55
)->values
[3]=var65
;
348 var66
= ((val
*(*)(val
* self
))(var55
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var55
); /* native_to_s on <var55:NativeArray[String]>*/
352 nit___nit__ANode___debug(self
, var66
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
360 var67
= self
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <self:ANode> */
364 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
365 var71
= self
->attrs
[COLOR_nit__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
371 PRINT_ERROR("Runtime error: %s", "Receiver is null");
372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation
, 56);
375 { /* Inline parser_nodes#ANode#location (var69) on <var69:nullable ANode> */
376 if (unlikely(var69
== NULL
)) {
377 PRINT_ERROR("Runtime error: %s", "Receiver is null");
378 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 24);
381 var74
= var69
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var69:nullable ANode> */
382 if (unlikely(var74
== NULL
)) {
383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
384 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 24);
391 self
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
= var72
; /* _location on <self:ANode> */
395 standard___standard__List___standard__abstract_collection__Sequence__unshift(var_path
, self
); /* Direct call list#List#unshift on <var_path:List[ANode]>*/
398 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
401 var75
= standard___standard__List___standard__abstract_collection__Sequence__shift(var_path
);
405 /* method astvalidation#AAnnotation#accept_ast_validation for (self: AAnnotation, ASTValidationVisitor) */
406 void nit__astvalidation___AAnnotation___ANode__accept_ast_validation(val
* self
, val
* p0
) {
407 val
* var_v
/* var v: ASTValidationVisitor */;
411 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
412 void nit__astvalidation___AExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
413 val
* var_v
/* var v: ASTValidationVisitor */;
414 short int var
/* : Bool */;
415 val
* var1
/* : nullable MType */;
416 short int var2
/* : Bool */;
417 short int var3
/* : Bool */;
418 val
* var_other
/* var other: nullable Object */;
419 short int var5
/* : Bool */;
420 short int var7
/* : Bool */;
421 short int var_
/* var : Bool */;
422 short int var8
/* : Bool */;
423 short int var10
/* : Bool */;
424 short int var11
/* : Bool */;
427 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__astvalidation___AExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:AExpr>*/
430 var1
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(self
); /* mtype on <self:AExpr>*/
433 var2
= 1; /* is null */
435 var2
= 0; /* arg is null but recv is not */
438 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable MType> */
439 var_other
= ((val
*)NULL
);
441 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
442 var7
= var1
== var_other
;
457 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
458 var10
= self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
473 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
474 void nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
475 val
* var_v
/* var v: ASTValidationVisitor */;
477 val
* var
/* : String */;
478 char* var1
/* : NativeString */;
479 val
* var2
/* : FlatString */;
482 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:APlaceholderExpr>*/
484 if (likely(varonce
!=NULL
)) {
487 var1
= "PARENT: remaining placeholder";
488 var2
= standard___standard__NativeString___to_s_with_length(var1
, 29l);
493 nit___nit__ANode___debug(self
, var
); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/