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