c_src: update Makefile to compile on MacOSX
[nit.git] / c_src / csv.sep.1.c
1 #include "csv.sep.0.h"
2 /* method csv#CSVDocument#header for (self: CSVDocument): Array[String] */
3 val* csv__CSVDocument__header(val* self) {
4 val* var /* : Array[String] */;
5 val* var1 /* : Array[String] */;
6 var1 = self->attrs[COLOR_csv__CSVDocument___64dheader].val; /* @header on <self:CSVDocument> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @header");
9 fprintf(stderr, " (%s:%d)\n", "lib/csv.nit", 20);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method csv#CSVDocument#header for (self: Object): Array[String] */
17 val* VIRTUAL_csv__CSVDocument__header(val* self) {
18 val* var /* : Array[String] */;
19 val* var1 /* : Array[String] */;
20 var1 = csv__CSVDocument__header(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method csv#CSVDocument#header= for (self: CSVDocument, Array[String]) */
26 void csv__CSVDocument__header_61d(val* self, val* p0) {
27 self->attrs[COLOR_csv__CSVDocument___64dheader].val = p0; /* @header on <self:CSVDocument> */
28 RET_LABEL:;
29 }
30 /* method csv#CSVDocument#header= for (self: Object, Array[String]) */
31 void VIRTUAL_csv__CSVDocument__header_61d(val* self, val* p0) {
32 csv__CSVDocument__header_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method csv#CSVDocument#lines for (self: CSVDocument): Array[Array[String]] */
36 val* csv__CSVDocument__lines(val* self) {
37 val* var /* : Array[Array[String]] */;
38 val* var1 /* : Array[Array[String]] */;
39 var1 = self->attrs[COLOR_csv__CSVDocument___64dlines].val; /* @lines on <self:CSVDocument> */
40 if (var1 == NULL) {
41 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @lines");
42 fprintf(stderr, " (%s:%d)\n", "lib/csv.nit", 21);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method csv#CSVDocument#lines for (self: Object): Array[Array[String]] */
50 val* VIRTUAL_csv__CSVDocument__lines(val* self) {
51 val* var /* : Array[Array[String]] */;
52 val* var1 /* : Array[Array[String]] */;
53 var1 = csv__CSVDocument__lines(self);
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method csv#CSVDocument#lines= for (self: CSVDocument, Array[Array[String]]) */
59 void csv__CSVDocument__lines_61d(val* self, val* p0) {
60 self->attrs[COLOR_csv__CSVDocument___64dlines].val = p0; /* @lines on <self:CSVDocument> */
61 RET_LABEL:;
62 }
63 /* method csv#CSVDocument#lines= for (self: Object, Array[Array[String]]) */
64 void VIRTUAL_csv__CSVDocument__lines_61d(val* self, val* p0) {
65 csv__CSVDocument__lines_61d(self, p0);
66 RET_LABEL:;
67 }
68 /* method csv#CSVDocument#set_header for (self: CSVDocument, Array[Object]) */
69 void csv__CSVDocument__set_header(val* self, val* p0) {
70 val* var_values /* var values: Array[Object] */;
71 val* var /* : Array[String] */;
72 val* var1 /* : Iterator[nullable Object] */;
73 short int var2 /* : Bool */;
74 val* var3 /* : nullable Object */;
75 val* var_value /* var value: Object */;
76 val* var4 /* : Array[String] */;
77 val* var5 /* : String */;
78 var_values = p0;
79 var = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__header]))(self) /* header on <self:CSVDocument>*/;
80 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var) /* clear on <var:Array[String]>*/;
81 var1 = ((val* (*)(val*))(var_values->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_values) /* iterator on <var_values:Array[Object]>*/;
82 for(;;) {
83 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
84 if(!var2) break;
85 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
86 var_value = var3;
87 var4 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__header]))(self) /* header on <self:CSVDocument>*/;
88 var5 = ((val* (*)(val*))(var_value->class->vft[COLOR_string__Object__to_s]))(var_value) /* to_s on <var_value:Object>*/;
89 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var5) /* add on <var4:Array[String]>*/;
90 CONTINUE_label: (void)0;
91 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
92 }
93 BREAK_label: (void)0;
94 RET_LABEL:;
95 }
96 /* method csv#CSVDocument#set_header for (self: Object, Array[Object]) */
97 void VIRTUAL_csv__CSVDocument__set_header(val* self, val* p0) {
98 csv__CSVDocument__set_header(self, p0);
99 RET_LABEL:;
100 }
101 /* method csv#CSVDocument#add_line for (self: CSVDocument, Array[Object]) */
102 void csv__CSVDocument__add_line(val* self, val* p0) {
103 val* var_values /* var values: Array[Object] */;
104 long var /* : Int */;
105 val* var1 /* : Array[String] */;
106 long var2 /* : Int */;
107 short int var3 /* : Bool */;
108 short int var5 /* : Bool */;
109 short int var6 /* : Bool */;
110 static val* varonce;
111 val* var7 /* : String */;
112 char* var8 /* : NativeString */;
113 long var9 /* : Int */;
114 val* var10 /* : String */;
115 val* var11 /* : Array[String] */;
116 long var12 /* : Int */;
117 static val* varonce13;
118 val* var14 /* : String */;
119 char* var15 /* : NativeString */;
120 long var16 /* : Int */;
121 val* var17 /* : String */;
122 long var18 /* : Int */;
123 static val* varonce19;
124 val* var20 /* : String */;
125 char* var21 /* : NativeString */;
126 long var22 /* : Int */;
127 val* var23 /* : String */;
128 val* var24 /* : Array[Object] */;
129 long var25 /* : Int */;
130 val* var26 /* : NativeArray[Object] */;
131 val* var27 /* : Object */;
132 val* var28 /* : Object */;
133 val* var29 /* : String */;
134 val* var30 /* : Array[String] */;
135 val* var_line /* var line: Array[String] */;
136 val* var31 /* : Iterator[nullable Object] */;
137 short int var32 /* : Bool */;
138 val* var33 /* : nullable Object */;
139 val* var_value /* var value: Object */;
140 val* var34 /* : String */;
141 val* var35 /* : Array[Array[String]] */;
142 var_values = p0;
143 var = ((long (*)(val*))(var_values->class->vft[COLOR_abstract_collection__Collection__length]))(var_values) /* length on <var_values:Array[Object]>*/;
144 var1 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__header]))(self) /* header on <self:CSVDocument>*/;
145 var2 = ((long (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__length]))(var1) /* length on <var1:Array[String]>*/;
146 { /* Inline kernel#Int#!= (var,var2) */
147 var5 = var == var2;
148 var6 = !var5;
149 var3 = var6;
150 goto RET_LABEL4;
151 RET_LABEL4:(void)0;
152 }
153 if (var3){
154 if (varonce) {
155 var7 = varonce;
156 } else {
157 var8 = "CSV error: header declares ";
158 var9 = 27;
159 var10 = string__NativeString__to_s_with_length(var8, var9);
160 var7 = var10;
161 varonce = var7;
162 }
163 var11 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__header]))(self) /* header on <self:CSVDocument>*/;
164 var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:Array[String]>*/;
165 if (varonce13) {
166 var14 = varonce13;
167 } else {
168 var15 = " columns, line contains ";
169 var16 = 24;
170 var17 = string__NativeString__to_s_with_length(var15, var16);
171 var14 = var17;
172 varonce13 = var14;
173 }
174 var18 = ((long (*)(val*))(var_values->class->vft[COLOR_abstract_collection__Collection__length]))(var_values) /* length on <var_values:Array[Object]>*/;
175 if (varonce19) {
176 var20 = varonce19;
177 } else {
178 var21 = " values";
179 var22 = 7;
180 var23 = string__NativeString__to_s_with_length(var21, var22);
181 var20 = var23;
182 varonce19 = var20;
183 }
184 var24 = NEW_array__Array(&type_array__Arraykernel__Object);
185 { /* var24 = array_instance Array[Object] */
186 var25 = 5;
187 var26 = NEW_array__NativeArray(var25, &type_array__NativeArraykernel__Object);
188 ((struct instance_array__NativeArray*)var26)->values[0] = (val*) var7;
189 var27 = BOX_kernel__Int(var12); /* autobox from Int to Object */
190 ((struct instance_array__NativeArray*)var26)->values[1] = (val*) var27;
191 ((struct instance_array__NativeArray*)var26)->values[2] = (val*) var14;
192 var28 = BOX_kernel__Int(var18); /* autobox from Int to Object */
193 ((struct instance_array__NativeArray*)var26)->values[3] = (val*) var28;
194 ((struct instance_array__NativeArray*)var26)->values[4] = (val*) var20;
195 ((void (*)(val*, val*, long))(var24->class->vft[COLOR_array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
196 }
197 var29 = ((val* (*)(val*))(var24->class->vft[COLOR_string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
198 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var29) /* print on <self:CSVDocument>*/;
199 fprintf(stderr, "Runtime error: %s", "Aborted");
200 fprintf(stderr, " (%s:%d)\n", "lib/csv.nit", 33);
201 show_backtrace(1);
202 } else {
203 }
204 var30 = NEW_array__Array(&type_array__Arraystring__String);
205 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[String]>*/;
206 var_line = var30;
207 var31 = ((val* (*)(val*))(var_values->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_values) /* iterator on <var_values:Array[Object]>*/;
208 for(;;) {
209 var32 = ((short int (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var31) /* is_ok on <var31:Iterator[nullable Object]>*/;
210 if(!var32) break;
211 var33 = ((val* (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__item]))(var31) /* item on <var31:Iterator[nullable Object]>*/;
212 var_value = var33;
213 var34 = ((val* (*)(val*))(var_value->class->vft[COLOR_string__Object__to_s]))(var_value) /* to_s on <var_value:Object>*/;
214 ((void (*)(val*, val*))(var_line->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_line, var34) /* add on <var_line:Array[String]>*/;
215 CONTINUE_label: (void)0;
216 ((void (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__next]))(var31) /* next on <var31:Iterator[nullable Object]>*/;
217 }
218 BREAK_label: (void)0;
219 var35 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__lines]))(self) /* lines on <self:CSVDocument>*/;
220 ((void (*)(val*, val*))(var35->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var35, var_line) /* add on <var35:Array[Array[String]]>*/;
221 RET_LABEL:;
222 }
223 /* method csv#CSVDocument#add_line for (self: Object, Array[Object]) */
224 void VIRTUAL_csv__CSVDocument__add_line(val* self, val* p0) {
225 csv__CSVDocument__add_line(self, p0);
226 RET_LABEL:;
227 }
228 /* method csv#CSVDocument#to_s for (self: CSVDocument): String */
229 val* csv__CSVDocument__to_s(val* self) {
230 val* var /* : String */;
231 val* var1 /* : Array[String] */;
232 static val* varonce;
233 val* var2 /* : String */;
234 char* var3 /* : NativeString */;
235 long var4 /* : Int */;
236 val* var5 /* : String */;
237 val* var6 /* : String */;
238 static val* varonce7;
239 val* var8 /* : String */;
240 char* var9 /* : NativeString */;
241 long var10 /* : Int */;
242 val* var11 /* : String */;
243 val* var12 /* : String */;
244 val* var_str /* var str: String */;
245 val* var13 /* : Array[Array[String]] */;
246 val* var14 /* : Iterator[nullable Object] */;
247 short int var15 /* : Bool */;
248 val* var16 /* : nullable Object */;
249 val* var_line /* var line: Array[String] */;
250 static val* varonce17;
251 val* var18 /* : String */;
252 char* var19 /* : NativeString */;
253 long var20 /* : Int */;
254 val* var21 /* : String */;
255 val* var22 /* : String */;
256 static val* varonce23;
257 val* var24 /* : String */;
258 char* var25 /* : NativeString */;
259 long var26 /* : Int */;
260 val* var27 /* : String */;
261 val* var28 /* : String */;
262 val* var29 /* : String */;
263 var1 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__header]))(self) /* header on <self:CSVDocument>*/;
264 if (varonce) {
265 var2 = varonce;
266 } else {
267 var3 = ";";
268 var4 = 1;
269 var5 = string__NativeString__to_s_with_length(var3, var4);
270 var2 = var5;
271 varonce = var2;
272 }
273 var6 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_string__Collection__join]))(var1, var2) /* join on <var1:Array[String]>*/;
274 if (varonce7) {
275 var8 = varonce7;
276 } else {
277 var9 = "\n";
278 var10 = 1;
279 var11 = string__NativeString__to_s_with_length(var9, var10);
280 var8 = var11;
281 varonce7 = var8;
282 }
283 var12 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_string__String___43d]))(var6, var8) /* + on <var6:String>*/;
284 var_str = var12;
285 var13 = ((val* (*)(val*))(self->class->vft[COLOR_csv__CSVDocument__lines]))(self) /* lines on <self:CSVDocument>*/;
286 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:Array[Array[String]]>*/;
287 for(;;) {
288 var15 = ((short int (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var14) /* is_ok on <var14:Iterator[nullable Object]>*/;
289 if(!var15) break;
290 var16 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__item]))(var14) /* item on <var14:Iterator[nullable Object]>*/;
291 var_line = var16;
292 if (varonce17) {
293 var18 = varonce17;
294 } else {
295 var19 = ";";
296 var20 = 1;
297 var21 = string__NativeString__to_s_with_length(var19, var20);
298 var18 = var21;
299 varonce17 = var18;
300 }
301 var22 = ((val* (*)(val*, val*))(var_line->class->vft[COLOR_string__Collection__join]))(var_line, var18) /* join on <var_line:Array[String]>*/;
302 if (varonce23) {
303 var24 = varonce23;
304 } else {
305 var25 = "\n";
306 var26 = 1;
307 var27 = string__NativeString__to_s_with_length(var25, var26);
308 var24 = var27;
309 varonce23 = var24;
310 }
311 var28 = ((val* (*)(val*, val*))(var22->class->vft[COLOR_string__String___43d]))(var22, var24) /* + on <var22:String>*/;
312 var29 = ((val* (*)(val*, val*))(var_str->class->vft[COLOR_string__String___43d]))(var_str, var28) /* + on <var_str:String>*/;
313 var_str = var29;
314 CONTINUE_label: (void)0;
315 ((void (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__next]))(var14) /* next on <var14:Iterator[nullable Object]>*/;
316 }
317 BREAK_label: (void)0;
318 var = var_str;
319 goto RET_LABEL;
320 RET_LABEL:;
321 return var;
322 }
323 /* method csv#CSVDocument#to_s for (self: Object): String */
324 val* VIRTUAL_csv__CSVDocument__to_s(val* self) {
325 val* var /* : String */;
326 val* var1 /* : String */;
327 var1 = csv__CSVDocument__to_s(self);
328 var = var1;
329 RET_LABEL:;
330 return var;
331 }
332 /* method csv#CSVDocument#save for (self: CSVDocument, String) */
333 void csv__CSVDocument__save(val* self, val* p0) {
334 val* var_file /* var file: String */;
335 val* var /* : OFStream */;
336 val* var_out /* var out: OFStream */;
337 val* var1 /* : String */;
338 var_file = p0;
339 var = NEW_file__OFStream(&type_file__OFStream);
340 ((void (*)(val*, val*))(var->class->vft[COLOR_file__OFStream__open]))(var, var_file) /* open on <var:OFStream>*/;
341 var_out = var;
342 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on <self:CSVDocument>*/;
343 ((void (*)(val*, val*))(var_out->class->vft[COLOR_stream__OStream__write]))(var_out, var1) /* write on <var_out:OFStream>*/;
344 ((void (*)(val*))(var_out->class->vft[COLOR_stream__IOS__close]))(var_out) /* close on <var_out:OFStream>*/;
345 RET_LABEL:;
346 }
347 /* method csv#CSVDocument#save for (self: Object, String) */
348 void VIRTUAL_csv__CSVDocument__save(val* self, val* p0) {
349 csv__CSVDocument__save(self, p0);
350 RET_LABEL:;
351 }
352 /* method csv#CSVDocument#init for (self: CSVDocument) */
353 void csv__CSVDocument__init(val* self) {
354 RET_LABEL:;
355 }
356 /* method csv#CSVDocument#init for (self: Object) */
357 void VIRTUAL_csv__CSVDocument__init(val* self) {
358 csv__CSVDocument__init(self);
359 RET_LABEL:;
360 }