1 /* Generated by generate_treefuncs.pl from treefuncs.def!
2 * Do not edit by hand! */
8 #define COPY_LIST_VALS(list,func) { GList *li; for (li=(list);li;li=li->next) { li->data=func (li->data); } }
11 copy_argument (Argument * self);
13 copy_ccode (CCode * self);
15 copy_check (Check * self);
17 copy_class (Class * self);
19 copy_enumdef (EnumDef * self);
21 copy_enumvalue (EnumValue * self);
23 copy_error (Error * self);
25 copy_flags (Flags * self);
27 copy_funcarg (FuncArg * self);
29 copy_method (Method * self);
31 copy_property (Property * self);
33 copy_type (Type * self);
35 copy_variable (Variable * self);
38 free_argument (Argument * self);
40 free_ccode (CCode * self);
42 free_check (Check * self);
44 free_class (Class * self);
46 free_enumdef (EnumDef * self);
48 free_enumvalue (EnumValue * self);
50 free_error (Error * self);
52 free_flags (Flags * self);
54 free_funcarg (FuncArg * self);
56 free_method (Method * self);
58 free_property (Property * self);
60 free_type (Type * self);
62 free_variable (Variable * self);
65 setv_argument (Argument * self, va_list __ap);
67 setv_ccode (CCode * self, va_list __ap);
69 setv_check (Check * self, va_list __ap);
71 setv_class (Class * self, va_list __ap);
73 setv_enumdef (EnumDef * self, va_list __ap);
75 setv_enumvalue (EnumValue * self, va_list __ap);
77 setv_error (Error * self, va_list __ap);
79 setv_flags (Flags * self, va_list __ap);
81 setv_funcarg (FuncArg * self, va_list __ap);
83 setv_method (Method * self, va_list __ap);
85 setv_property (Property * self, va_list __ap);
87 setv_type (Type * self, va_list __ap);
89 setv_variable (Variable * self, va_list __ap);
91 static gboolean quarks_set_up = FALSE;
92 static GHashTable *quark_ht;
99 QUARK_bonobo_object_class,
100 QUARK_bonobo_object_class_STEAL,
103 QUARK_chunk_size_STEAL,
105 QUARK_interfaces_STEAL,
145 QUARK_default_value_STEAL,
147 QUARK_extra_gtktype_STEAL,
156 QUARK_gtktypes_STEAL,
164 QUARK_defreturn_STEAL,
168 QUARK_bonobo_object_func,
170 QUARK_interface_STEAL,
174 QUARK_destructor_unref,
176 QUARK_destructor_STEAL,
177 QUARK_destructor_line,
178 QUARK_destructor_simple,
180 QUARK_initializer_STEAL,
181 QUARK_initializer_line,
182 QUARK_initializer_simple,
201 quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
202 quarks_set_up = TRUE;
203 g_hash_table_insert (quark_ht, "otype", GINT_TO_POINTER (QUARK_otype));
204 g_hash_table_insert (quark_ht, "otype:steal", GINT_TO_POINTER (QUARK_otype_STEAL));
205 g_hash_table_insert (quark_ht, "ptype", GINT_TO_POINTER (QUARK_ptype));
206 g_hash_table_insert (quark_ht, "ptype:steal", GINT_TO_POINTER (QUARK_ptype_STEAL));
207 g_hash_table_insert (quark_ht, "bonobo_object_class", GINT_TO_POINTER (QUARK_bonobo_object_class));
208 g_hash_table_insert (quark_ht, "bonobo_object_class:steal", GINT_TO_POINTER (QUARK_bonobo_object_class_STEAL));
209 g_hash_table_insert (quark_ht, "glade_xml", GINT_TO_POINTER (QUARK_glade_xml));
210 g_hash_table_insert (quark_ht, "chunk_size", GINT_TO_POINTER (QUARK_chunk_size));
211 g_hash_table_insert (quark_ht, "chunk_size:steal", GINT_TO_POINTER (QUARK_chunk_size_STEAL));
212 g_hash_table_insert (quark_ht, "interfaces", GINT_TO_POINTER (QUARK_interfaces));
213 g_hash_table_insert (quark_ht, "interfaces:steal", GINT_TO_POINTER (QUARK_interfaces_STEAL));
214 g_hash_table_insert (quark_ht, "nodes", GINT_TO_POINTER (QUARK_nodes));
215 g_hash_table_insert (quark_ht, "nodes:steal", GINT_TO_POINTER (QUARK_nodes_STEAL));
216 g_hash_table_insert (quark_ht, "abstract", GINT_TO_POINTER (QUARK_abstract));
217 g_hash_table_insert (quark_ht, "name", GINT_TO_POINTER (QUARK_name));
218 g_hash_table_insert (quark_ht, "name:steal", GINT_TO_POINTER (QUARK_name_STEAL));
219 g_hash_table_insert (quark_ht, "pointer", GINT_TO_POINTER (QUARK_pointer));
220 g_hash_table_insert (quark_ht, "pointer:steal", GINT_TO_POINTER (QUARK_pointer_STEAL));
221 g_hash_table_insert (quark_ht, "postfix", GINT_TO_POINTER (QUARK_postfix));
222 g_hash_table_insert (quark_ht, "postfix:steal", GINT_TO_POINTER (QUARK_postfix_STEAL));
223 g_hash_table_insert (quark_ht, "cctype", GINT_TO_POINTER (QUARK_cctype));
224 g_hash_table_insert (quark_ht, "cbuf", GINT_TO_POINTER (QUARK_cbuf));
225 g_hash_table_insert (quark_ht, "cbuf:steal", GINT_TO_POINTER (QUARK_cbuf_STEAL));
226 g_hash_table_insert (quark_ht, "line_no", GINT_TO_POINTER (QUARK_line_no));
227 g_hash_table_insert (quark_ht, "chtype", GINT_TO_POINTER (QUARK_chtype));
228 g_hash_table_insert (quark_ht, "number", GINT_TO_POINTER (QUARK_number));
229 g_hash_table_insert (quark_ht, "number:steal", GINT_TO_POINTER (QUARK_number_STEAL));
230 g_hash_table_insert (quark_ht, "atype", GINT_TO_POINTER (QUARK_atype));
231 g_hash_table_insert (quark_ht, "atype:steal", GINT_TO_POINTER (QUARK_atype_STEAL));
232 g_hash_table_insert (quark_ht, "checks", GINT_TO_POINTER (QUARK_checks));
233 g_hash_table_insert (quark_ht, "checks:steal", GINT_TO_POINTER (QUARK_checks_STEAL));
234 g_hash_table_insert (quark_ht, "gtktype", GINT_TO_POINTER (QUARK_gtktype));
235 g_hash_table_insert (quark_ht, "gtktype:steal", GINT_TO_POINTER (QUARK_gtktype_STEAL));
236 g_hash_table_insert (quark_ht, "flags", GINT_TO_POINTER (QUARK_flags));
237 g_hash_table_insert (quark_ht, "flags:steal", GINT_TO_POINTER (QUARK_flags_STEAL));
238 g_hash_table_insert (quark_ht, "get", GINT_TO_POINTER (QUARK_get));
239 g_hash_table_insert (quark_ht, "get:steal", GINT_TO_POINTER (QUARK_get_STEAL));
240 g_hash_table_insert (quark_ht, "get_line", GINT_TO_POINTER (QUARK_get_line));
241 g_hash_table_insert (quark_ht, "set", GINT_TO_POINTER (QUARK_set));
242 g_hash_table_insert (quark_ht, "set:steal", GINT_TO_POINTER (QUARK_set_STEAL));
243 g_hash_table_insert (quark_ht, "set_line", GINT_TO_POINTER (QUARK_set_line));
244 g_hash_table_insert (quark_ht, "nick", GINT_TO_POINTER (QUARK_nick));
245 g_hash_table_insert (quark_ht, "nick:steal", GINT_TO_POINTER (QUARK_nick_STEAL));
246 g_hash_table_insert (quark_ht, "blurb", GINT_TO_POINTER (QUARK_blurb));
247 g_hash_table_insert (quark_ht, "blurb:steal", GINT_TO_POINTER (QUARK_blurb_STEAL));
248 g_hash_table_insert (quark_ht, "minimum", GINT_TO_POINTER (QUARK_minimum));
249 g_hash_table_insert (quark_ht, "minimum:steal", GINT_TO_POINTER (QUARK_minimum_STEAL));
250 g_hash_table_insert (quark_ht, "maximum", GINT_TO_POINTER (QUARK_maximum));
251 g_hash_table_insert (quark_ht, "maximum:steal", GINT_TO_POINTER (QUARK_maximum_STEAL));
252 g_hash_table_insert (quark_ht, "default_value", GINT_TO_POINTER (QUARK_default_value));
253 g_hash_table_insert (quark_ht, "default_value:steal", GINT_TO_POINTER (QUARK_default_value_STEAL));
254 g_hash_table_insert (quark_ht, "extra_gtktype", GINT_TO_POINTER (QUARK_extra_gtktype));
255 g_hash_table_insert (quark_ht, "extra_gtktype:steal", GINT_TO_POINTER (QUARK_extra_gtktype_STEAL));
256 g_hash_table_insert (quark_ht, "override", GINT_TO_POINTER (QUARK_override));
257 g_hash_table_insert (quark_ht, "link", GINT_TO_POINTER (QUARK_link));
258 g_hash_table_insert (quark_ht, "export", GINT_TO_POINTER (QUARK_export));
259 g_hash_table_insert (quark_ht, "scope", GINT_TO_POINTER (QUARK_scope));
260 g_hash_table_insert (quark_ht, "method", GINT_TO_POINTER (QUARK_method));
261 g_hash_table_insert (quark_ht, "mtype", GINT_TO_POINTER (QUARK_mtype));
262 g_hash_table_insert (quark_ht, "mtype:steal", GINT_TO_POINTER (QUARK_mtype_STEAL));
263 g_hash_table_insert (quark_ht, "gtktypes", GINT_TO_POINTER (QUARK_gtktypes));
264 g_hash_table_insert (quark_ht, "gtktypes:steal", GINT_TO_POINTER (QUARK_gtktypes_STEAL));
265 g_hash_table_insert (quark_ht, "id", GINT_TO_POINTER (QUARK_id));
266 g_hash_table_insert (quark_ht, "id:steal", GINT_TO_POINTER (QUARK_id_STEAL));
267 g_hash_table_insert (quark_ht, "args", GINT_TO_POINTER (QUARK_args));
268 g_hash_table_insert (quark_ht, "args:steal", GINT_TO_POINTER (QUARK_args_STEAL));
269 g_hash_table_insert (quark_ht, "onerror", GINT_TO_POINTER (QUARK_onerror));
270 g_hash_table_insert (quark_ht, "onerror:steal", GINT_TO_POINTER (QUARK_onerror_STEAL));
271 g_hash_table_insert (quark_ht, "defreturn", GINT_TO_POINTER (QUARK_defreturn));
272 g_hash_table_insert (quark_ht, "defreturn:steal", GINT_TO_POINTER (QUARK_defreturn_STEAL));
273 g_hash_table_insert (quark_ht, "ccode_line", GINT_TO_POINTER (QUARK_ccode_line));
274 g_hash_table_insert (quark_ht, "vararg", GINT_TO_POINTER (QUARK_vararg));
275 g_hash_table_insert (quark_ht, "unique_id", GINT_TO_POINTER (QUARK_unique_id));
276 g_hash_table_insert (quark_ht, "bonobo_object_func", GINT_TO_POINTER (QUARK_bonobo_object_func));
277 g_hash_table_insert (quark_ht, "interface", GINT_TO_POINTER (QUARK_interface));
278 g_hash_table_insert (quark_ht, "interface:steal", GINT_TO_POINTER (QUARK_interface_STEAL));
279 g_hash_table_insert (quark_ht, "vtype", GINT_TO_POINTER (QUARK_vtype));
280 g_hash_table_insert (quark_ht, "vtype:steal", GINT_TO_POINTER (QUARK_vtype_STEAL));
281 g_hash_table_insert (quark_ht, "glade_widget", GINT_TO_POINTER (QUARK_glade_widget));
282 g_hash_table_insert (quark_ht, "destructor_unref", GINT_TO_POINTER (QUARK_destructor_unref));
283 g_hash_table_insert (quark_ht, "destructor", GINT_TO_POINTER (QUARK_destructor));
284 g_hash_table_insert (quark_ht, "destructor:steal", GINT_TO_POINTER (QUARK_destructor_STEAL));
285 g_hash_table_insert (quark_ht, "destructor_line", GINT_TO_POINTER (QUARK_destructor_line));
286 g_hash_table_insert (quark_ht, "destructor_simple", GINT_TO_POINTER (QUARK_destructor_simple));
287 g_hash_table_insert (quark_ht, "initializer", GINT_TO_POINTER (QUARK_initializer));
288 g_hash_table_insert (quark_ht, "initializer:steal", GINT_TO_POINTER (QUARK_initializer_STEAL));
289 g_hash_table_insert (quark_ht, "initializer_line", GINT_TO_POINTER (QUARK_initializer_line));
290 g_hash_table_insert (quark_ht, "initializer_simple", GINT_TO_POINTER (QUARK_initializer_simple));
291 g_hash_table_insert (quark_ht, "etype", GINT_TO_POINTER (QUARK_etype));
292 g_hash_table_insert (quark_ht, "etype:steal", GINT_TO_POINTER (QUARK_etype_STEAL));
293 g_hash_table_insert (quark_ht, "prefix", GINT_TO_POINTER (QUARK_prefix));
294 g_hash_table_insert (quark_ht, "prefix:steal", GINT_TO_POINTER (QUARK_prefix_STEAL));
295 g_hash_table_insert (quark_ht, "values", GINT_TO_POINTER (QUARK_values));
296 g_hash_table_insert (quark_ht, "values:steal", GINT_TO_POINTER (QUARK_values_STEAL));
297 g_hash_table_insert (quark_ht, "value", GINT_TO_POINTER (QUARK_value));
298 g_hash_table_insert (quark_ht, "value:steal", GINT_TO_POINTER (QUARK_value_STEAL));
299 g_hash_table_insert (quark_ht, "ftype", GINT_TO_POINTER (QUARK_ftype));
300 g_hash_table_insert (quark_ht, "ftype:steal", GINT_TO_POINTER (QUARK_ftype_STEAL));
304 copy_argument (Argument * self)
307 g_return_val_if_fail (self != NULL, NULL);
308 g_return_val_if_fail (self->type == ARGUMENT_NODE, NULL);
309 new = g_new0(Argument, 1);
310 new->type = ARGUMENT_NODE;
311 new->gtktype = g_strdup (self->gtktype);
312 new->atype = copy_type (self->atype);
313 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
314 new->name = g_strdup (self->name);
315 new->get = g_strdup (self->get);
316 new->get_line = self->get_line;
317 new->set = g_strdup (self->set);
318 new->set_line = self->set_line;
319 new->line_no = self->line_no;
324 copy_ccode (CCode * self)
327 g_return_val_if_fail (self != NULL, NULL);
328 g_return_val_if_fail (self->type == CCODE_NODE, NULL);
329 new = g_new0(CCode, 1);
330 new->type = CCODE_NODE;
331 new->cctype = self->cctype;
332 new->cbuf = g_strdup (self->cbuf);
333 new->line_no = self->line_no;
338 copy_check (Check * self)
341 g_return_val_if_fail (self != NULL, NULL);
342 g_return_val_if_fail (self->type == CHECK_NODE, NULL);
343 new = g_new0(Check, 1);
344 new->type = CHECK_NODE;
345 new->chtype = self->chtype;
346 new->number = g_strdup (self->number);
351 copy_class (Class * self)
354 g_return_val_if_fail (self != NULL, NULL);
355 g_return_val_if_fail (self->type == CLASS_NODE, NULL);
356 new = g_new0(Class, 1);
357 new->type = CLASS_NODE;
358 new->otype = g_strdup (self->otype);
359 new->ptype = g_strdup (self->ptype);
360 new->bonobo_object_class = g_strdup (self->bonobo_object_class);
361 new->glade_xml = self->glade_xml;
362 new->chunk_size = g_strdup (self->chunk_size);
363 new->interfaces = g_list_copy (self->interfaces); COPY_LIST_VALS(new->interfaces, g_strdup);
364 new->nodes = node_list_copy (self->nodes);
365 new->abstract = self->abstract;
370 copy_enumdef (EnumDef * self)
373 g_return_val_if_fail (self != NULL, NULL);
374 g_return_val_if_fail (self->type == ENUMDEF_NODE, NULL);
375 new = g_new0(EnumDef, 1);
376 new->type = ENUMDEF_NODE;
377 new->etype = g_strdup (self->etype);
378 new->prefix = g_strdup (self->prefix);
379 new->values = node_list_copy (self->values);
384 copy_enumvalue (EnumValue * self)
387 g_return_val_if_fail (self != NULL, NULL);
388 g_return_val_if_fail (self->type == ENUMVALUE_NODE, NULL);
389 new = g_new0(EnumValue, 1);
390 new->type = ENUMVALUE_NODE;
391 new->name = g_strdup (self->name);
392 new->value = g_strdup (self->value);
397 copy_error (Error * self)
400 g_return_val_if_fail (self != NULL, NULL);
401 g_return_val_if_fail (self->type == ERROR_NODE, NULL);
402 new = g_new0(Error, 1);
403 new->type = ERROR_NODE;
404 new->etype = g_strdup (self->etype);
405 new->prefix = g_strdup (self->prefix);
406 new->values = g_list_copy (self->values); COPY_LIST_VALS(new->values, g_strdup);
411 copy_flags (Flags * self)
414 g_return_val_if_fail (self != NULL, NULL);
415 g_return_val_if_fail (self->type == FLAGS_NODE, NULL);
416 new = g_new0(Flags, 1);
417 new->type = FLAGS_NODE;
418 new->ftype = g_strdup (self->ftype);
419 new->prefix = g_strdup (self->prefix);
420 new->values = g_list_copy (self->values); COPY_LIST_VALS(new->values, g_strdup);
425 copy_funcarg (FuncArg * self)
428 g_return_val_if_fail (self != NULL, NULL);
429 g_return_val_if_fail (self->type == FUNCARG_NODE, NULL);
430 new = g_new0(FuncArg, 1);
431 new->type = FUNCARG_NODE;
432 new->atype = copy_type (self->atype);
433 new->name = g_strdup (self->name);
434 new->checks = node_list_copy (self->checks);
439 copy_method (Method * self)
442 g_return_val_if_fail (self != NULL, NULL);
443 g_return_val_if_fail (self->type == METHOD_NODE, NULL);
444 new = g_new0(Method, 1);
445 new->type = METHOD_NODE;
446 new->scope = self->scope;
447 new->method = self->method;
448 new->mtype = copy_type (self->mtype);
449 new->otype = g_strdup (self->otype);
450 new->gtktypes = g_list_copy (self->gtktypes); COPY_LIST_VALS(new->gtktypes, g_strdup);
451 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
452 new->id = g_strdup (self->id);
453 new->args = node_list_copy (self->args);
454 new->onerror = g_strdup (self->onerror);
455 new->defreturn = g_strdup (self->defreturn);
456 new->cbuf = g_strdup (self->cbuf);
457 new->line_no = self->line_no;
458 new->ccode_line = self->ccode_line;
459 new->vararg = self->vararg;
460 new->unique_id = self->unique_id;
461 new->bonobo_object_func = self->bonobo_object_func;
462 new->interface = g_strdup (self->interface);
467 copy_property (Property * self)
470 g_return_val_if_fail (self != NULL, NULL);
471 g_return_val_if_fail (self->type == PROPERTY_NODE, NULL);
472 new = g_new0(Property, 1);
473 new->type = PROPERTY_NODE;
474 new->gtktype = g_strdup (self->gtktype);
475 new->ptype = copy_type (self->ptype);
476 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
477 new->name = g_strdup (self->name);
478 new->nick = g_strdup (self->nick);
479 new->blurb = g_strdup (self->blurb);
480 new->minimum = g_strdup (self->minimum);
481 new->maximum = g_strdup (self->maximum);
482 new->default_value = g_strdup (self->default_value);
483 new->extra_gtktype = g_strdup (self->extra_gtktype);
484 new->override = self->override;
485 new->link = self->link;
486 new->export = self->export;
487 new->get = g_strdup (self->get);
488 new->get_line = self->get_line;
489 new->set = g_strdup (self->set);
490 new->set_line = self->set_line;
491 new->line_no = self->line_no;
496 copy_type (Type * self)
499 g_return_val_if_fail (self != NULL, NULL);
500 g_return_val_if_fail (self->type == TYPE_NODE, NULL);
501 new = g_new0(Type, 1);
502 new->type = TYPE_NODE;
503 new->name = g_strdup (self->name);
504 new->pointer = g_strdup (self->pointer);
505 new->postfix = g_strdup (self->postfix);
510 copy_variable (Variable * self)
513 g_return_val_if_fail (self != NULL, NULL);
514 g_return_val_if_fail (self->type == VARIABLE_NODE, NULL);
515 new = g_new0(Variable, 1);
516 new->type = VARIABLE_NODE;
517 new->scope = self->scope;
518 new->vtype = copy_type (self->vtype);
519 new->glade_widget = self->glade_widget;
520 new->id = g_strdup (self->id);
521 new->line_no = self->line_no;
522 new->destructor_unref = self->destructor_unref;
523 new->destructor = g_strdup (self->destructor);
524 new->destructor_line = self->destructor_line;
525 new->destructor_simple = self->destructor_simple;
526 new->initializer = g_strdup (self->initializer);
527 new->initializer_line = self->initializer_line;
528 new->initializer_simple = self->initializer_simple;
533 free_argument (Argument * self)
535 g_return_if_fail (self != NULL);
536 g_return_if_fail (self->type == ARGUMENT_NODE);
537 g_free (self->gtktype);
538 free_type (self->atype);
539 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
547 free_ccode (CCode * self)
549 g_return_if_fail (self != NULL);
550 g_return_if_fail (self->type == CCODE_NODE);
556 free_check (Check * self)
558 g_return_if_fail (self != NULL);
559 g_return_if_fail (self->type == CHECK_NODE);
560 g_free (self->number);
565 free_class (Class * self)
567 g_return_if_fail (self != NULL);
568 g_return_if_fail (self->type == CLASS_NODE);
569 g_free (self->otype);
570 g_free (self->ptype);
571 g_free (self->bonobo_object_class);
572 g_free (self->chunk_size);
573 g_list_foreach (self->interfaces, (GFunc)g_free, NULL); g_list_free (self->interfaces);
574 node_list_free (self->nodes);
579 free_enumdef (EnumDef * self)
581 g_return_if_fail (self != NULL);
582 g_return_if_fail (self->type == ENUMDEF_NODE);
583 g_free (self->etype);
584 g_free (self->prefix);
585 node_list_free (self->values);
590 free_enumvalue (EnumValue * self)
592 g_return_if_fail (self != NULL);
593 g_return_if_fail (self->type == ENUMVALUE_NODE);
595 g_free (self->value);
600 free_error (Error * self)
602 g_return_if_fail (self != NULL);
603 g_return_if_fail (self->type == ERROR_NODE);
604 g_free (self->etype);
605 g_free (self->prefix);
606 g_list_foreach (self->values, (GFunc)g_free, NULL); g_list_free (self->values);
611 free_flags (Flags * self)
613 g_return_if_fail (self != NULL);
614 g_return_if_fail (self->type == FLAGS_NODE);
615 g_free (self->ftype);
616 g_free (self->prefix);
617 g_list_foreach (self->values, (GFunc)g_free, NULL); g_list_free (self->values);
622 free_funcarg (FuncArg * self)
624 g_return_if_fail (self != NULL);
625 g_return_if_fail (self->type == FUNCARG_NODE);
626 free_type (self->atype);
628 node_list_free (self->checks);
633 free_method (Method * self)
635 g_return_if_fail (self != NULL);
636 g_return_if_fail (self->type == METHOD_NODE);
637 free_type (self->mtype);
638 g_free (self->otype);
639 g_list_foreach (self->gtktypes, (GFunc)g_free, NULL); g_list_free (self->gtktypes);
640 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
642 node_list_free (self->args);
643 g_free (self->onerror);
644 g_free (self->defreturn);
646 g_free (self->interface);
651 free_property (Property * self)
653 g_return_if_fail (self != NULL);
654 g_return_if_fail (self->type == PROPERTY_NODE);
655 g_free (self->gtktype);
656 free_type (self->ptype);
657 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
660 g_free (self->blurb);
661 g_free (self->minimum);
662 g_free (self->maximum);
663 g_free (self->default_value);
664 g_free (self->extra_gtktype);
671 free_type (Type * self)
673 g_return_if_fail (self != NULL);
674 g_return_if_fail (self->type == TYPE_NODE);
676 g_free (self->pointer);
677 g_free (self->postfix);
682 free_variable (Variable * self)
684 g_return_if_fail (self != NULL);
685 g_return_if_fail (self->type == VARIABLE_NODE);
686 free_type (self->vtype);
688 g_free (self->destructor);
689 g_free (self->initializer);
694 setv_argument (Argument * self, va_list __ap)
699 while ((arg = va_arg (__ap, char *)) != NULL) {
700 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
702 case QUARK_gtktype: {
703 char * gtktype = va_arg (__ap, char *);
704 char * __old_value = self->gtktype;
705 self->gtktype = g_strdup (gtktype);
706 g_free (__old_value);
709 case QUARK_gtktype_STEAL: {
710 char * gtktype = va_arg (__ap, char *);
711 self->gtktype = gtktype;
715 Type * atype = va_arg (__ap, Type *);
716 Type * __old_value = self->atype;
717 self->atype = copy_type (atype);
718 free_type (__old_value);
721 case QUARK_atype_STEAL: {
722 Type * atype = va_arg (__ap, Type *);
727 GList * flags = va_arg (__ap, GList *);
728 GList * __old_value = self->flags;
729 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
730 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
733 case QUARK_flags_STEAL: {
734 GList * flags = va_arg (__ap, GList *);
739 char * name = va_arg (__ap, char *);
740 char * __old_value = self->name;
741 self->name = g_strdup (name);
742 g_free (__old_value);
745 case QUARK_name_STEAL: {
746 char * name = va_arg (__ap, char *);
751 char * get = va_arg (__ap, char *);
752 char * __old_value = self->get;
753 self->get = g_strdup (get);
754 g_free (__old_value);
757 case QUARK_get_STEAL: {
758 char * get = va_arg (__ap, char *);
762 case QUARK_get_line: {
763 int get_line = va_arg (__ap, int);
764 self->get_line = get_line;
768 char * set = va_arg (__ap, char *);
769 char * __old_value = self->set;
770 self->set = g_strdup (set);
771 g_free (__old_value);
774 case QUARK_set_STEAL: {
775 char * set = va_arg (__ap, char *);
779 case QUARK_set_line: {
780 int set_line = va_arg (__ap, int);
781 self->set_line = set_line;
784 case QUARK_line_no: {
785 int line_no = va_arg (__ap, int);
786 self->line_no = line_no;
790 g_warning ("Argument named 'Argument::%s' does not exist", arg);
797 setv_ccode (CCode * self, va_list __ap)
802 while ((arg = va_arg (__ap, char *)) != NULL) {
803 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
806 int cctype = va_arg (__ap, int);
807 self->cctype = cctype;
811 char * cbuf = va_arg (__ap, char *);
812 char * __old_value = self->cbuf;
813 self->cbuf = g_strdup (cbuf);
814 g_free (__old_value);
817 case QUARK_cbuf_STEAL: {
818 char * cbuf = va_arg (__ap, char *);
822 case QUARK_line_no: {
823 int line_no = va_arg (__ap, int);
824 self->line_no = line_no;
828 g_warning ("Argument named 'CCode::%s' does not exist", arg);
835 setv_check (Check * self, va_list __ap)
840 while ((arg = va_arg (__ap, char *)) != NULL) {
841 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
844 int chtype = va_arg (__ap, int);
845 self->chtype = chtype;
849 char * number = va_arg (__ap, char *);
850 char * __old_value = self->number;
851 self->number = g_strdup (number);
852 g_free (__old_value);
855 case QUARK_number_STEAL: {
856 char * number = va_arg (__ap, char *);
857 self->number = number;
861 g_warning ("Argument named 'Check::%s' does not exist", arg);
868 setv_class (Class * self, va_list __ap)
873 while ((arg = va_arg (__ap, char *)) != NULL) {
874 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
877 char * otype = va_arg (__ap, char *);
878 char * __old_value = self->otype;
879 self->otype = g_strdup (otype);
880 g_free (__old_value);
883 case QUARK_otype_STEAL: {
884 char * otype = va_arg (__ap, char *);
889 char * ptype = va_arg (__ap, char *);
890 char * __old_value = self->ptype;
891 self->ptype = g_strdup (ptype);
892 g_free (__old_value);
895 case QUARK_ptype_STEAL: {
896 char * ptype = va_arg (__ap, char *);
900 case QUARK_bonobo_object_class: {
901 char * bonobo_object_class = va_arg (__ap, char *);
902 char * __old_value = self->bonobo_object_class;
903 self->bonobo_object_class = g_strdup (bonobo_object_class);
904 g_free (__old_value);
907 case QUARK_bonobo_object_class_STEAL: {
908 char * bonobo_object_class = va_arg (__ap, char *);
909 self->bonobo_object_class = bonobo_object_class;
912 case QUARK_glade_xml: {
913 gboolean glade_xml = va_arg (__ap, gboolean);
914 self->glade_xml = glade_xml;
917 case QUARK_chunk_size: {
918 char * chunk_size = va_arg (__ap, char *);
919 char * __old_value = self->chunk_size;
920 self->chunk_size = g_strdup (chunk_size);
921 g_free (__old_value);
924 case QUARK_chunk_size_STEAL: {
925 char * chunk_size = va_arg (__ap, char *);
926 self->chunk_size = chunk_size;
929 case QUARK_interfaces: {
930 GList * interfaces = va_arg (__ap, GList *);
931 GList * __old_value = self->interfaces;
932 self->interfaces = g_list_copy (interfaces); COPY_LIST_VALS(self->interfaces, g_strdup);
933 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
936 case QUARK_interfaces_STEAL: {
937 GList * interfaces = va_arg (__ap, GList *);
938 self->interfaces = interfaces;
942 GList * nodes = va_arg (__ap, GList *);
943 GList * __old_value = self->nodes;
944 self->nodes = node_list_copy (nodes);
945 node_list_free (__old_value);
948 case QUARK_nodes_STEAL: {
949 GList * nodes = va_arg (__ap, GList *);
953 case QUARK_abstract: {
954 gboolean abstract = va_arg (__ap, gboolean);
955 self->abstract = abstract;
959 g_warning ("Argument named 'Class::%s' does not exist", arg);
966 setv_enumdef (EnumDef * self, va_list __ap)
971 while ((arg = va_arg (__ap, char *)) != NULL) {
972 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
975 char * etype = va_arg (__ap, char *);
976 char * __old_value = self->etype;
977 self->etype = g_strdup (etype);
978 g_free (__old_value);
981 case QUARK_etype_STEAL: {
982 char * etype = va_arg (__ap, char *);
987 char * prefix = va_arg (__ap, char *);
988 char * __old_value = self->prefix;
989 self->prefix = g_strdup (prefix);
990 g_free (__old_value);
993 case QUARK_prefix_STEAL: {
994 char * prefix = va_arg (__ap, char *);
995 self->prefix = prefix;
999 GList * values = va_arg (__ap, GList *);
1000 GList * __old_value = self->values;
1001 self->values = node_list_copy (values);
1002 node_list_free (__old_value);
1005 case QUARK_values_STEAL: {
1006 GList * values = va_arg (__ap, GList *);
1007 self->values = values;
1011 g_warning ("Argument named 'EnumDef::%s' does not exist", arg);
1018 setv_enumvalue (EnumValue * self, va_list __ap)
1023 while ((arg = va_arg (__ap, char *)) != NULL) {
1024 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1027 char * name = va_arg (__ap, char *);
1028 char * __old_value = self->name;
1029 self->name = g_strdup (name);
1030 g_free (__old_value);
1033 case QUARK_name_STEAL: {
1034 char * name = va_arg (__ap, char *);
1039 char * value = va_arg (__ap, char *);
1040 char * __old_value = self->value;
1041 self->value = g_strdup (value);
1042 g_free (__old_value);
1045 case QUARK_value_STEAL: {
1046 char * value = va_arg (__ap, char *);
1047 self->value = value;
1051 g_warning ("Argument named 'EnumValue::%s' does not exist", arg);
1058 setv_error (Error * self, va_list __ap)
1063 while ((arg = va_arg (__ap, char *)) != NULL) {
1064 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1067 char * etype = va_arg (__ap, char *);
1068 char * __old_value = self->etype;
1069 self->etype = g_strdup (etype);
1070 g_free (__old_value);
1073 case QUARK_etype_STEAL: {
1074 char * etype = va_arg (__ap, char *);
1075 self->etype = etype;
1078 case QUARK_prefix: {
1079 char * prefix = va_arg (__ap, char *);
1080 char * __old_value = self->prefix;
1081 self->prefix = g_strdup (prefix);
1082 g_free (__old_value);
1085 case QUARK_prefix_STEAL: {
1086 char * prefix = va_arg (__ap, char *);
1087 self->prefix = prefix;
1090 case QUARK_values: {
1091 GList * values = va_arg (__ap, GList *);
1092 GList * __old_value = self->values;
1093 self->values = g_list_copy (values); COPY_LIST_VALS(self->values, g_strdup);
1094 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1097 case QUARK_values_STEAL: {
1098 GList * values = va_arg (__ap, GList *);
1099 self->values = values;
1103 g_warning ("Argument named 'Error::%s' does not exist", arg);
1110 setv_flags (Flags * self, va_list __ap)
1115 while ((arg = va_arg (__ap, char *)) != NULL) {
1116 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1119 char * ftype = va_arg (__ap, char *);
1120 char * __old_value = self->ftype;
1121 self->ftype = g_strdup (ftype);
1122 g_free (__old_value);
1125 case QUARK_ftype_STEAL: {
1126 char * ftype = va_arg (__ap, char *);
1127 self->ftype = ftype;
1130 case QUARK_prefix: {
1131 char * prefix = va_arg (__ap, char *);
1132 char * __old_value = self->prefix;
1133 self->prefix = g_strdup (prefix);
1134 g_free (__old_value);
1137 case QUARK_prefix_STEAL: {
1138 char * prefix = va_arg (__ap, char *);
1139 self->prefix = prefix;
1142 case QUARK_values: {
1143 GList * values = va_arg (__ap, GList *);
1144 GList * __old_value = self->values;
1145 self->values = g_list_copy (values); COPY_LIST_VALS(self->values, g_strdup);
1146 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1149 case QUARK_values_STEAL: {
1150 GList * values = va_arg (__ap, GList *);
1151 self->values = values;
1155 g_warning ("Argument named 'Flags::%s' does not exist", arg);
1162 setv_funcarg (FuncArg * self, va_list __ap)
1167 while ((arg = va_arg (__ap, char *)) != NULL) {
1168 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1171 Type * atype = va_arg (__ap, Type *);
1172 Type * __old_value = self->atype;
1173 self->atype = copy_type (atype);
1174 free_type (__old_value);
1177 case QUARK_atype_STEAL: {
1178 Type * atype = va_arg (__ap, Type *);
1179 self->atype = atype;
1183 char * name = va_arg (__ap, char *);
1184 char * __old_value = self->name;
1185 self->name = g_strdup (name);
1186 g_free (__old_value);
1189 case QUARK_name_STEAL: {
1190 char * name = va_arg (__ap, char *);
1194 case QUARK_checks: {
1195 GList * checks = va_arg (__ap, GList *);
1196 GList * __old_value = self->checks;
1197 self->checks = node_list_copy (checks);
1198 node_list_free (__old_value);
1201 case QUARK_checks_STEAL: {
1202 GList * checks = va_arg (__ap, GList *);
1203 self->checks = checks;
1207 g_warning ("Argument named 'FuncArg::%s' does not exist", arg);
1214 setv_method (Method * self, va_list __ap)
1219 while ((arg = va_arg (__ap, char *)) != NULL) {
1220 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1223 int scope = va_arg (__ap, int);
1224 self->scope = scope;
1227 case QUARK_method: {
1228 int method = va_arg (__ap, int);
1229 self->method = method;
1233 Type * mtype = va_arg (__ap, Type *);
1234 Type * __old_value = self->mtype;
1235 self->mtype = copy_type (mtype);
1236 free_type (__old_value);
1239 case QUARK_mtype_STEAL: {
1240 Type * mtype = va_arg (__ap, Type *);
1241 self->mtype = mtype;
1245 char * otype = va_arg (__ap, char *);
1246 char * __old_value = self->otype;
1247 self->otype = g_strdup (otype);
1248 g_free (__old_value);
1251 case QUARK_otype_STEAL: {
1252 char * otype = va_arg (__ap, char *);
1253 self->otype = otype;
1256 case QUARK_gtktypes: {
1257 GList * gtktypes = va_arg (__ap, GList *);
1258 GList * __old_value = self->gtktypes;
1259 self->gtktypes = g_list_copy (gtktypes); COPY_LIST_VALS(self->gtktypes, g_strdup);
1260 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1263 case QUARK_gtktypes_STEAL: {
1264 GList * gtktypes = va_arg (__ap, GList *);
1265 self->gtktypes = gtktypes;
1269 GList * flags = va_arg (__ap, GList *);
1270 GList * __old_value = self->flags;
1271 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
1272 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1275 case QUARK_flags_STEAL: {
1276 GList * flags = va_arg (__ap, GList *);
1277 self->flags = flags;
1281 char * id = va_arg (__ap, char *);
1282 char * __old_value = self->id;
1283 self->id = g_strdup (id);
1284 g_free (__old_value);
1287 case QUARK_id_STEAL: {
1288 char * id = va_arg (__ap, char *);
1293 GList * args = va_arg (__ap, GList *);
1294 GList * __old_value = self->args;
1295 self->args = node_list_copy (args);
1296 node_list_free (__old_value);
1299 case QUARK_args_STEAL: {
1300 GList * args = va_arg (__ap, GList *);
1304 case QUARK_onerror: {
1305 char * onerror = va_arg (__ap, char *);
1306 char * __old_value = self->onerror;
1307 self->onerror = g_strdup (onerror);
1308 g_free (__old_value);
1311 case QUARK_onerror_STEAL: {
1312 char * onerror = va_arg (__ap, char *);
1313 self->onerror = onerror;
1316 case QUARK_defreturn: {
1317 char * defreturn = va_arg (__ap, char *);
1318 char * __old_value = self->defreturn;
1319 self->defreturn = g_strdup (defreturn);
1320 g_free (__old_value);
1323 case QUARK_defreturn_STEAL: {
1324 char * defreturn = va_arg (__ap, char *);
1325 self->defreturn = defreturn;
1329 char * cbuf = va_arg (__ap, char *);
1330 char * __old_value = self->cbuf;
1331 self->cbuf = g_strdup (cbuf);
1332 g_free (__old_value);
1335 case QUARK_cbuf_STEAL: {
1336 char * cbuf = va_arg (__ap, char *);
1340 case QUARK_line_no: {
1341 int line_no = va_arg (__ap, int);
1342 self->line_no = line_no;
1345 case QUARK_ccode_line: {
1346 int ccode_line = va_arg (__ap, int);
1347 self->ccode_line = ccode_line;
1350 case QUARK_vararg: {
1351 gboolean vararg = va_arg (__ap, gboolean);
1352 self->vararg = vararg;
1355 case QUARK_unique_id: {
1356 int unique_id = va_arg (__ap, int);
1357 self->unique_id = unique_id;
1360 case QUARK_bonobo_object_func: {
1361 gboolean bonobo_object_func = va_arg (__ap, gboolean);
1362 self->bonobo_object_func = bonobo_object_func;
1365 case QUARK_interface: {
1366 char * interface = va_arg (__ap, char *);
1367 char * __old_value = self->interface;
1368 self->interface = g_strdup (interface);
1369 g_free (__old_value);
1372 case QUARK_interface_STEAL: {
1373 char * interface = va_arg (__ap, char *);
1374 self->interface = interface;
1378 g_warning ("Argument named 'Method::%s' does not exist", arg);
1385 setv_property (Property * self, va_list __ap)
1390 while ((arg = va_arg (__ap, char *)) != NULL) {
1391 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1393 case QUARK_gtktype: {
1394 char * gtktype = va_arg (__ap, char *);
1395 char * __old_value = self->gtktype;
1396 self->gtktype = g_strdup (gtktype);
1397 g_free (__old_value);
1400 case QUARK_gtktype_STEAL: {
1401 char * gtktype = va_arg (__ap, char *);
1402 self->gtktype = gtktype;
1406 Type * ptype = va_arg (__ap, Type *);
1407 Type * __old_value = self->ptype;
1408 self->ptype = copy_type (ptype);
1409 free_type (__old_value);
1412 case QUARK_ptype_STEAL: {
1413 Type * ptype = va_arg (__ap, Type *);
1414 self->ptype = ptype;
1418 GList * flags = va_arg (__ap, GList *);
1419 GList * __old_value = self->flags;
1420 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
1421 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1424 case QUARK_flags_STEAL: {
1425 GList * flags = va_arg (__ap, GList *);
1426 self->flags = flags;
1430 char * name = va_arg (__ap, char *);
1431 char * __old_value = self->name;
1432 self->name = g_strdup (name);
1433 g_free (__old_value);
1436 case QUARK_name_STEAL: {
1437 char * name = va_arg (__ap, char *);
1442 char * nick = va_arg (__ap, char *);
1443 char * __old_value = self->nick;
1444 self->nick = g_strdup (nick);
1445 g_free (__old_value);
1448 case QUARK_nick_STEAL: {
1449 char * nick = va_arg (__ap, char *);
1454 char * blurb = va_arg (__ap, char *);
1455 char * __old_value = self->blurb;
1456 self->blurb = g_strdup (blurb);
1457 g_free (__old_value);
1460 case QUARK_blurb_STEAL: {
1461 char * blurb = va_arg (__ap, char *);
1462 self->blurb = blurb;
1465 case QUARK_minimum: {
1466 char * minimum = va_arg (__ap, char *);
1467 char * __old_value = self->minimum;
1468 self->minimum = g_strdup (minimum);
1469 g_free (__old_value);
1472 case QUARK_minimum_STEAL: {
1473 char * minimum = va_arg (__ap, char *);
1474 self->minimum = minimum;
1477 case QUARK_maximum: {
1478 char * maximum = va_arg (__ap, char *);
1479 char * __old_value = self->maximum;
1480 self->maximum = g_strdup (maximum);
1481 g_free (__old_value);
1484 case QUARK_maximum_STEAL: {
1485 char * maximum = va_arg (__ap, char *);
1486 self->maximum = maximum;
1489 case QUARK_default_value: {
1490 char * default_value = va_arg (__ap, char *);
1491 char * __old_value = self->default_value;
1492 self->default_value = g_strdup (default_value);
1493 g_free (__old_value);
1496 case QUARK_default_value_STEAL: {
1497 char * default_value = va_arg (__ap, char *);
1498 self->default_value = default_value;
1501 case QUARK_extra_gtktype: {
1502 char * extra_gtktype = va_arg (__ap, char *);
1503 char * __old_value = self->extra_gtktype;
1504 self->extra_gtktype = g_strdup (extra_gtktype);
1505 g_free (__old_value);
1508 case QUARK_extra_gtktype_STEAL: {
1509 char * extra_gtktype = va_arg (__ap, char *);
1510 self->extra_gtktype = extra_gtktype;
1513 case QUARK_override: {
1514 gboolean override = va_arg (__ap, gboolean);
1515 self->override = override;
1519 gboolean link = va_arg (__ap, gboolean);
1523 case QUARK_export: {
1524 gboolean export = va_arg (__ap, gboolean);
1525 self->export = export;
1529 char * get = va_arg (__ap, char *);
1530 char * __old_value = self->get;
1531 self->get = g_strdup (get);
1532 g_free (__old_value);
1535 case QUARK_get_STEAL: {
1536 char * get = va_arg (__ap, char *);
1540 case QUARK_get_line: {
1541 int get_line = va_arg (__ap, int);
1542 self->get_line = get_line;
1546 char * set = va_arg (__ap, char *);
1547 char * __old_value = self->set;
1548 self->set = g_strdup (set);
1549 g_free (__old_value);
1552 case QUARK_set_STEAL: {
1553 char * set = va_arg (__ap, char *);
1557 case QUARK_set_line: {
1558 int set_line = va_arg (__ap, int);
1559 self->set_line = set_line;
1562 case QUARK_line_no: {
1563 int line_no = va_arg (__ap, int);
1564 self->line_no = line_no;
1568 g_warning ("Argument named 'Property::%s' does not exist", arg);
1575 setv_type (Type * self, va_list __ap)
1580 while ((arg = va_arg (__ap, char *)) != NULL) {
1581 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1584 char * name = va_arg (__ap, char *);
1585 char * __old_value = self->name;
1586 self->name = g_strdup (name);
1587 g_free (__old_value);
1590 case QUARK_name_STEAL: {
1591 char * name = va_arg (__ap, char *);
1595 case QUARK_pointer: {
1596 char * pointer = va_arg (__ap, char *);
1597 char * __old_value = self->pointer;
1598 self->pointer = g_strdup (pointer);
1599 g_free (__old_value);
1602 case QUARK_pointer_STEAL: {
1603 char * pointer = va_arg (__ap, char *);
1604 self->pointer = pointer;
1607 case QUARK_postfix: {
1608 char * postfix = va_arg (__ap, char *);
1609 char * __old_value = self->postfix;
1610 self->postfix = g_strdup (postfix);
1611 g_free (__old_value);
1614 case QUARK_postfix_STEAL: {
1615 char * postfix = va_arg (__ap, char *);
1616 self->postfix = postfix;
1620 g_warning ("Argument named 'Type::%s' does not exist", arg);
1627 setv_variable (Variable * self, va_list __ap)
1632 while ((arg = va_arg (__ap, char *)) != NULL) {
1633 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1636 int scope = va_arg (__ap, int);
1637 self->scope = scope;
1641 Type * vtype = va_arg (__ap, Type *);
1642 Type * __old_value = self->vtype;
1643 self->vtype = copy_type (vtype);
1644 free_type (__old_value);
1647 case QUARK_vtype_STEAL: {
1648 Type * vtype = va_arg (__ap, Type *);
1649 self->vtype = vtype;
1652 case QUARK_glade_widget: {
1653 gboolean glade_widget = va_arg (__ap, gboolean);
1654 self->glade_widget = glade_widget;
1658 char * id = va_arg (__ap, char *);
1659 char * __old_value = self->id;
1660 self->id = g_strdup (id);
1661 g_free (__old_value);
1664 case QUARK_id_STEAL: {
1665 char * id = va_arg (__ap, char *);
1669 case QUARK_line_no: {
1670 int line_no = va_arg (__ap, int);
1671 self->line_no = line_no;
1674 case QUARK_destructor_unref: {
1675 gboolean destructor_unref = va_arg (__ap, gboolean);
1676 self->destructor_unref = destructor_unref;
1679 case QUARK_destructor: {
1680 char * destructor = va_arg (__ap, char *);
1681 char * __old_value = self->destructor;
1682 self->destructor = g_strdup (destructor);
1683 g_free (__old_value);
1686 case QUARK_destructor_STEAL: {
1687 char * destructor = va_arg (__ap, char *);
1688 self->destructor = destructor;
1691 case QUARK_destructor_line: {
1692 int destructor_line = va_arg (__ap, int);
1693 self->destructor_line = destructor_line;
1696 case QUARK_destructor_simple: {
1697 gboolean destructor_simple = va_arg (__ap, gboolean);
1698 self->destructor_simple = destructor_simple;
1701 case QUARK_initializer: {
1702 char * initializer = va_arg (__ap, char *);
1703 char * __old_value = self->initializer;
1704 self->initializer = g_strdup (initializer);
1705 g_free (__old_value);
1708 case QUARK_initializer_STEAL: {
1709 char * initializer = va_arg (__ap, char *);
1710 self->initializer = initializer;
1713 case QUARK_initializer_line: {
1714 int initializer_line = va_arg (__ap, int);
1715 self->initializer_line = initializer_line;
1718 case QUARK_initializer_simple: {
1719 gboolean initializer_simple = va_arg (__ap, gboolean);
1720 self->initializer_simple = initializer_simple;
1724 g_warning ("Argument named 'Variable::%s' does not exist", arg);
1731 node_copy (Node *node)
1733 g_return_val_if_fail (node != NULL, NULL);
1734 g_return_val_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE, NULL);
1735 switch (node->type) {
1736 case ARGUMENT_NODE: return (Node *)copy_argument ((Argument *)node);
1737 case CCODE_NODE: return (Node *)copy_ccode ((CCode *)node);
1738 case CHECK_NODE: return (Node *)copy_check ((Check *)node);
1739 case CLASS_NODE: return (Node *)copy_class ((Class *)node);
1740 case ENUMDEF_NODE: return (Node *)copy_enumdef ((EnumDef *)node);
1741 case ENUMVALUE_NODE: return (Node *)copy_enumvalue ((EnumValue *)node);
1742 case ERROR_NODE: return (Node *)copy_error ((Error *)node);
1743 case FLAGS_NODE: return (Node *)copy_flags ((Flags *)node);
1744 case FUNCARG_NODE: return (Node *)copy_funcarg ((FuncArg *)node);
1745 case METHOD_NODE: return (Node *)copy_method ((Method *)node);
1746 case PROPERTY_NODE: return (Node *)copy_property ((Property *)node);
1747 case TYPE_NODE: return (Node *)copy_type ((Type *)node);
1748 case VARIABLE_NODE: return (Node *)copy_variable ((Variable *)node);
1749 default: return NULL;
1754 node_setv (Node *node, va_list __ap)
1756 g_return_if_fail (node != NULL);
1757 g_return_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE);
1758 switch (node->type) {
1759 case ARGUMENT_NODE: setv_argument ((Argument *)node, __ap); break;
1760 case CCODE_NODE: setv_ccode ((CCode *)node, __ap); break;
1761 case CHECK_NODE: setv_check ((Check *)node, __ap); break;
1762 case CLASS_NODE: setv_class ((Class *)node, __ap); break;
1763 case ENUMDEF_NODE: setv_enumdef ((EnumDef *)node, __ap); break;
1764 case ENUMVALUE_NODE: setv_enumvalue ((EnumValue *)node, __ap); break;
1765 case ERROR_NODE: setv_error ((Error *)node, __ap); break;
1766 case FLAGS_NODE: setv_flags ((Flags *)node, __ap); break;
1767 case FUNCARG_NODE: setv_funcarg ((FuncArg *)node, __ap); break;
1768 case METHOD_NODE: setv_method ((Method *)node, __ap); break;
1769 case PROPERTY_NODE: setv_property ((Property *)node, __ap); break;
1770 case TYPE_NODE: setv_type ((Type *)node, __ap); break;
1771 case VARIABLE_NODE: setv_variable ((Variable *)node, __ap); break;
1777 node_set (Node *node, ...)
1780 va_start (__ap, node);
1781 node_setv (node, __ap);
1786 node_new (NodeType type, ...)
1790 va_start (__ap, type);
1791 g_return_val_if_fail (type >= 0 && type < LAST_NODE_TYPE, NULL);
1794 node = (Node *)g_new0 (Argument, 1);
1796 setv_argument ((Argument *)node, __ap);
1799 node = (Node *)g_new0 (CCode, 1);
1801 setv_ccode ((CCode *)node, __ap);
1804 node = (Node *)g_new0 (Check, 1);
1806 setv_check ((Check *)node, __ap);
1809 node = (Node *)g_new0 (Class, 1);
1811 setv_class ((Class *)node, __ap);
1814 node = (Node *)g_new0 (EnumDef, 1);
1816 setv_enumdef ((EnumDef *)node, __ap);
1818 case ENUMVALUE_NODE:
1819 node = (Node *)g_new0 (EnumValue, 1);
1821 setv_enumvalue ((EnumValue *)node, __ap);
1824 node = (Node *)g_new0 (Error, 1);
1826 setv_error ((Error *)node, __ap);
1829 node = (Node *)g_new0 (Flags, 1);
1831 setv_flags ((Flags *)node, __ap);
1834 node = (Node *)g_new0 (FuncArg, 1);
1836 setv_funcarg ((FuncArg *)node, __ap);
1839 node = (Node *)g_new0 (Method, 1);
1841 setv_method ((Method *)node, __ap);
1844 node = (Node *)g_new0 (Property, 1);
1846 setv_property ((Property *)node, __ap);
1849 node = (Node *)g_new0 (Type, 1);
1851 setv_type ((Type *)node, __ap);
1854 node = (Node *)g_new0 (Variable, 1);
1856 setv_variable ((Variable *)node, __ap);
1865 node_free (Node *node)
1867 g_return_if_fail (node != NULL);
1868 g_return_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE);
1869 switch (node->type) {
1870 case ARGUMENT_NODE: free_argument ((Argument *)node); return;
1871 case CCODE_NODE: free_ccode ((CCode *)node); return;
1872 case CHECK_NODE: free_check ((Check *)node); return;
1873 case CLASS_NODE: free_class ((Class *)node); return;
1874 case ENUMDEF_NODE: free_enumdef ((EnumDef *)node); return;
1875 case ENUMVALUE_NODE: free_enumvalue ((EnumValue *)node); return;
1876 case ERROR_NODE: free_error ((Error *)node); return;
1877 case FLAGS_NODE: free_flags ((Flags *)node); return;
1878 case FUNCARG_NODE: free_funcarg ((FuncArg *)node); return;
1879 case METHOD_NODE: free_method ((Method *)node); return;
1880 case PROPERTY_NODE: free_property ((Property *)node); return;
1881 case TYPE_NODE: free_type ((Type *)node); return;
1882 case VARIABLE_NODE: free_variable ((Variable *)node); return;
1888 node_list_copy (GList *nodes)
1891 nodes = g_list_copy (nodes);
1892 for (li = nodes; li != NULL; li = li->next) {
1893 li->data = node_copy (li->data);
1899 node_list_free (GList *nodes)
1902 for (li = nodes; li != NULL; li = li->next) {
1903 node_free (li->data);
1905 g_list_free (nodes);