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 long var3
/* : Int */;
11 long var5
/* : Int */;
12 short int var6
/* : Bool */;
13 short int var8
/* : Bool */;
16 const char* var_class_name
;
17 short int var9
/* : Bool */;
18 val
* var10
/* : nullable Object */;
19 val
* var11
/* : NativeArray[String] */;
21 static val
* varonce12
;
22 val
* var13
/* : String */;
23 char* var14
/* : NativeString */;
24 val
* var15
/* : FlatString */;
25 static val
* varonce16
;
26 val
* var17
/* : String */;
27 char* var18
/* : NativeString */;
28 val
* var19
/* : FlatString */;
29 static val
* varonce20
;
30 val
* var21
/* : String */;
31 char* var22
/* : NativeString */;
32 val
* var23
/* : FlatString */;
33 val
* var24
/* : nullable Object */;
34 val
* var25
/* : Location */;
35 val
* var27
/* : Location */;
36 long var28
/* : Int */;
37 long var30
/* : Int */;
38 val
* var31
/* : String */;
39 val
* var32
/* : String */;
40 val
* var33
/* : nullable Object */;
42 var_modelbuilder
= p1
;
44 var1
= nit___nit__Prod___get_annotations(self
, var_name
);
48 var2
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_res
);
56 { /* Inline array#AbstractArrayRead#length (var_res) on <var_res:Array[AAnnotation]> */
57 var5
= var_res
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_res:Array[AAnnotation]> */
63 { /* Inline kernel#Int#> (var3,1l) on <var3:Int> */
64 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
65 /* <1l:Int> isa OTHER */
66 var8
= 1; /* easy <1l:Int> isa OTHER*/
67 if (unlikely(!var8
)) {
68 var_class_name
= type_standard__Int
.name
;
69 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
70 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
81 var10
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_res
, 1l);
83 if (unlikely(varonce
==NULL
)) {
84 var11
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
85 if (likely(varonce12
!=NULL
)) {
88 var14
= "Syntax Error: multiple `";
89 var15
= standard___standard__NativeString___to_s_with_length(var14
, 24l);
93 ((struct instance_standard__NativeArray
*)var11
)->values
[0]=var13
;
94 if (likely(varonce16
!=NULL
)) {
97 var18
= "`. A previous one is defined line ";
98 var19
= standard___standard__NativeString___to_s_with_length(var18
, 34l);
102 ((struct instance_standard__NativeArray
*)var11
)->values
[2]=var17
;
103 if (likely(varonce20
!=NULL
)) {
107 var23
= standard___standard__NativeString___to_s_with_length(var22
, 1l);
111 ((struct instance_standard__NativeArray
*)var11
)->values
[4]=var21
;
116 ((struct instance_standard__NativeArray
*)var11
)->values
[1]=var_name
;
118 var24
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_res
, 0l);
121 { /* Inline parser_nodes#ANode#location (var24) on <var24:nullable Object(AAnnotation)> */
122 var27
= var24
->attrs
[COLOR_nit__parser_nodes__ANode___location
].val
; /* _location on <var24:nullable Object(AAnnotation)> */
123 if (unlikely(var27
== NULL
)) {
124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 24);
133 { /* Inline location#Location#line_start (var25) on <var25:Location> */
134 var30
= var25
->attrs
[COLOR_nit__location__Location___line_start
].l
; /* _line_start on <var25:Location> */
139 var31
= standard__string___Int___Object__to_s(var28
);
140 ((struct instance_standard__NativeArray
*)var11
)->values
[3]=var31
;
142 var32
= ((val
*(*)(val
* self
))(var11
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var11
); /* native_to_s on <var11:NativeArray[String]>*/
146 nit___nit__ModelBuilder___error(var_modelbuilder
, var10
, var32
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
151 var33
= standard___standard__SequenceRead___Collection__first(var_res
);
158 /* method annotation#AAnnotation#arg_as_string for (self: AAnnotation, ModelBuilder): nullable String */
159 val
* nit__annotation___AAnnotation___arg_as_string(val
* self
, val
* p0
) {
160 val
* var
/* : nullable String */;
161 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
162 val
* var1
/* : ANodes[AExpr] */;
163 val
* var3
/* : ANodes[AExpr] */;
164 val
* var_args
/* var args: ANodes[AExpr] */;
165 long var4
/* : Int */;
166 short int var5
/* : Bool */;
167 short int var7
/* : Bool */;
168 val
* var8
/* : nullable Object */;
169 val
* var9
/* : nullable String */;
170 val
* var_arg
/* var arg: nullable String */;
171 short int var10
/* : Bool */;
172 short int var11
/* : Bool */;
173 val
* var_other
/* var other: nullable Object */;
174 short int var13
/* : Bool */;
175 short int var14
/* : Bool */;
176 val
* var15
/* : NativeArray[String] */;
178 static val
* varonce16
;
179 val
* var17
/* : String */;
180 char* var18
/* : NativeString */;
181 val
* var19
/* : FlatString */;
182 static val
* varonce20
;
183 val
* var21
/* : String */;
184 char* var22
/* : NativeString */;
185 val
* var23
/* : FlatString */;
186 val
* var24
/* : String */;
187 val
* var25
/* : String */;
188 var_modelbuilder
= p0
;
190 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
191 var3
= self
->attrs
[COLOR_nit__parser_nodes__AAnnotation___n_args
].val
; /* _n_args on <self:AAnnotation> */
192 if (unlikely(var3
== NULL
)) {
193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
194 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2988);
203 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__length(var_args
);
206 { /* Inline kernel#Int#== (var4,1l) on <var4:Int> */
215 var8
= standard___standard__SequenceRead___Collection__first(var_args
);
218 var9
= nit__literal___AExpr___as_string(var8
);
221 if (var_arg
== NULL
) {
222 var10
= 0; /* is null */
224 var10
= 1; /* arg is null and recv is not */
227 { /* Inline kernel#Object#!= (var_arg,((val*)NULL)) on <var_arg:nullable String> */
228 var_other
= ((val
*)NULL
);
230 var13
= ((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)>*/
246 if (unlikely(varonce
==NULL
)) {
247 var15
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
248 if (likely(varonce16
!=NULL
)) {
251 var18
= "Syntax Error: `";
252 var19
= standard___standard__NativeString___to_s_with_length(var18
, 15l);
256 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var17
;
257 if (likely(varonce20
!=NULL
)) {
260 var22
= "` expects a single String as argument.";
261 var23
= standard___standard__NativeString___to_s_with_length(var22
, 38l);
265 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var21
;
271 var24
= nit___nit__AAnnotation___name(self
);
273 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var24
;
275 var25
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
279 nit___nit__ModelBuilder___error(var_modelbuilder
, self
, var25
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
286 /* method annotation#AAnnotation#arg_as_id for (self: AAnnotation, ModelBuilder): nullable String */
287 val
* nit__annotation___AAnnotation___arg_as_id(val
* self
, val
* p0
) {
288 val
* var
/* : nullable String */;
289 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
290 val
* var1
/* : ANodes[AExpr] */;
291 val
* var3
/* : ANodes[AExpr] */;
292 val
* var_args
/* var args: ANodes[AExpr] */;
293 long var4
/* : Int */;
294 short int var5
/* : Bool */;
295 short int var7
/* : Bool */;
296 val
* var8
/* : nullable Object */;
297 val
* var9
/* : nullable String */;
298 val
* var_arg
/* var arg: nullable String */;
299 short int var10
/* : Bool */;
300 short int var11
/* : Bool */;
301 val
* var_other
/* var other: nullable Object */;
302 short int var13
/* : Bool */;
303 short int var14
/* : Bool */;
304 val
* var15
/* : NativeArray[String] */;
306 static val
* varonce16
;
307 val
* var17
/* : String */;
308 char* var18
/* : NativeString */;
309 val
* var19
/* : FlatString */;
310 static val
* varonce20
;
311 val
* var21
/* : String */;
312 char* var22
/* : NativeString */;
313 val
* var23
/* : FlatString */;
314 val
* var24
/* : String */;
315 val
* var25
/* : String */;
316 var_modelbuilder
= p0
;
318 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
319 var3
= self
->attrs
[COLOR_nit__parser_nodes__AAnnotation___n_args
].val
; /* _n_args on <self:AAnnotation> */
320 if (unlikely(var3
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
322 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2988);
331 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__length(var_args
);
334 { /* Inline kernel#Int#== (var4,1l) on <var4:Int> */
343 var8
= standard___standard__SequenceRead___Collection__first(var_args
);
346 var9
= nit__literal___AExpr___as_id(var8
);
349 if (var_arg
== NULL
) {
350 var10
= 0; /* is null */
352 var10
= 1; /* arg is null and recv is not */
355 { /* Inline kernel#Object#!= (var_arg,((val*)NULL)) on <var_arg:nullable String> */
356 var_other
= ((val
*)NULL
);
358 var13
= ((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)>*/
374 if (unlikely(varonce
==NULL
)) {
375 var15
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
376 if (likely(varonce16
!=NULL
)) {
379 var18
= "Syntax Error: `";
380 var19
= standard___standard__NativeString___to_s_with_length(var18
, 15l);
384 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var17
;
385 if (likely(varonce20
!=NULL
)) {
388 var22
= "` expects a single identifier as argument.";
389 var23
= standard___standard__NativeString___to_s_with_length(var22
, 42l);
393 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var21
;
399 var24
= nit___nit__AAnnotation___name(self
);
401 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var24
;
403 var25
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
407 nit___nit__ModelBuilder___error(var_modelbuilder
, self
, var25
); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/