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", "Uninitialized attribute @path");
29 fprintf(stderr
, " (%s:%d)\n", "src/astvalidation.nit", 30);
36 /* method astvalidation#ASTValidationVisitor#path for (self: Object): List[ANode] */
37 val
* VIRTUAL_astvalidation__ASTValidationVisitor__path(val
* self
) {
38 val
* var
/* : List[ANode] */;
39 val
* var1
/* : List[ANode] */;
40 var1
= astvalidation__ASTValidationVisitor__path(self
);
45 /* method astvalidation#ASTValidationVisitor#path= for (self: ASTValidationVisitor, List[ANode]) */
46 void astvalidation__ASTValidationVisitor__path_61d(val
* self
, val
* p0
) {
47 self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dpath
].val
= p0
; /* @path on <self:ASTValidationVisitor> */
50 /* method astvalidation#ASTValidationVisitor#path= for (self: Object, List[ANode]) */
51 void VIRTUAL_astvalidation__ASTValidationVisitor__path_61d(val
* self
, val
* p0
) {
52 astvalidation__ASTValidationVisitor__path_61d(self
, p0
);
55 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
56 val
* astvalidation__ASTValidationVisitor__seen(val
* self
) {
57 val
* var
/* : HashSet[ANode] */;
58 val
* var1
/* : HashSet[ANode] */;
59 var1
= self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dseen
].val
; /* @seen on <self:ASTValidationVisitor> */
61 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @seen");
62 fprintf(stderr
, " (%s:%d)\n", "src/astvalidation.nit", 31);
69 /* method astvalidation#ASTValidationVisitor#seen for (self: Object): HashSet[ANode] */
70 val
* VIRTUAL_astvalidation__ASTValidationVisitor__seen(val
* self
) {
71 val
* var
/* : HashSet[ANode] */;
72 val
* var1
/* : HashSet[ANode] */;
73 var1
= astvalidation__ASTValidationVisitor__seen(self
);
78 /* method astvalidation#ASTValidationVisitor#seen= for (self: ASTValidationVisitor, HashSet[ANode]) */
79 void astvalidation__ASTValidationVisitor__seen_61d(val
* self
, val
* p0
) {
80 self
->attrs
[COLOR_astvalidation__ASTValidationVisitor___64dseen
].val
= p0
; /* @seen on <self:ASTValidationVisitor> */
83 /* method astvalidation#ASTValidationVisitor#seen= for (self: Object, HashSet[ANode]) */
84 void VIRTUAL_astvalidation__ASTValidationVisitor__seen_61d(val
* self
, val
* p0
) {
85 astvalidation__ASTValidationVisitor__seen_61d(self
, p0
);
88 /* method astvalidation#ASTValidationVisitor#init for (self: ASTValidationVisitor) */
89 void astvalidation__ASTValidationVisitor__init(val
* self
) {
90 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:ASTValidationVisitor>*/;
93 /* method astvalidation#ASTValidationVisitor#init for (self: Object) */
94 void VIRTUAL_astvalidation__ASTValidationVisitor__init(val
* self
) {
95 astvalidation__ASTValidationVisitor__init(self
);
98 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
99 void astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
100 val
* var_v
/* var v: ASTValidationVisitor */;
101 val
* var
/* : nullable ANode */;
102 val
* var_parent
/* var parent: nullable ANode */;
103 val
* var1
/* : List[ANode] */;
104 long var2
/* : Int */;
105 long var3
/* : Int */;
106 short int var4
/* : Bool */;
107 short int var6
/* : Bool */;
110 const char* var_class_name
;
111 short int var7
/* : Bool */;
112 val
* var8
/* : List[ANode] */;
113 long var9
/* : Int */;
114 val
* var10
/* : nullable Object */;
115 val
* var_path_parent
/* var path_parent: ANode */;
116 val
* var11
/* : null */;
117 short int var12
/* : Bool */;
118 short int var13
/* : Bool */;
120 val
* var14
/* : String */;
121 char* var15
/* : NativeString */;
122 long var16
/* : Int */;
123 val
* var17
/* : String */;
124 static val
* varonce18
;
125 val
* var19
/* : String */;
126 char* var20
/* : NativeString */;
127 long var21
/* : Int */;
128 val
* var22
/* : String */;
129 val
* var23
/* : Array[Object] */;
130 long var24
/* : Int */;
131 val
* var25
/* : NativeArray[Object] */;
132 val
* var26
/* : String */;
133 val
* var27
/* : HashSet[ANode] */;
134 short int var28
/* : Bool */;
135 static val
* varonce29
;
136 val
* var30
/* : String */;
137 char* var31
/* : NativeString */;
138 long var32
/* : Int */;
139 val
* var33
/* : String */;
140 val
* var34
/* : HashSet[ANode] */;
141 val
* var35
/* : nullable Location */;
142 val
* var36
/* : null */;
143 short int var37
/* : Bool */;
144 val
* var38
/* : nullable ANode */;
145 val
* var39
/* : Location */;
147 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:ANode>*/;
149 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(var_v
) /* path on <var_v:ASTValidationVisitor>*/;
150 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var1
) /* length on <var1:List[ANode]>*/;
152 { /* Inline kernel#Int#> (var2,var3) */
153 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
154 /* <var3:Int> isa OTHER */
155 var6
= 1; /* easy <var3:Int> isa OTHER*/
157 var_class_name
= type_kernel__Int
.name
;
158 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
159 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
168 var8
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__path
]))(var_v
) /* path on <var_v:ASTValidationVisitor>*/;
170 var10
= ((val
* (*)(val
*, long))(var8
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var8
, var9
) /* [] on <var8:List[ANode]>*/;
171 var_path_parent
= var10
;
173 if (var_parent
== NULL
) {
174 var12
= 1; /* is null */
176 var12
= 0; /* arg is null but recv is not */
179 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent_61d
]))(self
, var_path_parent
) /* parent= on <self:ANode>*/;
181 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)>*/;
183 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent_61d
]))(self
, var_path_parent
) /* parent= on <self:ANode>*/;
187 var15
= "PARENT: expected parent: ";
189 var17
= string__NativeString__to_s_with_length(var15
, var16
);
198 var22
= string__NativeString__to_s_with_length(var20
, var21
);
202 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
203 { /* var23 = array_instance Array[Object] */
205 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
206 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var14
;
207 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_path_parent
;
208 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var19
;
209 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var_parent
;
210 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
212 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
213 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var26
) /* debug on <self:ANode>*/;
219 var27
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__seen
]))(var_v
) /* seen on <var_v:ASTValidationVisitor>*/;
220 var28
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var27
, self
) /* has on <var27:HashSet[ANode]>*/;
225 var31
= "DUPLICATE: already seen node. NOTATREE";
227 var33
= string__NativeString__to_s_with_length(var31
, var32
);
231 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var30
) /* debug on <self:ANode>*/;
234 var34
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_astvalidation__ASTValidationVisitor__seen
]))(var_v
) /* seen on <var_v:ASTValidationVisitor>*/;
235 ((void (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var34
, self
) /* add on <var34:HashSet[ANode]>*/;
236 var35
= self
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <self:ANode> */
239 var37
= 1; /* is null */
241 var37
= 0; /* arg is null but recv is not */
244 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:ANode>*/;
246 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
247 fprintf(stderr
, " (%s:%d)\n", "src/astvalidation.nit", 57);
250 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var38
) /* location on <var38:nullable ANode>*/;
252 self
->attrs
[COLOR_parser_nodes__ANode___location
].val
= var39
; /* _location on <self:ANode> */
255 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
258 /* method astvalidation#ANode#accept_ast_validation for (self: Object, ASTValidationVisitor) */
259 void VIRTUAL_astvalidation__ANode__accept_ast_validation(val
* self
, val
* p0
) {
260 astvalidation__ANode__accept_ast_validation(self
, p0
);
263 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
264 void astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
265 val
* var_v
/* var v: ASTValidationVisitor */;
269 /* method astvalidation#AAnnotations#accept_ast_validation for (self: Object, ASTValidationVisitor) */
270 void VIRTUAL_astvalidation__AAnnotations__accept_ast_validation(val
* self
, val
* p0
) {
271 astvalidation__AAnnotations__accept_ast_validation(self
, p0
);
274 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
275 void astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
276 val
* var_v
/* var v: ASTValidationVisitor */;
277 short int var
/* : Bool */;
278 val
* var1
/* : nullable MType */;
279 val
* var2
/* : null */;
280 short int var3
/* : Bool */;
281 short int var_
/* var : Bool */;
282 short int var4
/* : Bool */;
283 short int var5
/* : Bool */;
285 val
* var6
/* : String */;
286 char* var7
/* : NativeString */;
287 long var8
/* : Int */;
288 val
* var9
/* : String */;
290 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__AExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:AExpr>*/;
291 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AExpr>*/;
294 var3
= 1; /* is null */
296 var3
= 0; /* arg is null but recv is not */
300 var4
= ((short int (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__is_typed
]))(self
) /* is_typed on <self:AExpr>*/;
310 var7
= "TYPING: untyped expression";
312 var9
= string__NativeString__to_s_with_length(var7
, var8
);
316 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var6
) /* debug on <self:AExpr>*/;
321 /* method astvalidation#AExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
322 void VIRTUAL_astvalidation__AExpr__accept_ast_validation(val
* self
, val
* p0
) {
323 astvalidation__AExpr__accept_ast_validation(self
, p0
);
326 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
327 void astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
328 val
* var_v
/* var v: ASTValidationVisitor */;
330 val
* var
/* : String */;
331 char* var1
/* : NativeString */;
332 long var2
/* : Int */;
333 val
* var3
/* : String */;
335 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_astvalidation__APlaceholderExpr__accept_ast_validation
]))(self
, p0
) /* accept_ast_validation on <self:APlaceholderExpr>*/;
339 var1
= "PARENT: remaining placeholder";
341 var3
= string__NativeString__to_s_with_length(var1
, var2
);
345 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var
) /* debug on <self:APlaceholderExpr>*/;
348 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
349 void VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation(val
* self
, val
* p0
) {
350 astvalidation__APlaceholderExpr__accept_ast_validation(self
, p0
);