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> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @header");
9 fprintf(stderr
, " (%s:%d)\n", "lib/csv.nit", 20);
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
);
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> */
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
);
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> */
41 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @lines");
42 fprintf(stderr
, " (%s:%d)\n", "lib/csv.nit", 21);
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
);
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> */
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
);
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 */;
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]>*/;
83 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
85 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
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]>*/;
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
);
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 */;
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]] */;
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) */
157 var8
= "CSV error: header declares ";
159 var10
= string__NativeString__to_s_with_length(var8
, var9
);
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]>*/;
168 var15
= " columns, line contains ";
170 var17
= string__NativeString__to_s_with_length(var15
, var16
);
174 var18
= ((long (*)(val
*))(var_values
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_values
) /* length on <var_values:Array[Object]>*/;
180 var23
= string__NativeString__to_s_with_length(var21
, var22
);
184 var24
= NEW_array__Array(&type_array__Arraykernel__Object
);
185 { /* var24 = array_instance Array[Object] */
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]>*/;
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);
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]>*/;
207 var31
= ((val
* (*)(val
*))(var_values
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_values
) /* iterator on <var_values:Array[Object]>*/;
209 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
211 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
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]>*/;
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]]>*/;
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
);
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] */;
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>*/;
269 var5
= string__NativeString__to_s_with_length(var3
, var4
);
273 var6
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_string__Collection__join
]))(var1
, var2
) /* join on <var1:Array[String]>*/;
279 var11
= string__NativeString__to_s_with_length(var9
, var10
);
283 var12
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_string__String___43d
]))(var6
, var8
) /* + on <var6:String>*/;
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]]>*/;
288 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
290 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
297 var21
= string__NativeString__to_s_with_length(var19
, var20
);
301 var22
= ((val
* (*)(val
*, val
*))(var_line
->class->vft
[COLOR_string__Collection__join
]))(var_line
, var18
) /* join on <var_line:Array[String]>*/;
307 var27
= string__NativeString__to_s_with_length(var25
, var26
);
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>*/;
314 CONTINUE_label
: (void)0;
315 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
317 BREAK_label
: (void)0;
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
);
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 */;
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>*/;
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>*/;
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
);
352 /* method csv#CSVDocument#init for (self: CSVDocument) */
353 void csv__CSVDocument__init(val
* self
) {
356 /* method csv#CSVDocument#init for (self: Object) */
357 void VIRTUAL_csv__CSVDocument__init(val
* self
) {
358 csv__CSVDocument__init(self
);