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
;
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
;
11 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___file_type
;
14 fra
.me
.REG
[0] = NIT_NULL
;
16 /* ./syntax//syntax.nit:31 */
18 fra
.me
.REG
[0] = BOX_NativeString("nit");
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
;
26 stack_frame_head
= fra
.me
.prev
;
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
;
34 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
35 fra
.me
.file
= LOCATE_syntax
;
37 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___parse_file
;
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
;
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
)) {
61 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
62 if (UNTAG_Bool(REGB1
)) {
63 REGB1
= TAG_Bool(false);
66 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
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
)) {
76 fprintf(stderr
, "Assert failed");
77 fprintf(stderr
, " (%s:%d)\n", LOCATE_syntax
, 40);
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]);
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
)) {
90 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
91 if (UNTAG_Bool(REGB1
)) {
92 REGB1
= TAG_Bool(false);
95 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
99 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
100 if (UNTAG_Bool(REGB0
)) {
102 fprintf(stderr
, "Assert failed");
103 fprintf(stderr
, " (%s:%d)\n", LOCATE_syntax
, 44);
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 */
111 stack_frame_head
= fra
.me
.prev
;
112 return fra
.me
.REG
[3];
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
;
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
;
123 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___process_metamodel
;
124 fra
.me
.has_broke
= 0;
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
;
133 /* ./syntax//syntax.nit:52 */
134 CALL_syntax___MMSrcModule___process_supermodules(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
136 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB0
);
137 /* ./syntax//syntax.nit:53 */
139 fra
.me
.REG
[3] = BOX_NativeString("Syntax analysis for module: ");
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]);
150 fra
.me
.REG
[3] = BOX_NativeString("");
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]);
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
;
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
;
169 if (init_table
[itpos0
]) return;
170 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
171 fra
.me
.file
= LOCATE_syntax
;
173 fra
.me
.meth
= LOCATE_syntax___SrcModuleLoader___init
;
174 fra
.me
.has_broke
= 0;
176 fra
.me
.REG
[0] = NIT_NULL
;
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;
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
;
187 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
188 fra
.me
.file
= LOCATE_syntax
;
190 fra
.me
.meth
= LOCATE_syntax___MMSrcModule___process_supermodules
;
191 fra
.me
.has_broke
= 0;
193 fra
.me
.REG
[0] = NIT_NULL
;
194 fra
.me
.REG
[1] = NIT_NULL
;
195 fra
.me
.REG
[2] = NIT_NULL
;
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
;
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
;
208 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
209 fra
.me
.file
= LOCATE_syntax
;
211 fra
.me
.meth
= LOCATE_syntax___MMSrcModule___process_syntax
;
212 fra
.me
.has_broke
= 0;
214 fra
.me
.REG
[0] = NIT_NULL
;
215 fra
.me
.REG
[1] = NIT_NULL
;
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]);
236 stack_frame_head
= fra
.me
.prev
;
239 val_t
syntax___ToolContext___keep_ast(val_t p0
){
240 struct {struct stack_frame_t me
;} fra
;
243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
244 fra
.me
.file
= LOCATE_syntax
;
246 fra
.me
.meth
= LOCATE_syntax___ToolContext___keep_ast
;
247 fra
.me
.has_broke
= 0;
249 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
255 fprintf(stderr
, "Uninitialized attribute %s", "_keep_ast");
256 fprintf(stderr
, " (%s:%d)\n", LOCATE_syntax
, 85);
259 REGB0
= ATTR_syntax___ToolContext____keep_ast(fra
.me
.REG
[0]);
260 stack_frame_head
= fra
.me
.prev
;
263 void syntax___ToolContext___keep_ast__eq(val_t p0
, val_t p1
){
264 struct {struct stack_frame_t me
;} fra
;
267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
268 fra
.me
.file
= LOCATE_syntax
;
270 fra
.me
.meth
= LOCATE_syntax___ToolContext___keep_ast__eq
;
271 fra
.me
.has_broke
= 0;
273 fra
.me
.REG
[0] = NIT_NULL
;
276 /* ./syntax//syntax.nit:85 */
277 ATTR_syntax___ToolContext____keep_ast(fra
.me
.REG
[0]) = REGB0
;
278 stack_frame_head
= fra
.me
.prev
;