lib: Replaced strings by buffer in HTML lib to fix memory leaks
[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 fra.me.REG[1] = CALL_standard___string_search___String___split(fra.me.REG[1])(fra.me.REG[1]);
261 /* ../lib/standard/collection/array.nit:269 */
262 REGB0 = TAG_Int(0);
263 /* ../lib/standard/collection/array.nit:270 */
264 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
265 if (UNTAG_Bool(REGB1)) {
266 } else {
267 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
268 }
269 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
270 /* ../lib/standard/collection/array.nit:271 */
271 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
272 /* ../lib/standard/collection/array.nit:272 */
273 while(1) {
274 /* ../lib/standard/collection/array.nit:24 */
275 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
276 if (UNTAG_Bool(REGB1)) {
277 } else {
278 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
279 }
280 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
281 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
282 if (UNTAG_Bool(REGB2)) {
283 } else {
284 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
285 }
286 /* ../lib/standard/kernel.nit:235 */
287 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
288 /* ../lib/standard/collection/array.nit:272 */
289 if (UNTAG_Bool(REGB1)) {
290 /* ../lib/standard/collection/array.nit:273 */
291 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
292 if (UNTAG_Bool(REGB1)) {
293 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
294 }
295 /* ../lib/standard/collection/array.nit:718 */
296 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
297 /* separate_options.nit:46 */
298 if (!once_value_1) {
299 fra.me.REG[5] = BOX_NativeString("\n");
300 REGB1 = TAG_Int(1);
301 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
302 once_value_1 = fra.me.REG[5];
303 register_static_object(&once_value_1);
304 } else fra.me.REG[5] = once_value_1;
305 fra.me.REG[5] = fra.me.REG[5];
306 fra.me.REG[5] = CALL_standard___file___String___strip_extension(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
307 fra.me.REG[4] = fra.me.REG[5];
308 /* separate_options.nit:47 */
309 fra.me.REG[5] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
310 REGB1 = TAG_Char(' ');
311 fra.me.REG[4] = CALL_standard___string_search___String___split_with(fra.me.REG[4])(fra.me.REG[4], REGB1);
312 CALL_opts___OptionContext___parse(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
313 /* separate_options.nit:48 */
314 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
315 /* separate_options.nit:49 */
316 fra.me.REG[5] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
317 fra.me.REG[5] = CALL_opts___OptionContext___rest(fra.me.REG[5])(fra.me.REG[5]);
318 /* ../lib/standard/collection/array.nit:269 */
319 REGB1 = TAG_Int(0);
320 /* ../lib/standard/collection/array.nit:270 */
321 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
322 if (UNTAG_Bool(REGB2)) {
323 } else {
324 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
325 }
326 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
327 /* ../lib/standard/collection/array.nit:271 */
328 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
329 /* ../lib/standard/collection/array.nit:272 */
330 while(1) {
331 /* ../lib/standard/collection/array.nit:24 */
332 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
333 if (UNTAG_Bool(REGB2)) {
334 } else {
335 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
336 }
337 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
338 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
339 if (UNTAG_Bool(REGB3)) {
340 } else {
341 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
342 }
343 /* ../lib/standard/kernel.nit:235 */
344 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
345 /* ../lib/standard/collection/array.nit:272 */
346 if (UNTAG_Bool(REGB2)) {
347 /* ../lib/standard/collection/array.nit:273 */
348 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
349 if (UNTAG_Bool(REGB2)) {
350 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
351 }
352 /* ../lib/standard/collection/array.nit:718 */
353 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
354 /* ../lib/standard/collection/array.nit:24 */
355 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
356 if (UNTAG_Bool(REGB2)) {
357 } else {
358 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
359 }
360 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
361 /* separate_options.nit:49 */
362 REGB3 = TAG_Int(0);
363 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
364 if (UNTAG_Bool(REGB4)) {
365 } else {
366 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
367 }
368 /* ../lib/standard/kernel.nit:237 */
369 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB3));
370 /* separate_options.nit:49 */
371 if (UNTAG_Bool(REGB3)) {
372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
373 }
374 /* ../lib/standard/collection/array.nit:274 */
375 REGB3 = TAG_Int(1);
376 /* ../lib/standard/kernel.nit:238 */
377 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
378 /* ../lib/standard/collection/array.nit:274 */
379 REGB1 = REGB3;
380 } else {
381 /* ../lib/standard/collection/array.nit:272 */
382 goto label2;
383 }
384 }
385 label2: while(0);
386 /* ../lib/standard/collection/array.nit:24 */
387 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
388 if (UNTAG_Bool(REGB1)) {
389 } else {
390 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
391 }
392 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
393 /* separate_options.nit:50 */
394 REGB3 = TAG_Int(0);
395 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
396 if (UNTAG_Bool(REGB2)) {
397 } else {
398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
399 }
400 /* ../lib/standard/kernel.nit:237 */
401 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
402 /* separate_options.nit:50 */
403 if (UNTAG_Bool(REGB3)) {
404 /* separate_options.nit:51 */
405 REGB3 = TAG_Int(5);
406 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
407 if (!once_value_3) {
408 fra.me.REG[5] = BOX_NativeString("module \"");
409 REGB3 = TAG_Int(8);
410 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
411 once_value_3 = fra.me.REG[5];
412 register_static_object(&once_value_3);
413 } else fra.me.REG[5] = once_value_3;
414 fra.me.REG[5] = fra.me.REG[5];
415 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
416 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
418 if (!once_value_4) {
419 fra.me.REG[5] = BOX_NativeString("\" args file has unknown args: ");
420 REGB3 = TAG_Int(30);
421 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
422 once_value_4 = fra.me.REG[5];
423 register_static_object(&once_value_4);
424 } else fra.me.REG[5] = once_value_4;
425 fra.me.REG[5] = fra.me.REG[5];
426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
427 if (!once_value_5) {
428 fra.me.REG[5] = BOX_NativeString(", ");
429 REGB3 = TAG_Int(2);
430 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
431 once_value_5 = fra.me.REG[5];
432 register_static_object(&once_value_5);
433 } else fra.me.REG[5] = once_value_5;
434 fra.me.REG[5] = fra.me.REG[5];
435 fra.me.REG[5] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
437 if (!once_value_6) {
438 fra.me.REG[5] = BOX_NativeString("");
439 REGB3 = TAG_Int(0);
440 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
441 once_value_6 = fra.me.REG[5];
442 register_static_object(&once_value_6);
443 } else fra.me.REG[5] = once_value_6;
444 fra.me.REG[5] = fra.me.REG[5];
445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
446 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
447 CALL_toolcontext___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
448 }
449 /* ../lib/standard/collection/array.nit:274 */
450 REGB3 = TAG_Int(1);
451 /* ../lib/standard/kernel.nit:238 */
452 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
453 /* ../lib/standard/collection/array.nit:274 */
454 REGB0 = REGB3;
455 } else {
456 /* ../lib/standard/collection/array.nit:272 */
457 goto label7;
458 }
459 }
460 label7: while(0);
461 /* separate_options.nit:55 */
462 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
463 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
464 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
465 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
466 /* separate_options.nit:56 */
467 fra.me.REG[3] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[0])(fra.me.REG[0]);
468 fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[0])(fra.me.REG[0]);
469 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
470 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
471 /* separate_options.nit:57 */
472 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
473 fra.me.REG[0] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
474 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
475 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
476 stack_frame_head = fra.me.prev;
477 return;
478 }
479 static const char LOCATE_separate_options___MMSrcModule___compile_separate_module[] = "separate_options::MMSrcModule::(compiling::MMModule::compile_separate_module)";
480 void separate_options___MMSrcModule___compile_separate_module(val_t p0, val_t p1){
481 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
482 val_t REGB0;
483 val_t tmp;
484 static val_t once_value_1; /* Once value */
485 static val_t once_value_2; /* Once value */
486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
487 fra.me.file = LOCATE_separate_options;
488 fra.me.line = 63;
489 fra.me.meth = LOCATE_separate_options___MMSrcModule___compile_separate_module;
490 fra.me.has_broke = 0;
491 fra.me.REG_size = 4;
492 fra.me.nitni_local_ref_head = NULL;
493 fra.me.REG[0] = NIT_NULL;
494 fra.me.REG[1] = NIT_NULL;
495 fra.me.REG[2] = NIT_NULL;
496 fra.me.REG[3] = NIT_NULL;
497 fra.me.REG[0] = p0;
498 fra.me.REG[1] = p1;
499 /* separate_options.nit:63 */
500 fra.me.REG[2] = fra.me.REG[0];
501 fra.me.REG[3] = fra.me.REG[1];
502 /* separate_options.nit:65 */
503 CALL_SUPER_separate_options___MMSrcModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
504 /* separate_options.nit:68 */
505 REGB0 = TAG_Int(3);
506 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
507 if (!once_value_1) {
508 fra.me.REG[0] = BOX_NativeString("");
509 REGB0 = TAG_Int(0);
510 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
511 once_value_1 = fra.me.REG[0];
512 register_static_object(&once_value_1);
513 } else fra.me.REG[0] = once_value_1;
514 fra.me.REG[0] = fra.me.REG[0];
515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
516 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[2])(fra.me.REG[2]);
517 fra.me.REG[0] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
518 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
519 if (UNTAG_Bool(REGB0)) {
520 nit_abort("Reciever is null", NULL, LOCATE_separate_options, 68);
521 }
522 fra.me.REG[0] = CALL_location___SourceFile___filename(fra.me.REG[0])(fra.me.REG[0]);
523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
524 if (!once_value_2) {
525 fra.me.REG[0] = BOX_NativeString(".args");
526 REGB0 = TAG_Int(5);
527 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
528 once_value_2 = fra.me.REG[0];
529 register_static_object(&once_value_2);
530 } else fra.me.REG[0] = once_value_2;
531 fra.me.REG[0] = fra.me.REG[0];
532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
533 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
534 /* separate_options.nit:69 */
535 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
536 if (UNTAG_Bool(REGB0)) {
537 /* separate_options.nit:70 */
538 fra.me.REG[1] = NEW_IFStream_standard___file___IFStream___open(fra.me.REG[1]);
539 /* separate_options.nit:71 */
540 fra.me.REG[0] = CALL_standard___stream___IStream___read_all(fra.me.REG[1])(fra.me.REG[1]);
541 /* separate_options.nit:72 */
542 CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
543 /* separate_options.nit:74 */
544 fra.me.REG[1] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
545 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
546 CALL_separate_options___ToolContext___integrate_separate_options(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
547 /* separate_options.nit:75 */
548 fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
549 fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[3])(fra.me.REG[3]);
550 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[3])(fra.me.REG[3]);
551 }
552 stack_frame_head = fra.me.prev;
553 return;
554 }