1 #include "nitc__astvalidation.sep.0.h"
2 /* method astvalidation$ASTValidationVisitor$visit for (self: ASTValidationVisitor, ANode) */
3 void nitc___nitc__ASTValidationVisitor___nitc__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_nitc__astvalidation__ANode__accept_ast_validation
]))(var_node
, self
); /* accept_ast_validation on <var_node:ANode>*/
11 /* method astvalidation$ASTValidationVisitor$path for (self: ASTValidationVisitor): CircularArray[ANode] */
12 val
* nitc___nitc__ASTValidationVisitor___path(val
* self
) {
13 val
* var
/* : CircularArray[ANode] */;
14 val
* var1
/* : CircularArray[ANode] */;
15 var1
= self
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
16 if (unlikely(var1
== NULL
)) {
17 if(catchStack
.cursor
>= 0){
18 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
20 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
21 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
28 /* method astvalidation$ASTValidationVisitor$seen for (self: ASTValidationVisitor): HashSet[ANode] */
29 val
* nitc___nitc__ASTValidationVisitor___seen(val
* self
) {
30 val
* var
/* : HashSet[ANode] */;
31 val
* var1
/* : HashSet[ANode] */;
32 var1
= self
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:ASTValidationVisitor> */
33 if (unlikely(var1
== NULL
)) {
34 if(catchStack
.cursor
>= 0){
35 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
37 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
38 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
45 /* method astvalidation$ANode$accept_ast_validation for (self: ANode, ASTValidationVisitor) */
46 void nitc__astvalidation___ANode___accept_ast_validation(val
* self
, val
* p0
) {
47 val
* var_v
/* var v: ASTValidationVisitor */;
48 val
* var
/* : nullable ANode */;
49 val
* var2
/* : nullable ANode */;
50 val
* var_parent
/* var parent: nullable ANode */;
51 val
* var3
/* : CircularArray[ANode] */;
52 val
* var5
/* : CircularArray[ANode] */;
53 val
* var_path
/* var path: CircularArray[ANode] */;
54 long var6
/* : Int */;
55 long var8
/* : Int */;
56 short int var9
/* : Bool */;
57 short int var11
/* : Bool */;
60 const char* var_class_name
;
61 short int var12
/* : Bool */;
62 val
* var13
/* : CircularArray[ANode] */;
63 val
* var15
/* : CircularArray[ANode] */;
64 val
* var16
/* : nullable Object */;
65 val
* var_path_parent
/* var path_parent: ANode */;
66 short int var17
/* : Bool */;
67 short int var18
/* : Bool */;
68 val
* var_other
/* var other: nullable Object */;
69 short int var20
/* : Bool */;
70 short int var22
/* : Bool */;
71 val
* var24
/* : HashSet[ANode] */;
72 val
* var26
/* : HashSet[ANode] */;
73 short int var27
/* : Bool */;
74 val
* var_other29
/* var other: nullable Object */;
75 short int var30
/* : Bool */;
76 short int var31
/* : Bool */;
77 val
* var33
/* : HashSet[ANode] */;
78 val
* var35
/* : HashSet[ANode] */;
79 short int var36
/* : Bool */;
80 val
* var37
/* : NativeArray[String] */;
82 static val
* varonce38
;
83 val
* var39
/* : String */;
84 char* var40
/* : CString */;
85 val
* var41
/* : String */;
86 val
* var42
/* : nullable Int */;
87 val
* var43
/* : nullable Int */;
88 val
* var44
/* : nullable Bool */;
89 val
* var45
/* : nullable Bool */;
90 static val
* varonce46
;
91 val
* var47
/* : String */;
92 char* var48
/* : CString */;
93 val
* var49
/* : String */;
94 val
* var50
/* : nullable Int */;
95 val
* var51
/* : nullable Int */;
96 val
* var52
/* : nullable Bool */;
97 val
* var53
/* : nullable Bool */;
98 static val
* varonce54
;
99 val
* var55
/* : String */;
100 char* var56
/* : CString */;
101 val
* var57
/* : String */;
102 val
* var58
/* : nullable Int */;
103 val
* var59
/* : nullable Int */;
104 val
* var60
/* : nullable Bool */;
105 val
* var61
/* : nullable Bool */;
106 val
* var62
/* : String */;
107 val
* var63
/* : String */;
108 val
* var64
/* : String */;
109 val
* var65
/* : HashSet[ANode] */;
110 val
* var67
/* : HashSet[ANode] */;
111 val
* var69
/* : NativeArray[String] */;
112 static val
* varonce68
;
113 static val
* varonce70
;
114 val
* var71
/* : String */;
115 char* var72
/* : CString */;
116 val
* var73
/* : String */;
117 val
* var74
/* : nullable Int */;
118 val
* var75
/* : nullable Int */;
119 val
* var76
/* : nullable Bool */;
120 val
* var77
/* : nullable Bool */;
121 static val
* varonce78
;
122 val
* var79
/* : String */;
123 char* var80
/* : CString */;
124 val
* var81
/* : String */;
125 val
* var82
/* : nullable Int */;
126 val
* var83
/* : nullable Int */;
127 val
* var84
/* : nullable Bool */;
128 val
* var85
/* : nullable Bool */;
129 val
* var86
/* : String */;
130 val
* var87
/* : String */;
131 val
* var88
/* : String */;
132 short int var89
/* : Bool */;
133 short int var90
/* : Bool */;
134 val
* var91
/* : nullable ANode */;
135 val
* var93
/* : nullable ANode */;
136 val
* var94
/* : Location */;
137 val
* var96
/* : Location */;
138 val
* var97
/* : nullable Object */;
141 { /* Inline parser_nodes$ANode$parent (self) on <self:ANode> */
142 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
149 { /* Inline astvalidation$ASTValidationVisitor$path (var_v) on <var_v:ASTValidationVisitor> */
150 var5
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
151 if (unlikely(var5
== NULL
)) {
152 if(catchStack
.cursor
>= 0){
153 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
165 { /* Inline circular_array$CircularArray$length (var_path) on <var_path:CircularArray[ANode]> */
166 var8
= var_path
->attrs
[COLOR_core__circular_array__CircularArray___length
].l
; /* _length on <var_path:CircularArray[ANode]> */
172 { /* Inline kernel$Int$> (var6,0l) on <var6:Int> */
173 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
174 /* <0l:Int> isa OTHER */
175 var11
= 1; /* easy <0l:Int> isa OTHER*/
176 if (unlikely(!var11
)) {
177 var_class_name
= type_core__Int
.name
;
178 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
179 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
190 { /* Inline astvalidation$ASTValidationVisitor$path (var_v) on <var_v:ASTValidationVisitor> */
191 var15
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
192 if (unlikely(var15
== NULL
)) {
193 if(catchStack
.cursor
>= 0){
194 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
205 var16
= core___core__SequenceRead___Collection__first(var13
);
207 var_path_parent
= var16
;
208 if (var_parent
== NULL
) {
209 var17
= 1; /* is null */
211 var17
= 0; /* arg is null but recv is not */
214 { /* Inline kernel$Object$== (var_parent,((val*)NULL)) on <var_parent:nullable ANode> */
215 var_other
= ((val
*)NULL
);
217 { /* Inline kernel$Object$is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
218 var22
= var_parent
== var_other
;
232 { /* Inline parser_nodes$ANode$parent= (self,var_path_parent) on <self:ANode> */
233 self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
238 { /* Inline astvalidation$ASTValidationVisitor$seen (var_v) on <var_v:ASTValidationVisitor> */
239 var26
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
240 if (unlikely(var26
== NULL
)) {
241 if(catchStack
.cursor
>= 0){
242 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
245 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
253 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var24
, self
); /* Direct call hash_collection$HashSet$add on <var24:HashSet[ANode]>*/
257 { /* Inline kernel$Object$!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
258 var_other29
= var_path_parent
;
260 var30
= ((short int(*)(val
* self
, val
* p0
))(var_parent
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_parent
, var_other29
); /* == on <var_parent:nullable ANode(ANode)>*/
270 { /* Inline parser_nodes$ANode$parent= (self,var_path_parent) on <self:ANode> */
271 self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
276 { /* Inline astvalidation$ASTValidationVisitor$seen (var_v) on <var_v:ASTValidationVisitor> */
277 var35
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
278 if (unlikely(var35
== NULL
)) {
279 if(catchStack
.cursor
>= 0){
280 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
291 var36
= core___core__HashSet___core__abstract_collection__Collection__has(var33
, self
);
294 if (unlikely(varonce
==NULL
)) {
295 var37
= NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String
);
296 if (likely(varonce38
!=NULL
)) {
299 var40
= "DUPLICATE (NOTATREE): already seen node with parent ";
300 var42
= (val
*)(52l<<2|1);
301 var43
= (val
*)(52l<<2|1);
302 var44
= (val
*)((long)(0)<<2|3);
303 var45
= (val
*)((long)(0)<<2|3);
304 var41
= core__flat___CString___to_s_unsafe(var40
, var42
, var43
, var44
, var45
);
308 ((struct instance_core__NativeArray
*)var37
)->values
[0]=var39
;
309 if (likely(varonce46
!=NULL
)) {
312 var48
= " now with ";
313 var50
= (val
*)(10l<<2|1);
314 var51
= (val
*)(10l<<2|1);
315 var52
= (val
*)((long)(0)<<2|3);
316 var53
= (val
*)((long)(0)<<2|3);
317 var49
= core__flat___CString___to_s_unsafe(var48
, var50
, var51
, var52
, var53
);
321 ((struct instance_core__NativeArray
*)var37
)->values
[2]=var47
;
322 if (likely(varonce54
!=NULL
)) {
326 var58
= (val
*)(1l<<2|1);
327 var59
= (val
*)(1l<<2|1);
328 var60
= (val
*)((long)(0)<<2|3);
329 var61
= (val
*)((long)(0)<<2|3);
330 var57
= core__flat___CString___to_s_unsafe(var56
, var58
, var59
, var60
, var61
);
334 ((struct instance_core__NativeArray
*)var37
)->values
[4]=var55
;
340 var62
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
342 ((struct instance_core__NativeArray
*)var37
)->values
[1]=var62
;
344 var63
= ((val
*(*)(val
* self
))(var_path_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_path_parent
); /* to_s on <var_path_parent:ANode>*/
346 ((struct instance_core__NativeArray
*)var37
)->values
[3]=var63
;
348 var64
= ((val
*(*)(val
* self
))(var37
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var37
); /* native_to_s on <var37:NativeArray[String]>*/
352 nitc___nitc__ANode___debug(self
, var64
); /* Direct call parser_nodes$ANode$debug on <self:ANode>*/
356 { /* Inline astvalidation$ASTValidationVisitor$seen (var_v) on <var_v:ASTValidationVisitor> */
357 var67
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
358 if (unlikely(var67
== NULL
)) {
359 if(catchStack
.cursor
>= 0){
360 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
363 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
371 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var65
, self
); /* Direct call hash_collection$HashSet$add on <var65:HashSet[ANode]>*/
373 if (unlikely(varonce68
==NULL
)) {
374 var69
= NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String
);
375 if (likely(varonce70
!=NULL
)) {
378 var72
= "PARENT: expected parent: ";
379 var74
= (val
*)(25l<<2|1);
380 var75
= (val
*)(25l<<2|1);
381 var76
= (val
*)((long)(0)<<2|3);
382 var77
= (val
*)((long)(0)<<2|3);
383 var73
= core__flat___CString___to_s_unsafe(var72
, var74
, var75
, var76
, var77
);
387 ((struct instance_core__NativeArray
*)var69
)->values
[0]=var71
;
388 if (likely(varonce78
!=NULL
)) {
392 var82
= (val
*)(6l<<2|1);
393 var83
= (val
*)(6l<<2|1);
394 var84
= (val
*)((long)(0)<<2|3);
395 var85
= (val
*)((long)(0)<<2|3);
396 var81
= core__flat___CString___to_s_unsafe(var80
, var82
, var83
, var84
, var85
);
400 ((struct instance_core__NativeArray
*)var69
)->values
[2]=var79
;
406 var86
= ((val
*(*)(val
* self
))(var_path_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_path_parent
); /* to_s on <var_path_parent:ANode>*/
408 ((struct instance_core__NativeArray
*)var69
)->values
[1]=var86
;
410 var87
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
412 ((struct instance_core__NativeArray
*)var69
)->values
[3]=var87
;
414 var88
= ((val
*(*)(val
* self
))(var69
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var69
); /* native_to_s on <var69:NativeArray[String]>*/
418 nitc___nitc__ANode___debug(self
, var88
); /* Direct call parser_nodes$ANode$debug on <self:ANode>*/
426 var89
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <self:ANode> */
430 { /* Inline parser_nodes$ANode$parent (self) on <self:ANode> */
431 var93
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
437 if(catchStack
.cursor
>= 0){
438 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
440 PRINT_ERROR("Runtime error: %s", "Receiver is null");
441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 68);
444 { /* Inline parser_nodes$ANode$location (var91) on <var91:nullable ANode> */
445 if (unlikely(var91
== NULL
)) {
446 if(catchStack
.cursor
>= 0){
447 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
449 PRINT_ERROR("Runtime error: %s", "Receiver is null");
450 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 25);
453 var96
= var91
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var91:nullable ANode> */
454 if (unlikely(var96
== NULL
)) {
455 if(catchStack
.cursor
>= 0){
456 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
459 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 25);
466 self
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var94
; /* _location on <self:ANode> */
470 core___core__CircularArray___core__abstract_collection__Sequence__unshift(var_path
, self
); /* Direct call circular_array$CircularArray$unshift on <var_path:CircularArray[ANode]>*/
473 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
476 var97
= core___core__CircularArray___core__abstract_collection__Sequence__shift(var_path
);
480 /* method astvalidation$AAnnotation$accept_ast_validation for (self: AAnnotation, ASTValidationVisitor) */
481 void nitc__astvalidation___AAnnotation___ANode__accept_ast_validation(val
* self
, val
* p0
) {
482 val
* var_v
/* var v: ASTValidationVisitor */;
486 /* method astvalidation$AExpr$accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
487 void nitc__astvalidation___AExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
488 val
* var_v
/* var v: ASTValidationVisitor */;
489 short int var
/* : Bool */;
490 val
* var1
/* : nullable MType */;
491 short int var2
/* : Bool */;
492 short int var3
/* : Bool */;
493 val
* var_other
/* var other: nullable Object */;
494 short int var5
/* : Bool */;
495 short int var7
/* : Bool */;
496 short int var_
/* var : Bool */;
497 short int var8
/* : Bool */;
498 short int var10
/* : Bool */;
499 short int var11
/* : Bool */;
502 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__astvalidation___AExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:AExpr>*/
505 var1
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(self
); /* mtype on <self:AExpr>*/
508 var2
= 1; /* is null */
510 var2
= 0; /* arg is null but recv is not */
513 { /* Inline kernel$Object$== (var1,((val*)NULL)) on <var1:nullable MType> */
514 var_other
= ((val
*)NULL
);
516 { /* Inline kernel$Object$is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
517 var7
= var1
== var_other
;
532 { /* Inline typing$AExpr$is_typed (self) on <self:AExpr> */
533 var10
= self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
548 /* method astvalidation$APlaceholderExpr$accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
549 void nitc__astvalidation___APlaceholderExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
550 val
* var_v
/* var v: ASTValidationVisitor */;
552 val
* var
/* : String */;
553 char* var1
/* : CString */;
554 val
* var2
/* : String */;
555 val
* var3
/* : nullable Int */;
556 val
* var4
/* : nullable Int */;
557 val
* var5
/* : nullable Bool */;
558 val
* var6
/* : nullable Bool */;
561 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__astvalidation___APlaceholderExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:APlaceholderExpr>*/
563 if (likely(varonce
!=NULL
)) {
566 var1
= "PARENT: remaining placeholder";
567 var3
= (val
*)(29l<<2|1);
568 var4
= (val
*)(29l<<2|1);
569 var5
= (val
*)((long)(0)<<2|3);
570 var6
= (val
*)((long)(0)<<2|3);
571 var2
= core__flat___CString___to_s_unsafe(var1
, var3
, var4
, var5
, var6
);
576 nitc___nitc__ANode___debug(self
, var
); /* Direct call parser_nodes$ANode$debug on <self:APlaceholderExpr>*/