mkcsrc: copy .c and .h file to avoid the break of the bootstrap
[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 static const char LOCATE_syntax___SrcModuleLoader___file_type[] = "syntax::SrcModuleLoader::(mmloader::ModuleLoader::file_type)";
4 val_t syntax___SrcModuleLoader___file_type(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t REGB0;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10 fra.me.file = LOCATE_syntax;
11 fra.me.line = 33;
12 fra.me.meth = LOCATE_syntax___SrcModuleLoader___file_type;
13 fra.me.has_broke = 0;
14 fra.me.REG_size = 1;
15 fra.me.nitni_local_ref_head = NULL;
16 fra.me.REG[0] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 /* syntax/syntax.nit:33 */
19 if (!once_value_1) {
20 fra.me.REG[0] = BOX_NativeString("nit");
21 REGB0 = TAG_Int(3);
22 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
23 once_value_1 = fra.me.REG[0];
24 register_static_object(&once_value_1);
25 } else fra.me.REG[0] = once_value_1;
26 fra.me.REG[0] = fra.me.REG[0];
27 goto label2;
28 label2: while(0);
29 stack_frame_head = fra.me.prev;
30 return fra.me.REG[0];
31 }
32 static const char LOCATE_syntax___SrcModuleLoader___parse_file[] = "syntax::SrcModuleLoader::(mmloader::ModuleLoader::parse_file)";
33 val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
34 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
35 val_t REGB0;
36 val_t REGB1;
37 val_t REGB2;
38 val_t tmp;
39 static val_t once_value_4; /* Once value */
40 static val_t once_value_5; /* Once value */
41 static val_t once_value_6; /* Once value */
42 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43 fra.me.file = LOCATE_syntax;
44 fra.me.line = 35;
45 fra.me.meth = LOCATE_syntax___SrcModuleLoader___parse_file;
46 fra.me.has_broke = 0;
47 fra.me.REG_size = 8;
48 fra.me.nitni_local_ref_head = NULL;
49 fra.me.REG[0] = NIT_NULL;
50 fra.me.REG[1] = NIT_NULL;
51 fra.me.REG[2] = NIT_NULL;
52 fra.me.REG[3] = NIT_NULL;
53 fra.me.REG[4] = NIT_NULL;
54 fra.me.REG[5] = NIT_NULL;
55 fra.me.REG[6] = NIT_NULL;
56 fra.me.REG[7] = NIT_NULL;
57 fra.me.REG[0] = p0;
58 fra.me.REG[1] = p1;
59 fra.me.REG[2] = p2;
60 fra.me.REG[3] = p3;
61 fra.me.REG[4] = p4;
62 fra.me.REG[5] = p5;
63 /* syntax/syntax.nit:37 */
64 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
65 /* ../lib/standard/collection/array.nit:24 */
66 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
67 if (UNTAG_Bool(REGB0)) {
68 } else {
69 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
70 }
71 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
72 /* syntax/syntax.nit:37 */
73 REGB1 = TAG_Int(0);
74 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
75 if (UNTAG_Bool(REGB2)) {
76 } else {
77 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
78 }
79 /* ../lib/standard/kernel.nit:244 */
80 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
81 /* syntax/syntax.nit:37 */
82 if (UNTAG_Bool(REGB1)) {
83 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
84 REGB1 = TAG_Int(0);
85 REGB1 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB1);
86 REGB1 = CALL_standard___kernel___Char___is_lower(REGB1)(REGB1);
87 } else {
88 REGB0 = TAG_Bool(0);
89 REGB1 = REGB0;
90 }
91 fra.me.REG[6] = REGB1;
92 /* syntax/syntax.nit:38 */
93 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
94 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_syntax___SrcModuleLoader___parse_file_1));
95 switch ((&(fra.me))->has_broke) {
96 case 0: break;
97 case 1: (&(fra.me))->has_broke = 0; goto label3;
98 }
99 label3: while(0);
100 /* syntax/syntax.nit:43 */
101 REGB1 = TAG_Bool(!UNTAG_Bool(fra.me.REG[6]));
102 if (UNTAG_Bool(REGB1)) {
103 /* syntax/syntax.nit:44 */
104 REGB1 = TAG_Int(5);
105 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
106 if (!once_value_4) {
107 fra.me.REG[7] = BOX_NativeString("");
108 REGB1 = TAG_Int(0);
109 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
110 once_value_4 = fra.me.REG[7];
111 register_static_object(&once_value_4);
112 } else fra.me.REG[7] = once_value_4;
113 fra.me.REG[7] = fra.me.REG[7];
114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
115 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
116 if (!once_value_5) {
117 fra.me.REG[7] = BOX_NativeString(": Error module name \"");
118 REGB1 = TAG_Int(21);
119 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
120 once_value_5 = fra.me.REG[7];
121 register_static_object(&once_value_5);
122 } else fra.me.REG[7] = once_value_5;
123 fra.me.REG[7] = fra.me.REG[7];
124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
125 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
127 if (!once_value_6) {
128 fra.me.REG[7] = BOX_NativeString("\", must start with a lower case letter and contain only letters, digits and '_'.");
129 REGB1 = TAG_Int(80);
130 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
131 once_value_6 = fra.me.REG[7];
132 register_static_object(&once_value_6);
133 } else fra.me.REG[7] = once_value_6;
134 fra.me.REG[7] = fra.me.REG[7];
135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
136 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
137 CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
138 }
139 /* syntax/syntax.nit:47 */
140 fra.me.REG[2] = NEW_SourceFile_location___SourceFile___init(fra.me.REG[3], fra.me.REG[2]);
141 /* syntax/syntax.nit:48 */
142 fra.me.REG[3] = NEW_Lexer_parser___lexer___Lexer___init(fra.me.REG[2]);
143 /* syntax/syntax.nit:49 */
144 fra.me.REG[3] = NEW_Parser_parser___Parser___init(fra.me.REG[3]);
145 /* syntax/syntax.nit:50 */
146 fra.me.REG[3] = CALL_parser___Parser___parse(fra.me.REG[3])(fra.me.REG[3]);
147 /* syntax/syntax.nit:51 */
148 fra.me.REG[6] = CALL_parser___parser_nodes___Start___n_base(fra.me.REG[3])(fra.me.REG[3]);
149 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
150 if (UNTAG_Bool(REGB1)) {
151 } else {
152 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
153 if (UNTAG_Bool(REGB0)) {
154 REGB0 = TAG_Bool(0);
155 REGB1 = REGB0;
156 } else {
157 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
158 REGB1 = REGB0;
159 }
160 }
161 if (UNTAG_Bool(REGB1)) {
162 /* syntax/syntax.nit:52 */
163 fra.me.REG[6] = CALL_parser___parser_nodes___Start___n_eof(fra.me.REG[3])(fra.me.REG[3]);
164 /* syntax/syntax.nit:53 */
165 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AError, ID_parser___parser_nodes___AError)) /*cast AError*/;
166 if (UNTAG_Bool(REGB1)) {
167 } else {
168 nit_abort("Assert failed", NULL, LOCATE_syntax, 53);
169 }
170 /* syntax/syntax.nit:54 */
171 fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]);
172 fra.me.REG[6] = CALL_parser___lexer___AError___message(fra.me.REG[6])(fra.me.REG[6]);
173 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
174 }
175 /* syntax/syntax.nit:56 */
176 fra.me.REG[3] = CALL_parser___parser_nodes___Start___n_base(fra.me.REG[3])(fra.me.REG[3]);
177 /* syntax/syntax.nit:57 */
178 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
179 if (UNTAG_Bool(REGB1)) {
180 } else {
181 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
182 if (UNTAG_Bool(REGB0)) {
183 REGB0 = TAG_Bool(0);
184 REGB1 = REGB0;
185 } else {
186 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
187 REGB1 = REGB0;
188 }
189 }
190 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
191 if (UNTAG_Bool(REGB1)) {
192 } else {
193 nit_abort("Assert failed", NULL, LOCATE_syntax, 57);
194 }
195 /* syntax/syntax.nit:58 */
196 fra.me.REG[2] = NEW_Location_location___Location___with_file(fra.me.REG[2]);
197 /* syntax/syntax.nit:59 */
198 fra.me.REG[2] = NEW_MMSrcModule_syntax___syntax_base___MMSrcModule___init(fra.me.REG[1], fra.me.REG[3], fra.me.REG[5], fra.me.REG[4], fra.me.REG[2]);
199 /* syntax/syntax.nit:60 */
200 goto label7;
201 label7: while(0);
202 stack_frame_head = fra.me.prev;
203 return fra.me.REG[2];
204 }
205 void OC_syntax___SrcModuleLoader___parse_file_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
206 struct {struct stack_frame_t me;} fra;
207 val_t REGB0;
208 val_t REGB1;
209 val_t REGB2;
210 fun_t CREG[1];
211 val_t tmp;
212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
213 fra.me.file = LOCATE_syntax;
214 fra.me.line = 0;
215 fra.me.meth = LOCATE_syntax___SrcModuleLoader___parse_file;
216 fra.me.has_broke = 0;
217 fra.me.REG_size = 1;
218 fra.me.nitni_local_ref_head = NULL;
219 fra.me.REG[0] = NIT_NULL;
220 fra.me.closure_ctx = closctx_param;
221 fra.me.closure_funs = CREG;
222 fra.me.REG[0] = p0;
223 CREG[0] = clos_fun0;
224 REGB0 = fra.me.REG[0];
225 REGB1 = CALL_standard___kernel___Char___is_digit(REGB0)(REGB0);
226 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
227 if (UNTAG_Bool(REGB1)) {
228 REGB1 = CALL_standard___kernel___Char___is_letter(REGB0)(REGB0);
229 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
230 } else {
231 REGB2 = TAG_Bool(0);
232 REGB1 = REGB2;
233 }
234 if (UNTAG_Bool(REGB1)) {
235 REGB1 = TAG_Char('_');
236 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
237 if (UNTAG_Bool(REGB2)) {
238 } else {
239 /* ../lib/standard/kernel.nit:434 */
240 REGB1 = TAG_Bool((REGB0)==(REGB1));
241 /* syntax/syntax.nit:38 */
242 REGB2 = REGB1;
243 }
244 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
245 } else {
246 REGB1 = TAG_Bool(0);
247 REGB2 = REGB1;
248 }
249 if (UNTAG_Bool(REGB2)) {
250 /* syntax/syntax.nit:40 */
251 REGB2 = TAG_Bool(0);
252 closctx->REG[6] = REGB2;
253 /* syntax/syntax.nit:41 */
254 closctx->has_broke = 1;
255 goto label2;
256 }
257 label2: while(0);
258 stack_frame_head = fra.me.prev;
259 return;
260 }
261 static const char LOCATE_syntax___SrcModuleLoader___process_metamodel[] = "syntax::SrcModuleLoader::(mmloader::ModuleLoader::process_metamodel)";
262 void syntax___SrcModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
264 val_t REGB0;
265 val_t tmp;
266 static val_t once_value_1; /* Once value */
267 static val_t once_value_2; /* Once value */
268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
269 fra.me.file = LOCATE_syntax;
270 fra.me.line = 63;
271 fra.me.meth = LOCATE_syntax___SrcModuleLoader___process_metamodel;
272 fra.me.has_broke = 0;
273 fra.me.REG_size = 4;
274 fra.me.nitni_local_ref_head = NULL;
275 fra.me.REG[0] = NIT_NULL;
276 fra.me.REG[1] = NIT_NULL;
277 fra.me.REG[2] = NIT_NULL;
278 fra.me.REG[3] = NIT_NULL;
279 fra.me.REG[0] = p0;
280 fra.me.REG[1] = p1;
281 fra.me.REG[2] = p2;
282 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], VTCOLOR_mmloader___ModuleLoader___MODULE(fra.me.REG[0]), VTID_mmloader___ModuleLoader___MODULE(fra.me.REG[0]))) /*cast MODULE*/;
283 if (UNTAG_Bool(REGB0)) {
284 } else {
285 nit_abort("Cast failed", NULL, LOCATE_syntax, 0);
286 }
287 /* syntax/syntax.nit:65 */
288 CALL_syntax___MMSrcModule___process_supermodules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
289 /* syntax/syntax.nit:66 */
290 REGB0 = TAG_Int(3);
291 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
292 if (!once_value_1) {
293 fra.me.REG[3] = BOX_NativeString("Syntax analysis for module: ");
294 REGB0 = TAG_Int(28);
295 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
296 once_value_1 = fra.me.REG[3];
297 register_static_object(&once_value_1);
298 } else fra.me.REG[3] = once_value_1;
299 fra.me.REG[3] = fra.me.REG[3];
300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
301 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]);
302 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
303 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
304 if (!once_value_2) {
305 fra.me.REG[3] = BOX_NativeString("");
306 REGB0 = TAG_Int(0);
307 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
308 once_value_2 = fra.me.REG[3];
309 register_static_object(&once_value_2);
310 } else fra.me.REG[3] = once_value_2;
311 fra.me.REG[3] = fra.me.REG[3];
312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
313 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
314 REGB0 = TAG_Int(2);
315 CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
316 /* syntax/syntax.nit:67 */
317 CALL_syntax___MMSrcModule___process_syntax(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
318 stack_frame_head = fra.me.prev;
319 return;
320 }
321 static const char LOCATE_syntax___SrcModuleLoader___init[] = "syntax::SrcModuleLoader::init";
322 void syntax___SrcModuleLoader___init(val_t p0, int* init_table){
323 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___SrcModuleLoader].i;
324 struct {struct stack_frame_t me;} fra;
325 val_t tmp;
326 if (init_table[itpos0]) return;
327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
328 fra.me.file = LOCATE_syntax;
329 fra.me.line = 70;
330 fra.me.meth = LOCATE_syntax___SrcModuleLoader___init;
331 fra.me.has_broke = 0;
332 fra.me.REG_size = 1;
333 fra.me.nitni_local_ref_head = NULL;
334 fra.me.REG[0] = NIT_NULL;
335 fra.me.REG[0] = p0;
336 stack_frame_head = fra.me.prev;
337 init_table[itpos0] = 1;
338 return;
339 }
340 static const char LOCATE_syntax___MMSrcModule___process_supermodules[] = "syntax::MMSrcModule::process_supermodules";
341 void syntax___MMSrcModule___process_supermodules(val_t p0, val_t p1){
342 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
343 val_t tmp;
344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
345 fra.me.file = LOCATE_syntax;
346 fra.me.line = 74;
347 fra.me.meth = LOCATE_syntax___MMSrcModule___process_supermodules;
348 fra.me.has_broke = 0;
349 fra.me.REG_size = 3;
350 fra.me.nitni_local_ref_head = NULL;
351 fra.me.REG[0] = NIT_NULL;
352 fra.me.REG[1] = NIT_NULL;
353 fra.me.REG[2] = NIT_NULL;
354 fra.me.REG[0] = p0;
355 fra.me.REG[1] = p1;
356 /* syntax/syntax.nit:77 */
357 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
358 CALL_syntax___mmbuilder___AModule___import_super_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
359 stack_frame_head = fra.me.prev;
360 return;
361 }
362 static const char LOCATE_syntax___MMSrcModule___process_syntax[] = "syntax::MMSrcModule::process_syntax";
363 void syntax___MMSrcModule___process_syntax(val_t p0, val_t p1){
364 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
365 val_t REGB0;
366 val_t tmp;
367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
368 fra.me.file = LOCATE_syntax;
369 fra.me.line = 80;
370 fra.me.meth = LOCATE_syntax___MMSrcModule___process_syntax;
371 fra.me.has_broke = 0;
372 fra.me.REG_size = 2;
373 fra.me.nitni_local_ref_head = NULL;
374 fra.me.REG[0] = NIT_NULL;
375 fra.me.REG[1] = NIT_NULL;
376 fra.me.REG[0] = p0;
377 fra.me.REG[1] = p1;
378 /* syntax/syntax.nit:84 */
379 CALL_syntax___mmbuilder___MMSrcModule___do_mmbuilder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
380 /* syntax/syntax.nit:85 */
381 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
382 /* syntax/syntax.nit:87 */
383 CALL_syntax___typing___MMSrcModule___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
384 /* syntax/syntax.nit:88 */
385 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
386 /* syntax/syntax.nit:90 */
387 CALL_syntax___icode_generation___MMSrcModule___generate_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
388 /* syntax/syntax.nit:91 */
389 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
390 /* syntax/syntax.nit:93 */
391 REGB0 = CALL_syntax___ToolContext___keep_ast(fra.me.REG[1])(fra.me.REG[1]);
392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
393 if (UNTAG_Bool(REGB0)) {
394 CALL_syntax___syntax_base___MMSrcModule___clear_ast(fra.me.REG[0])(fra.me.REG[0]);
395 }
396 stack_frame_head = fra.me.prev;
397 return;
398 }
399 static const char LOCATE_syntax___ToolContext___keep_ast[] = "syntax::ToolContext::keep_ast";
400 val_t syntax___ToolContext___keep_ast(val_t p0){
401 struct {struct stack_frame_t me;} fra;
402 val_t REGB0;
403 val_t tmp;
404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
405 fra.me.file = LOCATE_syntax;
406 fra.me.line = 98;
407 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast;
408 fra.me.has_broke = 0;
409 fra.me.REG_size = 1;
410 fra.me.nitni_local_ref_head = NULL;
411 fra.me.REG[0] = NIT_NULL;
412 fra.me.REG[0] = p0;
413 /* syntax/syntax.nit:98 */
414 REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
415 if (UNTAG_Bool(REGB0)) {
416 } else {
417 nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_syntax, 98);
418 }
419 REGB0 = ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]);
420 stack_frame_head = fra.me.prev;
421 return REGB0;
422 }
423 static const char LOCATE_syntax___ToolContext___keep_ast__eq[] = "syntax::ToolContext::keep_ast=";
424 void syntax___ToolContext___keep_ast__eq(val_t p0, val_t p1){
425 struct {struct stack_frame_t me;} fra;
426 val_t REGB0;
427 val_t tmp;
428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
429 fra.me.file = LOCATE_syntax;
430 fra.me.line = 98;
431 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast__eq;
432 fra.me.has_broke = 0;
433 fra.me.REG_size = 1;
434 fra.me.nitni_local_ref_head = NULL;
435 fra.me.REG[0] = NIT_NULL;
436 fra.me.REG[0] = p0;
437 REGB0 = p1;
438 /* syntax/syntax.nit:98 */
439 ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
440 stack_frame_head = fra.me.prev;
441 return;
442 }