c_src: update to have intern args
[nit.git] / c_src / separate_options._sep.c
1 /* This C file is generated by NIT to compile module separate_options. */
2 #include "separate_options._sep.h"
3 static const char LOCATE_separate_options___ToolContext___separate_options[] = "separate_options::ToolContext::separate_options";
4 val_t separate_options___ToolContext___separate_options(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_separate_options;
10 fra.me.line = 28;
11 fra.me.meth = LOCATE_separate_options___ToolContext___separate_options;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* separate_options.nit:28 */
18 REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 nit_abort("Uninitialized attribute %s", "@separate_options", LOCATE_separate_options, 28);
22 }
23 fra.me.REG[0] = ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return fra.me.REG[0];
26 }
27 static const char LOCATE_separate_options___ToolContext___separate_options__eq[] = "separate_options::ToolContext::separate_options=";
28 void separate_options___ToolContext___separate_options__eq(val_t p0, val_t p1){
29 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_separate_options;
33 fra.me.line = 28;
34 fra.me.meth = LOCATE_separate_options___ToolContext___separate_options__eq;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 2;
37 fra.me.nitni_local_ref_head = NULL;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[1] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 fra.me.REG[1] = p1;
42 /* separate_options.nit:28 */
43 ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[1];
44 stack_frame_head = fra.me.prev;
45 return;
46 }
47 static const char LOCATE_separate_options___ToolContext___opt_cc_lib_paths[] = "separate_options::ToolContext::opt_cc_lib_paths";
48 val_t separate_options___ToolContext___opt_cc_lib_paths(val_t p0){
49 struct {struct stack_frame_t me;} fra;
50 val_t REGB0;
51 val_t tmp;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_separate_options;
54 fra.me.line = 30;
55 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_lib_paths;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 1;
58 fra.me.nitni_local_ref_head = NULL;
59 fra.me.REG[0] = NIT_NULL;
60 fra.me.REG[0] = p0;
61 /* separate_options.nit:30 */
62 REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
63 if (UNTAG_Bool(REGB0)) {
64 } else {
65 nit_abort("Uninitialized attribute %s", "@opt_cc_lib_paths", LOCATE_separate_options, 30);
66 }
67 fra.me.REG[0] = ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]);
68 stack_frame_head = fra.me.prev;
69 return fra.me.REG[0];
70 }
71 static const char LOCATE_separate_options___ToolContext___opt_cc_lib_paths__eq[] = "separate_options::ToolContext::opt_cc_lib_paths=";
72 void separate_options___ToolContext___opt_cc_lib_paths__eq(val_t p0, val_t p1){
73 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_separate_options;
77 fra.me.line = 30;
78 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_lib_paths__eq;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 2;
81 fra.me.nitni_local_ref_head = NULL;
82 fra.me.REG[0] = NIT_NULL;
83 fra.me.REG[1] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 fra.me.REG[1] = p1;
86 /* separate_options.nit:30 */
87 ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
88 stack_frame_head = fra.me.prev;
89 return;
90 }
91 static const char LOCATE_separate_options___ToolContext___opt_cc_libs[] = "separate_options::ToolContext::opt_cc_libs";
92 val_t separate_options___ToolContext___opt_cc_libs(val_t p0){
93 struct {struct stack_frame_t me;} fra;
94 val_t REGB0;
95 val_t tmp;
96 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
97 fra.me.file = LOCATE_separate_options;
98 fra.me.line = 31;
99 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_libs;
100 fra.me.has_broke = 0;
101 fra.me.REG_size = 1;
102 fra.me.nitni_local_ref_head = NULL;
103 fra.me.REG[0] = NIT_NULL;
104 fra.me.REG[0] = p0;
105 /* separate_options.nit:31 */
106 REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0])!=NIT_NULL);
107 if (UNTAG_Bool(REGB0)) {
108 } else {
109 nit_abort("Uninitialized attribute %s", "@opt_cc_libs", LOCATE_separate_options, 31);
110 }
111 fra.me.REG[0] = ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]);
112 stack_frame_head = fra.me.prev;
113 return fra.me.REG[0];
114 }
115 static const char LOCATE_separate_options___ToolContext___opt_cc_libs__eq[] = "separate_options::ToolContext::opt_cc_libs=";
116 void separate_options___ToolContext___opt_cc_libs__eq(val_t p0, val_t p1){
117 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
118 val_t tmp;
119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
120 fra.me.file = LOCATE_separate_options;
121 fra.me.line = 31;
122 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_libs__eq;
123 fra.me.has_broke = 0;
124 fra.me.REG_size = 2;
125 fra.me.nitni_local_ref_head = NULL;
126 fra.me.REG[0] = NIT_NULL;
127 fra.me.REG[1] = NIT_NULL;
128 fra.me.REG[0] = p0;
129 fra.me.REG[1] = p1;
130 /* separate_options.nit:31 */
131 ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[1];
132 stack_frame_head = fra.me.prev;
133 return;
134 }
135 static const char LOCATE_separate_options___ToolContext___opt_cc_include_paths[] = "separate_options::ToolContext::opt_cc_include_paths";
136 val_t separate_options___ToolContext___opt_cc_include_paths(val_t p0){
137 struct {struct stack_frame_t me;} fra;
138 val_t REGB0;
139 val_t tmp;
140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
141 fra.me.file = LOCATE_separate_options;
142 fra.me.line = 32;
143 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_include_paths;
144 fra.me.has_broke = 0;
145 fra.me.REG_size = 1;
146 fra.me.nitni_local_ref_head = NULL;
147 fra.me.REG[0] = NIT_NULL;
148 fra.me.REG[0] = p0;
149 /* separate_options.nit:32 */
150 REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0])!=NIT_NULL);
151 if (UNTAG_Bool(REGB0)) {
152 } else {
153 nit_abort("Uninitialized attribute %s", "@opt_cc_include_paths", LOCATE_separate_options, 32);
154 }
155 fra.me.REG[0] = ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]);
156 stack_frame_head = fra.me.prev;
157 return fra.me.REG[0];
158 }
159 static const char LOCATE_separate_options___ToolContext___opt_cc_include_paths__eq[] = "separate_options::ToolContext::opt_cc_include_paths=";
160 void separate_options___ToolContext___opt_cc_include_paths__eq(val_t p0, val_t p1){
161 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
162 val_t tmp;
163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
164 fra.me.file = LOCATE_separate_options;
165 fra.me.line = 32;
166 fra.me.meth = LOCATE_separate_options___ToolContext___opt_cc_include_paths__eq;
167 fra.me.has_broke = 0;
168 fra.me.REG_size = 2;
169 fra.me.nitni_local_ref_head = NULL;
170 fra.me.REG[0] = NIT_NULL;
171 fra.me.REG[1] = NIT_NULL;
172 fra.me.REG[0] = p0;
173 fra.me.REG[1] = p1;
174 /* separate_options.nit:32 */
175 ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
176 stack_frame_head = fra.me.prev;
177 return;
178 }
179 static const char LOCATE_separate_options___ToolContext___init[] = "separate_options::ToolContext::(toolcontext::ToolContext::init)";
180 void separate_options___ToolContext___init(val_t p0, int* init_table){
181 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
182 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
183 val_t REGB0;
184 val_t tmp;
185 if (init_table[itpos0]) return;
186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
187 fra.me.file = LOCATE_separate_options;
188 fra.me.line = 34;
189 fra.me.meth = LOCATE_separate_options___ToolContext___init;
190 fra.me.has_broke = 0;
191 fra.me.REG_size = 4;
192 fra.me.nitni_local_ref_head = NULL;
193 fra.me.REG[0] = NIT_NULL;
194 fra.me.REG[1] = NIT_NULL;
195 fra.me.REG[2] = NIT_NULL;
196 fra.me.REG[3] = NIT_NULL;
197 fra.me.REG[0] = p0;
198 /* separate_options.nit:34 */
199 fra.me.REG[1] = fra.me.REG[0];
200 /* separate_options.nit:36 */
201 CALL_SUPER_separate_options___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
202 /* separate_options.nit:38 */
203 fra.me.REG[0] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
204 REGB0 = TAG_Int(0);
205 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
206 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
207 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
208 CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
209 /* separate_options.nit:39 */
210 fra.me.REG[2] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
211 REGB0 = TAG_Int(0);
212 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
213 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[1])(fra.me.REG[1]);
214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
215 CALL_opts___OptionContext___add_option(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
216 /* separate_options.nit:40 */
217 fra.me.REG[0] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
218 REGB0 = TAG_Int(0);
219 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
220 fra.me.REG[1] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
222 CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
223 stack_frame_head = fra.me.prev;
224 init_table[itpos0] = 1;
225 return;
226 }
227 static const char LOCATE_separate_options___ToolContext___integrate_separate_options[] = "separate_options::ToolContext::integrate_separate_options";
228 void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t p1, val_t p2){
229 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
230 val_t REGB0;
231 val_t REGB1;
232 val_t REGB2;
233 val_t REGB3;
234 val_t REGB4;
235 val_t tmp;
236 static val_t once_value_1; /* Once value */
237 static val_t once_value_3; /* Once value */
238 static val_t once_value_4; /* Once value */
239 static val_t once_value_5; /* Once value */
240 static val_t once_value_6; /* Once value */
241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
242 fra.me.file = LOCATE_separate_options;
243 fra.me.line = 43;
244 fra.me.meth = LOCATE_separate_options___ToolContext___integrate_separate_options;
245 fra.me.has_broke = 0;
246 fra.me.REG_size = 8;
247 fra.me.nitni_local_ref_head = NULL;
248 fra.me.REG[0] = NIT_NULL;
249 fra.me.REG[1] = NIT_NULL;
250 fra.me.REG[2] = NIT_NULL;
251 fra.me.REG[3] = NIT_NULL;
252 fra.me.REG[4] = NIT_NULL;
253 fra.me.REG[5] = NIT_NULL;
254 fra.me.REG[6] = NIT_NULL;
255 fra.me.REG[7] = NIT_NULL;
256 fra.me.REG[0] = p0;
257 fra.me.REG[1] = p1;
258 fra.me.REG[2] = p2;
259 /* separate_options.nit:45 */
260 REGB0 = TAG_Char('\n');
261 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[1])(fra.me.REG[1], REGB0);
262 /* ../lib/standard/collection/array.nit:269 */
263 REGB0 = TAG_Int(0);
264 /* ../lib/standard/collection/array.nit:270 */
265 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
266 if (UNTAG_Bool(REGB1)) {
267 } else {
268 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
269 }
270 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
271 /* ../lib/standard/collection/array.nit:271 */
272 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
273 /* ../lib/standard/collection/array.nit:272 */
274 while(1) {
275 /* ../lib/standard/collection/array.nit:24 */
276 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
277 if (UNTAG_Bool(REGB1)) {
278 } else {
279 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
280 }
281 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
282 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
283 if (UNTAG_Bool(REGB2)) {
284 } else {
285 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
286 }
287 /* ../lib/standard/kernel.nit:235 */
288 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
289 /* ../lib/standard/collection/array.nit:272 */
290 if (UNTAG_Bool(REGB1)) {
291 /* ../lib/standard/collection/array.nit:273 */
292 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
293 if (UNTAG_Bool(REGB1)) {
294 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
295 }
296 /* ../lib/standard/collection/array.nit:724 */
297 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
298 /* separate_options.nit:46 */
299 if (!once_value_1) {
300 fra.me.REG[5] = BOX_NativeString("\n");
301 REGB1 = TAG_Int(1);
302 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
303 once_value_1 = fra.me.REG[5];
304 register_static_object(&once_value_1);
305 } else fra.me.REG[5] = once_value_1;
306 fra.me.REG[5] = fra.me.REG[5];
307 fra.me.REG[5] = CALL_standard___file___String___strip_extension(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
308 fra.me.REG[4] = fra.me.REG[5];
309 /* separate_options.nit:47 */
310 fra.me.REG[5] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
311 REGB1 = TAG_Char(' ');
312 fra.me.REG[4] = CALL_standard___string_search___String___split_with(fra.me.REG[4])(fra.me.REG[4], REGB1);
313 CALL_opts___OptionContext___parse(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
314 /* separate_options.nit:48 */
315 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
316 /* separate_options.nit:49 */
317 fra.me.REG[5] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
318 fra.me.REG[5] = CALL_opts___OptionContext___rest(fra.me.REG[5])(fra.me.REG[5]);
319 /* ../lib/standard/collection/array.nit:269 */
320 REGB1 = TAG_Int(0);
321 /* ../lib/standard/collection/array.nit:270 */
322 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
323 if (UNTAG_Bool(REGB2)) {
324 } else {
325 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
326 }
327 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
328 /* ../lib/standard/collection/array.nit:271 */
329 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
330 /* ../lib/standard/collection/array.nit:272 */
331 while(1) {
332 /* ../lib/standard/collection/array.nit:24 */
333 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
334 if (UNTAG_Bool(REGB2)) {
335 } else {
336 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
337 }
338 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
339 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
340 if (UNTAG_Bool(REGB3)) {
341 } else {
342 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
343 }
344 /* ../lib/standard/kernel.nit:235 */
345 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
346 /* ../lib/standard/collection/array.nit:272 */
347 if (UNTAG_Bool(REGB2)) {
348 /* ../lib/standard/collection/array.nit:273 */
349 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
350 if (UNTAG_Bool(REGB2)) {
351 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
352 }
353 /* ../lib/standard/collection/array.nit:724 */
354 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
355 /* ../lib/standard/collection/array.nit:24 */
356 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
357 if (UNTAG_Bool(REGB2)) {
358 } else {
359 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
360 }
361 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
362 /* separate_options.nit:49 */
363 REGB3 = TAG_Int(0);
364 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
365 if (UNTAG_Bool(REGB4)) {
366 } else {
367 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
368 }
369 /* ../lib/standard/kernel.nit:237 */
370 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB3));
371 /* separate_options.nit:49 */
372 if (UNTAG_Bool(REGB3)) {
373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
374 }
375 /* ../lib/standard/collection/array.nit:274 */
376 REGB3 = TAG_Int(1);
377 /* ../lib/standard/kernel.nit:238 */
378 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
379 /* ../lib/standard/collection/array.nit:274 */
380 REGB1 = REGB3;
381 } else {
382 /* ../lib/standard/collection/array.nit:272 */
383 goto label2;
384 }
385 }
386 label2: while(0);
387 /* ../lib/standard/collection/array.nit:24 */
388 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
389 if (UNTAG_Bool(REGB1)) {
390 } else {
391 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
392 }
393 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
394 /* separate_options.nit:50 */
395 REGB3 = TAG_Int(0);
396 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
397 if (UNTAG_Bool(REGB2)) {
398 } else {
399 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
400 }
401 /* ../lib/standard/kernel.nit:237 */
402 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
403 /* separate_options.nit:50 */
404 if (UNTAG_Bool(REGB3)) {
405 /* separate_options.nit:51 */
406 REGB3 = TAG_Int(5);
407 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
408 if (!once_value_3) {
409 fra.me.REG[5] = BOX_NativeString("module \"");
410 REGB3 = TAG_Int(8);
411 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
412 once_value_3 = fra.me.REG[5];
413 register_static_object(&once_value_3);
414 } else fra.me.REG[5] = once_value_3;
415 fra.me.REG[5] = fra.me.REG[5];
416 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
417 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
418 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
419 if (!once_value_4) {
420 fra.me.REG[5] = BOX_NativeString("\" args file has unknown args: ");
421 REGB3 = TAG_Int(30);
422 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
423 once_value_4 = fra.me.REG[5];
424 register_static_object(&once_value_4);
425 } else fra.me.REG[5] = once_value_4;
426 fra.me.REG[5] = fra.me.REG[5];
427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
428 if (!once_value_5) {
429 fra.me.REG[5] = BOX_NativeString(", ");
430 REGB3 = TAG_Int(2);
431 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
432 once_value_5 = fra.me.REG[5];
433 register_static_object(&once_value_5);
434 } else fra.me.REG[5] = once_value_5;
435 fra.me.REG[5] = fra.me.REG[5];
436 fra.me.REG[5] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
438 if (!once_value_6) {
439 fra.me.REG[5] = BOX_NativeString("");
440 REGB3 = TAG_Int(0);
441 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
442 once_value_6 = fra.me.REG[5];
443 register_static_object(&once_value_6);
444 } else fra.me.REG[5] = once_value_6;
445 fra.me.REG[5] = fra.me.REG[5];
446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
447 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
448 CALL_toolcontext___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
449 }
450 /* ../lib/standard/collection/array.nit:274 */
451 REGB3 = TAG_Int(1);
452 /* ../lib/standard/kernel.nit:238 */
453 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
454 /* ../lib/standard/collection/array.nit:274 */
455 REGB0 = REGB3;
456 } else {
457 /* ../lib/standard/collection/array.nit:272 */
458 goto label7;
459 }
460 }
461 label7: while(0);
462 /* separate_options.nit:55 */
463 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
464 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
465 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
466 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
467 /* separate_options.nit:56 */
468 fra.me.REG[3] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[0])(fra.me.REG[0]);
469 fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[0])(fra.me.REG[0]);
470 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
471 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
472 /* separate_options.nit:57 */
473 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
474 fra.me.REG[0] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
475 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
476 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 static const char LOCATE_separate_options___MMSrcModule___compile_separate_module[] = "separate_options::MMSrcModule::(compiling::MMModule::compile_separate_module)";
481 void separate_options___MMSrcModule___compile_separate_module(val_t p0, val_t p1){
482 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
483 val_t REGB0;
484 val_t tmp;
485 static val_t once_value_1; /* Once value */
486 static val_t once_value_2; /* Once value */
487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
488 fra.me.file = LOCATE_separate_options;
489 fra.me.line = 63;
490 fra.me.meth = LOCATE_separate_options___MMSrcModule___compile_separate_module;
491 fra.me.has_broke = 0;
492 fra.me.REG_size = 4;
493 fra.me.nitni_local_ref_head = NULL;
494 fra.me.REG[0] = NIT_NULL;
495 fra.me.REG[1] = NIT_NULL;
496 fra.me.REG[2] = NIT_NULL;
497 fra.me.REG[3] = NIT_NULL;
498 fra.me.REG[0] = p0;
499 fra.me.REG[1] = p1;
500 /* separate_options.nit:63 */
501 fra.me.REG[2] = fra.me.REG[0];
502 fra.me.REG[3] = fra.me.REG[1];
503 /* separate_options.nit:65 */
504 CALL_SUPER_separate_options___MMSrcModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
505 /* separate_options.nit:68 */
506 REGB0 = TAG_Int(3);
507 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
508 if (!once_value_1) {
509 fra.me.REG[0] = BOX_NativeString("");
510 REGB0 = TAG_Int(0);
511 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
512 once_value_1 = fra.me.REG[0];
513 register_static_object(&once_value_1);
514 } else fra.me.REG[0] = once_value_1;
515 fra.me.REG[0] = fra.me.REG[0];
516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
517 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[2])(fra.me.REG[2]);
518 fra.me.REG[0] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
519 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
520 if (UNTAG_Bool(REGB0)) {
521 nit_abort("Reciever is null", NULL, LOCATE_separate_options, 68);
522 }
523 fra.me.REG[0] = CALL_location___SourceFile___filename(fra.me.REG[0])(fra.me.REG[0]);
524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
525 if (!once_value_2) {
526 fra.me.REG[0] = BOX_NativeString(".args");
527 REGB0 = TAG_Int(5);
528 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
529 once_value_2 = fra.me.REG[0];
530 register_static_object(&once_value_2);
531 } else fra.me.REG[0] = once_value_2;
532 fra.me.REG[0] = fra.me.REG[0];
533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
534 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
535 /* separate_options.nit:69 */
536 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
537 if (UNTAG_Bool(REGB0)) {
538 /* separate_options.nit:70 */
539 fra.me.REG[1] = NEW_IFStream_standard___file___IFStream___open(fra.me.REG[1]);
540 /* separate_options.nit:71 */
541 fra.me.REG[0] = CALL_standard___stream___IStream___read_all(fra.me.REG[1])(fra.me.REG[1]);
542 /* separate_options.nit:72 */
543 CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
544 /* separate_options.nit:74 */
545 fra.me.REG[1] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
546 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
547 CALL_separate_options___ToolContext___integrate_separate_options(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
548 /* separate_options.nit:75 */
549 fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
550 fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[3])(fra.me.REG[3]);
551 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[3])(fra.me.REG[3]);
552 }
553 stack_frame_head = fra.me.prev;
554 return;
555 }