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>*/;
106 /* method serialization_phase#SerializationPhase#process_annotated_node for (self: Object, ANode, AAnnotation) */
107 void VIRTUAL_serialization_phase__SerializationPhase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
108 serialization_phase__SerializationPhase__process_annotated_node(self
, p0
, p1
);
111 /* method serialization_phase#SerializationPhase#generate_serialization_method for (self: SerializationPhase, AClassdef) */
112 void serialization_phase__SerializationPhase__generate_serialization_method(val
* self
, val
* p0
) {
113 val
* var_nclassdef
/* var nclassdef: AClassdef */;
114 val
* var
/* : ANodes[APropdef] */;
115 val
* var_npropdefs
/* var npropdefs: ANodes[APropdef] */;
116 val
* var1
/* : Array[String] */;
117 val
* var_code
/* var code: Array[String] */;
119 val
* var2
/* : String */;
120 char* var3
/* : NativeString */;
121 long var4
/* : Int */;
122 val
* var5
/* : String */;
123 static val
* varonce6
;
124 val
* var7
/* : String */;
125 char* var8
/* : NativeString */;
126 long var9
/* : Int */;
127 val
* var10
/* : String */;
128 static val
* varonce11
;
129 val
* var12
/* : String */;
130 char* var13
/* : NativeString */;
131 long var14
/* : Int */;
132 val
* var15
/* : String */;
133 val
* var16
/* : Iterator[nullable Object] */;
134 short int var17
/* : Bool */;
135 val
* var18
/* : nullable Object */;
136 val
* var_attribute
/* var attribute: APropdef */;
137 short int var19
/* : Bool */;
140 val
* var20
/* : nullable TAttrid */;
141 val
* var21
/* : null */;
142 short int var22
/* : Bool */;
143 val
* var23
/* : nullable TId */;
144 val
* var24
/* : String */;
145 val
* var_name
/* var name: nullable Object */;
146 val
* var25
/* : nullable TAttrid */;
147 val
* var26
/* : String */;
148 static val
* varonce27
;
149 val
* var28
/* : String */;
150 char* var29
/* : NativeString */;
151 long var30
/* : Int */;
152 val
* var31
/* : String */;
153 static val
* varonce32
;
154 val
* var33
/* : String */;
155 char* var34
/* : NativeString */;
156 long var35
/* : Int */;
157 val
* var36
/* : String */;
158 static val
* varonce37
;
159 val
* var38
/* : String */;
160 char* var39
/* : NativeString */;
161 long var40
/* : Int */;
162 val
* var41
/* : String */;
163 val
* var42
/* : Array[Object] */;
164 long var43
/* : Int */;
165 val
* var44
/* : NativeArray[Object] */;
166 val
* var45
/* : String */;
167 static val
* varonce46
;
168 val
* var47
/* : String */;
169 char* var48
/* : NativeString */;
170 long var49
/* : Int */;
171 val
* var50
/* : String */;
172 val
* var51
/* : ToolContext */;
173 static val
* varonce52
;
174 val
* var53
/* : String */;
175 char* var54
/* : NativeString */;
176 long var55
/* : Int */;
177 val
* var56
/* : String */;
178 val
* var57
/* : String */;
179 val
* var58
/* : APropdef */;
181 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
183 var1
= NEW_array__Array(&type_array__Arraystring__String
);
184 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[String]>*/;
189 var3
= "redef fun core_serialize_to(v)";
191 var5
= string__NativeString__to_s_with_length(var3
, var4
);
195 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var2
) /* add on <var_code:Array[String]>*/;
201 var10
= string__NativeString__to_s_with_length(var8
, var9
);
205 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var7
) /* add on <var_code:Array[String]>*/;
211 var15
= string__NativeString__to_s_with_length(var13
, var14
);
215 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var12
) /* add on <var_code:Array[String]>*/;
216 var16
= ((val
* (*)(val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_npropdefs
) /* iterator on <var_npropdefs:ANodes[APropdef]>*/;
218 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
220 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
221 var_attribute
= var18
;
222 /* <var_attribute:APropdef> isa AAttrPropdef */
223 cltype
= type_parser_nodes__AAttrPropdef
.color
;
224 idtype
= type_parser_nodes__AAttrPropdef
.id
;
225 if(cltype
>= var_attribute
->type
->table_size
) {
228 var19
= var_attribute
->type
->type_table
[cltype
] == idtype
;
231 var20
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id
]))(var_attribute
) /* n_id on <var_attribute:APropdef(AAttrPropdef)>*/;
234 var22
= 1; /* is null */
236 var22
= 0; /* arg is null but recv is not */
239 var23
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id2
]))(var_attribute
) /* n_id2 on <var_attribute:APropdef(AAttrPropdef)>*/;
241 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
242 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 59);
245 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_parser_nodes__Token__text
]))(var23
) /* text on <var23:nullable TId>*/;
249 var25
= ((val
* (*)(val
*))(var_attribute
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_id
]))(var_attribute
) /* n_id on <var_attribute:APropdef(AAttrPropdef)>*/;
251 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
252 fprintf(stderr
, " (%s:%d)\n", "src/serialization_phase.nit", 60);
255 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_parser_nodes__Token__text
]))(var25
) /* text on <var25:nullable TAttrid>*/;
262 var29
= "\11v.serialize_attribute(\"";
264 var31
= string__NativeString__to_s_with_length(var29
, var30
);
273 var36
= string__NativeString__to_s_with_length(var34
, var35
);
282 var41
= string__NativeString__to_s_with_length(var39
, var40
);
286 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
287 { /* var42 = array_instance Array[Object] */
289 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
290 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var28
;
291 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_name
;
292 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var33
;
293 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var_name
;
294 ((struct instance_array__NativeArray
*)var44
)->values
[4] = (val
*) var38
;
295 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
297 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
298 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var45
) /* add on <var_code:Array[String]>*/;
301 CONTINUE_label
: (void)0;
302 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
304 BREAK_label
: (void)0;
310 var50
= string__NativeString__to_s_with_length(var48
, var49
);
314 ((void (*)(val
*, val
*))(var_code
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_code
, var47
) /* add on <var_code:Array[String]>*/;
315 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:SerializationPhase>*/;
321 var56
= string__NativeString__to_s_with_length(var54
, var55
);
325 var57
= ((val
* (*)(val
*, val
*))(var_code
->class->vft
[COLOR_string__Collection__join
]))(var_code
, var53
) /* join on <var_code:Array[String]>*/;
326 var58
= ((val
* (*)(val
*, val
*))(var51
->class->vft
[COLOR_parser_util__ToolContext__parse_propdef
]))(var51
, var57
) /* parse_propdef on <var51:ToolContext>*/;
327 ((void (*)(val
*, val
*))(var_npropdefs
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_npropdefs
, var58
) /* push on <var_npropdefs:ANodes[APropdef]>*/;
330 /* method serialization_phase#SerializationPhase#generate_serialization_method for (self: Object, AClassdef) */
331 void VIRTUAL_serialization_phase__SerializationPhase__generate_serialization_method(val
* self
, val
* p0
) {
332 serialization_phase__SerializationPhase__generate_serialization_method(self
, p0
);