Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__annotation.sep.1.c
1 #include "nitc__annotation.sep.0.h"
2 /* method annotation$Prod$get_single_annotation for (self: Prod, String, ModelBuilder): nullable AAnnotation */
3 val* nitc__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 */;
14 int cltype;
15 int idtype;
16 const char* var_class_name;
17 short int var9 /* : Bool */;
18 val* var10 /* : nullable Object */;
19 val* var11 /* : NativeArray[String] */;
20 static val* varonce;
21 static val* varonce12;
22 val* var13 /* : String */;
23 char* var14 /* : CString */;
24 val* var15 /* : String */;
25 val* var16 /* : nullable Int */;
26 val* var17 /* : nullable Int */;
27 val* var18 /* : nullable Bool */;
28 val* var19 /* : nullable Bool */;
29 static val* varonce20;
30 val* var21 /* : String */;
31 char* var22 /* : CString */;
32 val* var23 /* : String */;
33 val* var24 /* : nullable Int */;
34 val* var25 /* : nullable Int */;
35 val* var26 /* : nullable Bool */;
36 val* var27 /* : nullable Bool */;
37 static val* varonce28;
38 val* var29 /* : String */;
39 char* var30 /* : CString */;
40 val* var31 /* : String */;
41 val* var32 /* : nullable Int */;
42 val* var33 /* : nullable Int */;
43 val* var34 /* : nullable Bool */;
44 val* var35 /* : nullable Bool */;
45 val* var36 /* : nullable Object */;
46 val* var37 /* : Location */;
47 val* var39 /* : Location */;
48 long var40 /* : Int */;
49 long var42 /* : Int */;
50 val* var43 /* : String */;
51 val* var44 /* : String */;
52 val* var45 /* : nullable Object */;
53 var_name = p0;
54 var_modelbuilder = p1;
55 {
56 var1 = nitc___nitc__Prod___get_annotations(self, var_name);
57 }
58 var_res = var1;
59 {
60 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_res);
61 }
62 if (var2){
63 var = ((val*)NULL);
64 goto RET_LABEL;
65 } else {
66 }
67 {
68 { /* Inline array$AbstractArrayRead$length (var_res) on <var_res:Array[AAnnotation]> */
69 var5 = var_res->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_res:Array[AAnnotation]> */
70 var3 = var5;
71 RET_LABEL4:(void)0;
72 }
73 }
74 {
75 { /* Inline kernel$Int$> (var3,1l) on <var3:Int> */
76 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
77 /* <1l:Int> isa OTHER */
78 var8 = 1; /* easy <1l:Int> isa OTHER*/
79 if (unlikely(!var8)) {
80 var_class_name = type_core__Int.name;
81 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
82 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
83 fatal_exit(1);
84 }
85 var9 = var3 > 1l;
86 var6 = var9;
87 goto RET_LABEL7;
88 RET_LABEL7:(void)0;
89 }
90 }
91 if (var6){
92 {
93 var10 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_res, 1l);
94 }
95 if (unlikely(varonce==NULL)) {
96 var11 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
97 if (likely(varonce12!=NULL)) {
98 var13 = varonce12;
99 } else {
100 var14 = "Syntax Error: multiple `";
101 var16 = (val*)(24l<<2|1);
102 var17 = (val*)(24l<<2|1);
103 var18 = (val*)((long)(0)<<2|3);
104 var19 = (val*)((long)(0)<<2|3);
105 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
106 var13 = var15;
107 varonce12 = var13;
108 }
109 ((struct instance_core__NativeArray*)var11)->values[0]=var13;
110 if (likely(varonce20!=NULL)) {
111 var21 = varonce20;
112 } else {
113 var22 = "`. A previous one is defined line ";
114 var24 = (val*)(34l<<2|1);
115 var25 = (val*)(34l<<2|1);
116 var26 = (val*)((long)(0)<<2|3);
117 var27 = (val*)((long)(0)<<2|3);
118 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
119 var21 = var23;
120 varonce20 = var21;
121 }
122 ((struct instance_core__NativeArray*)var11)->values[2]=var21;
123 if (likely(varonce28!=NULL)) {
124 var29 = varonce28;
125 } else {
126 var30 = ".";
127 var32 = (val*)(1l<<2|1);
128 var33 = (val*)(1l<<2|1);
129 var34 = (val*)((long)(0)<<2|3);
130 var35 = (val*)((long)(0)<<2|3);
131 var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
132 var29 = var31;
133 varonce28 = var29;
134 }
135 ((struct instance_core__NativeArray*)var11)->values[4]=var29;
136 } else {
137 var11 = varonce;
138 varonce = NULL;
139 }
140 ((struct instance_core__NativeArray*)var11)->values[1]=var_name;
141 {
142 var36 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_res, 0l);
143 }
144 {
145 { /* Inline parser_nodes$ANode$location (var36) on <var36:nullable Object(AAnnotation)> */
146 var39 = var36->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var36:nullable Object(AAnnotation)> */
147 if (unlikely(var39 == NULL)) {
148 if(catchStack.cursor >= 0){
149 longjmp(catchStack.envs[catchStack.cursor], 1);
150 }
151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
152 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
153 fatal_exit(1);
154 }
155 var37 = var39;
156 RET_LABEL38:(void)0;
157 }
158 }
159 {
160 { /* Inline location$Location$line_start (var37) on <var37:Location> */
161 var42 = var37->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var37:Location> */
162 var40 = var42;
163 RET_LABEL41:(void)0;
164 }
165 }
166 var43 = core__flat___Int___core__abstract_text__Object__to_s(var40);
167 ((struct instance_core__NativeArray*)var11)->values[3]=var43;
168 {
169 var44 = ((val*(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var11); /* native_to_s on <var11:NativeArray[String]>*/
170 }
171 varonce = var11;
172 {
173 nitc___nitc__ModelBuilder___error(var_modelbuilder, var10, var44); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
174 }
175 } else {
176 }
177 {
178 var45 = core___core__SequenceRead___Collection__first(var_res);
179 }
180 var = var45;
181 goto RET_LABEL;
182 RET_LABEL:;
183 return var;
184 }
185 /* method annotation$AAnnotation$arg_as_string for (self: AAnnotation, ModelBuilder): nullable String */
186 val* nitc__annotation___AAnnotation___arg_as_string(val* self, val* p0) {
187 val* var /* : nullable String */;
188 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
189 val* var1 /* : ANodes[AExpr] */;
190 val* var3 /* : ANodes[AExpr] */;
191 val* var_args /* var args: ANodes[AExpr] */;
192 long var4 /* : Int */;
193 short int var5 /* : Bool */;
194 short int var7 /* : Bool */;
195 val* var8 /* : nullable Object */;
196 val* var9 /* : nullable String */;
197 val* var_arg /* var arg: nullable String */;
198 short int var10 /* : Bool */;
199 short int var11 /* : Bool */;
200 val* var_other /* var other: nullable Object */;
201 short int var13 /* : Bool */;
202 short int var14 /* : Bool */;
203 val* var15 /* : NativeArray[String] */;
204 static val* varonce;
205 static val* varonce16;
206 val* var17 /* : String */;
207 char* var18 /* : CString */;
208 val* var19 /* : String */;
209 val* var20 /* : nullable Int */;
210 val* var21 /* : nullable Int */;
211 val* var22 /* : nullable Bool */;
212 val* var23 /* : nullable Bool */;
213 static val* varonce24;
214 val* var25 /* : String */;
215 char* var26 /* : CString */;
216 val* var27 /* : String */;
217 val* var28 /* : nullable Int */;
218 val* var29 /* : nullable Int */;
219 val* var30 /* : nullable Bool */;
220 val* var31 /* : nullable Bool */;
221 val* var32 /* : String */;
222 val* var33 /* : String */;
223 var_modelbuilder = p0;
224 {
225 { /* Inline parser_nodes$AAnnotation$n_args (self) on <self:AAnnotation> */
226 var3 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
227 if (unlikely(var3 == NULL)) {
228 if(catchStack.cursor >= 0){
229 longjmp(catchStack.envs[catchStack.cursor], 1);
230 }
231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
232 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 3007);
233 fatal_exit(1);
234 }
235 var1 = var3;
236 RET_LABEL2:(void)0;
237 }
238 }
239 var_args = var1;
240 {
241 var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var_args);
242 }
243 {
244 { /* Inline kernel$Int$== (var4,1l) on <var4:Int> */
245 var7 = var4 == 1l;
246 var5 = var7;
247 goto RET_LABEL6;
248 RET_LABEL6:(void)0;
249 }
250 }
251 if (var5){
252 {
253 var8 = core___core__SequenceRead___Collection__first(var_args);
254 }
255 {
256 var9 = nitc__literal___AExpr___as_string(var8);
257 }
258 var_arg = var9;
259 if (var_arg == NULL) {
260 var10 = 0; /* is null */
261 } else {
262 var10 = 1; /* arg is null and recv is not */
263 }
264 if (0) {
265 { /* Inline kernel$Object$!= (var_arg,((val*)NULL)) on <var_arg:nullable String> */
266 var_other = ((val*)NULL);
267 {
268 var13 = ((short int(*)(val* self, val* p0))(var_arg->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_arg, var_other); /* == on <var_arg:nullable String(String)>*/
269 }
270 var14 = !var13;
271 var11 = var14;
272 goto RET_LABEL12;
273 RET_LABEL12:(void)0;
274 }
275 var10 = var11;
276 }
277 if (var10){
278 var = var_arg;
279 goto RET_LABEL;
280 } else {
281 }
282 } else {
283 }
284 if (unlikely(varonce==NULL)) {
285 var15 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
286 if (likely(varonce16!=NULL)) {
287 var17 = varonce16;
288 } else {
289 var18 = "Syntax Error: `";
290 var20 = (val*)(15l<<2|1);
291 var21 = (val*)(15l<<2|1);
292 var22 = (val*)((long)(0)<<2|3);
293 var23 = (val*)((long)(0)<<2|3);
294 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
295 var17 = var19;
296 varonce16 = var17;
297 }
298 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
299 if (likely(varonce24!=NULL)) {
300 var25 = varonce24;
301 } else {
302 var26 = "` expects a single String as argument.";
303 var28 = (val*)(38l<<2|1);
304 var29 = (val*)(38l<<2|1);
305 var30 = (val*)((long)(0)<<2|3);
306 var31 = (val*)((long)(0)<<2|3);
307 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
308 var25 = var27;
309 varonce24 = var25;
310 }
311 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
312 } else {
313 var15 = varonce;
314 varonce = NULL;
315 }
316 {
317 var32 = nitc___nitc__AAnnotation___name(self);
318 }
319 ((struct instance_core__NativeArray*)var15)->values[1]=var32;
320 {
321 var33 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
322 }
323 varonce = var15;
324 {
325 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var33); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
326 }
327 var = ((val*)NULL);
328 goto RET_LABEL;
329 RET_LABEL:;
330 return var;
331 }
332 /* method annotation$AAnnotation$arg_as_id for (self: AAnnotation, ModelBuilder): nullable String */
333 val* nitc__annotation___AAnnotation___arg_as_id(val* self, val* p0) {
334 val* var /* : nullable String */;
335 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
336 val* var1 /* : ANodes[AExpr] */;
337 val* var3 /* : ANodes[AExpr] */;
338 val* var_args /* var args: ANodes[AExpr] */;
339 long var4 /* : Int */;
340 short int var5 /* : Bool */;
341 short int var7 /* : Bool */;
342 val* var8 /* : nullable Object */;
343 val* var9 /* : nullable String */;
344 val* var_arg /* var arg: nullable String */;
345 short int var10 /* : Bool */;
346 short int var11 /* : Bool */;
347 val* var_other /* var other: nullable Object */;
348 short int var13 /* : Bool */;
349 short int var14 /* : Bool */;
350 val* var15 /* : NativeArray[String] */;
351 static val* varonce;
352 static val* varonce16;
353 val* var17 /* : String */;
354 char* var18 /* : CString */;
355 val* var19 /* : String */;
356 val* var20 /* : nullable Int */;
357 val* var21 /* : nullable Int */;
358 val* var22 /* : nullable Bool */;
359 val* var23 /* : nullable Bool */;
360 static val* varonce24;
361 val* var25 /* : String */;
362 char* var26 /* : CString */;
363 val* var27 /* : String */;
364 val* var28 /* : nullable Int */;
365 val* var29 /* : nullable Int */;
366 val* var30 /* : nullable Bool */;
367 val* var31 /* : nullable Bool */;
368 val* var32 /* : String */;
369 val* var33 /* : String */;
370 var_modelbuilder = p0;
371 {
372 { /* Inline parser_nodes$AAnnotation$n_args (self) on <self:AAnnotation> */
373 var3 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
374 if (unlikely(var3 == NULL)) {
375 if(catchStack.cursor >= 0){
376 longjmp(catchStack.envs[catchStack.cursor], 1);
377 }
378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 3007);
380 fatal_exit(1);
381 }
382 var1 = var3;
383 RET_LABEL2:(void)0;
384 }
385 }
386 var_args = var1;
387 {
388 var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var_args);
389 }
390 {
391 { /* Inline kernel$Int$== (var4,1l) on <var4:Int> */
392 var7 = var4 == 1l;
393 var5 = var7;
394 goto RET_LABEL6;
395 RET_LABEL6:(void)0;
396 }
397 }
398 if (var5){
399 {
400 var8 = core___core__SequenceRead___Collection__first(var_args);
401 }
402 {
403 var9 = nitc__parser_work___AExpr___as_id(var8);
404 }
405 var_arg = var9;
406 if (var_arg == NULL) {
407 var10 = 0; /* is null */
408 } else {
409 var10 = 1; /* arg is null and recv is not */
410 }
411 if (0) {
412 { /* Inline kernel$Object$!= (var_arg,((val*)NULL)) on <var_arg:nullable String> */
413 var_other = ((val*)NULL);
414 {
415 var13 = ((short int(*)(val* self, val* p0))(var_arg->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_arg, var_other); /* == on <var_arg:nullable String(String)>*/
416 }
417 var14 = !var13;
418 var11 = var14;
419 goto RET_LABEL12;
420 RET_LABEL12:(void)0;
421 }
422 var10 = var11;
423 }
424 if (var10){
425 var = var_arg;
426 goto RET_LABEL;
427 } else {
428 }
429 } else {
430 }
431 if (unlikely(varonce==NULL)) {
432 var15 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
433 if (likely(varonce16!=NULL)) {
434 var17 = varonce16;
435 } else {
436 var18 = "Syntax Error: `";
437 var20 = (val*)(15l<<2|1);
438 var21 = (val*)(15l<<2|1);
439 var22 = (val*)((long)(0)<<2|3);
440 var23 = (val*)((long)(0)<<2|3);
441 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
442 var17 = var19;
443 varonce16 = var17;
444 }
445 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
446 if (likely(varonce24!=NULL)) {
447 var25 = varonce24;
448 } else {
449 var26 = "` expects a single identifier as argument.";
450 var28 = (val*)(42l<<2|1);
451 var29 = (val*)(42l<<2|1);
452 var30 = (val*)((long)(0)<<2|3);
453 var31 = (val*)((long)(0)<<2|3);
454 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
455 var25 = var27;
456 varonce24 = var25;
457 }
458 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
459 } else {
460 var15 = varonce;
461 varonce = NULL;
462 }
463 {
464 var32 = nitc___nitc__AAnnotation___name(self);
465 }
466 ((struct instance_core__NativeArray*)var15)->values[1]=var32;
467 {
468 var33 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
469 }
470 varonce = var15;
471 {
472 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var33); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
473 }
474 var = ((val*)NULL);
475 goto RET_LABEL;
476 RET_LABEL:;
477 return var;
478 }