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 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
18 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
25 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
26 val
* nitc___nitc__ASTValidationVisitor___seen(val
* self
) {
27 val
* var
/* : HashSet[ANode] */;
28 val
* var1
/* : HashSet[ANode] */;
29 var1
= self
->attrs
[COLOR_nitc__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_nitc__astvalidation
, 28);
39 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
40 void nitc__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
/* : CircularArray[ANode] */;
46 val
* var5
/* : CircularArray[ANode] */;
47 val
* var_path
/* var path: CircularArray[ANode] */;
48 long var6
/* : Int */;
49 long var8
/* : Int */;
50 short int var9
/* : Bool */;
51 short int var11
/* : Bool */;
54 const char* var_class_name
;
55 short int var12
/* : Bool */;
56 val
* var13
/* : CircularArray[ANode] */;
57 val
* var15
/* : CircularArray[ANode] */;
58 val
* var16
/* : nullable Object */;
59 val
* var_path_parent
/* var path_parent: ANode */;
60 short int var17
/* : Bool */;
61 short int var18
/* : Bool */;
62 val
* var_other
/* var other: nullable Object */;
63 short int var20
/* : Bool */;
64 short int var22
/* : Bool */;
65 val
* var24
/* : HashSet[ANode] */;
66 val
* var26
/* : HashSet[ANode] */;
67 short int var27
/* : Bool */;
68 val
* var_other29
/* var other: nullable Object */;
69 short int var30
/* : Bool */;
70 short int var31
/* : Bool */;
71 val
* var33
/* : HashSet[ANode] */;
72 val
* var35
/* : HashSet[ANode] */;
73 short int var36
/* : Bool */;
74 val
* var37
/* : NativeArray[String] */;
76 static val
* varonce38
;
77 val
* var39
/* : String */;
78 char* var40
/* : NativeString */;
79 val
* var41
/* : String */;
80 static val
* varonce42
;
81 val
* var43
/* : String */;
82 char* var44
/* : NativeString */;
83 val
* var45
/* : String */;
84 static val
* varonce46
;
85 val
* var47
/* : String */;
86 char* var48
/* : NativeString */;
87 val
* var49
/* : String */;
88 val
* var50
/* : String */;
89 val
* var51
/* : String */;
90 val
* var52
/* : String */;
91 val
* var53
/* : HashSet[ANode] */;
92 val
* var55
/* : HashSet[ANode] */;
93 val
* var57
/* : NativeArray[String] */;
94 static val
* varonce56
;
95 static val
* varonce58
;
96 val
* var59
/* : String */;
97 char* var60
/* : NativeString */;
98 val
* var61
/* : String */;
99 static val
* varonce62
;
100 val
* var63
/* : String */;
101 char* var64
/* : NativeString */;
102 val
* var65
/* : String */;
103 val
* var66
/* : String */;
104 val
* var67
/* : String */;
105 val
* var68
/* : String */;
106 short int var69
/* : Bool */;
107 short int var70
/* : Bool */;
108 val
* var71
/* : nullable ANode */;
109 val
* var73
/* : nullable ANode */;
110 val
* var74
/* : Location */;
111 val
* var76
/* : Location */;
112 val
* var77
/* : nullable Object */;
115 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
116 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
123 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
124 var5
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
125 if (unlikely(var5
== NULL
)) {
126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
136 { /* Inline circular_array#CircularArray#length (var_path) on <var_path:CircularArray[ANode]> */
137 var8
= var_path
->attrs
[COLOR_core__circular_array__CircularArray___length
].l
; /* _length on <var_path:CircularArray[ANode]> */
143 { /* Inline kernel#Int#> (var6,0l) on <var6:Int> */
144 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
145 /* <0l:Int> isa OTHER */
146 var11
= 1; /* easy <0l:Int> isa OTHER*/
147 if (unlikely(!var11
)) {
148 var_class_name
= type_core__Int
.name
;
149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
150 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
161 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
162 var15
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
163 if (unlikely(var15
== NULL
)) {
164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
165 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 27);
173 var16
= core___core__SequenceRead___Collection__first(var13
);
175 var_path_parent
= var16
;
176 if (var_parent
== NULL
) {
177 var17
= 1; /* is null */
179 var17
= 0; /* arg is null but recv is not */
182 { /* Inline kernel#Object#== (var_parent,((val*)NULL)) on <var_parent:nullable ANode> */
183 var_other
= ((val
*)NULL
);
185 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
186 var22
= var_parent
== var_other
;
200 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
201 self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
206 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
207 var26
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
208 if (unlikely(var26
== NULL
)) {
209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
210 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
218 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var24
, self
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[ANode]>*/
222 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
223 var_other29
= var_path_parent
;
225 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)>*/
235 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
236 self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
241 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
242 var35
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
243 if (unlikely(var35
== NULL
)) {
244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
245 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
253 var36
= core___core__HashSet___core__abstract_collection__Collection__has(var33
, self
);
256 if (unlikely(varonce
==NULL
)) {
257 var37
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
258 if (likely(varonce38
!=NULL
)) {
261 var40
= "DUPLICATE (NOTATREE): already seen node with parent ";
262 var41
= core__flat___NativeString___to_s_full(var40
, 52l, 52l);
266 ((struct instance_core__NativeArray
*)var37
)->values
[0]=var39
;
267 if (likely(varonce42
!=NULL
)) {
270 var44
= " now with ";
271 var45
= core__flat___NativeString___to_s_full(var44
, 10l, 10l);
275 ((struct instance_core__NativeArray
*)var37
)->values
[2]=var43
;
276 if (likely(varonce46
!=NULL
)) {
280 var49
= core__flat___NativeString___to_s_full(var48
, 1l, 1l);
284 ((struct instance_core__NativeArray
*)var37
)->values
[4]=var47
;
290 var50
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
292 ((struct instance_core__NativeArray
*)var37
)->values
[1]=var50
;
294 var51
= ((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>*/
296 ((struct instance_core__NativeArray
*)var37
)->values
[3]=var51
;
298 var52
= ((val
*(*)(val
* self
))(var37
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var37
); /* native_to_s on <var37:NativeArray[String]>*/
302 nitc___nitc__ANode___debug(self
, var52
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
306 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
307 var55
= var_v
->attrs
[COLOR_nitc__astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
308 if (unlikely(var55
== NULL
)) {
309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
310 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 28);
318 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var53
, self
); /* Direct call hash_collection#HashSet#add on <var53:HashSet[ANode]>*/
320 if (unlikely(varonce56
==NULL
)) {
321 var57
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
322 if (likely(varonce58
!=NULL
)) {
325 var60
= "PARENT: expected parent: ";
326 var61
= core__flat___NativeString___to_s_full(var60
, 25l, 25l);
330 ((struct instance_core__NativeArray
*)var57
)->values
[0]=var59
;
331 if (likely(varonce62
!=NULL
)) {
335 var65
= core__flat___NativeString___to_s_full(var64
, 6l, 6l);
339 ((struct instance_core__NativeArray
*)var57
)->values
[2]=var63
;
345 var66
= ((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>*/
347 ((struct instance_core__NativeArray
*)var57
)->values
[1]=var66
;
349 var67
= ((val
*(*)(val
* self
))(var_parent
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_parent
); /* to_s on <var_parent:nullable ANode(ANode)>*/
351 ((struct instance_core__NativeArray
*)var57
)->values
[3]=var67
;
353 var68
= ((val
*(*)(val
* self
))(var57
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var57
); /* native_to_s on <var57:NativeArray[String]>*/
357 nitc___nitc__ANode___debug(self
, var68
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
365 var69
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <self:ANode> */
369 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
370 var73
= self
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
376 PRINT_ERROR("Runtime error: %s", "Receiver is null");
377 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__astvalidation
, 68);
380 { /* Inline parser_nodes#ANode#location (var71) on <var71:nullable ANode> */
381 if (unlikely(var71
== NULL
)) {
382 PRINT_ERROR("Runtime error: %s", "Receiver is null");
383 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
386 var76
= var71
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var71:nullable ANode> */
387 if (unlikely(var76
== NULL
)) {
388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
396 self
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var74
; /* _location on <self:ANode> */
400 core___core__CircularArray___core__abstract_collection__Sequence__unshift(var_path
, self
); /* Direct call circular_array#CircularArray#unshift on <var_path:CircularArray[ANode]>*/
403 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
406 var77
= core___core__CircularArray___core__abstract_collection__Sequence__shift(var_path
);
410 /* method astvalidation#AAnnotation#accept_ast_validation for (self: AAnnotation, ASTValidationVisitor) */
411 void nitc__astvalidation___AAnnotation___ANode__accept_ast_validation(val
* self
, val
* p0
) {
412 val
* var_v
/* var v: ASTValidationVisitor */;
416 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
417 void nitc__astvalidation___AExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
418 val
* var_v
/* var v: ASTValidationVisitor */;
419 short int var
/* : Bool */;
420 val
* var1
/* : nullable MType */;
421 short int var2
/* : Bool */;
422 short int var3
/* : Bool */;
423 val
* var_other
/* var other: nullable Object */;
424 short int var5
/* : Bool */;
425 short int var7
/* : Bool */;
426 short int var_
/* var : Bool */;
427 short int var8
/* : Bool */;
428 short int var10
/* : Bool */;
429 short int var11
/* : Bool */;
432 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__astvalidation___AExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:AExpr>*/
435 var1
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(self
); /* mtype on <self:AExpr>*/
438 var2
= 1; /* is null */
440 var2
= 0; /* arg is null but recv is not */
443 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable MType> */
444 var_other
= ((val
*)NULL
);
446 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
447 var7
= var1
== var_other
;
462 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
463 var10
= self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
478 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
479 void nitc__astvalidation___APlaceholderExpr___ANode__accept_ast_validation(val
* self
, val
* p0
) {
480 val
* var_v
/* var v: ASTValidationVisitor */;
482 val
* var
/* : String */;
483 char* var1
/* : NativeString */;
484 val
* var2
/* : String */;
487 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__astvalidation___APlaceholderExpr___ANode__accept_ast_validation
]))(self
, p0
); /* accept_ast_validation on <self:APlaceholderExpr>*/
489 if (likely(varonce
!=NULL
)) {
492 var1
= "PARENT: remaining placeholder";
493 var2
= core__flat___NativeString___to_s_full(var1
, 29l, 29l);
498 nitc___nitc__ANode___debug(self
, var
); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/