ni_nitdoc: added fast copy past utility to signatures.
[nit.git] / c_src / ffi___ffi_base._sep.c
1 /* This C file is generated by NIT to compile module ffi___ffi_base. */
2 #include "ffi___ffi_base._sep.h"
3 static const char LOCATE_ffi___ffi_base___FFIVisited___accept_ffi_visitor[] = "ffi_base::FFIVisited::accept_ffi_visitor";
4 void ffi___ffi_base___FFIVisited___accept_ffi_visitor(val_t p0, val_t p1){
5 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_ffi___ffi_base;
9 fra.me.line = 24;
10 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisited___accept_ffi_visitor;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 2;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 fra.me.REG[1] = p1;
18 stack_frame_head = fra.me.prev;
19 return;
20 }
21 static const char LOCATE_ffi___ffi_base___ExternCode___accept_ffi_visitor[] = "ffi_base::ExternCode::(ffi_base::FFIVisited::accept_ffi_visitor)";
22 void ffi___ffi_base___ExternCode___accept_ffi_visitor(val_t p0, val_t p1){
23 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24 val_t REGB0;
25 val_t REGB1;
26 val_t tmp;
27 static val_t once_value_1; /* Once value */
28 static val_t once_value_2; /* Once value */
29 static val_t once_value_3; /* Once value */
30 static val_t once_value_4; /* Once value */
31 static val_t once_value_5; /* Once value */
32 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33 fra.me.file = LOCATE_ffi___ffi_base;
34 fra.me.line = 30;
35 fra.me.meth = LOCATE_ffi___ffi_base___ExternCode___accept_ffi_visitor;
36 fra.me.has_broke = 0;
37 fra.me.REG_size = 5;
38 fra.me.nitni_local_ref_head = NULL;
39 fra.me.REG[0] = NIT_NULL;
40 fra.me.REG[1] = NIT_NULL;
41 fra.me.REG[2] = NIT_NULL;
42 fra.me.REG[3] = NIT_NULL;
43 fra.me.REG[4] = NIT_NULL;
44 fra.me.REG[0] = p0;
45 fra.me.REG[1] = p1;
46 /* ffi/ffi_base.nit:35 */
47 fra.me.REG[0] = CALL_syntax___extern_inline___ExternCode___language(fra.me.REG[0])(fra.me.REG[0]);
48 /* ffi/ffi_base.nit:36 */
49 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
50 if (UNTAG_Bool(REGB0)) {
51 } else {
52 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
53 if (UNTAG_Bool(REGB1)) {
54 REGB1 = TAG_Bool(0);
55 REGB0 = REGB1;
56 } else {
57 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
58 REGB0 = REGB1;
59 }
60 }
61 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
62 if (UNTAG_Bool(REGB0)) {
63 /* ffi/ffi_base.nit:37 */
64 fra.me.REG[2] = CALL_ffi___ffi_base___FFIVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
65 REGB0 = TAG_Int(5);
66 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
67 if (!once_value_1) {
68 fra.me.REG[4] = BOX_NativeString("language \"");
69 REGB0 = TAG_Int(10);
70 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
71 once_value_1 = fra.me.REG[4];
72 register_static_object(&once_value_1);
73 } else fra.me.REG[4] = once_value_1;
74 fra.me.REG[4] = fra.me.REG[4];
75 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
76 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
77 if (!once_value_2) {
78 fra.me.REG[0] = BOX_NativeString("\" used to implement a code block in ");
79 REGB0 = TAG_Int(36);
80 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
81 once_value_2 = fra.me.REG[0];
82 register_static_object(&once_value_2);
83 } else fra.me.REG[0] = once_value_2;
84 fra.me.REG[0] = fra.me.REG[0];
85 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
86 fra.me.REG[0] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
87 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
88 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
89 if (!once_value_3) {
90 fra.me.REG[0] = BOX_NativeString(" is unknown.");
91 REGB0 = TAG_Int(12);
92 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
93 once_value_3 = fra.me.REG[0];
94 register_static_object(&once_value_3);
95 } else fra.me.REG[0] = once_value_3;
96 fra.me.REG[0] = fra.me.REG[0];
97 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
98 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
99 CALL_toolcontext___ToolContext___warning(fra.me.REG[2])(fra.me.REG[2], NIT_NULL, fra.me.REG[3]);
100 } else {
101 /* ffi/ffi_base.nit:39 */
102 fra.me.REG[3] = CALL_ffi___ffi_base___FFIVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
103 REGB0 = TAG_Int(3);
104 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
105 if (!once_value_4) {
106 fra.me.REG[0] = BOX_NativeString("please specify a language to implement code blocks in ");
107 REGB0 = TAG_Int(54);
108 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
109 once_value_4 = fra.me.REG[0];
110 register_static_object(&once_value_4);
111 } else fra.me.REG[0] = once_value_4;
112 fra.me.REG[0] = fra.me.REG[0];
113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
114 fra.me.REG[1] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
115 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
117 if (!once_value_5) {
118 fra.me.REG[1] = BOX_NativeString(".");
119 REGB0 = TAG_Int(1);
120 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
121 once_value_5 = fra.me.REG[1];
122 register_static_object(&once_value_5);
123 } else fra.me.REG[1] = once_value_5;
124 fra.me.REG[1] = fra.me.REG[1];
125 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
126 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
127 CALL_toolcontext___ToolContext___warning(fra.me.REG[3])(fra.me.REG[3], NIT_NULL, fra.me.REG[2]);
128 }
129 stack_frame_head = fra.me.prev;
130 return;
131 }
132 static const char LOCATE_ffi___ffi_base___ExternCode___language_lowered[] = "ffi_base::ExternCode::language_lowered";
133 val_t ffi___ffi_base___ExternCode___language_lowered(val_t p0){
134 struct {struct stack_frame_t me;} fra;
135 val_t tmp;
136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
137 fra.me.file = LOCATE_ffi___ffi_base;
138 fra.me.line = 43;
139 fra.me.meth = LOCATE_ffi___ffi_base___ExternCode___language_lowered;
140 fra.me.has_broke = 0;
141 fra.me.REG_size = 1;
142 fra.me.nitni_local_ref_head = NULL;
143 fra.me.REG[0] = NIT_NULL;
144 fra.me.REG[0] = p0;
145 /* ffi/ffi_base.nit:43 */
146 fra.me.REG[0] = ATTR_ffi___ffi_base___ExternCode_____atlanguage_lowered(fra.me.REG[0]);
147 stack_frame_head = fra.me.prev;
148 return fra.me.REG[0];
149 }
150 static const char LOCATE_ffi___ffi_base___ExternCode___language_lowered__eq[] = "ffi_base::ExternCode::language_lowered=";
151 void ffi___ffi_base___ExternCode___language_lowered__eq(val_t p0, val_t p1){
152 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
153 val_t tmp;
154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
155 fra.me.file = LOCATE_ffi___ffi_base;
156 fra.me.line = 43;
157 fra.me.meth = LOCATE_ffi___ffi_base___ExternCode___language_lowered__eq;
158 fra.me.has_broke = 0;
159 fra.me.REG_size = 2;
160 fra.me.nitni_local_ref_head = NULL;
161 fra.me.REG[0] = NIT_NULL;
162 fra.me.REG[1] = NIT_NULL;
163 fra.me.REG[0] = p0;
164 fra.me.REG[1] = p1;
165 /* ffi/ffi_base.nit:43 */
166 ATTR_ffi___ffi_base___ExternCode_____atlanguage_lowered(fra.me.REG[0]) = fra.me.REG[1];
167 stack_frame_head = fra.me.prev;
168 return;
169 }
170 static const char LOCATE_ffi___ffi_base___ExternCode___init[] = "ffi_base::ExternCode::(extern_inline::ExternCode::init)";
171 void ffi___ffi_base___ExternCode___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
172 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___extern_inline___ExternCode].i;
173 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
174 val_t REGB0;
175 val_t REGB1;
176 val_t tmp;
177 if (init_table[itpos0]) return;
178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
179 fra.me.file = LOCATE_ffi___ffi_base;
180 fra.me.line = 45;
181 fra.me.meth = LOCATE_ffi___ffi_base___ExternCode___init;
182 fra.me.has_broke = 0;
183 fra.me.REG_size = 6;
184 fra.me.nitni_local_ref_head = NULL;
185 fra.me.REG[0] = NIT_NULL;
186 fra.me.REG[1] = NIT_NULL;
187 fra.me.REG[2] = NIT_NULL;
188 fra.me.REG[3] = NIT_NULL;
189 fra.me.REG[4] = NIT_NULL;
190 fra.me.REG[5] = NIT_NULL;
191 fra.me.REG[0] = p0;
192 fra.me.REG[1] = p1;
193 fra.me.REG[2] = p2;
194 fra.me.REG[3] = p3;
195 /* ffi/ffi_base.nit:45 */
196 fra.me.REG[4] = fra.me.REG[0];
197 fra.me.REG[5] = fra.me.REG[1];
198 /* ffi/ffi_base.nit:47 */
199 CALL_SUPER_ffi___ffi_base___ExternCode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
200 /* ffi/ffi_base.nit:48 */
201 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
202 if (UNTAG_Bool(REGB0)) {
203 } else {
204 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
205 if (UNTAG_Bool(REGB1)) {
206 REGB1 = TAG_Bool(0);
207 REGB0 = REGB1;
208 } else {
209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
210 REGB0 = REGB1;
211 }
212 }
213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
214 if (UNTAG_Bool(REGB0)) {
215 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
216 if (UNTAG_Bool(REGB0)) {
217 nit_abort("Reciever is null", NULL, LOCATE_ffi___ffi_base, 48);
218 }
219 fra.me.REG[5] = CALL_standard___string___AbstractString___to_lower(fra.me.REG[5])(fra.me.REG[5]);
220 CALL_ffi___ffi_base___ExternCode___language_lowered__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
221 }
222 stack_frame_head = fra.me.prev;
223 init_table[itpos0] = 1;
224 return;
225 }
226 static const char LOCATE_ffi___ffi_base___MMMethod___accept_ffi_visitor[] = "ffi_base::MMMethod::(ffi_base::FFIVisited::accept_ffi_visitor)";
227 void ffi___ffi_base___MMMethod___accept_ffi_visitor(val_t p0, val_t p1){
228 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
229 val_t REGB0;
230 val_t REGB1;
231 val_t tmp;
232 static val_t once_value_1; /* Once value */
233 static val_t once_value_2; /* Once value */
234 static val_t once_value_3; /* Once value */
235 static val_t once_value_4; /* Once value */
236 static val_t once_value_5; /* Once value */
237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
238 fra.me.file = LOCATE_ffi___ffi_base;
239 fra.me.line = 55;
240 fra.me.meth = LOCATE_ffi___ffi_base___MMMethod___accept_ffi_visitor;
241 fra.me.has_broke = 0;
242 fra.me.REG_size = 6;
243 fra.me.nitni_local_ref_head = NULL;
244 fra.me.REG[0] = NIT_NULL;
245 fra.me.REG[1] = NIT_NULL;
246 fra.me.REG[2] = NIT_NULL;
247 fra.me.REG[3] = NIT_NULL;
248 fra.me.REG[4] = NIT_NULL;
249 fra.me.REG[5] = NIT_NULL;
250 fra.me.REG[0] = p0;
251 fra.me.REG[1] = p1;
252 /* ffi/ffi_base.nit:59 */
253 fra.me.REG[2] = CALL_syntax___extern_inline___MMMethod___extern_implementation(fra.me.REG[0])(fra.me.REG[0]);
254 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
255 if (UNTAG_Bool(REGB0)) {
256 } else {
257 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
258 if (UNTAG_Bool(REGB1)) {
259 REGB1 = TAG_Bool(0);
260 REGB0 = REGB1;
261 } else {
262 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
263 REGB0 = REGB1;
264 }
265 }
266 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
267 if (UNTAG_Bool(REGB0)) {
268 /* ffi/ffi_base.nit:60 */
269 fra.me.REG[2] = CALL_syntax___extern_inline___MMMethod___extern_implementation(fra.me.REG[0])(fra.me.REG[0]);
270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
271 if (UNTAG_Bool(REGB0)) {
272 nit_abort("Reciever is null", NULL, LOCATE_ffi___ffi_base, 60);
273 }
274 fra.me.REG[2] = CALL_syntax___extern_inline___ExternCode___language(fra.me.REG[2])(fra.me.REG[2]);
275 /* ffi/ffi_base.nit:61 */
276 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
277 if (UNTAG_Bool(REGB0)) {
278 } else {
279 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
280 if (UNTAG_Bool(REGB1)) {
281 REGB1 = TAG_Bool(0);
282 REGB0 = REGB1;
283 } else {
284 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
285 REGB0 = REGB1;
286 }
287 }
288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
289 if (UNTAG_Bool(REGB0)) {
290 /* ffi/ffi_base.nit:62 */
291 fra.me.REG[3] = CALL_ffi___ffi_base___FFIVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
292 REGB0 = TAG_Int(5);
293 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
294 if (!once_value_1) {
295 fra.me.REG[5] = BOX_NativeString("language \"");
296 REGB0 = TAG_Int(10);
297 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
298 once_value_1 = fra.me.REG[5];
299 register_static_object(&once_value_1);
300 } else fra.me.REG[5] = once_value_1;
301 fra.me.REG[5] = fra.me.REG[5];
302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
303 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
304 if (!once_value_2) {
305 fra.me.REG[2] = BOX_NativeString("\" used to implement ");
306 REGB0 = TAG_Int(20);
307 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
308 once_value_2 = fra.me.REG[2];
309 register_static_object(&once_value_2);
310 } else fra.me.REG[2] = once_value_2;
311 fra.me.REG[2] = fra.me.REG[2];
312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
313 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
314 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
315 if (!once_value_3) {
316 fra.me.REG[2] = BOX_NativeString(" is unknown.");
317 REGB0 = TAG_Int(12);
318 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
319 once_value_3 = fra.me.REG[2];
320 register_static_object(&once_value_3);
321 } else fra.me.REG[2] = once_value_3;
322 fra.me.REG[2] = fra.me.REG[2];
323 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
324 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
325 CALL_toolcontext___ToolContext___warning(fra.me.REG[3])(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
326 } else {
327 /* ffi/ffi_base.nit:64 */
328 fra.me.REG[1] = CALL_ffi___ffi_base___FFIVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
329 REGB0 = TAG_Int(3);
330 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
331 if (!once_value_4) {
332 fra.me.REG[3] = BOX_NativeString("please specify a language to implement ");
333 REGB0 = TAG_Int(39);
334 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
335 once_value_4 = fra.me.REG[3];
336 register_static_object(&once_value_4);
337 } else fra.me.REG[3] = once_value_4;
338 fra.me.REG[3] = fra.me.REG[3];
339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
340 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
342 if (!once_value_5) {
343 fra.me.REG[0] = BOX_NativeString(".");
344 REGB0 = TAG_Int(1);
345 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
346 once_value_5 = fra.me.REG[0];
347 register_static_object(&once_value_5);
348 } else fra.me.REG[0] = once_value_5;
349 fra.me.REG[0] = fra.me.REG[0];
350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
351 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
352 CALL_toolcontext___ToolContext___warning(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[4]);
353 }
354 }
355 stack_frame_head = fra.me.prev;
356 return;
357 }
358 static const char LOCATE_ffi___ffi_base___ExternImportSet___callbacks[] = "ffi_base::ExternImportSet::callbacks";
359 val_t ffi___ffi_base___ExternImportSet___callbacks(val_t p0){
360 struct {struct stack_frame_t me;} fra;
361 val_t REGB0;
362 val_t tmp;
363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
364 fra.me.file = LOCATE_ffi___ffi_base;
365 fra.me.line = 73;
366 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___callbacks;
367 fra.me.has_broke = 0;
368 fra.me.REG_size = 1;
369 fra.me.nitni_local_ref_head = NULL;
370 fra.me.REG[0] = NIT_NULL;
371 fra.me.REG[0] = p0;
372 /* ffi/ffi_base.nit:73 */
373 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___ExternImportSet_____atcallbacks(fra.me.REG[0])!=NIT_NULL);
374 if (UNTAG_Bool(REGB0)) {
375 } else {
376 nit_abort("Uninitialized attribute %s", "@callbacks", LOCATE_ffi___ffi_base, 73);
377 }
378 fra.me.REG[0] = ATTR_ffi___ffi_base___ExternImportSet_____atcallbacks(fra.me.REG[0]);
379 stack_frame_head = fra.me.prev;
380 return fra.me.REG[0];
381 }
382 static const char LOCATE_ffi___ffi_base___ExternImportSet___callbacks__eq[] = "ffi_base::ExternImportSet::callbacks=";
383 void ffi___ffi_base___ExternImportSet___callbacks__eq(val_t p0, val_t p1){
384 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
385 val_t tmp;
386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
387 fra.me.file = LOCATE_ffi___ffi_base;
388 fra.me.line = 73;
389 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___callbacks__eq;
390 fra.me.has_broke = 0;
391 fra.me.REG_size = 2;
392 fra.me.nitni_local_ref_head = NULL;
393 fra.me.REG[0] = NIT_NULL;
394 fra.me.REG[1] = NIT_NULL;
395 fra.me.REG[0] = p0;
396 fra.me.REG[1] = p1;
397 /* ffi/ffi_base.nit:73 */
398 ATTR_ffi___ffi_base___ExternImportSet_____atcallbacks(fra.me.REG[0]) = fra.me.REG[1];
399 stack_frame_head = fra.me.prev;
400 return;
401 }
402 static const char LOCATE_ffi___ffi_base___ExternImportSet___supers[] = "ffi_base::ExternImportSet::supers";
403 val_t ffi___ffi_base___ExternImportSet___supers(val_t p0){
404 struct {struct stack_frame_t me;} fra;
405 val_t REGB0;
406 val_t tmp;
407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
408 fra.me.file = LOCATE_ffi___ffi_base;
409 fra.me.line = 76;
410 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___supers;
411 fra.me.has_broke = 0;
412 fra.me.REG_size = 1;
413 fra.me.nitni_local_ref_head = NULL;
414 fra.me.REG[0] = NIT_NULL;
415 fra.me.REG[0] = p0;
416 /* ffi/ffi_base.nit:76 */
417 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___ExternImportSet_____atsupers(fra.me.REG[0])!=NIT_NULL);
418 if (UNTAG_Bool(REGB0)) {
419 } else {
420 nit_abort("Uninitialized attribute %s", "@supers", LOCATE_ffi___ffi_base, 76);
421 }
422 fra.me.REG[0] = ATTR_ffi___ffi_base___ExternImportSet_____atsupers(fra.me.REG[0]);
423 stack_frame_head = fra.me.prev;
424 return fra.me.REG[0];
425 }
426 static const char LOCATE_ffi___ffi_base___ExternImportSet___supers__eq[] = "ffi_base::ExternImportSet::supers=";
427 void ffi___ffi_base___ExternImportSet___supers__eq(val_t p0, val_t p1){
428 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
429 val_t tmp;
430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
431 fra.me.file = LOCATE_ffi___ffi_base;
432 fra.me.line = 76;
433 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___supers__eq;
434 fra.me.has_broke = 0;
435 fra.me.REG_size = 2;
436 fra.me.nitni_local_ref_head = NULL;
437 fra.me.REG[0] = NIT_NULL;
438 fra.me.REG[1] = NIT_NULL;
439 fra.me.REG[0] = p0;
440 fra.me.REG[1] = p1;
441 /* ffi/ffi_base.nit:76 */
442 ATTR_ffi___ffi_base___ExternImportSet_____atsupers(fra.me.REG[0]) = fra.me.REG[1];
443 stack_frame_head = fra.me.prev;
444 return;
445 }
446 static const char LOCATE_ffi___ffi_base___ExternImportSet___types[] = "ffi_base::ExternImportSet::types";
447 val_t ffi___ffi_base___ExternImportSet___types(val_t p0){
448 struct {struct stack_frame_t me;} fra;
449 val_t REGB0;
450 val_t tmp;
451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
452 fra.me.file = LOCATE_ffi___ffi_base;
453 fra.me.line = 79;
454 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___types;
455 fra.me.has_broke = 0;
456 fra.me.REG_size = 1;
457 fra.me.nitni_local_ref_head = NULL;
458 fra.me.REG[0] = NIT_NULL;
459 fra.me.REG[0] = p0;
460 /* ffi/ffi_base.nit:79 */
461 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___ExternImportSet_____attypes(fra.me.REG[0])!=NIT_NULL);
462 if (UNTAG_Bool(REGB0)) {
463 } else {
464 nit_abort("Uninitialized attribute %s", "@types", LOCATE_ffi___ffi_base, 79);
465 }
466 fra.me.REG[0] = ATTR_ffi___ffi_base___ExternImportSet_____attypes(fra.me.REG[0]);
467 stack_frame_head = fra.me.prev;
468 return fra.me.REG[0];
469 }
470 static const char LOCATE_ffi___ffi_base___ExternImportSet___types__eq[] = "ffi_base::ExternImportSet::types=";
471 void ffi___ffi_base___ExternImportSet___types__eq(val_t p0, val_t p1){
472 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
473 val_t tmp;
474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
475 fra.me.file = LOCATE_ffi___ffi_base;
476 fra.me.line = 79;
477 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___types__eq;
478 fra.me.has_broke = 0;
479 fra.me.REG_size = 2;
480 fra.me.nitni_local_ref_head = NULL;
481 fra.me.REG[0] = NIT_NULL;
482 fra.me.REG[1] = NIT_NULL;
483 fra.me.REG[0] = p0;
484 fra.me.REG[1] = p1;
485 /* ffi/ffi_base.nit:79 */
486 ATTR_ffi___ffi_base___ExternImportSet_____attypes(fra.me.REG[0]) = fra.me.REG[1];
487 stack_frame_head = fra.me.prev;
488 return;
489 }
490 static const char LOCATE_ffi___ffi_base___ExternImportSet___casts[] = "ffi_base::ExternImportSet::casts";
491 val_t ffi___ffi_base___ExternImportSet___casts(val_t p0){
492 struct {struct stack_frame_t me;} fra;
493 val_t REGB0;
494 val_t tmp;
495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
496 fra.me.file = LOCATE_ffi___ffi_base;
497 fra.me.line = 82;
498 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___casts;
499 fra.me.has_broke = 0;
500 fra.me.REG_size = 1;
501 fra.me.nitni_local_ref_head = NULL;
502 fra.me.REG[0] = NIT_NULL;
503 fra.me.REG[0] = p0;
504 /* ffi/ffi_base.nit:82 */
505 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___ExternImportSet_____atcasts(fra.me.REG[0])!=NIT_NULL);
506 if (UNTAG_Bool(REGB0)) {
507 } else {
508 nit_abort("Uninitialized attribute %s", "@casts", LOCATE_ffi___ffi_base, 82);
509 }
510 fra.me.REG[0] = ATTR_ffi___ffi_base___ExternImportSet_____atcasts(fra.me.REG[0]);
511 stack_frame_head = fra.me.prev;
512 return fra.me.REG[0];
513 }
514 static const char LOCATE_ffi___ffi_base___ExternImportSet___casts__eq[] = "ffi_base::ExternImportSet::casts=";
515 void ffi___ffi_base___ExternImportSet___casts__eq(val_t p0, val_t p1){
516 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
517 val_t tmp;
518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
519 fra.me.file = LOCATE_ffi___ffi_base;
520 fra.me.line = 82;
521 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___casts__eq;
522 fra.me.has_broke = 0;
523 fra.me.REG_size = 2;
524 fra.me.nitni_local_ref_head = NULL;
525 fra.me.REG[0] = NIT_NULL;
526 fra.me.REG[1] = NIT_NULL;
527 fra.me.REG[0] = p0;
528 fra.me.REG[1] = p1;
529 /* ffi/ffi_base.nit:82 */
530 ATTR_ffi___ffi_base___ExternImportSet_____atcasts(fra.me.REG[0]) = fra.me.REG[1];
531 stack_frame_head = fra.me.prev;
532 return;
533 }
534 static const char LOCATE_ffi___ffi_base___ExternImportSet___init[] = "ffi_base::ExternImportSet::init";
535 void ffi___ffi_base___ExternImportSet___init(val_t p0, int* init_table){
536 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ffi___ffi_base___ExternImportSet].i;
537 struct {struct stack_frame_t me;} fra;
538 val_t tmp;
539 if (init_table[itpos1]) return;
540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
541 fra.me.file = LOCATE_ffi___ffi_base;
542 fra.me.line = 0;
543 fra.me.meth = LOCATE_ffi___ffi_base___ExternImportSet___init;
544 fra.me.has_broke = 0;
545 fra.me.REG_size = 0;
546 fra.me.nitni_local_ref_head = NULL;
547 stack_frame_head = fra.me.prev;
548 init_table[itpos1] = 1;
549 return;
550 }
551 static const char LOCATE_ffi___ffi_base___MMLocalClass___c_type[] = "ffi_base::MMLocalClass::c_type";
552 val_t ffi___ffi_base___MMLocalClass___c_type(val_t p0){
553 struct {struct stack_frame_t me;} fra;
554 val_t tmp;
555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
556 fra.me.file = LOCATE_ffi___ffi_base;
557 fra.me.line = 89;
558 fra.me.meth = LOCATE_ffi___ffi_base___MMLocalClass___c_type;
559 fra.me.has_broke = 0;
560 fra.me.REG_size = 1;
561 fra.me.nitni_local_ref_head = NULL;
562 fra.me.REG[0] = NIT_NULL;
563 fra.me.REG[0] = p0;
564 /* ffi/ffi_base.nit:89 */
565 fra.me.REG[0] = NIT_NULL;
566 goto label1;
567 label1: while(0);
568 stack_frame_head = fra.me.prev;
569 return fra.me.REG[0];
570 }
571 static const char LOCATE_ffi___ffi_base___MMModule___accept_ffi_visitor[] = "ffi_base::MMModule::(ffi_base::FFIVisited::accept_ffi_visitor)";
572 void ffi___ffi_base___MMModule___accept_ffi_visitor(val_t p0, val_t p1){
573 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
574 val_t tmp;
575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
576 fra.me.file = LOCATE_ffi___ffi_base;
577 fra.me.line = 95;
578 fra.me.meth = LOCATE_ffi___ffi_base___MMModule___accept_ffi_visitor;
579 fra.me.has_broke = 0;
580 fra.me.REG_size = 3;
581 fra.me.nitni_local_ref_head = NULL;
582 fra.me.REG[0] = NIT_NULL;
583 fra.me.REG[1] = NIT_NULL;
584 fra.me.REG[2] = NIT_NULL;
585 fra.me.REG[0] = p0;
586 fra.me.REG[1] = p1;
587 /* ffi/ffi_base.nit:97 */
588 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
589 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_ffi___ffi_base___MMModule___accept_ffi_visitor_1));
590 /* ffi/ffi_base.nit:114 */
591 fra.me.REG[0] = CALL_syntax___extern_inline___MMModule___extern_code_blocks(fra.me.REG[0])(fra.me.REG[0]);
592 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_ffi___ffi_base___MMModule___accept_ffi_visitor_3));
593 stack_frame_head = fra.me.prev;
594 return;
595 }
596 void OC_ffi___ffi_base___MMModule___accept_ffi_visitor_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
597 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
598 val_t REGB0;
599 val_t REGB1;
600 fun_t CREG[1];
601 val_t tmp;
602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
603 fra.me.file = LOCATE_ffi___ffi_base;
604 fra.me.line = 0;
605 fra.me.meth = LOCATE_ffi___ffi_base___MMModule___accept_ffi_visitor;
606 fra.me.has_broke = 0;
607 fra.me.REG_size = 2;
608 fra.me.nitni_local_ref_head = NULL;
609 fra.me.REG[0] = NIT_NULL;
610 fra.me.REG[1] = NIT_NULL;
611 fra.me.closure_ctx = closctx_param;
612 fra.me.closure_funs = CREG;
613 fra.me.REG[0] = p0;
614 CREG[0] = clos_fun0;
615 /* ffi/ffi_base.nit:99 */
616 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
617 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
618 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
619 if (UNTAG_Bool(REGB0)) {
620 } else {
621 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
622 REGB0 = REGB1;
623 }
624 if (UNTAG_Bool(REGB0)) {
625 /* ffi/ffi_base.nit:100 */
626 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
627 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
628 } else {
629 /* ffi/ffi_base.nit:99 */
630 REGB1 = TAG_Bool(0);
631 REGB0 = REGB1;
632 }
633 if (UNTAG_Bool(REGB0)) {
634 /* ffi/ffi_base.nit:101 */
635 CALL_ffi___ffi_base___FFIVisited___accept_ffi_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
636 }
637 /* ffi/ffi_base.nit:104 */
638 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
639 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_ffi___ffi_base___MMModule___accept_ffi_visitor_2));
640 stack_frame_head = fra.me.prev;
641 return;
642 }
643 void OC_ffi___ffi_base___MMModule___accept_ffi_visitor_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
644 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
645 val_t REGB0;
646 val_t REGB1;
647 fun_t CREG[1];
648 val_t tmp;
649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
650 fra.me.file = LOCATE_ffi___ffi_base;
651 fra.me.line = 0;
652 fra.me.meth = LOCATE_ffi___ffi_base___MMModule___accept_ffi_visitor;
653 fra.me.has_broke = 0;
654 fra.me.REG_size = 2;
655 fra.me.nitni_local_ref_head = NULL;
656 fra.me.REG[0] = NIT_NULL;
657 fra.me.REG[1] = NIT_NULL;
658 fra.me.closure_ctx = closctx_param;
659 fra.me.closure_funs = CREG;
660 fra.me.REG[0] = p0;
661 CREG[0] = clos_fun0;
662 /* ffi/ffi_base.nit:106 */
663 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
664 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
665 if (UNTAG_Bool(REGB0)) {
666 } else {
667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[0]);
668 REGB0 = REGB1;
669 }
670 if (UNTAG_Bool(REGB0)) {
671 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
672 } else {
673 REGB1 = TAG_Bool(0);
674 REGB0 = REGB1;
675 }
676 if (UNTAG_Bool(REGB0)) {
677 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[0])(fra.me.REG[0]);
678 } else {
679 REGB1 = TAG_Bool(0);
680 REGB0 = REGB1;
681 }
682 if (UNTAG_Bool(REGB0)) {
683 /* ffi/ffi_base.nit:107 */
684 fra.me.REG[1] = CALL_syntax___extern_inline___MMMethod___extern_implementation(fra.me.REG[0])(fra.me.REG[0]);
685 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
686 if (UNTAG_Bool(REGB0)) {
687 } else {
688 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
689 if (UNTAG_Bool(REGB1)) {
690 REGB1 = TAG_Bool(0);
691 REGB0 = REGB1;
692 } else {
693 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
694 REGB0 = REGB1;
695 }
696 }
697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
698 } else {
699 /* ffi/ffi_base.nit:106 */
700 REGB1 = TAG_Bool(0);
701 REGB0 = REGB1;
702 }
703 if (UNTAG_Bool(REGB0)) {
704 /* ffi/ffi_base.nit:108 */
705 CALL_ffi___ffi_base___FFIVisited___accept_ffi_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
706 }
707 stack_frame_head = fra.me.prev;
708 return;
709 }
710 void OC_ffi___ffi_base___MMModule___accept_ffi_visitor_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
711 struct {struct stack_frame_t me;} fra;
712 fun_t CREG[1];
713 val_t tmp;
714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
715 fra.me.file = LOCATE_ffi___ffi_base;
716 fra.me.line = 0;
717 fra.me.meth = LOCATE_ffi___ffi_base___MMModule___accept_ffi_visitor;
718 fra.me.has_broke = 0;
719 fra.me.REG_size = 1;
720 fra.me.nitni_local_ref_head = NULL;
721 fra.me.REG[0] = NIT_NULL;
722 fra.me.closure_ctx = closctx_param;
723 fra.me.closure_funs = CREG;
724 fra.me.REG[0] = p0;
725 CREG[0] = clos_fun0;
726 CALL_ffi___ffi_base___FFIVisited___accept_ffi_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
727 stack_frame_head = fra.me.prev;
728 return;
729 }
730 static const char LOCATE_ffi___ffi_base___FFIVisitor___tc[] = "ffi_base::FFIVisitor::tc";
731 val_t ffi___ffi_base___FFIVisitor___tc(val_t p0){
732 struct {struct stack_frame_t me;} fra;
733 val_t REGB0;
734 val_t tmp;
735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
736 fra.me.file = LOCATE_ffi___ffi_base;
737 fra.me.line = 119;
738 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___tc;
739 fra.me.has_broke = 0;
740 fra.me.REG_size = 1;
741 fra.me.nitni_local_ref_head = NULL;
742 fra.me.REG[0] = NIT_NULL;
743 fra.me.REG[0] = p0;
744 /* ffi/ffi_base.nit:119 */
745 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___FFIVisitor_____attc(fra.me.REG[0])!=NIT_NULL);
746 if (UNTAG_Bool(REGB0)) {
747 } else {
748 nit_abort("Uninitialized attribute %s", "@tc", LOCATE_ffi___ffi_base, 119);
749 }
750 fra.me.REG[0] = ATTR_ffi___ffi_base___FFIVisitor_____attc(fra.me.REG[0]);
751 stack_frame_head = fra.me.prev;
752 return fra.me.REG[0];
753 }
754 static const char LOCATE_ffi___ffi_base___FFIVisitor___tc__eq[] = "ffi_base::FFIVisitor::tc=";
755 void ffi___ffi_base___FFIVisitor___tc__eq(val_t p0, val_t p1){
756 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
757 val_t tmp;
758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
759 fra.me.file = LOCATE_ffi___ffi_base;
760 fra.me.line = 119;
761 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___tc__eq;
762 fra.me.has_broke = 0;
763 fra.me.REG_size = 2;
764 fra.me.nitni_local_ref_head = NULL;
765 fra.me.REG[0] = NIT_NULL;
766 fra.me.REG[1] = NIT_NULL;
767 fra.me.REG[0] = p0;
768 fra.me.REG[1] = p1;
769 /* ffi/ffi_base.nit:119 */
770 ATTR_ffi___ffi_base___FFIVisitor_____attc(fra.me.REG[0]) = fra.me.REG[1];
771 stack_frame_head = fra.me.prev;
772 return;
773 }
774 static const char LOCATE_ffi___ffi_base___FFIVisitor___mmmodule[] = "ffi_base::FFIVisitor::mmmodule";
775 val_t ffi___ffi_base___FFIVisitor___mmmodule(val_t p0){
776 struct {struct stack_frame_t me;} fra;
777 val_t REGB0;
778 val_t tmp;
779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
780 fra.me.file = LOCATE_ffi___ffi_base;
781 fra.me.line = 121;
782 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___mmmodule;
783 fra.me.has_broke = 0;
784 fra.me.REG_size = 1;
785 fra.me.nitni_local_ref_head = NULL;
786 fra.me.REG[0] = NIT_NULL;
787 fra.me.REG[0] = p0;
788 /* ffi/ffi_base.nit:121 */
789 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___FFIVisitor_____atmmmodule(fra.me.REG[0])!=NIT_NULL);
790 if (UNTAG_Bool(REGB0)) {
791 } else {
792 nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_ffi___ffi_base, 121);
793 }
794 fra.me.REG[0] = ATTR_ffi___ffi_base___FFIVisitor_____atmmmodule(fra.me.REG[0]);
795 stack_frame_head = fra.me.prev;
796 return fra.me.REG[0];
797 }
798 static const char LOCATE_ffi___ffi_base___FFIVisitor___mmmodule__eq[] = "ffi_base::FFIVisitor::mmmodule=";
799 void ffi___ffi_base___FFIVisitor___mmmodule__eq(val_t p0, val_t p1){
800 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
801 val_t tmp;
802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
803 fra.me.file = LOCATE_ffi___ffi_base;
804 fra.me.line = 121;
805 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___mmmodule__eq;
806 fra.me.has_broke = 0;
807 fra.me.REG_size = 2;
808 fra.me.nitni_local_ref_head = NULL;
809 fra.me.REG[0] = NIT_NULL;
810 fra.me.REG[1] = NIT_NULL;
811 fra.me.REG[0] = p0;
812 fra.me.REG[1] = p1;
813 /* ffi/ffi_base.nit:121 */
814 ATTR_ffi___ffi_base___FFIVisitor_____atmmmodule(fra.me.REG[0]) = fra.me.REG[1];
815 stack_frame_head = fra.me.prev;
816 return;
817 }
818 static const char LOCATE_ffi___ffi_base___FFIVisitor___compilation_unit[] = "ffi_base::FFIVisitor::compilation_unit";
819 val_t ffi___ffi_base___FFIVisitor___compilation_unit(val_t p0){
820 struct {struct stack_frame_t me;} fra;
821 val_t REGB0;
822 val_t tmp;
823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
824 fra.me.file = LOCATE_ffi___ffi_base;
825 fra.me.line = 124;
826 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___compilation_unit;
827 fra.me.has_broke = 0;
828 fra.me.REG_size = 1;
829 fra.me.nitni_local_ref_head = NULL;
830 fra.me.REG[0] = NIT_NULL;
831 fra.me.REG[0] = p0;
832 /* ffi/ffi_base.nit:124 */
833 REGB0 = TAG_Bool(ATTR_ffi___ffi_base___FFIVisitor_____atcompilation_unit(fra.me.REG[0])!=NIT_NULL);
834 if (UNTAG_Bool(REGB0)) {
835 } else {
836 nit_abort("Uninitialized attribute %s", "@compilation_unit", LOCATE_ffi___ffi_base, 124);
837 }
838 fra.me.REG[0] = ATTR_ffi___ffi_base___FFIVisitor_____atcompilation_unit(fra.me.REG[0]);
839 stack_frame_head = fra.me.prev;
840 return fra.me.REG[0];
841 }
842 static const char LOCATE_ffi___ffi_base___FFIVisitor___compilation_unit__eq[] = "ffi_base::FFIVisitor::compilation_unit=";
843 void ffi___ffi_base___FFIVisitor___compilation_unit__eq(val_t p0, val_t p1){
844 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
845 val_t tmp;
846 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
847 fra.me.file = LOCATE_ffi___ffi_base;
848 fra.me.line = 124;
849 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___compilation_unit__eq;
850 fra.me.has_broke = 0;
851 fra.me.REG_size = 2;
852 fra.me.nitni_local_ref_head = NULL;
853 fra.me.REG[0] = NIT_NULL;
854 fra.me.REG[1] = NIT_NULL;
855 fra.me.REG[0] = p0;
856 fra.me.REG[1] = p1;
857 /* ffi/ffi_base.nit:124 */
858 ATTR_ffi___ffi_base___FFIVisitor_____atcompilation_unit(fra.me.REG[0]) = fra.me.REG[1];
859 stack_frame_head = fra.me.prev;
860 return;
861 }
862 static const char LOCATE_ffi___ffi_base___FFIVisitor___init[] = "ffi_base::FFIVisitor::init";
863 void ffi___ffi_base___FFIVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
864 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ffi___ffi_base___FFIVisitor].i;
865 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
866 val_t tmp;
867 if (init_table[itpos2]) return;
868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
869 fra.me.file = LOCATE_ffi___ffi_base;
870 fra.me.line = 0;
871 fra.me.meth = LOCATE_ffi___ffi_base___FFIVisitor___init;
872 fra.me.has_broke = 0;
873 fra.me.REG_size = 3;
874 fra.me.nitni_local_ref_head = NULL;
875 fra.me.REG[0] = NIT_NULL;
876 fra.me.REG[1] = NIT_NULL;
877 fra.me.REG[2] = NIT_NULL;
878 fra.me.REG[0] = p0;
879 fra.me.REG[1] = p1;
880 fra.me.REG[2] = p2;
881 ATTR_ffi___ffi_base___FFIVisitor_____attc(fra.me.REG[0]) = fra.me.REG[1];
882 ATTR_ffi___ffi_base___FFIVisitor_____atmmmodule(fra.me.REG[0]) = fra.me.REG[2];
883 stack_frame_head = fra.me.prev;
884 init_table[itpos2] = 1;
885 return;
886 }