gc: show default GC on warnings
[nit.git] / c_src / syntax._sep.c
1 /* This C file is generated by NIT to compile module syntax. */
2 #include "syntax._sep.h"
3 val_t syntax___SrcModuleLoader___file_type(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 static val_t once_value_1; /* Once value */
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_syntax;
10 fra.me.line = 31;
11 fra.me.meth = LOCATE_syntax___SrcModuleLoader___file_type;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* ./syntax//syntax.nit:31 */
17 if (!once_value_1) {
18 fra.me.REG[0] = BOX_NativeString("nit");
19 REGB0 = TAG_Int(3);
20 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
21 once_value_1 = fra.me.REG[0];
22 register_static_object(&once_value_1);
23 } else fra.me.REG[0] = once_value_1;
24 goto label2;
25 label2: while(0);
26 stack_frame_head = fra.me.prev;
27 return fra.me.REG[0];
28 }
29 val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
30 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31 val_t REGB0;
32 val_t REGB1;
33 val_t tmp;
34 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35 fra.me.file = LOCATE_syntax;
36 fra.me.line = 33;
37 fra.me.meth = LOCATE_syntax___SrcModuleLoader___parse_file;
38 fra.me.has_broke = 0;
39 fra.me.REG_size = 7;
40 fra.me.REG[0] = NIT_NULL;
41 fra.me.REG[1] = NIT_NULL;
42 fra.me.REG[2] = NIT_NULL;
43 fra.me.REG[3] = NIT_NULL;
44 fra.me.REG[4] = NIT_NULL;
45 fra.me.REG[5] = NIT_NULL;
46 fra.me.REG[6] = NIT_NULL;
47 fra.me.REG[0] = p0;
48 fra.me.REG[1] = p1;
49 fra.me.REG[2] = p2;
50 fra.me.REG[3] = p3;
51 fra.me.REG[4] = p4;
52 fra.me.REG[5] = p5;
53 fra.me.REG[2] = NEW_Lexer_lexer___Lexer___init(fra.me.REG[2], fra.me.REG[3]);
54 fra.me.REG[2] = NEW_Parser_parser___Parser___init(fra.me.REG[2]);
55 fra.me.REG[2] = CALL_parser___Parser___parse(fra.me.REG[2])(fra.me.REG[2]);
56 fra.me.REG[0] = CALL_parser_nodes___Start___n_base(fra.me.REG[2])(fra.me.REG[2]);
57 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
58 /* ./syntax//syntax.nit:38 */
59 if (UNTAG_Bool(REGB0)) {
60 } else {
61 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
62 if (UNTAG_Bool(REGB1)) {
63 REGB1 = TAG_Bool(false);
64 REGB0 = REGB1;
65 } else {
66 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
67 REGB0 = REGB1;
68 }
69 }
70 if (UNTAG_Bool(REGB0)) {
71 fra.me.REG[0] = CALL_parser_nodes___Start___n_eof(fra.me.REG[2])(fra.me.REG[2]);
72 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AError, ID_AError)) /*cast AError*/;
73 /* ./syntax//syntax.nit:40 */
74 if (UNTAG_Bool(REGB0)) {
75 } else {
76 fprintf(stderr, "Assert failed");
77 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax, 40);
78 nit_exit(1);
79 }
80 fra.me.REG[6] = CALL_parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
81 fra.me.REG[0] = CALL_lexer___AError___message(fra.me.REG[0])(fra.me.REG[0]);
82 /* ./syntax//syntax.nit:41 */
83 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[0]);
84 }
85 fra.me.REG[2] = CALL_parser_nodes___Start___n_base(fra.me.REG[2])(fra.me.REG[2]);
86 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
87 /* ./syntax//syntax.nit:44 */
88 if (UNTAG_Bool(REGB0)) {
89 } else {
90 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
91 if (UNTAG_Bool(REGB1)) {
92 REGB1 = TAG_Bool(false);
93 REGB0 = REGB1;
94 } else {
95 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
96 REGB0 = REGB1;
97 }
98 }
99 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
100 if (UNTAG_Bool(REGB0)) {
101 } else {
102 fprintf(stderr, "Assert failed");
103 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax, 44);
104 nit_exit(1);
105 }
106 fra.me.REG[3] = NEW_Location_location___Location___with_file(fra.me.REG[3]);
107 fra.me.REG[3] = NEW_MMSrcModule_syntax_base___MMSrcModule___init(fra.me.REG[1], fra.me.REG[2], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
108 /* ./syntax//syntax.nit:47 */
109 goto label1;
110 label1: while(0);
111 stack_frame_head = fra.me.prev;
112 return fra.me.REG[3];
113 }
114 void syntax___SrcModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
116 val_t REGB0;
117 val_t tmp;
118 static val_t once_value_1; /* Once value */
119 static val_t once_value_2; /* Once value */
120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
121 fra.me.file = LOCATE_syntax;
122 fra.me.line = 50;
123 fra.me.meth = LOCATE_syntax___SrcModuleLoader___process_metamodel;
124 fra.me.has_broke = 0;
125 fra.me.REG_size = 4;
126 fra.me.REG[0] = NIT_NULL;
127 fra.me.REG[1] = NIT_NULL;
128 fra.me.REG[2] = NIT_NULL;
129 fra.me.REG[3] = NIT_NULL;
130 fra.me.REG[0] = p0;
131 fra.me.REG[1] = p1;
132 fra.me.REG[2] = p2;
133 /* ./syntax//syntax.nit:52 */
134 CALL_syntax___MMSrcModule___process_supermodules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
135 REGB0 = TAG_Int(3);
136 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
137 /* ./syntax//syntax.nit:53 */
138 if (!once_value_1) {
139 fra.me.REG[3] = BOX_NativeString("Syntax analysis for module: ");
140 REGB0 = TAG_Int(28);
141 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
142 once_value_1 = fra.me.REG[3];
143 register_static_object(&once_value_1);
144 } else fra.me.REG[3] = once_value_1;
145 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
146 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]);
147 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
148 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
149 if (!once_value_2) {
150 fra.me.REG[3] = BOX_NativeString("");
151 REGB0 = TAG_Int(0);
152 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
153 once_value_2 = fra.me.REG[3];
154 register_static_object(&once_value_2);
155 } else fra.me.REG[3] = once_value_2;
156 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
157 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
158 REGB0 = TAG_Int(2);
159 CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
160 /* ./syntax//syntax.nit:54 */
161 CALL_syntax___MMSrcModule___process_syntax(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
162 stack_frame_head = fra.me.prev;
163 return;
164 }
165 void syntax___SrcModuleLoader___init(val_t p0, int* init_table){
166 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SrcModuleLoader].i;
167 struct {struct stack_frame_t me;} fra;
168 val_t tmp;
169 if (init_table[itpos0]) return;
170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
171 fra.me.file = LOCATE_syntax;
172 fra.me.line = 57;
173 fra.me.meth = LOCATE_syntax___SrcModuleLoader___init;
174 fra.me.has_broke = 0;
175 fra.me.REG_size = 1;
176 fra.me.REG[0] = NIT_NULL;
177 fra.me.REG[0] = p0;
178 /* ./syntax//syntax.nit:57 */
179 CALL_mmloader___ModuleLoader___init(fra.me.REG[0])(fra.me.REG[0], init_table);
180 stack_frame_head = fra.me.prev;
181 init_table[itpos0] = 1;
182 return;
183 }
184 void syntax___MMSrcModule___process_supermodules(val_t p0, val_t p1){
185 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
186 val_t tmp;
187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
188 fra.me.file = LOCATE_syntax;
189 fra.me.line = 61;
190 fra.me.meth = LOCATE_syntax___MMSrcModule___process_supermodules;
191 fra.me.has_broke = 0;
192 fra.me.REG_size = 3;
193 fra.me.REG[0] = NIT_NULL;
194 fra.me.REG[1] = NIT_NULL;
195 fra.me.REG[2] = NIT_NULL;
196 fra.me.REG[0] = p0;
197 fra.me.REG[1] = p1;
198 fra.me.REG[2] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
199 /* ./syntax//syntax.nit:64 */
200 CALL_mmbuilder___AModule___import_super_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
201 stack_frame_head = fra.me.prev;
202 return;
203 }
204 void syntax___MMSrcModule___process_syntax(val_t p0, val_t p1){
205 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
206 val_t REGB0;
207 val_t tmp;
208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
209 fra.me.file = LOCATE_syntax;
210 fra.me.line = 67;
211 fra.me.meth = LOCATE_syntax___MMSrcModule___process_syntax;
212 fra.me.has_broke = 0;
213 fra.me.REG_size = 2;
214 fra.me.REG[0] = NIT_NULL;
215 fra.me.REG[1] = NIT_NULL;
216 fra.me.REG[0] = p0;
217 fra.me.REG[1] = p1;
218 /* ./syntax//syntax.nit:71 */
219 CALL_mmbuilder___MMSrcModule___do_mmbuilder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
220 /* ./syntax//syntax.nit:72 */
221 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
222 /* ./syntax//syntax.nit:74 */
223 CALL_typing___MMSrcModule___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
224 /* ./syntax//syntax.nit:75 */
225 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
226 /* ./syntax//syntax.nit:77 */
227 CALL_icode_generation___MMSrcModule___generate_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
228 /* ./syntax//syntax.nit:78 */
229 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
230 REGB0 = CALL_syntax___ToolContext___keep_ast(fra.me.REG[1])(fra.me.REG[1]);
231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
232 /* ./syntax//syntax.nit:80 */
233 if (UNTAG_Bool(REGB0)) {
234 CALL_syntax_base___MMSrcModule___clear_ast(fra.me.REG[0])(fra.me.REG[0]);
235 }
236 stack_frame_head = fra.me.prev;
237 return;
238 }
239 val_t syntax___ToolContext___keep_ast(val_t p0){
240 struct {struct stack_frame_t me;} fra;
241 val_t REGB0;
242 val_t tmp;
243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
244 fra.me.file = LOCATE_syntax;
245 fra.me.line = 85;
246 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast;
247 fra.me.has_broke = 0;
248 fra.me.REG_size = 1;
249 fra.me.REG[0] = NIT_NULL;
250 fra.me.REG[0] = p0;
251 REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
252 /* ./syntax//syntax.nit:85 */
253 if (UNTAG_Bool(REGB0)) {
254 } else {
255 fprintf(stderr, "Uninitialized attribute %s", "_keep_ast");
256 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax, 85);
257 nit_exit(1);
258 }
259 REGB0 = ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]);
260 stack_frame_head = fra.me.prev;
261 return REGB0;
262 }
263 void syntax___ToolContext___keep_ast__eq(val_t p0, val_t p1){
264 struct {struct stack_frame_t me;} fra;
265 val_t REGB0;
266 val_t tmp;
267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
268 fra.me.file = LOCATE_syntax;
269 fra.me.line = 85;
270 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast__eq;
271 fra.me.has_broke = 0;
272 fra.me.REG_size = 1;
273 fra.me.REG[0] = NIT_NULL;
274 fra.me.REG[0] = p0;
275 REGB0 = p1;
276 /* ./syntax//syntax.nit:85 */
277 ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
278 stack_frame_head = fra.me.prev;
279 return;
280 }