prepare changelog for v0.5
[nit.git] / c_src / nitc._sep.c
1 /* This C file is generated by NIT to compile module nitc. */
2 #include "nitc._sep.h"
3 val_t nitc___NitCompiler___opt_output(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_nitc;
9 fra.me.line = 32;
10 fra.me.meth = LOCATE_nitc___NitCompiler___opt_output;
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 /* nitc.nit:32 */
17 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
18 if (UNTAG_Bool(REGB0)) {
19 } else {
20 nit_abort("Uninitialized attribute %s", "_opt_output", LOCATE_nitc, 32);
21 }
22 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]);
23 stack_frame_head = fra.me.prev;
24 return fra.me.REG[0];
25 }
26 val_t nitc___NitCompiler___opt_boost(val_t p0){
27 struct {struct stack_frame_t me;} fra;
28 val_t REGB0;
29 val_t tmp;
30 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31 fra.me.file = LOCATE_nitc;
32 fra.me.line = 33;
33 fra.me.meth = LOCATE_nitc___NitCompiler___opt_boost;
34 fra.me.has_broke = 0;
35 fra.me.REG_size = 1;
36 fra.me.nitni_local_ref_head = NULL;
37 fra.me.REG[0] = NIT_NULL;
38 fra.me.REG[0] = p0;
39 /* nitc.nit:33 */
40 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 nit_abort("Uninitialized attribute %s", "_opt_boost", LOCATE_nitc, 33);
44 }
45 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]);
46 stack_frame_head = fra.me.prev;
47 return fra.me.REG[0];
48 }
49 val_t nitc___NitCompiler___opt_no_cc(val_t p0){
50 struct {struct stack_frame_t me;} fra;
51 val_t REGB0;
52 val_t tmp;
53 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
54 fra.me.file = LOCATE_nitc;
55 fra.me.line = 34;
56 fra.me.meth = LOCATE_nitc___NitCompiler___opt_no_cc;
57 fra.me.has_broke = 0;
58 fra.me.REG_size = 1;
59 fra.me.nitni_local_ref_head = NULL;
60 fra.me.REG[0] = NIT_NULL;
61 fra.me.REG[0] = p0;
62 /* nitc.nit:34 */
63 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
64 if (UNTAG_Bool(REGB0)) {
65 } else {
66 nit_abort("Uninitialized attribute %s", "_opt_no_cc", LOCATE_nitc, 34);
67 }
68 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]);
69 stack_frame_head = fra.me.prev;
70 return fra.me.REG[0];
71 }
72 val_t nitc___NitCompiler___opt_cc_no_link(val_t p0){
73 struct {struct stack_frame_t me;} fra;
74 val_t REGB0;
75 val_t tmp;
76 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
77 fra.me.file = LOCATE_nitc;
78 fra.me.line = 35;
79 fra.me.meth = LOCATE_nitc___NitCompiler___opt_cc_no_link;
80 fra.me.has_broke = 0;
81 fra.me.REG_size = 1;
82 fra.me.nitni_local_ref_head = NULL;
83 fra.me.REG[0] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 /* nitc.nit:35 */
86 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0])!=NIT_NULL);
87 if (UNTAG_Bool(REGB0)) {
88 } else {
89 nit_abort("Uninitialized attribute %s", "_opt_cc_no_link", LOCATE_nitc, 35);
90 }
91 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0]);
92 stack_frame_head = fra.me.prev;
93 return fra.me.REG[0];
94 }
95 val_t nitc___NitCompiler___opt_clibdir(val_t p0){
96 struct {struct stack_frame_t me;} fra;
97 val_t REGB0;
98 val_t tmp;
99 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
100 fra.me.file = LOCATE_nitc;
101 fra.me.line = 36;
102 fra.me.meth = LOCATE_nitc___NitCompiler___opt_clibdir;
103 fra.me.has_broke = 0;
104 fra.me.REG_size = 1;
105 fra.me.nitni_local_ref_head = NULL;
106 fra.me.REG[0] = NIT_NULL;
107 fra.me.REG[0] = p0;
108 /* nitc.nit:36 */
109 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
110 if (UNTAG_Bool(REGB0)) {
111 } else {
112 nit_abort("Uninitialized attribute %s", "_opt_clibdir", LOCATE_nitc, 36);
113 }
114 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]);
115 stack_frame_head = fra.me.prev;
116 return fra.me.REG[0];
117 }
118 val_t nitc___NitCompiler___opt_bindir(val_t p0){
119 struct {struct stack_frame_t me;} fra;
120 val_t REGB0;
121 val_t tmp;
122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
123 fra.me.file = LOCATE_nitc;
124 fra.me.line = 37;
125 fra.me.meth = LOCATE_nitc___NitCompiler___opt_bindir;
126 fra.me.has_broke = 0;
127 fra.me.REG_size = 1;
128 fra.me.nitni_local_ref_head = NULL;
129 fra.me.REG[0] = NIT_NULL;
130 fra.me.REG[0] = p0;
131 /* nitc.nit:37 */
132 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
133 if (UNTAG_Bool(REGB0)) {
134 } else {
135 nit_abort("Uninitialized attribute %s", "_opt_bindir", LOCATE_nitc, 37);
136 }
137 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]);
138 stack_frame_head = fra.me.prev;
139 return fra.me.REG[0];
140 }
141 val_t nitc___NitCompiler___opt_compdir(val_t p0){
142 struct {struct stack_frame_t me;} fra;
143 val_t REGB0;
144 val_t tmp;
145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
146 fra.me.file = LOCATE_nitc;
147 fra.me.line = 38;
148 fra.me.meth = LOCATE_nitc___NitCompiler___opt_compdir;
149 fra.me.has_broke = 0;
150 fra.me.REG_size = 1;
151 fra.me.nitni_local_ref_head = NULL;
152 fra.me.REG[0] = NIT_NULL;
153 fra.me.REG[0] = p0;
154 /* nitc.nit:38 */
155 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
156 if (UNTAG_Bool(REGB0)) {
157 } else {
158 nit_abort("Uninitialized attribute %s", "_opt_compdir", LOCATE_nitc, 38);
159 }
160 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]);
161 stack_frame_head = fra.me.prev;
162 return fra.me.REG[0];
163 }
164 val_t nitc___NitCompiler___opt_extension_prefix(val_t p0){
165 struct {struct stack_frame_t me;} fra;
166 val_t REGB0;
167 val_t tmp;
168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
169 fra.me.file = LOCATE_nitc;
170 fra.me.line = 39;
171 fra.me.meth = LOCATE_nitc___NitCompiler___opt_extension_prefix;
172 fra.me.has_broke = 0;
173 fra.me.REG_size = 1;
174 fra.me.nitni_local_ref_head = NULL;
175 fra.me.REG[0] = NIT_NULL;
176 fra.me.REG[0] = p0;
177 /* nitc.nit:39 */
178 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
179 if (UNTAG_Bool(REGB0)) {
180 } else {
181 nit_abort("Uninitialized attribute %s", "_opt_extension_prefix", LOCATE_nitc, 39);
182 }
183 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]);
184 stack_frame_head = fra.me.prev;
185 return fra.me.REG[0];
186 }
187 val_t nitc___NitCompiler___opt_output_format(val_t p0){
188 struct {struct stack_frame_t me;} fra;
189 val_t REGB0;
190 val_t tmp;
191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
192 fra.me.file = LOCATE_nitc;
193 fra.me.line = 40;
194 fra.me.meth = LOCATE_nitc___NitCompiler___opt_output_format;
195 fra.me.has_broke = 0;
196 fra.me.REG_size = 1;
197 fra.me.nitni_local_ref_head = NULL;
198 fra.me.REG[0] = NIT_NULL;
199 fra.me.REG[0] = p0;
200 /* nitc.nit:40 */
201 REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0])!=NIT_NULL);
202 if (UNTAG_Bool(REGB0)) {
203 } else {
204 nit_abort("Uninitialized attribute %s", "_opt_output_format", LOCATE_nitc, 40);
205 }
206 fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0]);
207 stack_frame_head = fra.me.prev;
208 return fra.me.REG[0];
209 }
210 void nitc___NitCompiler___init(val_t p0, int* init_table){
211 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_nitc___NitCompiler].i;
212 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
213 val_t REGB0;
214 val_t tmp;
215 static val_t once_value_1; /* Once value */
216 if (init_table[itpos0]) return;
217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
218 fra.me.file = LOCATE_nitc;
219 fra.me.line = 42;
220 fra.me.meth = LOCATE_nitc___NitCompiler___init;
221 fra.me.has_broke = 0;
222 fra.me.REG_size = 4;
223 fra.me.nitni_local_ref_head = NULL;
224 fra.me.REG[0] = NIT_NULL;
225 fra.me.REG[1] = NIT_NULL;
226 fra.me.REG[2] = NIT_NULL;
227 fra.me.REG[3] = NIT_NULL;
228 fra.me.REG[0] = p0;
229 /* nitc.nit:42 */
230 fra.me.REG[1] = fra.me.REG[0];
231 /* nitc.nit:44 */
232 if (!once_value_1) {
233 fra.me.REG[2] = BOX_NativeString("nitc");
234 REGB0 = TAG_Int(4);
235 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
236 once_value_1 = fra.me.REG[2];
237 register_static_object(&once_value_1);
238 } else fra.me.REG[2] = once_value_1;
239 fra.me.REG[2] = fra.me.REG[2];
240 CALL_abstracttool___AbstractCompiler___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
241 /* nitc.nit:45 */
242 fra.me.REG[2] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
243 REGB0 = TAG_Int(11);
244 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
245 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_output(fra.me.REG[1])(fra.me.REG[1]);
246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
247 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_boost(fra.me.REG[1])(fra.me.REG[1]);
248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
249 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_no_cc(fra.me.REG[1])(fra.me.REG[1]);
250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
251 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_cc_no_link(fra.me.REG[1])(fra.me.REG[1]);
252 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
253 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[1])(fra.me.REG[1]);
254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
255 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
257 fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
259 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_clibdir(fra.me.REG[1])(fra.me.REG[1]);
260 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
261 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_bindir(fra.me.REG[1])(fra.me.REG[1]);
262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
263 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_compdir(fra.me.REG[1])(fra.me.REG[1]);
264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
265 fra.me.REG[3] = CALL_nitc___NitCompiler___opt_extension_prefix(fra.me.REG[1])(fra.me.REG[1]);
266 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
267 fra.me.REG[1] = CALL_nitc___NitCompiler___opt_output_format(fra.me.REG[1])(fra.me.REG[1]);
268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
269 CALL_opts___OptionContext___add_option(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
270 stack_frame_head = fra.me.prev;
271 init_table[itpos0] = 1;
272 return;
273 }
274 void nitc___NitCompiler___process_options(val_t p0){
275 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
276 val_t REGB0;
277 val_t REGB1;
278 val_t tmp;
279 static val_t once_value_1; /* Once value */
280 static val_t once_value_2; /* Once value */
281 static val_t once_value_3; /* Once value */
282 static val_t once_value_4; /* Once value */
283 static val_t once_value_5; /* Once value */
284 static val_t once_value_6; /* Once value */
285 static val_t once_value_7; /* Once value */
286 static val_t once_value_8; /* Once value */
287 static val_t once_value_9; /* Once value */
288 static val_t once_value_10; /* Once value */
289 static val_t once_value_11; /* Once value */
290 static val_t once_value_12; /* Once value */
291 static val_t once_value_13; /* Once value */
292 static val_t once_value_14; /* Once value */
293 static val_t once_value_15; /* Once value */
294 static val_t once_value_16; /* Once value */
295 static val_t once_value_17; /* Once value */
296 static val_t once_value_18; /* Once value */
297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
298 fra.me.file = LOCATE_nitc;
299 fra.me.line = 48;
300 fra.me.meth = LOCATE_nitc___NitCompiler___process_options;
301 fra.me.has_broke = 0;
302 fra.me.REG_size = 4;
303 fra.me.nitni_local_ref_head = NULL;
304 fra.me.REG[0] = NIT_NULL;
305 fra.me.REG[1] = NIT_NULL;
306 fra.me.REG[2] = NIT_NULL;
307 fra.me.REG[3] = NIT_NULL;
308 fra.me.REG[0] = p0;
309 /* nitc.nit:48 */
310 fra.me.REG[1] = fra.me.REG[0];
311 /* nitc.nit:50 */
312 CALL_SUPER_nitc___NitCompiler___process_options(fra.me.REG[0])(fra.me.REG[0]);
313 /* nitc.nit:51 */
314 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_output(fra.me.REG[1])(fra.me.REG[1]);
315 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
316 CALL_compiling___compiling_base___ToolContext___output_file__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
317 /* nitc.nit:52 */
318 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_boost(fra.me.REG[1])(fra.me.REG[1]);
319 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
320 CALL_compiling___compiling_base___ToolContext___boost__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
321 /* nitc.nit:53 */
322 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_no_cc(fra.me.REG[1])(fra.me.REG[1]);
323 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
324 CALL_compiling___compiling_base___ToolContext___no_cc__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
325 /* nitc.nit:54 */
326 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_cc_no_link(fra.me.REG[1])(fra.me.REG[1]);
327 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
328 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[0]));
329 CALL_compiling___compiling_base___ToolContext___cc_link__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
330 /* nitc.nit:55 */
331 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
332 fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
333 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
334 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
335 /* nitc.nit:56 */
336 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[1])(fra.me.REG[1]);
337 fra.me.REG[0] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[1])(fra.me.REG[1]);
338 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
339 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
340 /* nitc.nit:57 */
341 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
342 fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
343 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
344 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
345 /* nitc.nit:58 */
346 fra.me.REG[2] = CALL_nitc___NitCompiler___opt_extension_prefix(fra.me.REG[1])(fra.me.REG[1]);
347 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
348 /* nitc.nit:59 */
349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
350 if (UNTAG_Bool(REGB0)) {
351 } else {
352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
353 if (UNTAG_Bool(REGB1)) {
354 REGB1 = TAG_Bool(false);
355 REGB0 = REGB1;
356 } else {
357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
358 REGB0 = REGB1;
359 }
360 }
361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
362 if (UNTAG_Bool(REGB0)) {
363 CALL_compiling___compiling_base___ToolContext___ext_prefix__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
364 } else {
365 if (!once_value_1) {
366 fra.me.REG[2] = BOX_NativeString("");
367 REGB0 = TAG_Int(0);
368 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
369 once_value_1 = fra.me.REG[2];
370 register_static_object(&once_value_1);
371 } else fra.me.REG[2] = once_value_1;
372 fra.me.REG[2] = fra.me.REG[2];
373 CALL_compiling___compiling_base___ToolContext___ext_prefix__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
374 }
375 /* nitc.nit:60 */
376 fra.me.REG[2] = CALL_nitc___NitCompiler___opt_compdir(fra.me.REG[1])(fra.me.REG[1]);
377 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
378 CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
379 /* nitc.nit:61 */
380 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
382 if (UNTAG_Bool(REGB0)) {
383 } else {
384 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
385 if (UNTAG_Bool(REGB1)) {
386 REGB1 = TAG_Bool(false);
387 REGB0 = REGB1;
388 } else {
389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
390 REGB0 = REGB1;
391 }
392 }
393 if (UNTAG_Bool(REGB0)) {
394 /* nitc.nit:62 */
395 if (!once_value_2) {
396 if (!once_value_3) {
397 fra.me.REG[2] = BOX_NativeString("NIT_COMPDIR");
398 REGB0 = TAG_Int(11);
399 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
400 once_value_3 = fra.me.REG[2];
401 register_static_object(&once_value_3);
402 } else fra.me.REG[2] = once_value_3;
403 fra.me.REG[2] = fra.me.REG[2];
404 fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
405 fra.me.REG[2] = CALL_standard___environ___Symbol___environ(fra.me.REG[2])(fra.me.REG[2]);
406 once_value_2 = fra.me.REG[2];
407 register_static_object(&once_value_2);
408 } else fra.me.REG[2] = once_value_2;
409 fra.me.REG[2] = fra.me.REG[2];
410 /* nitc.nit:63 */
411 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
413 if (UNTAG_Bool(REGB0)) {
414 /* nitc.nit:64 */
415 CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
416 }
417 /* nitc.nit:66 */
418 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
420 if (UNTAG_Bool(REGB0)) {
421 } else {
422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
423 if (UNTAG_Bool(REGB1)) {
424 REGB1 = TAG_Bool(false);
425 REGB0 = REGB1;
426 } else {
427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
428 REGB0 = REGB1;
429 }
430 }
431 if (UNTAG_Bool(REGB0)) {
432 /* nitc.nit:67 */
433 if (!once_value_4) {
434 fra.me.REG[2] = BOX_NativeString(".nit_compile");
435 REGB0 = TAG_Int(12);
436 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
437 once_value_4 = fra.me.REG[2];
438 register_static_object(&once_value_4);
439 } else fra.me.REG[2] = once_value_4;
440 fra.me.REG[2] = fra.me.REG[2];
441 CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
442 }
443 }
444 /* nitc.nit:70 */
445 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
446 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___ext_prefix(fra.me.REG[1])(fra.me.REG[1]);
447 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
448 CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
449 /* nitc.nit:71 */
450 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
451 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
452 if (UNTAG_Bool(REGB0)) {
453 nit_abort("Reciever is null", NULL, LOCATE_nitc, 71);
454 }
455 fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
456 CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
457 /* nitc.nit:73 */
458 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_clibdir(fra.me.REG[1])(fra.me.REG[1]);
459 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
460 CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
461 /* nitc.nit:74 */
462 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
463 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
464 if (UNTAG_Bool(REGB0)) {
465 } else {
466 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
467 if (UNTAG_Bool(REGB1)) {
468 REGB1 = TAG_Bool(false);
469 REGB0 = REGB1;
470 } else {
471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
472 REGB0 = REGB1;
473 }
474 }
475 if (UNTAG_Bool(REGB0)) {
476 /* nitc.nit:75 */
477 if (!once_value_5) {
478 if (!once_value_6) {
479 fra.me.REG[0] = BOX_NativeString("NIT_DIR");
480 REGB0 = TAG_Int(7);
481 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
482 once_value_6 = fra.me.REG[0];
483 register_static_object(&once_value_6);
484 } else fra.me.REG[0] = once_value_6;
485 fra.me.REG[0] = fra.me.REG[0];
486 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
487 fra.me.REG[0] = CALL_standard___environ___Symbol___environ(fra.me.REG[0])(fra.me.REG[0]);
488 once_value_5 = fra.me.REG[0];
489 register_static_object(&once_value_5);
490 } else fra.me.REG[0] = once_value_5;
491 fra.me.REG[0] = fra.me.REG[0];
492 /* nitc.nit:76 */
493 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
494 if (UNTAG_Bool(REGB0)) {
495 /* nitc.nit:77 */
496 REGB0 = TAG_Int(3);
497 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
498 if (!once_value_7) {
499 fra.me.REG[3] = BOX_NativeString("");
500 REGB0 = TAG_Int(0);
501 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
502 once_value_7 = fra.me.REG[3];
503 register_static_object(&once_value_7);
504 } else fra.me.REG[3] = once_value_7;
505 fra.me.REG[3] = fra.me.REG[3];
506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
507 fra.me.REG[3] = CALL_standard___kernel___Object___sys(fra.me.REG[1])(fra.me.REG[1]);
508 fra.me.REG[3] = CALL_standard___string___Sys___program_name(fra.me.REG[3])(fra.me.REG[3]);
509 fra.me.REG[3] = CALL_standard___file___String___dirname(fra.me.REG[3])(fra.me.REG[3]);
510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
511 if (!once_value_8) {
512 fra.me.REG[3] = BOX_NativeString("/../clib");
513 REGB0 = TAG_Int(8);
514 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
515 once_value_8 = fra.me.REG[3];
516 register_static_object(&once_value_8);
517 } else fra.me.REG[3] = once_value_8;
518 fra.me.REG[3] = fra.me.REG[3];
519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
520 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
521 fra.me.REG[0] = fra.me.REG[2];
522 /* nitc.nit:78 */
523 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
524 if (UNTAG_Bool(REGB0)) {
525 CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
526 }
527 } else {
528 /* nitc.nit:80 */
529 REGB0 = TAG_Int(3);
530 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
531 if (!once_value_9) {
532 fra.me.REG[3] = BOX_NativeString("");
533 REGB0 = TAG_Int(0);
534 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
535 once_value_9 = fra.me.REG[3];
536 register_static_object(&once_value_9);
537 } else fra.me.REG[3] = once_value_9;
538 fra.me.REG[3] = fra.me.REG[3];
539 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
541 if (!once_value_10) {
542 fra.me.REG[3] = BOX_NativeString("/clib");
543 REGB0 = TAG_Int(5);
544 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
545 once_value_10 = fra.me.REG[3];
546 register_static_object(&once_value_10);
547 } else fra.me.REG[3] = once_value_10;
548 fra.me.REG[3] = fra.me.REG[3];
549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
550 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
551 fra.me.REG[0] = fra.me.REG[2];
552 /* nitc.nit:81 */
553 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
554 if (UNTAG_Bool(REGB0)) {
555 CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
556 }
557 }
558 /* nitc.nit:83 */
559 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
560 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
561 if (UNTAG_Bool(REGB0)) {
562 } else {
563 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
564 if (UNTAG_Bool(REGB1)) {
565 REGB1 = TAG_Bool(false);
566 REGB0 = REGB1;
567 } else {
568 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
569 REGB0 = REGB1;
570 }
571 }
572 if (UNTAG_Bool(REGB0)) {
573 /* nitc.nit:84 */
574 if (!once_value_11) {
575 fra.me.REG[0] = BOX_NativeString("Error: Cannot locate NIT C library directory. Uses --clibdir or envvar NIT_DIR.");
576 REGB0 = TAG_Int(79);
577 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
578 once_value_11 = fra.me.REG[0];
579 register_static_object(&once_value_11);
580 } else fra.me.REG[0] = once_value_11;
581 fra.me.REG[0] = fra.me.REG[0];
582 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
583 }
584 }
585 /* nitc.nit:87 */
586 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
587 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
588 if (UNTAG_Bool(REGB0)) {
589 nit_abort("Reciever is null", NULL, LOCATE_nitc, 87);
590 }
591 fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
592 CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
593 /* nitc.nit:89 */
594 fra.me.REG[0] = CALL_nitc___NitCompiler___opt_bindir(fra.me.REG[1])(fra.me.REG[1]);
595 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
596 CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
597 /* nitc.nit:90 */
598 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
599 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
600 if (UNTAG_Bool(REGB0)) {
601 } else {
602 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
603 if (UNTAG_Bool(REGB1)) {
604 REGB1 = TAG_Bool(false);
605 REGB0 = REGB1;
606 } else {
607 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
608 REGB0 = REGB1;
609 }
610 }
611 if (UNTAG_Bool(REGB0)) {
612 /* nitc.nit:91 */
613 if (!once_value_12) {
614 if (!once_value_13) {
615 fra.me.REG[0] = BOX_NativeString("NIT_DIR");
616 REGB0 = TAG_Int(7);
617 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
618 once_value_13 = fra.me.REG[0];
619 register_static_object(&once_value_13);
620 } else fra.me.REG[0] = once_value_13;
621 fra.me.REG[0] = fra.me.REG[0];
622 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
623 fra.me.REG[0] = CALL_standard___environ___Symbol___environ(fra.me.REG[0])(fra.me.REG[0]);
624 once_value_12 = fra.me.REG[0];
625 register_static_object(&once_value_12);
626 } else fra.me.REG[0] = once_value_12;
627 fra.me.REG[0] = fra.me.REG[0];
628 /* nitc.nit:92 */
629 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
630 if (UNTAG_Bool(REGB0)) {
631 /* nitc.nit:93 */
632 REGB0 = TAG_Int(3);
633 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
634 if (!once_value_14) {
635 fra.me.REG[3] = BOX_NativeString("");
636 REGB0 = TAG_Int(0);
637 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
638 once_value_14 = fra.me.REG[3];
639 register_static_object(&once_value_14);
640 } else fra.me.REG[3] = once_value_14;
641 fra.me.REG[3] = fra.me.REG[3];
642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
643 fra.me.REG[3] = CALL_standard___kernel___Object___sys(fra.me.REG[1])(fra.me.REG[1]);
644 fra.me.REG[3] = CALL_standard___string___Sys___program_name(fra.me.REG[3])(fra.me.REG[3]);
645 fra.me.REG[3] = CALL_standard___file___String___dirname(fra.me.REG[3])(fra.me.REG[3]);
646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
647 if (!once_value_15) {
648 fra.me.REG[3] = BOX_NativeString("/../bin");
649 REGB0 = TAG_Int(7);
650 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
651 once_value_15 = fra.me.REG[3];
652 register_static_object(&once_value_15);
653 } else fra.me.REG[3] = once_value_15;
654 fra.me.REG[3] = fra.me.REG[3];
655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
656 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
657 fra.me.REG[0] = fra.me.REG[2];
658 /* nitc.nit:94 */
659 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
660 if (UNTAG_Bool(REGB0)) {
661 CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
662 }
663 } else {
664 /* nitc.nit:96 */
665 REGB0 = TAG_Int(3);
666 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
667 if (!once_value_16) {
668 fra.me.REG[3] = BOX_NativeString("");
669 REGB0 = TAG_Int(0);
670 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
671 once_value_16 = fra.me.REG[3];
672 register_static_object(&once_value_16);
673 } else fra.me.REG[3] = once_value_16;
674 fra.me.REG[3] = fra.me.REG[3];
675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
677 if (!once_value_17) {
678 fra.me.REG[3] = BOX_NativeString("/bin");
679 REGB0 = TAG_Int(4);
680 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
681 once_value_17 = fra.me.REG[3];
682 register_static_object(&once_value_17);
683 } else fra.me.REG[3] = once_value_17;
684 fra.me.REG[3] = fra.me.REG[3];
685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
686 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
687 fra.me.REG[0] = fra.me.REG[2];
688 /* nitc.nit:97 */
689 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
690 if (UNTAG_Bool(REGB0)) {
691 CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
692 }
693 }
694 /* nitc.nit:99 */
695 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
696 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
697 if (UNTAG_Bool(REGB0)) {
698 } else {
699 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
700 if (UNTAG_Bool(REGB1)) {
701 REGB1 = TAG_Bool(false);
702 REGB0 = REGB1;
703 } else {
704 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
705 REGB0 = REGB1;
706 }
707 }
708 if (UNTAG_Bool(REGB0)) {
709 /* nitc.nit:100 */
710 if (!once_value_18) {
711 fra.me.REG[0] = BOX_NativeString("Error: Cannot locate NIT tools directory. Uses --bindir or envvar NIT_DIR.");
712 REGB0 = TAG_Int(74);
713 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
714 once_value_18 = fra.me.REG[0];
715 register_static_object(&once_value_18);
716 } else fra.me.REG[0] = once_value_18;
717 fra.me.REG[0] = fra.me.REG[0];
718 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
719 }
720 }
721 /* nitc.nit:103 */
722 fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
723 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
724 if (UNTAG_Bool(REGB0)) {
725 nit_abort("Reciever is null", NULL, LOCATE_nitc, 103);
726 }
727 fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
728 CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
729 stack_frame_head = fra.me.prev;
730 return;
731 }
732 void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
733 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
734 val_t REGB0;
735 val_t REGB1;
736 val_t REGB2;
737 val_t tmp;
738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
739 fra.me.file = LOCATE_nitc;
740 fra.me.line = 106;
741 fra.me.meth = LOCATE_nitc___NitCompiler___perform_work;
742 fra.me.has_broke = 0;
743 fra.me.REG_size = 5;
744 fra.me.nitni_local_ref_head = NULL;
745 fra.me.REG[0] = NIT_NULL;
746 fra.me.REG[1] = NIT_NULL;
747 fra.me.REG[2] = NIT_NULL;
748 fra.me.REG[3] = NIT_NULL;
749 fra.me.REG[4] = NIT_NULL;
750 fra.me.REG[0] = p0;
751 fra.me.REG[1] = p1;
752 /* ../lib/standard/collection/array.nit:269 */
753 REGB0 = TAG_Int(0);
754 /* ../lib/standard/collection/array.nit:270 */
755 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
756 if (UNTAG_Bool(REGB1)) {
757 } else {
758 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
759 }
760 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
761 /* ../lib/standard/collection/array.nit:271 */
762 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
763 /* ../lib/standard/collection/array.nit:272 */
764 while(1) {
765 /* ../lib/standard/collection/array.nit:24 */
766 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
767 if (UNTAG_Bool(REGB1)) {
768 } else {
769 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
770 }
771 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
772 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
773 if (UNTAG_Bool(REGB2)) {
774 } else {
775 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
776 }
777 /* ../lib/standard/kernel.nit:232 */
778 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
779 /* ../lib/standard/collection/array.nit:272 */
780 if (UNTAG_Bool(REGB1)) {
781 /* ../lib/standard/collection/array.nit:273 */
782 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
783 if (UNTAG_Bool(REGB1)) {
784 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
785 }
786 /* ../lib/standard/collection/array.nit:718 */
787 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
788 /* nitc.nit:109 */
789 fra.me.REG[3] = NEW_Program_program___Program___init(fra.me.REG[3], fra.me.REG[0]);
790 /* nitc.nit:110 */
791 fra.me.REG[4] = CALL_nitc___NitCompiler___opt_output_format(fra.me.REG[0])(fra.me.REG[0]);
792 fra.me.REG[4] = CALL_opts___OptionEnum___value_name(fra.me.REG[4])(fra.me.REG[4]);
793 CALL_compiling___Program___output_format__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
794 /* nitc.nit:111 */
795 CALL_program___Program___compute_main_method(fra.me.REG[3])(fra.me.REG[3]);
796 /* nitc.nit:112 */
797 CALL_program___Program___generate_allocation_iroutines(fra.me.REG[3])(fra.me.REG[3]);
798 /* nitc.nit:113 */
799 REGB1 = CALL_program___ToolContext___global(fra.me.REG[0])(fra.me.REG[0]);
800 if (UNTAG_Bool(REGB1)) {
801 CALL_global___Program___do_global_analysis(fra.me.REG[3])(fra.me.REG[3]);
802 }
803 /* nitc.nit:114 */
804 CALL_compiling___table_computation___Program___do_table_computation(fra.me.REG[3])(fra.me.REG[3]);
805 /* nitc.nit:115 */
806 CALL_compiling___Program___compile_prog(fra.me.REG[3])(fra.me.REG[3]);
807 /* ../lib/standard/collection/array.nit:274 */
808 REGB1 = TAG_Int(1);
809 /* ../lib/standard/kernel.nit:235 */
810 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
811 /* ../lib/standard/collection/array.nit:274 */
812 REGB0 = REGB1;
813 } else {
814 /* ../lib/standard/collection/array.nit:272 */
815 goto label1;
816 }
817 }
818 label1: while(0);
819 stack_frame_head = fra.me.prev;
820 return;
821 }
822 void nitc___ToolContext___init(val_t p0, int* init_table){
823 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
824 struct {struct stack_frame_t me;} fra;
825 val_t tmp;
826 if (init_table[itpos1]) return;
827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
828 fra.me.file = LOCATE_nitc;
829 fra.me.line = 121;
830 fra.me.meth = LOCATE_nitc___ToolContext___init;
831 fra.me.has_broke = 0;
832 fra.me.REG_size = 1;
833 fra.me.nitni_local_ref_head = NULL;
834 fra.me.REG[0] = NIT_NULL;
835 fra.me.REG[0] = p0;
836 /* nitc.nit:121 */
837 CALL_SUPER_nitc___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
838 stack_frame_head = fra.me.prev;
839 init_table[itpos1] = 1;
840 return;
841 }
842 void nitc___Sys___main(val_t p0){
843 struct {struct stack_frame_t me;} fra;
844 val_t tmp;
845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
846 fra.me.file = LOCATE_nitc;
847 fra.me.line = 125;
848 fra.me.meth = LOCATE_nitc___Sys___main;
849 fra.me.has_broke = 0;
850 fra.me.REG_size = 1;
851 fra.me.nitni_local_ref_head = NULL;
852 fra.me.REG[0] = NIT_NULL;
853 fra.me.REG[0] = p0;
854 /* nitc.nit:125 */
855 fra.me.REG[0] = NEW_NitCompiler_nitc___NitCompiler___init();
856 /* nitc.nit:126 */
857 CALL_abstracttool___AbstractCompiler___exec_cmd_line(fra.me.REG[0])(fra.me.REG[0]);
858 stack_frame_head = fra.me.prev;
859 return;
860 }