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
* var1
/* : List[ANode] */;
7 val
* var2
/* : nullable Object */;
9 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(self
) /* path on <self:ASTValidationVisitor>*/;
10 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Sequence__unshift
]))(var
, var_node
) /* unshift on <var:List[ANode]>*/;
11 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_astvalidation__ANode__accept_ast_validation
]))(var_node
, self
) /* accept_ast_validation on <var_node:ANode>*/;
12 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(self
) /* path on <self:ASTValidationVisitor>*/;
13 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var1
) /* shift on <var1:List[ANode]>*/;
17 /* method astvalidation#ASTValidationVisitor#visit for (self: Object, ANode) */
18 void VIRTUAL_astvalidation__ASTValidationVisitor__visit(val
* self
, val
* p0
) {
19 astvalidation__ASTValidationVisitor__visit(self
, p0
);
22 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
23 val
* astvalidation__ASTValidationVisitor__path(val
* self
) {
24 val
* var
/* : List[ANode] */;
25 val
* var1
/* : List[ANode] */;
26 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dpath
].val
; /* @path on <self:ASTValidationVisitor> */
28 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @path", "src/astvalidation.nit", 30);
35 /* method astvalidation#ASTValidationVisitor#path for (self: Object): List[ANode] */
36 val
* VIRTUAL_astvalidation__ASTValidationVisitor__path(val
* self
) {
37 val
* var
/* : List[ANode] */;
38 val
* var1
/* : List[ANode] */;
39 var1
= astvalidation__ASTValidationVisitor__path(self
);
44 /* method astvalidation#ASTValidationVisitor#path= for (self: ASTValidationVisitor, List[ANode]) */
45 void astvalidation__ASTValidationVisitor__path_61d(val
* self
, val
* p0
) {
46 self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dpath
].val
= p0
; /* @path on <self:ASTValidationVisitor> */
49 /* method astvalidation#ASTValidationVisitor#path= for (self: Object, List[ANode]) */
50 void VIRTUAL_astvalidation__ASTValidationVisitor__path_61d(val
* self
, val
* p0
) {
51 astvalidation__ASTValidationVisitor__path_61d(self
, p0
);
54 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
55 val
* astvalidation__ASTValidationVisitor__seen(val
* self
) {
56 val
* var
/* : HashSet[ANode] */;
57 val
* var1
/* : HashSet[ANode] */;
58 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dseen
].val
; /* @seen on <self:ASTValidationVisitor> */
60 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @seen", "src/astvalidation.nit", 31);
67 /* method astvalidation#ASTValidationVisitor#seen for (self: Object): HashSet[ANode] */
68 val
* VIRTUAL_astvalidation__ASTValidationVisitor__seen(val
* self
) {
69 val
* var
/* : HashSet[ANode] */;
70 val
* var1
/* : HashSet[ANode] */;
71 var1
= astvalidation__ASTValidationVisitor__seen(self
);
76 /* method astvalidation#ASTValidationVisitor#seen= for (self: ASTValidationVisitor, HashSet[ANode]) */
77 void astvalidation__ASTValidationVisitor__seen_61d(val
* self
, val
* p0
) {
78 self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dseen
].val
= p0
; /* @seen on <self:ASTValidationVisitor> */
81 /* method astvalidation#ASTValidationVisitor#seen= for (self: Object, HashSet[ANode]) */
82 void VIRTUAL_astvalidation__ASTValidationVisitor__seen_61d(val
* self
, val
* p0
) {
83 astvalidation__ASTValidationVisitor__seen_61d(self
, p0
);
86 /* method astvalidation#ASTValidationVisitor#init for (self: ASTValidationVisitor) */
87 void astvalidation__ASTValidationVisitor__init(val
* self
) {
88 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:ASTValidationVisitor>*/;
91 /* method astvalidation#ASTValidationVisitor#init for (self: Object) */
92 void VIRTUAL_astvalidation__ASTValidationVisitor__init(val
* self
) {
93 astvalidation__ASTValidationVisitor__init(self
);
96 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
97 void astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
98 val
* var_v
/* var v: ASTValidationVisitor */;
99 val
* var
/* : nullable ANode */;
100 val
* var_parent
/* var parent: nullable ANode */;
101 val
* var1
/* : List[ANode] */;
102 long var2
/* : Int */;
103 long var3
/* : Int */;
104 short int var4
/* : Bool */;
105 short int var6
/* : Bool */;
108 short int var7
/* : Bool */;
109 val
* var8
/* : List[ANode] */;
110 long var9
/* : Int */;
111 val
* var10
/* : nullable Object */;
112 val
* var_path_parent
/* var path_parent: ANode */;
113 val
* var11
/* : null */;
114 short int var12
/* : Bool */;
115 short int var13
/* : Bool */;
117 val
* var14
/* : String */;
118 char* var15
/* : NativeString */;
119 long var16
/* : Int */;
120 val
* var17
/* : String */;
121 static val
* varonce18
;
122 val
* var19
/* : String */;
123 char* var20
/* : NativeString */;
124 long var21
/* : Int */;
125 val
* var22
/* : String */;
126 val
* var23
/* : Array[Object] */;
127 long var24
/* : Int */;
128 val
* var25
/* : NativeArray[Object] */;
129 val
* var26
/* : String */;
130 val
* var27
/* : HashSet[ANode] */;
131 short int var28
/* : Bool */;
132 static val
* varonce29
;
133 val
* var30
/* : String */;
134 char* var31
/* : NativeString */;
135 long var32
/* : Int */;
136 val
* var33
/* : String */;
137 val
* var34
/* : HashSet[ANode] */;
138 val
* var35
/* : nullable Location */;
139 val
* var36
/* : null */;
140 short int var37
/* : Bool */;
141 val
* var38
/* : nullable ANode */;
142 val
* var39
/* : Location */;
144 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:ANode>*/;
146 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(var_v
) /* path on <var_v:ASTValidationVisitor>*/;
147 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var1
) /* length on <var1:List[ANode]>*/;
149 { /* Inline kernel#Int#> (var2,var3) */
150 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
151 /* <var3:Int> isa OTHER */
152 var6
= 1; /* easy <var3:Int> isa OTHER*/
154 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
163 var8
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(var_v
) /* path on <var_v:ASTValidationVisitor>*/;
165 var10
= ((val
* (*)(val
*, long))(var8
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var8
, var9
) /* [] on <var8:List[ANode]>*/;
166 var_path_parent
= var10
;
168 if (var_parent
== NULL
) {
169 var12
= 1; /* is null */
171 var12
= 0; /* arg is null but recv is not */
174 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent_61d
]))(self
, var_path_parent
) /* parent= on <self:ANode>*/;
176 var13
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_parent
, var_path_parent
) /* != on <var_parent:nullable ANode(ANode)>*/;
178 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent_61d
]))(self
, var_path_parent
) /* parent= on <self:ANode>*/;
182 var15
= "PARENT: expected parent: ";
184 var17
= string__NativeString__to_s_with_length(var15
, var16
);
193 var22
= string__NativeString__to_s_with_length(var20
, var21
);
197 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
198 { /* var23 = array_instance Array[Object] */
200 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
201 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var14
;
202 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_path_parent
;
203 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var19
;
204 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var_parent
;
205 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
206 CHECK_NEW_array__Array(var23
);
208 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
209 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var26
) /* debug on <self:ANode>*/;
215 var27
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__seen
]))(var_v
) /* seen on <var_v:ASTValidationVisitor>*/;
216 var28
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var27
, self
) /* has on <var27:HashSet[ANode]>*/;
221 var31
= "DUPLICATE: already seen node. NOTATREE";
223 var33
= string__NativeString__to_s_with_length(var31
, var32
);
227 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var30
) /* debug on <self:ANode>*/;
230 var34
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__seen
]))(var_v
) /* seen on <var_v:ASTValidationVisitor>*/;
231 ((void (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var34
, self
) /* add on <var34:HashSet[ANode]>*/;
232 var35
= self
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <self:ANode> */
235 var37
= 1; /* is null */
237 var37
= 0; /* arg is null but recv is not */
240 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:ANode>*/;
242 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/astvalidation.nit", 57);
245 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var38
) /* location on <var38:nullable ANode>*/;
247 self
->attrs
[COLOR_parser_nodes__ANode___location
].val
= var39
; /* _location on <self:ANode> */
250 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
253 /* method astvalidation#ANode#accept_ast_validation for (self: Object, ASTValidationVisitor) */
254 void VIRTUAL_astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
255 astvalidation__ANode__accept_ast_validation(self
, p0
);
258 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
259 void astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
260 val
* var_v
/* var v: ASTValidationVisitor */;
264 /* method astvalidation#AAnnotations#accept_ast_validation for (self: Object, ASTValidationVisitor) */
265 void VIRTUAL_astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
266 astvalidation__AAnnotations__accept_ast_validation(self
, p0
);
269 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
270 void astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
271 val
* var_v
/* var v: ASTValidationVisitor */;
272 short int var
/* : Bool */;
273 val
* var1
/* : nullable MType */;
274 val
* var2
/* : null */;
275 short int var3
/* : Bool */;
276 short int var_
/* var : Bool */;
277 short int var4
/* : Bool */;
278 short int var5
/* : Bool */;
280 val
* var6
/* : String */;
281 char* var7
/* : NativeString */;
282 long var8
/* : Int */;
283 val
* var9
/* : String */;
285 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__AExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:AExpr>*/;
286 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AExpr>*/;
289 var3
= 1; /* is null */
291 var3
= 0; /* arg is null but recv is not */
295 var4
= ((short int (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__is_typed
]))(self
) /* is_typed on <self:AExpr>*/;
305 var7
= "TYPING: untyped expression";
307 var9
= string__NativeString__to_s_with_length(var7
, var8
);
311 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var6
) /* debug on <self:AExpr>*/;
316 /* method astvalidation#AExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
317 void VIRTUAL_astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
318 astvalidation__AExpr__accept_ast_validation(self
, p0
);
321 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
322 void astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
323 val
* var_v
/* var v: ASTValidationVisitor */;
325 val
* var
/* : String */;
326 char* var1
/* : NativeString */;
327 long var2
/* : Int */;
328 val
* var3
/* : String */;
330 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__APlaceholderExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:APlaceholderExpr>*/;
334 var1
= "PARENT: remaining placeholder";
336 var3
= string__NativeString__to_s_with_length(var1
, var2
);
340 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var
) /* debug on <self:APlaceholderExpr>*/;
343 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
344 void VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
345 astvalidation__APlaceholderExpr__accept_ast_validation(self
, p0
);