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", "astvalidation.nit", 29);
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", "astvalidation.nit", 29);
42 var6
= list__List__shift(var3
);
46 /* method astvalidation#ASTValidationVisitor#visit for (self: Object, ANode) */
47 void VIRTUAL_astvalidation__ASTValidationVisitor__visit(val
* self
, val
* p0
) {
48 astvalidation__ASTValidationVisitor__visit(self
, p0
); /* Direct call astvalidation#ASTValidationVisitor#visit on <self:Object(ASTValidationVisitor)>*/
51 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
52 val
* astvalidation__ASTValidationVisitor__path(val
* self
) {
53 val
* var
/* : List[ANode] */;
54 val
* var1
/* : List[ANode] */;
55 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:ASTValidationVisitor> */
56 if (unlikely(var1
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
58 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
65 /* method astvalidation#ASTValidationVisitor#path for (self: Object): List[ANode] */
66 val
* VIRTUAL_astvalidation__ASTValidationVisitor__path(val
* self
) {
67 val
* var
/* : List[ANode] */;
68 val
* var1
/* : List[ANode] */;
69 val
* var3
/* : List[ANode] */;
70 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:Object(ASTValidationVisitor)> */
71 var3
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <self:Object(ASTValidationVisitor)> */
72 if (unlikely(var3
== NULL
)) {
73 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
74 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
84 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
85 val
* astvalidation__ASTValidationVisitor__seen(val
* self
) {
86 val
* var
/* : HashSet[ANode] */;
87 val
* var1
/* : HashSet[ANode] */;
88 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:ASTValidationVisitor> */
89 if (unlikely(var1
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
91 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
98 /* method astvalidation#ASTValidationVisitor#seen for (self: Object): HashSet[ANode] */
99 val
* VIRTUAL_astvalidation__ASTValidationVisitor__seen(val
* self
) {
100 val
* var
/* : HashSet[ANode] */;
101 val
* var1
/* : HashSet[ANode] */;
102 val
* var3
/* : HashSet[ANode] */;
103 { /* Inline astvalidation#ASTValidationVisitor#seen (self) on <self:Object(ASTValidationVisitor)> */
104 var3
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <self:Object(ASTValidationVisitor)> */
105 if (unlikely(var3
== NULL
)) {
106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
107 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
117 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
118 void astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
119 val
* var_v
/* var v: ASTValidationVisitor */;
120 val
* var
/* : nullable ANode */;
121 val
* var2
/* : nullable ANode */;
122 val
* var_parent
/* var parent: nullable ANode */;
123 val
* var3
/* : List[ANode] */;
124 val
* var5
/* : List[ANode] */;
125 long var6
/* : Int */;
126 long var7
/* : Int */;
127 short int var8
/* : Bool */;
128 short int var10
/* : Bool */;
131 const char* var_class_name
;
132 short int var11
/* : Bool */;
133 val
* var12
/* : List[ANode] */;
134 val
* var14
/* : List[ANode] */;
135 long var15
/* : Int */;
136 val
* var16
/* : nullable Object */;
137 val
* var_path_parent
/* var path_parent: ANode */;
138 val
* var17
/* : null */;
139 short int var18
/* : Bool */;
140 short int var19
/* : Bool */;
141 val
* var_other
/* var other: nullable Object */;
142 short int var21
/* : Bool */;
143 short int var23
/* : Bool */;
144 short int var25
/* : Bool */;
145 short int var26
/* : Bool */;
146 val
* var_other28
/* var other: nullable Object */;
147 short int var29
/* : Bool */;
148 short int var30
/* : Bool */;
149 short int var31
/* : Bool */;
151 val
* var33
/* : String */;
152 char* var34
/* : NativeString */;
153 long var35
/* : Int */;
154 val
* var36
/* : FlatString */;
155 static val
* varonce37
;
156 val
* var38
/* : String */;
157 char* var39
/* : NativeString */;
158 long var40
/* : Int */;
159 val
* var41
/* : FlatString */;
160 val
* var42
/* : Array[Object] */;
161 long var43
/* : Int */;
162 val
* var44
/* : NativeArray[Object] */;
163 val
* var45
/* : String */;
164 val
* var46
/* : HashSet[ANode] */;
165 val
* var48
/* : HashSet[ANode] */;
166 short int var49
/* : Bool */;
167 static val
* varonce50
;
168 val
* var51
/* : String */;
169 char* var52
/* : NativeString */;
170 long var53
/* : Int */;
171 val
* var54
/* : FlatString */;
172 val
* var55
/* : HashSet[ANode] */;
173 val
* var57
/* : HashSet[ANode] */;
174 short int var58
/* : Bool */;
175 short int var59
/* : Bool */;
176 val
* var60
/* : nullable ANode */;
177 val
* var62
/* : nullable ANode */;
178 val
* var63
/* : Location */;
179 val
* var65
/* : Location */;
182 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
183 var2
= self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
190 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
191 var5
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
192 if (unlikely(var5
== NULL
)) {
193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
194 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
202 var6
= list__List__length(var3
);
206 { /* Inline kernel#Int#> (var6,var7) on <var6:Int> */
207 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
208 /* <var7:Int> isa OTHER */
209 var10
= 1; /* easy <var7:Int> isa OTHER*/
210 if (unlikely(!var10
)) {
211 var_class_name
= type_kernel__Int
.name
;
212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
213 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
224 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
225 var14
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___path
].val
; /* _path on <var_v:ASTValidationVisitor> */
226 if (unlikely(var14
== NULL
)) {
227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
228 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
237 var16
= list__List___91d_93d(var12
, var15
);
239 var_path_parent
= var16
;
241 if (var_parent
== NULL
) {
242 var18
= 1; /* is null */
244 var18
= 0; /* arg is null but recv is not */
247 { /* Inline kernel#Object#== (var_parent,var17) on <var_parent:nullable ANode> */
250 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
251 var23
= var_parent
== var_other
;
265 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
266 self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
272 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
273 var_other28
= var_path_parent
;
275 var30
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_other28
) /* == on <var_parent:nullable ANode(ANode)>*/;
287 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
288 self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
= var_path_parent
; /* _parent on <self:ANode> */
295 var34
= "PARENT: expected parent: ";
297 var36
= string__NativeString__to_s_with_length(var34
, var35
);
306 var41
= string__NativeString__to_s_with_length(var39
, var40
);
310 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
311 { /* var42 = array_instance Array[Object] */
313 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
314 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
315 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_path_parent
;
316 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
317 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var_parent
;
319 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
323 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
326 parser_nodes__ANode__debug(self
, var45
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
334 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
335 var48
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
336 if (unlikely(var48
== NULL
)) {
337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
338 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
346 var49
= hash_collection__HashSet__has(var46
, self
);
352 var52
= "DUPLICATE: already seen node. NOTATREE";
354 var54
= string__NativeString__to_s_with_length(var52
, var53
);
359 parser_nodes__ANode__debug(self
, var51
); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
364 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
365 var57
= var_v
->attrs
[COLOR_astvalidation__ASTValidationVisitor___seen
].val
; /* _seen on <var_v:ASTValidationVisitor> */
366 if (unlikely(var57
== NULL
)) {
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
368 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
376 hash_collection__HashSet__add(var55
, self
); /* Direct call hash_collection#HashSet#add on <var55:HashSet[ANode]>*/
378 var58
= self
->attrs
[COLOR_parser_nodes__ANode___location
].val
!= NULL
; /* _location on <self:ANode> */
382 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
383 var62
= self
->attrs
[COLOR_parser_nodes__ANode___parent
].val
; /* _parent on <self:ANode> */
389 PRINT_ERROR("Runtime error: %s", "Receiver is null");
390 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 56);
393 { /* Inline parser_nodes#ANode#location (var60) on <var60:nullable ANode> */
394 if (unlikely(var60
== NULL
)) {
395 PRINT_ERROR("Runtime error: %s", "Receiver is null");
396 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
399 var65
= var60
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var60:nullable ANode> */
400 if (unlikely(var65
== NULL
)) {
401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
402 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
409 self
->attrs
[COLOR_parser_nodes__ANode___location
].val
= var63
; /* _location on <self:ANode> */
413 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
417 /* method astvalidation#ANode#accept_ast_validation for (self: Object, ASTValidationVisitor) */
418 void VIRTUAL_astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
419 astvalidation__ANode__accept_ast_validation(self
, p0
); /* Direct call astvalidation#ANode#accept_ast_validation on <self:Object(ANode)>*/
422 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
423 void astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
424 val
* var_v
/* var v: ASTValidationVisitor */;
428 /* method astvalidation#AAnnotations#accept_ast_validation for (self: Object, ASTValidationVisitor) */
429 void VIRTUAL_astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
430 val
* var_v
/* var v: ASTValidationVisitor */;
431 { /* Inline astvalidation#AAnnotations#accept_ast_validation (self,p0) on <self:Object(AAnnotations)> */
437 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
438 void astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
439 val
* var_v
/* var v: ASTValidationVisitor */;
440 short int var
/* : Bool */;
441 val
* var1
/* : nullable MType */;
442 val
* var2
/* : null */;
443 short int var3
/* : Bool */;
444 short int var4
/* : Bool */;
445 val
* var_other
/* var other: nullable Object */;
446 short int var6
/* : Bool */;
447 short int var8
/* : Bool */;
448 short int var_
/* var : Bool */;
449 short int var9
/* : Bool */;
450 short int var11
/* : Bool */;
451 short int var12
/* : Bool */;
453 val
* var13
/* : String */;
454 char* var14
/* : NativeString */;
455 long var15
/* : Int */;
456 val
* var16
/* : FlatString */;
459 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__AExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:AExpr>*/;
462 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AExpr>*/;
466 var3
= 1; /* is null */
468 var3
= 0; /* arg is null but recv is not */
471 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable MType> */
474 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
475 var8
= var1
== var_other
;
490 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
491 var11
= self
->attrs
[COLOR_typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
505 var14
= "TYPING: untyped expression";
507 var16
= string__NativeString__to_s_with_length(var14
, var15
);
512 parser_nodes__ANode__debug(self
, var13
); /* Direct call parser_nodes#ANode#debug on <self:AExpr>*/
518 /* method astvalidation#AExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
519 void VIRTUAL_astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
520 astvalidation__AExpr__accept_ast_validation(self
, p0
); /* Direct call astvalidation#AExpr#accept_ast_validation on <self:Object(AExpr)>*/
523 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
524 void astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
525 val
* var_v
/* var v: ASTValidationVisitor */;
527 val
* var
/* : String */;
528 char* var1
/* : NativeString */;
529 long var2
/* : Int */;
530 val
* var3
/* : FlatString */;
533 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__APlaceholderExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:APlaceholderExpr>*/;
538 var1
= "PARENT: remaining placeholder";
540 var3
= string__NativeString__to_s_with_length(var1
, var2
);
545 parser_nodes__ANode__debug(self
, var
); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/
549 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
550 void VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
551 astvalidation__APlaceholderExpr__accept_ast_validation(self
, p0
); /* Direct call astvalidation#APlaceholderExpr#accept_ast_validation on <self:Object(APlaceholderExpr)>*/