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
;
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
;
12 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___file_type
;
15 fra
.me
.nitni_local_ref_head
= NULL
;
16 fra
.me
.REG
[0] = NIT_NULL
;
18 /* syntax/syntax.nit:33 */
20 fra
.me
.REG
[0] = BOX_NativeString("nit");
22 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(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];
29 stack_frame_head
= fra
.me
.prev
;
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
;
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
;
45 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___parse_file
;
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
;
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
)) {
69 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
71 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
72 /* syntax/syntax.nit:37 */
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
)) {
77 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
79 /* ../lib/standard/kernel.nit:237 */
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]);
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
);
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
) {
97 case 1: (&(fra
.me
))->has_broke
= 0; goto label3
;
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 */
105 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
107 fra
.me
.REG
[7] = BOX_NativeString("");
109 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(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]);
117 fra
.me
.REG
[7] = BOX_NativeString(": Error module name \"");
119 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(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]);
128 fra
.me
.REG
[7] = BOX_NativeString("\", must start with a lower case letter and contain only letters, digits and '_'.");
130 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(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]);
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
)) {
152 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
153 if (UNTAG_Bool(REGB0
)) {
157 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
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
)) {
168 nit_abort("Assert failed", NULL
, LOCATE_syntax
, 53);
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]);
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
)) {
181 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
182 if (UNTAG_Bool(REGB0
)) {
186 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
190 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
191 if (UNTAG_Bool(REGB1
)) {
193 nit_abort("Assert failed", NULL
, LOCATE_syntax
, 57);
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 */
202 stack_frame_head
= fra
.me
.prev
;
203 return fra
.me
.REG
[2];
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
;
212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
213 fra
.me
.file
= LOCATE_syntax
;
215 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___parse_file
;
216 fra
.me
.has_broke
= 0;
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
;
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
));
234 if (UNTAG_Bool(REGB1
)) {
235 REGB1
= TAG_Char('_');
236 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
237 if (UNTAG_Bool(REGB2
)) {
239 /* ../lib/standard/kernel.nit:381 */
240 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
241 /* syntax/syntax.nit:38 */
244 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
249 if (UNTAG_Bool(REGB2
)) {
250 /* syntax/syntax.nit:40 */
252 closctx
->REG
[6] = REGB2
;
253 /* syntax/syntax.nit:41 */
254 closctx
->has_broke
= 1;
258 stack_frame_head
= fra
.me
.prev
;
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
;
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
;
271 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___process_metamodel
;
272 fra
.me
.has_broke
= 0;
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
;
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
)) {
285 nit_abort("Cast failed", NULL
, LOCATE_syntax
, 0);
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 */
291 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
293 fra
.me
.REG
[3] = BOX_NativeString("Syntax analysis for module: ");
295 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(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]);
305 fra
.me
.REG
[3] = BOX_NativeString("");
307 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(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]);
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
;
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
;
326 if (init_table
[itpos0
]) return;
327 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
328 fra
.me
.file
= LOCATE_syntax
;
330 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___init
;
331 fra
.me
.has_broke
= 0;
333 fra
.me
.nitni_local_ref_head
= NULL
;
334 fra
.me
.REG
[0] = NIT_NULL
;
336 stack_frame_head
= fra
.me
.prev
;
337 init_table
[itpos0
] = 1;
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
;
344 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
345 fra
.me
.file
= LOCATE_syntax
;
347 fra
.me
.meth
= LOCATE_syntax___MMSrcModule___process_supermodules
;
348 fra
.me
.has_broke
= 0;
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
;
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
;
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
;
367 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
368 fra
.me
.file
= LOCATE_syntax
;
370 fra
.me
.meth
= LOCATE_syntax___MMSrcModule___process_syntax
;
371 fra
.me
.has_broke
= 0;
373 fra
.me
.nitni_local_ref_head
= NULL
;
374 fra
.me
.REG
[0] = NIT_NULL
;
375 fra
.me
.REG
[1] = NIT_NULL
;
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]);
396 stack_frame_head
= fra
.me
.prev
;
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
;
404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
405 fra
.me
.file
= LOCATE_syntax
;
407 fra
.me
.meth
= LOCATE_syntax___ToolContext___keep_ast
;
408 fra
.me
.has_broke
= 0;
410 fra
.me
.nitni_local_ref_head
= NULL
;
411 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
417 nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_syntax
, 98);
419 REGB0
= ATTR_syntax___ToolContext____keep_ast(fra
.me
.REG
[0]);
420 stack_frame_head
= fra
.me
.prev
;
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
;
428 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
429 fra
.me
.file
= LOCATE_syntax
;
431 fra
.me
.meth
= LOCATE_syntax___ToolContext___keep_ast__eq
;
432 fra
.me
.has_broke
= 0;
434 fra
.me
.nitni_local_ref_head
= NULL
;
435 fra
.me
.REG
[0] = NIT_NULL
;
438 /* syntax/syntax.nit:98 */
439 ATTR_syntax___ToolContext____keep_ast(fra
.me
.REG
[0]) = REGB0
;
440 stack_frame_head
= fra
.me
.prev
;