1 #include "nit__annotation.sep.0.h"
2 /* method annotation#Prod#get_single_annotation for (self: Prod, String, ModelBuilder): nullable AAnnotation */
3 val
* nit__annotation___Prod___get_single_annotation(val
* self
, val
* p0
, val
* p1
) {
4 val
* var
/* : nullable AAnnotation */;
5 val
* var_name
/* var name: String */;
6 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7 val
* var1
/* : Array[AAnnotation] */;
8 val
* var_res
/* var res: Array[AAnnotation] */;
9 short int var2
/* : Bool */;
10 val
* var3
/* : null */;
11 long var4
/* : Int */;
12 long var6
/* : Int */;
13 long var7
/* : Int */;
14 short int var8
/* : Bool */;
15 short int var10
/* : Bool */;
18 const char* var_class_name
;
19 short int var11
/* : Bool */;
20 long var12
/* : Int */;
21 val
* var13
/* : nullable Object */;
23 val
* var14
/* : String */;
24 char* var15
/* : NativeString */;
25 long var16
/* : Int */;
26 val
* var17
/* : FlatString */;
27 static val
* varonce18
;
28 val
* var19
/* : String */;
29 char* var20
/* : NativeString */;
30 long var21
/* : Int */;
31 val
* var22
/* : FlatString */;
32 long var23
/* : Int */;
33 val
* var24
/* : nullable Object */;
34 val
* var25
/* : Location */;
35 val
* var27
/* : Location */;
36 long var28
/* : Int */;
37 long var30
/* : Int */;
38 val
* var31
/* : Array[Object] */;
39 long var32
/* : Int */;
40 val
* var33
/* : NativeArray[Object] */;
41 val
* var34
/* : Object */;
42 val
* var35
/* : String */;
43 val
* var36
/* : nullable Object */;
45 var_modelbuilder
= p1
;
47 var1
= nit___nit__Prod___get_annotations(self
, var_name
);
51 var2
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_res
);
60 { /* Inline array#AbstractArrayRead#length (var_res) on <var_res:Array[AAnnotation]> */
61 var6
= var_res
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_res:Array[AAnnotation]> */
68 { /* Inline kernel#Int#> (var4,var7) on <var4:Int> */
69 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
70 /* <var7:Int> isa OTHER */
71 var10
= 1; /* easy <var7:Int> isa OTHER*/
72 if (unlikely(!var10
)) {
73 var_class_name
= type_standard__Int
.name
;
74 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
75 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
87 var13
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_res
, var12
);
92 var15
= "Error: multiple annotation `";
94 var17
= standard___standard__NativeString___to_s_with_length(var15
, var16
);
101 var20
= "`. A previous one is defined line ";
103 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
109 var24
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_res
, var23
);
112 { /* Inline parser_nodes#ANode#location (var24) on <var24:nullable Object(AAnnotation)> */
113 var27
= var24
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var24:nullable Object(AAnnotation)> */
114 if (unlikely(var27
== NULL
)) {
115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 23);
124 { /* Inline location#Location#line_start (var25) on <var25:Location> */
125 var30
= var25
->attrs
[COLOR_nit__location__Location___line_start
].l
; /* _line_start on <var25:Location> */
130 var31
= NEW_standard__Array(&type_standard__Array__standard__Object
);
131 { /* var31 = array_instance Array[Object] */
133 var33
= NEW_standard__NativeArray(var32
, &type_standard__NativeArray__standard__Object
);
134 ((struct instance_standard__NativeArray
*)var33
)->values
[0] = (val
*) var14
;
135 ((struct instance_standard__NativeArray
*)var33
)->values
[1] = (val
*) var_name
;
136 ((struct instance_standard__NativeArray
*)var33
)->values
[2] = (val
*) var19
;
137 var34
= BOX_standard__Int(var28
); /* autobox from Int to Object */
138 ((struct instance_standard__NativeArray
*)var33
)->values
[3] = (val
*) var34
;
140 ((void (*)(val
* self
, val
* p0
, long p1
))(var31
->class->vft
[COLOR_standard__array__Array__with_native
]))(var31
, var33
, var32
) /* with_native on <var31:Array[Object]>*/;
144 var35
= ((val
* (*)(val
* self
))(var31
->class->vft
[COLOR_standard__string__Object__to_s
]))(var31
) /* to_s on <var31:Array[Object]>*/;
147 nit___nit__ModelBuilder___error(var_modelbuilder
, var13
, var35
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
152 var36
= standard___standard__SequenceRead___Collection__first(var_res
);
159 /* method annotation#AAnnotation#arg_as_string for (self: AAnnotation, ModelBuilder): nullable String */
160 val
* nit__annotation___AAnnotation___arg_as_string(val
* self
, val
* p0
) {
161 val
* var
/* : nullable String */;
162 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
163 val
* var1
/* : ANodes[AExpr] */;
164 val
* var3
/* : ANodes[AExpr] */;
165 val
* var_args
/* var args: ANodes[AExpr] */;
166 long var4
/* : Int */;
167 long var5
/* : Int */;
168 short int var6
/* : Bool */;
169 short int var8
/* : Bool */;
170 val
* var9
/* : nullable Object */;
171 val
* var10
/* : nullable String */;
172 val
* var_arg
/* var arg: nullable String */;
173 val
* var11
/* : null */;
174 short int var12
/* : Bool */;
175 short int var13
/* : Bool */;
176 val
* var_other
/* var other: nullable Object */;
177 short int var15
/* : Bool */;
178 short int var16
/* : Bool */;
180 val
* var17
/* : String */;
181 char* var18
/* : NativeString */;
182 long var19
/* : Int */;
183 val
* var20
/* : FlatString */;
184 val
* var21
/* : String */;
185 static val
* varonce22
;
186 val
* var23
/* : String */;
187 char* var24
/* : NativeString */;
188 long var25
/* : Int */;
189 val
* var26
/* : FlatString */;
190 val
* var27
/* : Array[Object] */;
191 long var28
/* : Int */;
192 val
* var29
/* : NativeArray[Object] */;
193 val
* var30
/* : String */;
194 val
* var31
/* : null */;
195 var_modelbuilder
= p0
;
197 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
198 var3
= self
->attrs
[COLOR_nit__parser_nodes__AAnnotation___n_args
].val
; /* _n_args on <self:AAnnotation> */
199 if (unlikely(var3
== NULL
)) {
200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2552);
210 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__length(var_args
);
214 { /* Inline kernel#Int#== (var4,var5) on <var4:Int> */
223 var9
= standard___standard__SequenceRead___Collection__first(var_args
);
226 var10
= nit__literal___AExpr___as_string(var9
);
230 if (var_arg
== NULL
) {
231 var12
= 0; /* is null */
233 var12
= 1; /* arg is null and recv is not */
236 { /* Inline kernel#Object#!= (var_arg,var11) on <var_arg:nullable String> */
239 var15
= ((short int (*)(val
* self
, val
* p0
))(var_arg
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_arg
, var_other
) /* == on <var_arg:nullable String(String)>*/;
258 var18
= "Annotation error: \"";
260 var20
= standard___standard__NativeString___to_s_with_length(var18
, var19
);
265 var21
= nit___nit__AAnnotation___name(self
);
270 var24
= "\" expects a single String as argument.";
272 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
276 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
277 { /* var27 = array_instance Array[Object] */
279 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
280 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var17
;
281 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
282 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
284 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
288 var30
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
291 nit___nit__ModelBuilder___error(var_modelbuilder
, self
, var30
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
299 /* method annotation#AAnnotation#arg_as_id for (self: AAnnotation, ModelBuilder): nullable String */
300 val
* nit__annotation___AAnnotation___arg_as_id(val
* self
, val
* p0
) {
301 val
* var
/* : nullable String */;
302 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
303 val
* var1
/* : ANodes[AExpr] */;
304 val
* var3
/* : ANodes[AExpr] */;
305 val
* var_args
/* var args: ANodes[AExpr] */;
306 long var4
/* : Int */;
307 long var5
/* : Int */;
308 short int var6
/* : Bool */;
309 short int var8
/* : Bool */;
310 val
* var9
/* : nullable Object */;
311 val
* var10
/* : nullable String */;
312 val
* var_arg
/* var arg: nullable String */;
313 val
* var11
/* : null */;
314 short int var12
/* : Bool */;
315 short int var13
/* : Bool */;
316 val
* var_other
/* var other: nullable Object */;
317 short int var15
/* : Bool */;
318 short int var16
/* : Bool */;
320 val
* var17
/* : String */;
321 char* var18
/* : NativeString */;
322 long var19
/* : Int */;
323 val
* var20
/* : FlatString */;
324 val
* var21
/* : String */;
325 static val
* varonce22
;
326 val
* var23
/* : String */;
327 char* var24
/* : NativeString */;
328 long var25
/* : Int */;
329 val
* var26
/* : FlatString */;
330 val
* var27
/* : Array[Object] */;
331 long var28
/* : Int */;
332 val
* var29
/* : NativeArray[Object] */;
333 val
* var30
/* : String */;
334 val
* var31
/* : null */;
335 var_modelbuilder
= p0
;
337 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
338 var3
= self
->attrs
[COLOR_nit__parser_nodes__AAnnotation___n_args
].val
; /* _n_args on <self:AAnnotation> */
339 if (unlikely(var3
== NULL
)) {
340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2552);
350 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__length(var_args
);
354 { /* Inline kernel#Int#== (var4,var5) on <var4:Int> */
363 var9
= standard___standard__SequenceRead___Collection__first(var_args
);
366 var10
= nit__literal___AExpr___as_id(var9
);
370 if (var_arg
== NULL
) {
371 var12
= 0; /* is null */
373 var12
= 1; /* arg is null and recv is not */
376 { /* Inline kernel#Object#!= (var_arg,var11) on <var_arg:nullable String> */
379 var15
= ((short int (*)(val
* self
, val
* p0
))(var_arg
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_arg
, var_other
) /* == on <var_arg:nullable String(String)>*/;
398 var18
= "Annotation error: \"";
400 var20
= standard___standard__NativeString___to_s_with_length(var18
, var19
);
405 var21
= nit___nit__AAnnotation___name(self
);
410 var24
= "\" expects a single identifier as argument.";
412 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
416 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
417 { /* var27 = array_instance Array[Object] */
419 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
420 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var17
;
421 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
422 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
424 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
428 var30
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
431 nit___nit__ModelBuilder___error(var_modelbuilder
, self
, var30
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/