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