1 #include "serialization_phase.sep.0.h"
2 /* method serialization_phase#ToolContext#serialization_phase for (self: ToolContext): Phase */
3 val
* serialization_phase__ToolContext__serialization_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_serialization_phase__ToolContext___64dserialization_phase
].val
; /* @serialization_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @serialization_phase");
9 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 26);
16 /* method serialization_phase#ToolContext#serialization_phase for (self: Object): Phase */
17 val
* VIRTUAL_serialization_phase__ToolContext__serialization_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 var1
= serialization_phase__ToolContext__serialization_phase(self
);
25 /* method serialization_phase#ToolContext#serialization_phase= for (self: ToolContext, Phase) */
26 void serialization_phase__ToolContext__serialization_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_serialization_phase__ToolContext___64dserialization_phase
].val
= p0
; /* @serialization_phase on <self:ToolContext> */
30 /* method serialization_phase#ToolContext#serialization_phase= for (self: Object, Phase) */
31 void VIRTUAL_serialization_phase__ToolContext__serialization_phase_61d(val
* self
, val
* p0
) {
32 serialization_phase__ToolContext__serialization_phase_61d(self
, p0
);
35 /* method serialization_phase#SerializationPhase#process_annotated_node for (self: SerializationPhase, ANode, AAnnotation) */
36 void serialization_phase__SerializationPhase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
37 val
* var_nclassdef
/* var nclassdef: ANode */;
38 val
* var_nat
/* var nat: AAnnotation */;
39 val
* var
/* : AAtid */;
40 val
* var1
/* : Token */;
41 val
* var2
/* : String */;
43 val
* var3
/* : String */;
44 char* var4
/* : NativeString */;
45 long var5
/* : Int */;
46 val
* var6
/* : String */;
47 short int var7
/* : Bool */;
48 short int var8
/* : Bool */;
51 short int var9
/* : Bool */;
52 val
* var10
/* : ToolContext */;
53 val
* var11
/* : Location */;
54 static val
* varonce12
;
55 val
* var13
/* : String */;
56 char* var14
/* : NativeString */;
57 long var15
/* : Int */;
58 val
* var16
/* : String */;
61 var
= ((val
* (*)(val
*))(var_nat
->class->vft
[COLOR_parser_nodes__AAnnotation__n_atid
]))(var_nat
) /* n_atid on <var_nat:AAnnotation>*/;
62 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__AAtid__n_id
]))(var
) /* n_id on <var:AAtid>*/;
63 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:Token>*/;
67 var4
= "auto_serializable";
69 var6
= string__NativeString__to_s_with_length(var4
, var5
);
73 var7
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var2
, var3
) /* != on <var2:String>*/;
78 /* <var_nclassdef:ANode> isa AStdClassdef */
79 cltype
= type_parser_nodes__AStdClassdef
.color
;
80 idtype
= type_parser_nodes__AStdClassdef
.id
;
81 if(cltype
>= var_nclassdef
->type
->table_size
) {
84 var8
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
88 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
89 var11
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nclassdef
) /* location on <var_nclassdef:ANode>*/;
93 var14
= "Syntax error: only a concrete class can be automatically serialized.";
95 var16
= string__NativeString__to_s_with_length(var14
, var15
);
99 ((void (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var10
, var11
, var13
) /* error on <var10:ToolContext>*/;
103 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_serialization_phase__SerializationPhase__generate_serialization_method
]))(self
, var_nclassdef
) /* generate_serialization_method on <self:SerializationPhase>*/;
104 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_serialization_phase__SerializationPhase__generate_deserialization_init
]))(self
, var_nclassdef
) /* generate_deserialization_init on <self:SerializationPhase>*/;
107 /* method serialization_phase#SerializationPhase#process_annotated_node for (self: Object, ANode, AAnnotation) */
108 void VIRTUAL_serialization_phase__SerializationPhase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
109 serialization_phase__SerializationPhase__process_annotated_node(self
, p0
, p1
);
112 /* method serialization_phase#SerializationPhase#process_nmodule for (self: SerializationPhase, AModule) */
113 void serialization_phase__SerializationPhase__process_nmodule(val
* self
, val
* p0
) {
114 val
* var_nmodule
/* var nmodule: AModule */;
115 val
* var
/* : Array[AStdClassdef] */;
116 val
* var_auto_serializable_nclassdefs
/* var auto_serializable_nclassdefs: Array[AStdClassdef] */;
117 val
* var1
/* : ANodes[AClassdef] */;
118 val
* var2
/* : Iterator[nullable Object] */;
119 short int var3
/* : Bool */;
120 val
* var4
/* : nullable Object */;
121 val
* var_nclassdef
/* var nclassdef: AClassdef */;
122 short int var5
/* : Bool */;
123 short int var6
/* : Bool */;
126 short int var_
/* var : Bool */;
128 val
* var7
/* : String */;
129 char* var8
/* : NativeString */;
130 long var9
/* : Int */;
131 val
* var10
/* : String */;
132 val
* var11
/* : Array[AAnnotation] */;
133 short int var12
/* : Bool */;
134 short int var13
/* : Bool */;
135 short int var14
/* : Bool */;
136 short int var15
/* : Bool */;
138 var
= NEW_array__Array(&type_array__Arrayparser_nodes__AStdClassdef
);
139 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[AStdClassdef]>*/;
140 var_auto_serializable_nclassdefs
= var
;
141 var1
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
142 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:ANodes[AClassdef]>*/;
144 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
146 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
147 var_nclassdef
= var4
;
148 /* <var_nclassdef:AClassdef> isa AStdClassdef */
149 cltype
= type_parser_nodes__AStdClassdef
.color
;
150 idtype
= type_parser_nodes__AStdClassdef
.id
;
151 if(cltype
>= var_nclassdef
->type
->table_size
) {
154 var6
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
161 var8
= "auto_serializable";
163 var10
= string__NativeString__to_s_with_length(var8
, var9
);
167 var11
= ((val
* (*)(val
*, val
*))(var_nclassdef
->class->vft
[COLOR_parser_util__ANode__collect_annotations_by_name
]))(var_nclassdef
, var7
) /* collect_annotations_by_name on <var_nclassdef:AClassdef(AStdClassdef)>*/;
168 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var11
) /* is_empty on <var11:Array[AAnnotation]>*/;
175 ((void (*)(val
*, val
*))(var_auto_serializable_nclassdefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_auto_serializable_nclassdefs
, var_nclassdef
) /* add on <var_auto_serializable_nclassdefs:Array[AStdClassdef]>*/;
178 CONTINUE_label
: (void)0;
179 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
181 BREAK_label
: (void)0;
182 var14
= ((short int (*)(val
*))(var_auto_serializable_nclassdefs
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_auto_serializable_nclassdefs
) /* is_empty on <var_auto_serializable_nclassdefs:Array[AStdClassdef]>*/;
185 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_serialization_phase__SerializationPhase__generate_deserialization_method
]))(self
, var_nmodule
, var_auto_serializable_nclassdefs
) /* generate_deserialization_method on <self:SerializationPhase>*/;
190 /* method serialization_phase#SerializationPhase#process_nmodule for (self: Object, AModule) */
191 void VIRTUAL_serialization_phase__SerializationPhase__process_nmodule(val
* self
, val
* p0
) {
192 serialization_phase__SerializationPhase__process_nmodule(self
, p0
);
195 /* method serialization_phase#SerializationPhase#generate_serialization_method for (self: SerializationPhase, AClassdef) */
196 void serialization_phase__SerializationPhase__generate_serialization_method(val
* self
, val
* p0
) {
197 val
* var_nclassdef
/* var nclassdef: AClassdef */;
198 val
* var
/* : ANodes[APropdef] */;
199 val
* var_npropdefs
/* var npropdefs: ANodes[APropdef] */;
200 val
* var1
/* : Array[String] */;
201 val
* var_code
/* var code: Array[String] */;
203 val
* var2
/* : String */;
204 char* var3
/* : NativeString */;
205 long var4
/* : Int */;
206 val
* var5
/* : String */;
207 static val
* varonce6
;
208 val
* var7
/* : String */;
209 char* var8
/* : NativeString */;
210 long var9
/* : Int */;
211 val
* var10
/* : String */;
212 static val
* varonce11
;
213 val
* var12
/* : String */;
214 char* var13
/* : NativeString */;
215 long var14
/* : Int */;
216 val
* var15
/* : String */;
217 val
* var16
/* : Iterator[nullable Object] */;
218 short int var17
/* : Bool */;
219 val
* var18
/* : nullable Object */;
220 val
* var_attribute
/* var attribute: APropdef */;
221 short int var19
/* : Bool */;
224 val
* var20
/* : String */;
225 val
* var_name
/* var name: String */;
226 static val
* varonce21
;
227 val
* var22
/* : String */;
228 char* var23
/* : NativeString */;
229 long var24
/* : Int */;
230 val
* var25
/* : String */;
231 static val
* varonce26
;
232 val
* var27
/* : String */;
233 char* var28
/* : NativeString */;
234 long var29
/* : Int */;
235 val
* var30
/* : String */;
236 static val
* varonce31
;
237 val
* var32
/* : String */;
238 char* var33
/* : NativeString */;
239 long var34
/* : Int */;
240 val
* var35
/* : String */;
241 val
* var36
/* : Array[Object] */;
242 long var37
/* : Int */;
243 val
* var38
/* : NativeArray[Object] */;
244 val
* var39
/* : String */;
245 static val
* varonce40
;
246 val
* var41
/* : String */;
247 char* var42
/* : NativeString */;
248 long var43
/* : Int */;
249 val
* var44
/* : String */;
250 val
* var45
/* : ToolContext */;
251 static val
* varonce46
;
252 val
* var47
/* : String */;
253 char* var48
/* : NativeString */;
254 long var49
/* : Int */;
255 val
* var50
/* : String */;
256 val
* var51
/* : String */;
257 val
* var52
/* : APropdef */;
259 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
261 var1
= NEW_array__Array(&type_array__Arraystring__String
);
262 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[String]>*/;
267 var3
= "redef fun core_serialize_to(v)";
269 var5
= string__NativeString__to_s_with_length(var3
, var4
);
273 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var2
) /* add on <var_code:Array[String]>*/;
279 var10
= string__NativeString__to_s_with_length(var8
, var9
);
283 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var7
) /* add on <var_code:Array[String]>*/;
289 var15
= string__NativeString__to_s_with_length(var13
, var14
);
293 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var12
) /* add on <var_code:Array[String]>*/;
294 var16
= ((val
* (*)(val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_npropdefs
) /* iterator on <var_npropdefs:ANodes[APropdef]>*/;
296 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
298 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
299 var_attribute
= var18
;
300 /* <var_attribute:APropdef> isa AAttrPropdef */
301 cltype
= type_parser_nodes__AAttrPropdef
.color
;
302 idtype
= type_parser_nodes__AAttrPropdef
.id
;
303 if(cltype
>= var_attribute
->type
->table_size
) {
306 var19
= var_attribute
->type
->type_table
[cltype
] == idtype
;
309 var20
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_serialization_phase__AAttrPropdef__name
]))(var_attribute
) /* name on <var_attribute:APropdef(AAttrPropdef)>*/;
314 var23
= "\11v.serialize_attribute(\"";
316 var25
= string__NativeString__to_s_with_length(var23
, var24
);
325 var30
= string__NativeString__to_s_with_length(var28
, var29
);
334 var35
= string__NativeString__to_s_with_length(var33
, var34
);
338 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
339 { /* var36 = array_instance Array[Object] */
341 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
342 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var22
;
343 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
344 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var27
;
345 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var_name
;
346 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var32
;
347 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
349 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
350 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var39
) /* add on <var_code:Array[String]>*/;
353 CONTINUE_label
: (void)0;
354 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
356 BREAK_label
: (void)0;
362 var44
= string__NativeString__to_s_with_length(var42
, var43
);
366 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var41
) /* add on <var_code:Array[String]>*/;
367 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
373 var50
= string__NativeString__to_s_with_length(var48
, var49
);
377 var51
= ((val
* (*)(val
*, val
*))(var_code
->class->vft
[COLOR_string__Collection__join
]))(var_code
, var47
) /* join on <var_code:Array[String]>*/;
378 var52
= ((val
* (*)(val
*, val
*))(var45
->class->vft
[COLOR_parser_util__ToolContext__parse_propdef
]))(var45
, var51
) /* parse_propdef on <var45:ToolContext>*/;
379 ((void (*)(val
*, val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_npropdefs
, var52
) /* push on <var_npropdefs:ANodes[APropdef]>*/;
382 /* method serialization_phase#SerializationPhase#generate_serialization_method for (self: Object, AClassdef) */
383 void VIRTUAL_serialization_phase__SerializationPhase__generate_serialization_method(val
* self
, val
* p0
) {
384 serialization_phase__SerializationPhase__generate_serialization_method(self
, p0
);
387 /* method serialization_phase#SerializationPhase#generate_deserialization_init for (self: SerializationPhase, AClassdef) */
388 void serialization_phase__SerializationPhase__generate_deserialization_init(val
* self
, val
* p0
) {
389 val
* var_nclassdef
/* var nclassdef: AClassdef */;
390 val
* var
/* : ANodes[APropdef] */;
391 val
* var_npropdefs
/* var npropdefs: ANodes[APropdef] */;
392 val
* var1
/* : Array[String] */;
393 val
* var_code
/* var code: Array[String] */;
395 val
* var2
/* : String */;
396 char* var3
/* : NativeString */;
397 long var4
/* : Int */;
398 val
* var5
/* : String */;
399 static val
* varonce6
;
400 val
* var7
/* : String */;
401 char* var8
/* : NativeString */;
402 long var9
/* : Int */;
403 val
* var10
/* : String */;
404 static val
* varonce11
;
405 val
* var12
/* : String */;
406 char* var13
/* : NativeString */;
407 long var14
/* : Int */;
408 val
* var15
/* : String */;
409 val
* var16
/* : Iterator[nullable Object] */;
410 short int var17
/* : Bool */;
411 val
* var18
/* : nullable Object */;
412 val
* var_attribute
/* var attribute: APropdef */;
413 short int var19
/* : Bool */;
416 val
* var20
/* : nullable AType */;
417 val
* var21
/* : null */;
418 short int var22
/* : Bool */;
419 val
* var23
/* : ToolContext */;
420 val
* var24
/* : Location */;
421 static val
* varonce25
;
422 val
* var26
/* : String */;
423 char* var27
/* : NativeString */;
424 long var28
/* : Int */;
425 val
* var29
/* : String */;
426 val
* var30
/* : String */;
427 val
* var_name
/* var name: String */;
428 val
* var31
/* : String */;
429 val
* var_type_name
/* var type_name: String */;
430 static val
* varonce32
;
431 val
* var33
/* : String */;
432 char* var34
/* : NativeString */;
433 long var35
/* : Int */;
434 val
* var36
/* : String */;
435 static val
* varonce37
;
436 val
* var38
/* : String */;
437 char* var39
/* : NativeString */;
438 long var40
/* : Int */;
439 val
* var41
/* : String */;
440 static val
* varonce42
;
441 val
* var43
/* : String */;
442 char* var44
/* : NativeString */;
443 long var45
/* : Int */;
444 val
* var46
/* : String */;
445 static val
* varonce47
;
446 val
* var48
/* : String */;
447 char* var49
/* : NativeString */;
448 long var50
/* : Int */;
449 val
* var51
/* : String */;
450 val
* var52
/* : Array[Object] */;
451 long var53
/* : Int */;
452 val
* var54
/* : NativeArray[Object] */;
453 val
* var55
/* : String */;
454 static val
* varonce56
;
455 val
* var57
/* : String */;
456 char* var58
/* : NativeString */;
457 long var59
/* : Int */;
458 val
* var60
/* : String */;
459 static val
* varonce61
;
460 val
* var62
/* : String */;
461 char* var63
/* : NativeString */;
462 long var64
/* : Int */;
463 val
* var65
/* : String */;
464 static val
* varonce66
;
465 val
* var67
/* : String */;
466 char* var68
/* : NativeString */;
467 long var69
/* : Int */;
468 val
* var70
/* : String */;
469 static val
* varonce71
;
470 val
* var72
/* : String */;
471 char* var73
/* : NativeString */;
472 long var74
/* : Int */;
473 val
* var75
/* : String */;
474 static val
* varonce76
;
475 val
* var77
/* : String */;
476 char* var78
/* : NativeString */;
477 long var79
/* : Int */;
478 val
* var80
/* : String */;
479 val
* var81
/* : Array[Object] */;
480 long var82
/* : Int */;
481 val
* var83
/* : NativeArray[Object] */;
482 val
* var84
/* : String */;
483 static val
* varonce85
;
484 val
* var86
/* : String */;
485 char* var87
/* : NativeString */;
486 long var88
/* : Int */;
487 val
* var89
/* : String */;
488 static val
* varonce90
;
489 val
* var91
/* : String */;
490 char* var92
/* : NativeString */;
491 long var93
/* : Int */;
492 val
* var94
/* : String */;
493 val
* var95
/* : Array[Object] */;
494 long var96
/* : Int */;
495 val
* var97
/* : NativeArray[Object] */;
496 val
* var98
/* : String */;
497 static val
* varonce99
;
498 val
* var100
/* : String */;
499 char* var101
/* : NativeString */;
500 long var102
/* : Int */;
501 val
* var103
/* : String */;
502 val
* var104
/* : ToolContext */;
503 static val
* varonce105
;
504 val
* var106
/* : String */;
505 char* var107
/* : NativeString */;
506 long var108
/* : Int */;
507 val
* var109
/* : String */;
508 val
* var110
/* : String */;
509 val
* var111
/* : APropdef */;
511 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
513 var1
= NEW_array__Array(&type_array__Arraystring__String
);
514 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[String]>*/;
519 var3
= "init from_deserializer(v: Deserializer)";
521 var5
= string__NativeString__to_s_with_length(var3
, var4
);
525 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var2
) /* add on <var_code:Array[String]>*/;
531 var10
= string__NativeString__to_s_with_length(var8
, var9
);
535 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var7
) /* add on <var_code:Array[String]>*/;
539 var13
= "\11v.notify_of_creation self";
541 var15
= string__NativeString__to_s_with_length(var13
, var14
);
545 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var12
) /* add on <var_code:Array[String]>*/;
546 var16
= ((val
* (*)(val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_npropdefs
) /* iterator on <var_npropdefs:ANodes[APropdef]>*/;
548 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
550 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
551 var_attribute
= var18
;
552 /* <var_attribute:APropdef> isa AAttrPropdef */
553 cltype
= type_parser_nodes__AAttrPropdef
.color
;
554 idtype
= type_parser_nodes__AAttrPropdef
.id
;
555 if(cltype
>= var_attribute
->type
->table_size
) {
558 var19
= var_attribute
->type
->type_table
[cltype
] == idtype
;
561 var20
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_type
]))(var_attribute
) /* n_type on <var_attribute:APropdef(AAttrPropdef)>*/;
564 var22
= 1; /* is null */
566 var22
= 0; /* arg is null but recv is not */
569 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
570 var24
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_attribute
) /* location on <var_attribute:APropdef(AAttrPropdef)>*/;
574 var27
= "NOT YET IMPLEMENTED: all attributes of an auto_serialized class definition must define a type.";
576 var29
= string__NativeString__to_s_with_length(var27
, var28
);
580 ((void (*)(val
*, val
*, val
*))(var23
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var23
, var24
, var26
) /* error on <var23:ToolContext>*/;
584 var30
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_serialization_phase__AAttrPropdef__name
]))(var_attribute
) /* name on <var_attribute:APropdef(AAttrPropdef)>*/;
586 var31
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_serialization_phase__AAttrPropdef__type_name
]))(var_attribute
) /* type_name on <var_attribute:APropdef(AAttrPropdef)>*/;
587 var_type_name
= var31
;
593 var36
= string__NativeString__to_s_with_length(var34
, var35
);
597 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var33
) /* add on <var_code:Array[String]>*/;
603 var41
= string__NativeString__to_s_with_length(var39
, var40
);
610 var44
= " = v.deserialize_attribute(\"";
612 var46
= string__NativeString__to_s_with_length(var44
, var45
);
621 var51
= string__NativeString__to_s_with_length(var49
, var50
);
625 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
626 { /* var52 = array_instance Array[Object] */
628 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
629 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var38
;
630 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_name
;
631 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var43
;
632 ((struct instance_array__NativeArray
*)var54
)->values
[3] = (val
*) var_name
;
633 ((struct instance_array__NativeArray
*)var54
)->values
[4] = (val
*) var48
;
634 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
636 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
637 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var55
) /* add on <var_code:Array[String]>*/;
641 var58
= "\11assert ";
643 var60
= string__NativeString__to_s_with_length(var58
, var59
);
652 var65
= string__NativeString__to_s_with_length(var63
, var64
);
659 var68
= " else print \"Expected attribute \'";
661 var70
= string__NativeString__to_s_with_length(var68
, var69
);
668 var73
= "\' to be of type \'";
670 var75
= string__NativeString__to_s_with_length(var73
, var74
);
679 var80
= string__NativeString__to_s_with_length(var78
, var79
);
683 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
684 { /* var81 = array_instance Array[Object] */
686 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
687 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var57
;
688 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var_name
;
689 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var62
;
690 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var_type_name
;
691 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var67
;
692 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var_name
;
693 ((struct instance_array__NativeArray
*)var83
)->values
[6] = (val
*) var72
;
694 ((struct instance_array__NativeArray
*)var83
)->values
[7] = (val
*) var_type_name
;
695 ((struct instance_array__NativeArray
*)var83
)->values
[8] = (val
*) var77
;
696 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
698 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
699 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var84
) /* add on <var_code:Array[String]>*/;
705 var89
= string__NativeString__to_s_with_length(var87
, var88
);
714 var94
= string__NativeString__to_s_with_length(var92
, var93
);
718 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
719 { /* var95 = array_instance Array[Object] */
721 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
722 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var86
;
723 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var_name
;
724 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
725 ((struct instance_array__NativeArray
*)var97
)->values
[3] = (val
*) var_name
;
726 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
728 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
729 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var98
) /* add on <var_code:Array[String]>*/;
732 CONTINUE_label
: (void)0;
733 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
735 BREAK_label
: (void)0;
741 var103
= string__NativeString__to_s_with_length(var101
, var102
);
745 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var100
) /* add on <var_code:Array[String]>*/;
746 var104
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
752 var109
= string__NativeString__to_s_with_length(var107
, var108
);
756 var110
= ((val
* (*)(val
*, val
*))(var_code
->class->vft
[COLOR_string__Collection__join
]))(var_code
, var106
) /* join on <var_code:Array[String]>*/;
757 var111
= ((val
* (*)(val
*, val
*))(var104
->class->vft
[COLOR_parser_util__ToolContext__parse_propdef
]))(var104
, var110
) /* parse_propdef on <var104:ToolContext>*/;
758 ((void (*)(val
*, val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_npropdefs
, var111
) /* add on <var_npropdefs:ANodes[APropdef]>*/;
761 /* method serialization_phase#SerializationPhase#generate_deserialization_init for (self: Object, AClassdef) */
762 void VIRTUAL_serialization_phase__SerializationPhase__generate_deserialization_init(val
* self
, val
* p0
) {
763 serialization_phase__SerializationPhase__generate_deserialization_init(self
, p0
);
766 /* method serialization_phase#SerializationPhase#generate_deserialization_method for (self: SerializationPhase, AModule, Array[AStdClassdef]) */
767 void serialization_phase__SerializationPhase__generate_deserialization_method(val
* self
, val
* p0
, val
* p1
) {
768 val
* var_nmodule
/* var nmodule: AModule */;
769 val
* var_nclassdefs
/* var nclassdefs: Array[AStdClassdef] */;
770 val
* var
/* : Array[String] */;
771 val
* var_code
/* var code: Array[String] */;
772 val
* var1
/* : nullable AStdClassdef */;
773 val
* var_deserializer_nclassdef
/* var deserializer_nclassdef: nullable AStdClassdef */;
774 val
* var2
/* : null */;
775 short int var3
/* : Bool */;
777 val
* var4
/* : String */;
778 char* var5
/* : NativeString */;
779 long var6
/* : Int */;
780 val
* var7
/* : String */;
781 val
* var8
/* : null */;
782 val
* var_deserializer_npropdef
/* var deserializer_npropdef: nullable Object */;
783 val
* var9
/* : nullable AMethPropdef */;
784 val
* var10
/* : null */;
785 short int var11
/* : Bool */;
786 static val
* varonce12
;
787 val
* var13
/* : String */;
788 char* var14
/* : NativeString */;
789 long var15
/* : Int */;
790 val
* var16
/* : String */;
791 static val
* varonce17
;
792 val
* var18
/* : String */;
793 char* var19
/* : NativeString */;
794 long var20
/* : Int */;
795 val
* var21
/* : String */;
796 val
* var22
/* : ToolContext */;
797 val
* var23
/* : Location */;
798 static val
* varonce24
;
799 val
* var25
/* : String */;
800 char* var26
/* : NativeString */;
801 long var27
/* : Int */;
802 val
* var28
/* : String */;
803 val
* var29
/* : Iterator[nullable Object] */;
804 short int var30
/* : Bool */;
805 val
* var31
/* : nullable Object */;
806 val
* var_nclassdef
/* var nclassdef: AStdClassdef */;
807 val
* var32
/* : nullable TClassid */;
808 val
* var33
/* : String */;
809 val
* var_name
/* var name: String */;
810 char var34
/* : Char */;
811 short int var35
/* : Bool */;
812 val
* var36
/* : nullable Object */;
813 short int var37
/* : Bool */;
814 static val
* varonce38
;
815 val
* var39
/* : String */;
816 char* var40
/* : NativeString */;
817 long var41
/* : Int */;
818 val
* var42
/* : String */;
819 static val
* varonce43
;
820 val
* var44
/* : String */;
821 char* var45
/* : NativeString */;
822 long var46
/* : Int */;
823 val
* var47
/* : String */;
824 static val
* varonce48
;
825 val
* var49
/* : String */;
826 char* var50
/* : NativeString */;
827 long var51
/* : Int */;
828 val
* var52
/* : String */;
829 val
* var53
/* : Array[Object] */;
830 long var54
/* : Int */;
831 val
* var55
/* : NativeArray[Object] */;
832 val
* var56
/* : String */;
833 static val
* varonce57
;
834 val
* var58
/* : String */;
835 char* var59
/* : NativeString */;
836 long var60
/* : Int */;
837 val
* var61
/* : String */;
838 static val
* varonce62
;
839 val
* var63
/* : String */;
840 char* var64
/* : NativeString */;
841 long var65
/* : Int */;
842 val
* var66
/* : String */;
843 val
* var67
/* : null */;
844 short int var68
/* : Bool */;
845 static val
* varonce69
;
846 val
* var70
/* : String */;
847 char* var71
/* : NativeString */;
848 long var72
/* : Int */;
849 val
* var73
/* : String */;
850 val
* var74
/* : ANodes[AClassdef] */;
851 val
* var75
/* : ToolContext */;
852 static val
* varonce76
;
853 val
* var77
/* : String */;
854 char* var78
/* : NativeString */;
855 long var79
/* : Int */;
856 val
* var80
/* : String */;
857 val
* var81
/* : String */;
858 val
* var82
/* : AClassdef */;
859 val
* var83
/* : ANodes[APropdef] */;
860 val
* var84
/* : ToolContext */;
861 static val
* varonce85
;
862 val
* var86
/* : String */;
863 char* var87
/* : NativeString */;
864 long var88
/* : Int */;
865 val
* var89
/* : String */;
866 val
* var90
/* : String */;
867 val
* var91
/* : APropdef */;
870 var
= NEW_array__Array(&type_array__Arraystring__String
);
871 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[String]>*/;
873 var1
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_serialization_phase__AModule__deserializer_nclassdef
]))(var_nmodule
) /* deserializer_nclassdef on <var_nmodule:AModule>*/;
874 var_deserializer_nclassdef
= var1
;
876 if (var_deserializer_nclassdef
== NULL
) {
877 var3
= 1; /* is null */
879 var3
= 0; /* arg is null but recv is not */
885 var5
= "redef class Deserializer";
887 var7
= string__NativeString__to_s_with_length(var5
, var6
);
891 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var4
) /* add on <var_code:Array[String]>*/;
893 var_deserializer_npropdef
= var8
;
895 var9
= ((val
* (*)(val
*))(var_deserializer_nclassdef
->class->vft
[COLOR_serialization_phase__AStdClassdef__deserializer_npropdef
]))(var_deserializer_nclassdef
) /* deserializer_npropdef on <var_deserializer_nclassdef:nullable AStdClassdef(AStdClassdef)>*/;
896 var_deserializer_npropdef
= var9
;
899 if (var_deserializer_npropdef
== NULL
) {
900 var11
= 1; /* is null */
902 var11
= 0; /* arg is null but recv is not */
908 var14
= "\11redef fun deserialize_class(name)";
910 var16
= string__NativeString__to_s_with_length(var14
, var15
);
914 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var13
) /* add on <var_code:Array[String]>*/;
920 var21
= string__NativeString__to_s_with_length(var19
, var20
);
924 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var18
) /* add on <var_code:Array[String]>*/;
926 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
927 var23
= ((val
* (*)(val
*))(var_deserializer_npropdef
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_deserializer_npropdef
) /* location on <var_deserializer_npropdef:nullable Object(AMethPropdef)>*/;
931 var26
= "Annotation error: you cannont define Deserializer::deserialize_class in a module where you use \"auto_serializable\".";
933 var28
= string__NativeString__to_s_with_length(var26
, var27
);
937 ((void (*)(val
*, val
*, val
*))(var22
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var22
, var23
, var25
) /* error on <var22:ToolContext>*/;
940 var29
= ((val
* (*)(val
*))(var_nclassdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_nclassdefs
) /* iterator on <var_nclassdefs:Array[AStdClassdef]>*/;
942 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
944 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
945 var_nclassdef
= var31
;
946 var32
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_id
]))(var_nclassdef
) /* n_id on <var_nclassdef:AStdClassdef>*/;
948 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
949 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 137);
952 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_parser_nodes__Token__text
]))(var32
) /* text on <var32:nullable TClassid>*/;
956 var36
= BOX_kernel__Char(var34
); /* autobox from Char to nullable Object */
957 var35
= ((short int (*)(val
*, val
*))(var_name
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_name
, var36
) /* has on <var_name:String>*/;
963 var40
= "\11\11if name == \"";
965 var42
= string__NativeString__to_s_with_length(var40
, var41
);
972 var45
= "\" then return new ";
974 var47
= string__NativeString__to_s_with_length(var45
, var46
);
981 var50
= ".from_deserializer(self)";
983 var52
= string__NativeString__to_s_with_length(var50
, var51
);
987 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
988 { /* var53 = array_instance Array[Object] */
990 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
991 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var39
;
992 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var_name
;
993 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var44
;
994 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_name
;
995 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var49
;
996 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
998 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
999 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var56
) /* add on <var_code:Array[String]>*/;
1002 CONTINUE_label
: (void)0;
1003 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
1005 BREAK_label
: (void)0;
1009 var59
= "\11\11return super";
1011 var61
= string__NativeString__to_s_with_length(var59
, var60
);
1015 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var58
) /* add on <var_code:Array[String]>*/;
1021 var66
= string__NativeString__to_s_with_length(var64
, var65
);
1025 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var63
) /* add on <var_code:Array[String]>*/;
1027 if (var_deserializer_nclassdef
== NULL
) {
1028 var68
= 1; /* is null */
1030 var68
= 0; /* arg is null but recv is not */
1038 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1042 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var70
) /* add on <var_code:Array[String]>*/;
1043 var74
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
1044 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
1050 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1054 var81
= ((val
* (*)(val
*, val
*))(var_code
->class->vft
[COLOR_string__Collection__join
]))(var_code
, var77
) /* join on <var_code:Array[String]>*/;
1055 var82
= ((val
* (*)(val
*, val
*))(var75
->class->vft
[COLOR_parser_util__ToolContext__parse_classdef
]))(var75
, var81
) /* parse_classdef on <var75:ToolContext>*/;
1056 ((void (*)(val
*, val
*))(var74
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var74
, var82
) /* add on <var74:ANodes[AClassdef]>*/;
1058 var83
= ((val
* (*)(val
*))(var_deserializer_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_deserializer_nclassdef
) /* n_propdefs on <var_deserializer_nclassdef:nullable AStdClassdef(AStdClassdef)>*/;
1059 var84
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
1065 var89
= string__NativeString__to_s_with_length(var87
, var88
);
1069 var90
= ((val
* (*)(val
*, val
*))(var_code
->class->vft
[COLOR_string__Collection__join
]))(var_code
, var86
) /* join on <var_code:Array[String]>*/;
1070 var91
= ((val
* (*)(val
*, val
*))(var84
->class->vft
[COLOR_parser_util__ToolContext__parse_propdef
]))(var84
, var90
) /* parse_propdef on <var84:ToolContext>*/;
1071 ((void (*)(val
*, val
*))(var83
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var83
, var91
) /* add on <var83:ANodes[APropdef]>*/;
1075 /* method serialization_phase#SerializationPhase#generate_deserialization_method for (self: Object, AModule, Array[AStdClassdef]) */
1076 void VIRTUAL_serialization_phase__SerializationPhase__generate_deserialization_method(val
* self
, val
* p0
, val
* p1
) {
1077 serialization_phase__SerializationPhase__generate_deserialization_method(self
, p0
, p1
);
1080 /* method serialization_phase#AAttrPropdef#name for (self: AAttrPropdef): String */
1081 val
* serialization_phase__AAttrPropdef__name(val
* self
) {
1082 val
* var
/* : String */;
1083 val
* var1
/* : nullable TAttrid */;
1084 val
* var2
/* : null */;
1085 short int var3
/* : Bool */;
1086 val
* var4
/* : nullable TId */;
1087 val
* var5
/* : String */;
1088 val
* var6
/* : nullable TAttrid */;
1089 val
* var7
/* : String */;
1090 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id
]))(self
) /* n_id on <self:AAttrPropdef>*/;
1093 var3
= 1; /* is null */
1095 var3
= 0; /* arg is null but recv is not */
1098 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id2
]))(self
) /* n_id2 on <self:AAttrPropdef>*/;
1100 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1101 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 158);
1104 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_parser_nodes__Token__text
]))(var4
) /* text on <var4:nullable TId>*/;
1110 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id
]))(self
) /* n_id on <self:AAttrPropdef>*/;
1112 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1113 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 159);
1116 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_parser_nodes__Token__text
]))(var6
) /* text on <var6:nullable TAttrid>*/;
1123 /* method serialization_phase#AAttrPropdef#name for (self: Object): String */
1124 val
* VIRTUAL_serialization_phase__AAttrPropdef__name(val
* self
) {
1125 val
* var
/* : String */;
1126 val
* var1
/* : String */;
1127 var1
= serialization_phase__AAttrPropdef__name(self
);
1132 /* method serialization_phase#AAttrPropdef#type_name for (self: AAttrPropdef): String */
1133 val
* serialization_phase__AAttrPropdef__type_name(val
* self
) {
1134 val
* var
/* : String */;
1135 val
* var1
/* : nullable AType */;
1136 val
* var2
/* : TClassid */;
1137 val
* var3
/* : String */;
1138 val
* var_name
/* var name: String */;
1139 val
* var4
/* : nullable AType */;
1140 val
* var5
/* : nullable TKwnullable */;
1141 val
* var6
/* : null */;
1142 short int var7
/* : Bool */;
1143 val
* var8
/* : Array[Object] */;
1144 long var9
/* : Int */;
1145 val
* var_
/* var : Array[Object] */;
1146 static val
* varonce
;
1147 val
* var10
/* : String */;
1148 char* var11
/* : NativeString */;
1149 long var12
/* : Int */;
1150 val
* var13
/* : String */;
1151 static val
* varonce14
;
1152 val
* var15
/* : String */;
1153 char* var16
/* : NativeString */;
1154 long var17
/* : Int */;
1155 val
* var18
/* : String */;
1156 val
* var19
/* : String */;
1157 val
* var20
/* : nullable AType */;
1158 val
* var21
/* : ANodes[AType] */;
1159 val
* var_types
/* var types: ANodes[AType] */;
1160 short int var22
/* : Bool */;
1161 short int var23
/* : Bool */;
1162 val
* var24
/* : Array[String] */;
1163 val
* var_params
/* var params: Array[String] */;
1164 val
* var25
/* : Iterator[nullable Object] */;
1165 short int var26
/* : Bool */;
1166 val
* var27
/* : nullable Object */;
1167 val
* var_t
/* var t: AType */;
1168 val
* var28
/* : TClassid */;
1169 val
* var29
/* : String */;
1170 val
* var30
/* : Array[Object] */;
1171 long var31
/* : Int */;
1172 val
* var_32
/* var : Array[Object] */;
1173 static val
* varonce33
;
1174 val
* var34
/* : String */;
1175 char* var35
/* : NativeString */;
1176 long var36
/* : Int */;
1177 val
* var37
/* : String */;
1178 static val
* varonce38
;
1179 val
* var39
/* : String */;
1180 char* var40
/* : NativeString */;
1181 long var41
/* : Int */;
1182 val
* var42
/* : String */;
1183 static val
* varonce43
;
1184 val
* var44
/* : String */;
1185 char* var45
/* : NativeString */;
1186 long var46
/* : Int */;
1187 val
* var47
/* : String */;
1188 val
* var48
/* : String */;
1189 static val
* varonce49
;
1190 val
* var50
/* : String */;
1191 char* var51
/* : NativeString */;
1192 long var52
/* : Int */;
1193 val
* var53
/* : String */;
1194 val
* var54
/* : String */;
1195 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_type
]))(self
) /* n_type on <self:AAttrPropdef>*/;
1197 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1198 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 164);
1201 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__AType__n_id
]))(var1
) /* n_id on <var1:nullable AType>*/;
1203 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_parser_nodes__Token__text
]))(var2
) /* text on <var2:TClassid>*/;
1205 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_type
]))(self
) /* n_type on <self:AAttrPropdef>*/;
1207 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1208 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 166);
1211 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_parser_nodes__AType__n_kwnullable
]))(var4
) /* n_kwnullable on <var4:nullable AType>*/;
1215 var7
= 0; /* is null */
1217 var7
= 1; /* arg is null and recv is not */
1220 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
1222 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[Object]>*/;
1227 var11
= "nullable ";
1229 var13
= string__NativeString__to_s_with_length(var11
, var12
);
1233 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
1234 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var_name
) /* add on <var_:Array[Object]>*/;
1240 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1244 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var15
) /* add on <var_:Array[Object]>*/;
1245 var19
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1249 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_type
]))(self
) /* n_type on <self:AAttrPropdef>*/;
1250 if (var20
== NULL
) {
1251 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1252 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 168);
1255 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var20
) /* n_types on <var20:nullable AType>*/;
1258 var22
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:ANodes[AType]>*/;
1261 var24
= NEW_array__Array(&type_array__Arraystring__String
);
1262 ((void (*)(val
*))(var24
->class->vft
[COLOR_array__Array__init
]))(var24
) /* init on <var24:Array[String]>*/;
1264 var25
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:ANodes[AType]>*/;
1266 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var25
) /* is_ok on <var25:Iterator[nullable Object]>*/;
1268 var27
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var25
) /* item on <var25:Iterator[nullable Object]>*/;
1270 var28
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_parser_nodes__AType__n_id
]))(var_t
) /* n_id on <var_t:AType>*/;
1271 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_parser_nodes__Token__text
]))(var28
) /* text on <var28:TClassid>*/;
1272 ((void (*)(val
*, val
*))(var_params
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_params
, var29
) /* add on <var_params:Array[String]>*/;
1273 CONTINUE_label
: (void)0;
1274 ((void (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var25
) /* next on <var25:Iterator[nullable Object]>*/;
1276 BREAK_label
: (void)0;
1277 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
1279 ((void (*)(val
*, long))(var30
->class->vft
[COLOR_array__Array__with_capacity
]))(var30
, var31
) /* with_capacity on <var30:Array[Object]>*/;
1286 var37
= string__NativeString__to_s_with_length(var35
, var36
);
1290 ((void (*)(val
*, val
*))(var_32
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_32
, var34
) /* add on <var_32:Array[Object]>*/;
1291 ((void (*)(val
*, val
*))(var_32
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_32
, var_name
) /* add on <var_32:Array[Object]>*/;
1297 var42
= string__NativeString__to_s_with_length(var40
, var41
);
1301 ((void (*)(val
*, val
*))(var_32
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_32
, var39
) /* add on <var_32:Array[Object]>*/;
1307 var47
= string__NativeString__to_s_with_length(var45
, var46
);
1311 var48
= ((val
* (*)(val
*, val
*))(var_params
->class->vft
[COLOR_string__Collection__join
]))(var_params
, var44
) /* join on <var_params:Array[String]>*/;
1312 ((void (*)(val
*, val
*))(var_32
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_32
, var48
) /* add on <var_32:Array[Object]>*/;
1318 var53
= string__NativeString__to_s_with_length(var51
, var52
);
1322 ((void (*)(val
*, val
*))(var_32
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_32
, var50
) /* add on <var_32:Array[Object]>*/;
1323 var54
= ((val
* (*)(val
*))(var_32
->class->vft
[COLOR_string__Object__to_s
]))(var_32
) /* to_s on <var_32:Array[Object]>*/;
1333 /* method serialization_phase#AAttrPropdef#type_name for (self: Object): String */
1334 val
* VIRTUAL_serialization_phase__AAttrPropdef__type_name(val
* self
) {
1335 val
* var
/* : String */;
1336 val
* var1
/* : String */;
1337 var1
= serialization_phase__AAttrPropdef__type_name(self
);
1342 /* method serialization_phase#AModule#deserializer_nclassdef for (self: AModule): nullable AStdClassdef */
1343 val
* serialization_phase__AModule__deserializer_nclassdef(val
* self
) {
1344 val
* var
/* : nullable AStdClassdef */;
1345 val
* var1
/* : ANodes[AClassdef] */;
1346 val
* var2
/* : Iterator[nullable Object] */;
1347 short int var3
/* : Bool */;
1348 val
* var4
/* : nullable Object */;
1349 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1350 short int var5
/* : Bool */;
1351 short int var6
/* : Bool */;
1354 short int var_
/* var : Bool */;
1355 val
* var7
/* : nullable TClassid */;
1356 val
* var8
/* : String */;
1357 static val
* varonce
;
1358 val
* var9
/* : String */;
1359 char* var10
/* : NativeString */;
1360 long var11
/* : Int */;
1361 val
* var12
/* : String */;
1362 short int var13
/* : Bool */;
1363 val
* var14
/* : null */;
1364 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(self
) /* n_classdefs on <self:AModule>*/;
1365 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:ANodes[AClassdef]>*/;
1367 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
1369 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
1370 var_nclassdef
= var4
;
1371 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1372 cltype
= type_parser_nodes__AStdClassdef
.color
;
1373 idtype
= type_parser_nodes__AStdClassdef
.id
;
1374 if(cltype
>= var_nclassdef
->type
->table_size
) {
1377 var6
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
1381 var7
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_id
]))(var_nclassdef
) /* n_id on <var_nclassdef:AClassdef(AStdClassdef)>*/;
1383 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1384 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 181);
1387 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_parser_nodes__Token__text
]))(var7
) /* text on <var7:nullable TClassid>*/;
1392 var10
= "Deserialization";
1394 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1398 var13
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var8
, var9
) /* == on <var8:String>*/;
1404 var
= var_nclassdef
;
1408 CONTINUE_label
: (void)0;
1409 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
1411 BREAK_label
: (void)0;
1418 /* method serialization_phase#AModule#deserializer_nclassdef for (self: Object): nullable AStdClassdef */
1419 val
* VIRTUAL_serialization_phase__AModule__deserializer_nclassdef(val
* self
) {
1420 val
* var
/* : nullable AStdClassdef */;
1421 val
* var1
/* : nullable AStdClassdef */;
1422 var1
= serialization_phase__AModule__deserializer_nclassdef(self
);
1427 /* method serialization_phase#AStdClassdef#deserializer_npropdef for (self: AStdClassdef): nullable AMethPropdef */
1428 val
* serialization_phase__AStdClassdef__deserializer_npropdef(val
* self
) {
1429 val
* var
/* : nullable AMethPropdef */;
1430 val
* var1
/* : ANodes[APropdef] */;
1431 val
* var2
/* : Iterator[nullable Object] */;
1432 short int var3
/* : Bool */;
1433 val
* var4
/* : nullable Object */;
1434 val
* var_npropdef
/* var npropdef: APropdef */;
1435 short int var5
/* : Bool */;
1438 val
* var6
/* : nullable AMethid */;
1439 val
* var_id
/* var id: nullable AMethid */;
1440 short int var7
/* : Bool */;
1441 short int var8
/* : Bool */;
1444 short int var_
/* var : Bool */;
1445 val
* var11
/* : TId */;
1446 val
* var12
/* : String */;
1447 static val
* varonce
;
1448 val
* var13
/* : String */;
1449 char* var14
/* : NativeString */;
1450 long var15
/* : Int */;
1451 val
* var16
/* : String */;
1452 short int var17
/* : Bool */;
1453 val
* var18
/* : null */;
1454 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(self
) /* n_propdefs on <self:AStdClassdef>*/;
1455 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:ANodes[APropdef]>*/;
1457 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
1459 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
1460 var_npropdef
= var4
;
1461 /* <var_npropdef:APropdef> isa AMethPropdef */
1462 cltype
= type_parser_nodes__AMethPropdef
.color
;
1463 idtype
= type_parser_nodes__AMethPropdef
.id
;
1464 if(cltype
>= var_npropdef
->type
->table_size
) {
1467 var5
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
1470 var6
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_methid
]))(var_npropdef
) /* n_methid on <var_npropdef:APropdef(AMethPropdef)>*/;
1472 /* <var_id:nullable AMethid> isa AIdMethid */
1473 cltype9
= type_parser_nodes__AIdMethid
.color
;
1474 idtype10
= type_parser_nodes__AIdMethid
.id
;
1475 if(var_id
== NULL
) {
1478 if(cltype9
>= var_id
->type
->table_size
) {
1481 var8
= var_id
->type
->type_table
[cltype9
] == idtype10
;
1486 var11
= ((val
* (*)(val
*))(var_id
->class->vft
[COLOR_parser_nodes__AIdMethid__n_id
]))(var_id
) /* n_id on <var_id:nullable AMethid(AIdMethid)>*/;
1487 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_parser_nodes__Token__text
]))(var11
) /* text on <var11:TId>*/;
1491 var14
= "deserialize_class";
1493 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1497 var17
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var12
, var13
) /* == on <var12:String>*/;
1509 CONTINUE_label
: (void)0;
1510 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
1512 BREAK_label
: (void)0;
1519 /* method serialization_phase#AStdClassdef#deserializer_npropdef for (self: Object): nullable AMethPropdef */
1520 val
* VIRTUAL_serialization_phase__AStdClassdef__deserializer_npropdef(val
* self
) {
1521 val
* var
/* : nullable AMethPropdef */;
1522 val
* var1
/* : nullable AMethPropdef */;
1523 var1
= serialization_phase__AStdClassdef__deserializer_npropdef(self
);