1 #include "astvalidation.sep.0.h"
2 /* method astvalidation#ASTValidationVisitor#visit for (self: ASTValidationVisitor, ANode) */
3 void astvalidation__ASTValidationVisitor__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_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", "src/astvalidation.nit", 30);
24 list__List__unshift(var
, var_node
); /* Direct call list#List#unshift on <var:List[ANode]>*/
27 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_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_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", "src/astvalidation.nit", 30);
42 var6
= list__List__shift(var3
);
47 /* method astvalidation#ASTValidationVisitor#visit for (self: Object, ANode) */
48 void VIRTUAL_astvalidation__ASTValidationVisitor__visit(val
* self
, val
* p0
) {
49 astvalidation__ASTValidationVisitor__visit(self
, p0
); /* Direct call astvalidation#ASTValidationVisitor#visit on <self:Object(ASTValidationVisitor)>*/
52 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
53 val
* astvalidation__ASTValidationVisitor__path(val
* self
) {
54 val
* var
/* : List[ANode] */;
55 val
* var1
/* : List[ANode] */;
56 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
57 if (unlikely(var1
== NULL
)) {
58 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
59 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 30);
66 /* method astvalidation#ASTValidationVisitor#path for (self: Object): List[ANode] */
67 val
* VIRTUAL_astvalidation__ASTValidationVisitor__path(val
* self
) {
68 val
* var
/* : List[ANode] */;
69 val
* var1
/* : List[ANode] */;
70 val
* var3
/* : List[ANode] */;
71 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:Object(ASTValidationVisitor)> */
72 var3
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:Object(ASTValidationVisitor)> */
73 if (unlikely(var3
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
75 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 30);
85 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
86 val
* astvalidation__ASTValidationVisitor__seen(val
* self
) {
87 val
* var
/* : HashSet[ANode] */;
88 val
* var1
/* : HashSet[ANode] */;
89 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:ASTValidationVisitor> */
90 if (unlikely(var1
== NULL
)) {
91 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
92 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 31);
99 /* method astvalidation#ASTValidationVisitor#seen for (self: Object): HashSet[ANode] */
100 val
* VIRTUAL_astvalidation__ASTValidationVisitor__seen(val
* self
) {
101 val
* var
/* : HashSet[ANode] */;
102 val
* var1
/* : HashSet[ANode] */;
103 val
* var3
/* : HashSet[ANode] */;
104 { /* Inline astvalidation#ASTValidationVisitor#seen (self) on <self:Object(ASTValidationVisitor)> */
105 var3
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:Object(ASTValidationVisitor)> */
106 if (unlikely(var3
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
108 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 31);
118 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
119 void astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
120 val
* var_v
/* var v: ASTValidationVisitor */;
121 val
* var
/* : nullable ANode */;
122 val
* var2
/* : nullable ANode */;
123 val
* var_parent
/* var parent: nullable ANode */;
124 val
* var3
/* : List[ANode] */;
125 val
* var5
/* : List[ANode] */;
126 long var6
/* : Int */;
127 long var7
/* : Int */;
128 short int var8
/* : Bool */;
129 short int var10
/* : Bool */;
132 const char* var_class_name
;
133 short int var11
/* : Bool */;
134 val
* var12
/* : List[ANode] */;
135 val
* var14
/* : List[ANode] */;
136 long var15
/* : Int */;
137 val
* var16
/* : nullable Object */;
138 val
* var_path_parent
/* var path_parent: ANode */;
139 val
* var17
/* : null */;
140 short int var18
/* : Bool */;
141 short int var19
/* : Bool */;
142 val
* var_other
/* var other: nullable Object */;
143 short int var21
/* : Bool */;
144 short int var23
/* : Bool */;
145 short int var25
/* : Bool */;
146 short int var26
/* : Bool */;
147 val
* var_other28
/* var other: nullable Object */;
148 short int var29
/* : Bool */;
149 short int var30
/* : Bool */;
150 short int var31
/* : Bool */;
152 val
* var33
/* : String */;
153 char* var34
/* : NativeString */;
154 long var35
/* : Int */;
155 val
* var36
/* : FlatString */;
156 static val
* varonce37
;
157 val
* var38
/* : String */;
158 char* var39
/* : NativeString */;
159 long var40
/* : Int */;
160 val
* var41
/* : FlatString */;
161 val
* var42
/* : Array[Object] */;
162 long var43
/* : Int */;
163 val
* var44
/* : NativeArray[Object] */;
164 val
* var45
/* : String */;
165 val
* var46
/* : HashSet[ANode] */;
166 val
* var48
/* : HashSet[ANode] */;
167 short int var49
/* : Bool */;
168 static val
* varonce50
;
169 val
* var51
/* : String */;
170 char* var52
/* : NativeString */;
171 long var53
/* : Int */;
172 val
* var54
/* : FlatString */;
173 val
* var55
/* : HashSet[ANode] */;
174 val
* var57
/* : HashSet[ANode] */;
175 val
* var58
/* : nullable Location */;
176 val
* var59
/* : null */;
177 short int var60
/* : Bool */;
178 short int var61
/* : Bool */;
179 val
* var62
/* : nullable ANode */;
180 val
* var64
/* : nullable ANode */;
181 val
* var65
/* : Location */;
184 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
185 var2
= self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
192 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
193 var5
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
194 if (unlikely(var5
== NULL
)) {
195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
196 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 30);
204 var6
= list__List__length(var3
);
208 { /* Inline kernel#Int#> (var6,var7) on <var6:Int> */
209 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
210 /* <var7:Int> isa OTHER */
211 var10
= 1; /* easy <var7:Int> isa OTHER*/
212 if (unlikely(!var10
)) {
213 var_class_name
= type_kernel__Int
.name
;
214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
215 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
226 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
227 var14
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
228 if (unlikely(var14
== NULL
)) {
229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
230 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 30);
239 var16
= list__List___91d_93d(var12
, var15
);
241 var_path_parent
= var16
;
243 if (var_parent
== NULL
) {
244 var18
= 1; /* is null */
246 var18
= 0; /* arg is null but recv is not */
249 { /* Inline kernel#Object#== (var_parent,var17) on <var_parent:nullable ANode> */
252 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
253 var23
= var_parent
== var_other
;
267 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
268 self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
274 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
275 var_other28
= var_path_parent
;
277 var30
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_other28
) /* == on <var_parent:nullable ANode(ANode)>*/;
289 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
290 self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
297 var34
= "PARENT: expected parent: ";
299 var36
= string__NativeString__to_s_with_length(var34
, var35
);
308 var41
= string__NativeString__to_s_with_length(var39
, var40
);
312 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
313 { /* var42 = array_instance Array[Object] */
315 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
316 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
317 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_path_parent
;
318 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
319 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var_parent
;
321 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
325 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
328 parser_nodes__ANode__debug(self
, var45
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
336 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
337 var48
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
338 if (unlikely(var48
== NULL
)) {
339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
340 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 31);
348 var49
= hash_collection__HashSet__has(var46
, self
);
354 var52
= "DUPLICATE: already seen node. NOTATREE";
356 var54
= string__NativeString__to_s_with_length(var52
, var53
);
361 parser_nodes__ANode__debug(self
, var51
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
366 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
367 var57
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
368 if (unlikely(var57
== NULL
)) {
369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
370 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 31);
378 hash_collection__HashSet__add(var55
, self
); /* Direct call hash_collection#HashSet#add on <var55:HashSet[ANode]>*/
380 var58
= self
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <self:ANode> */
383 var60
= 1; /* is null */
385 var60
= 0; /* arg is null but recv is not */
388 var61
= location__Location___61d_61d(var58
, var59
);
393 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
394 var64
= self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
400 PRINT_ERROR("Runtime error: %s", "Receiver is null");
401 PRINT_ERROR(" (%s:%d)\n", "src/astvalidation.nit", 57);
404 var65
= parser_nodes__ANode__location(var62
);
406 self
->attrs
[COLOR_parser_nodes__ANode___location
].val
= var65
; /* _location on <self:ANode> */
410 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
414 /* method astvalidation#ANode#accept_ast_validation for (self: Object, ASTValidationVisitor) */
415 void VIRTUAL_astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
416 astvalidation__ANode__accept_ast_validation(self
, p0
); /* Direct call astvalidation#ANode#accept_ast_validation on <self:Object(ANode)>*/
419 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
420 void astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
421 val
* var_v
/* var v: ASTValidationVisitor */;
425 /* method astvalidation#AAnnotations#accept_ast_validation for (self: Object, ASTValidationVisitor) */
426 void VIRTUAL_astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
427 val
* var_v
/* var v: ASTValidationVisitor */;
428 { /* Inline astvalidation#AAnnotations#accept_ast_validation (self,p0) on <self:Object(AAnnotations)> */
434 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
435 void astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
436 val
* var_v
/* var v: ASTValidationVisitor */;
437 short int var
/* : Bool */;
438 val
* var1
/* : nullable MType */;
439 val
* var2
/* : null */;
440 short int var3
/* : Bool */;
441 short int var4
/* : Bool */;
442 val
* var_other
/* var other: nullable Object */;
443 short int var6
/* : Bool */;
444 short int var8
/* : Bool */;
445 short int var_
/* var : Bool */;
446 short int var9
/* : Bool */;
447 short int var11
/* : Bool */;
448 short int var12
/* : Bool */;
450 val
* var13
/* : String */;
451 char* var14
/* : NativeString */;
452 long var15
/* : Int */;
453 val
* var16
/* : FlatString */;
456 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__AExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:AExpr>*/;
459 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AExpr>*/;
463 var3
= 1; /* is null */
465 var3
= 0; /* arg is null but recv is not */
468 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable MType> */
471 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
472 var8
= var1
== var_other
;
487 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
488 var11
= self
->attrs
[COLOR_typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
502 var14
= "TYPING: untyped expression";
504 var16
= string__NativeString__to_s_with_length(var14
, var15
);
509 parser_nodes__ANode__debug(self
, var13
); /* Direct call parser_nodes#ANode#debug on <self:AExpr>*/
515 /* method astvalidation#AExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
516 void VIRTUAL_astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
517 astvalidation__AExpr__accept_ast_validation(self
, p0
); /* Direct call astvalidation#AExpr#accept_ast_validation on <self:Object(AExpr)>*/
520 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
521 void astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
522 val
* var_v
/* var v: ASTValidationVisitor */;
524 val
* var
/* : String */;
525 char* var1
/* : NativeString */;
526 long var2
/* : Int */;
527 val
* var3
/* : FlatString */;
530 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__APlaceholderExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:APlaceholderExpr>*/;
535 var1
= "PARENT: remaining placeholder";
537 var3
= string__NativeString__to_s_with_length(var1
, var2
);
542 parser_nodes__ANode__debug(self
, var
); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/
546 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
547 void VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
548 astvalidation__APlaceholderExpr__accept_ast_validation(self
, p0
); /* Direct call astvalidation#APlaceholderExpr#accept_ast_validation on <self:Object(APlaceholderExpr)>*/