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_funcarg (FuncArg * self);
21 copy_method (Method * self);
23 copy_property (Property * self);
25 copy_type (Type * self);
27 copy_variable (Variable * self);
30 free_argument (Argument * self);
32 free_ccode (CCode * self);
34 free_check (Check * self);
36 free_class (Class * self);
38 free_funcarg (FuncArg * self);
40 free_method (Method * self);
42 free_property (Property * self);
44 free_type (Type * self);
46 free_variable (Variable * self);
49 setv_argument (Argument * self, va_list __ap);
51 setv_ccode (CCode * self, va_list __ap);
53 setv_check (Check * self, va_list __ap);
55 setv_class (Class * self, va_list __ap);
57 setv_funcarg (FuncArg * self, va_list __ap);
59 setv_method (Method * self, va_list __ap);
61 setv_property (Property * self, va_list __ap);
63 setv_type (Type * self, va_list __ap);
65 setv_variable (Variable * self, va_list __ap);
67 static gboolean quarks_set_up = FALSE;
68 static GHashTable *quark_ht;
76 QUARK_bonobo_x_class_STEAL,
78 QUARK_chunk_size_STEAL,
117 QUARK_default_value_STEAL,
119 QUARK_extra_gtktype_STEAL,
127 QUARK_gtktypes_STEAL,
135 QUARK_defreturn_STEAL,
142 QUARK_destructor_unref,
144 QUARK_destructor_STEAL,
145 QUARK_destructor_line,
146 QUARK_destructor_simple,
148 QUARK_initializer_STEAL,
149 QUARK_initializer_line,
158 quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
159 quarks_set_up = TRUE;
160 g_hash_table_insert (quark_ht, "otype", GINT_TO_POINTER (QUARK_otype));
161 g_hash_table_insert (quark_ht, "otype:steal", GINT_TO_POINTER (QUARK_otype_STEAL));
162 g_hash_table_insert (quark_ht, "ptype", GINT_TO_POINTER (QUARK_ptype));
163 g_hash_table_insert (quark_ht, "ptype:steal", GINT_TO_POINTER (QUARK_ptype_STEAL));
164 g_hash_table_insert (quark_ht, "bonobo_x_class", GINT_TO_POINTER (QUARK_bonobo_x_class));
165 g_hash_table_insert (quark_ht, "bonobo_x_class:steal", GINT_TO_POINTER (QUARK_bonobo_x_class_STEAL));
166 g_hash_table_insert (quark_ht, "chunk_size", GINT_TO_POINTER (QUARK_chunk_size));
167 g_hash_table_insert (quark_ht, "chunk_size:steal", GINT_TO_POINTER (QUARK_chunk_size_STEAL));
168 g_hash_table_insert (quark_ht, "nodes", GINT_TO_POINTER (QUARK_nodes));
169 g_hash_table_insert (quark_ht, "nodes:steal", GINT_TO_POINTER (QUARK_nodes_STEAL));
170 g_hash_table_insert (quark_ht, "name", GINT_TO_POINTER (QUARK_name));
171 g_hash_table_insert (quark_ht, "name:steal", GINT_TO_POINTER (QUARK_name_STEAL));
172 g_hash_table_insert (quark_ht, "pointer", GINT_TO_POINTER (QUARK_pointer));
173 g_hash_table_insert (quark_ht, "pointer:steal", GINT_TO_POINTER (QUARK_pointer_STEAL));
174 g_hash_table_insert (quark_ht, "postfix", GINT_TO_POINTER (QUARK_postfix));
175 g_hash_table_insert (quark_ht, "postfix:steal", GINT_TO_POINTER (QUARK_postfix_STEAL));
176 g_hash_table_insert (quark_ht, "cctype", GINT_TO_POINTER (QUARK_cctype));
177 g_hash_table_insert (quark_ht, "cbuf", GINT_TO_POINTER (QUARK_cbuf));
178 g_hash_table_insert (quark_ht, "cbuf:steal", GINT_TO_POINTER (QUARK_cbuf_STEAL));
179 g_hash_table_insert (quark_ht, "line_no", GINT_TO_POINTER (QUARK_line_no));
180 g_hash_table_insert (quark_ht, "chtype", GINT_TO_POINTER (QUARK_chtype));
181 g_hash_table_insert (quark_ht, "number", GINT_TO_POINTER (QUARK_number));
182 g_hash_table_insert (quark_ht, "number:steal", GINT_TO_POINTER (QUARK_number_STEAL));
183 g_hash_table_insert (quark_ht, "atype", GINT_TO_POINTER (QUARK_atype));
184 g_hash_table_insert (quark_ht, "atype:steal", GINT_TO_POINTER (QUARK_atype_STEAL));
185 g_hash_table_insert (quark_ht, "checks", GINT_TO_POINTER (QUARK_checks));
186 g_hash_table_insert (quark_ht, "checks:steal", GINT_TO_POINTER (QUARK_checks_STEAL));
187 g_hash_table_insert (quark_ht, "gtktype", GINT_TO_POINTER (QUARK_gtktype));
188 g_hash_table_insert (quark_ht, "gtktype:steal", GINT_TO_POINTER (QUARK_gtktype_STEAL));
189 g_hash_table_insert (quark_ht, "flags", GINT_TO_POINTER (QUARK_flags));
190 g_hash_table_insert (quark_ht, "flags:steal", GINT_TO_POINTER (QUARK_flags_STEAL));
191 g_hash_table_insert (quark_ht, "get", GINT_TO_POINTER (QUARK_get));
192 g_hash_table_insert (quark_ht, "get:steal", GINT_TO_POINTER (QUARK_get_STEAL));
193 g_hash_table_insert (quark_ht, "get_line", GINT_TO_POINTER (QUARK_get_line));
194 g_hash_table_insert (quark_ht, "set", GINT_TO_POINTER (QUARK_set));
195 g_hash_table_insert (quark_ht, "set:steal", GINT_TO_POINTER (QUARK_set_STEAL));
196 g_hash_table_insert (quark_ht, "set_line", GINT_TO_POINTER (QUARK_set_line));
197 g_hash_table_insert (quark_ht, "nick", GINT_TO_POINTER (QUARK_nick));
198 g_hash_table_insert (quark_ht, "nick:steal", GINT_TO_POINTER (QUARK_nick_STEAL));
199 g_hash_table_insert (quark_ht, "blurb", GINT_TO_POINTER (QUARK_blurb));
200 g_hash_table_insert (quark_ht, "blurb:steal", GINT_TO_POINTER (QUARK_blurb_STEAL));
201 g_hash_table_insert (quark_ht, "minimum", GINT_TO_POINTER (QUARK_minimum));
202 g_hash_table_insert (quark_ht, "minimum:steal", GINT_TO_POINTER (QUARK_minimum_STEAL));
203 g_hash_table_insert (quark_ht, "maximum", GINT_TO_POINTER (QUARK_maximum));
204 g_hash_table_insert (quark_ht, "maximum:steal", GINT_TO_POINTER (QUARK_maximum_STEAL));
205 g_hash_table_insert (quark_ht, "default_value", GINT_TO_POINTER (QUARK_default_value));
206 g_hash_table_insert (quark_ht, "default_value:steal", GINT_TO_POINTER (QUARK_default_value_STEAL));
207 g_hash_table_insert (quark_ht, "extra_gtktype", GINT_TO_POINTER (QUARK_extra_gtktype));
208 g_hash_table_insert (quark_ht, "extra_gtktype:steal", GINT_TO_POINTER (QUARK_extra_gtktype_STEAL));
209 g_hash_table_insert (quark_ht, "link", GINT_TO_POINTER (QUARK_link));
210 g_hash_table_insert (quark_ht, "export", GINT_TO_POINTER (QUARK_export));
211 g_hash_table_insert (quark_ht, "scope", GINT_TO_POINTER (QUARK_scope));
212 g_hash_table_insert (quark_ht, "method", GINT_TO_POINTER (QUARK_method));
213 g_hash_table_insert (quark_ht, "mtype", GINT_TO_POINTER (QUARK_mtype));
214 g_hash_table_insert (quark_ht, "mtype:steal", GINT_TO_POINTER (QUARK_mtype_STEAL));
215 g_hash_table_insert (quark_ht, "gtktypes", GINT_TO_POINTER (QUARK_gtktypes));
216 g_hash_table_insert (quark_ht, "gtktypes:steal", GINT_TO_POINTER (QUARK_gtktypes_STEAL));
217 g_hash_table_insert (quark_ht, "id", GINT_TO_POINTER (QUARK_id));
218 g_hash_table_insert (quark_ht, "id:steal", GINT_TO_POINTER (QUARK_id_STEAL));
219 g_hash_table_insert (quark_ht, "args", GINT_TO_POINTER (QUARK_args));
220 g_hash_table_insert (quark_ht, "args:steal", GINT_TO_POINTER (QUARK_args_STEAL));
221 g_hash_table_insert (quark_ht, "onerror", GINT_TO_POINTER (QUARK_onerror));
222 g_hash_table_insert (quark_ht, "onerror:steal", GINT_TO_POINTER (QUARK_onerror_STEAL));
223 g_hash_table_insert (quark_ht, "defreturn", GINT_TO_POINTER (QUARK_defreturn));
224 g_hash_table_insert (quark_ht, "defreturn:steal", GINT_TO_POINTER (QUARK_defreturn_STEAL));
225 g_hash_table_insert (quark_ht, "ccode_line", GINT_TO_POINTER (QUARK_ccode_line));
226 g_hash_table_insert (quark_ht, "vararg", GINT_TO_POINTER (QUARK_vararg));
227 g_hash_table_insert (quark_ht, "unique_id", GINT_TO_POINTER (QUARK_unique_id));
228 g_hash_table_insert (quark_ht, "bonobo_x_func", GINT_TO_POINTER (QUARK_bonobo_x_func));
229 g_hash_table_insert (quark_ht, "vtype", GINT_TO_POINTER (QUARK_vtype));
230 g_hash_table_insert (quark_ht, "vtype:steal", GINT_TO_POINTER (QUARK_vtype_STEAL));
231 g_hash_table_insert (quark_ht, "destructor_unref", GINT_TO_POINTER (QUARK_destructor_unref));
232 g_hash_table_insert (quark_ht, "destructor", GINT_TO_POINTER (QUARK_destructor));
233 g_hash_table_insert (quark_ht, "destructor:steal", GINT_TO_POINTER (QUARK_destructor_STEAL));
234 g_hash_table_insert (quark_ht, "destructor_line", GINT_TO_POINTER (QUARK_destructor_line));
235 g_hash_table_insert (quark_ht, "destructor_simple", GINT_TO_POINTER (QUARK_destructor_simple));
236 g_hash_table_insert (quark_ht, "initializer", GINT_TO_POINTER (QUARK_initializer));
237 g_hash_table_insert (quark_ht, "initializer:steal", GINT_TO_POINTER (QUARK_initializer_STEAL));
238 g_hash_table_insert (quark_ht, "initializer_line", GINT_TO_POINTER (QUARK_initializer_line));
242 copy_argument (Argument * self)
245 g_return_val_if_fail (self != NULL, NULL);
246 g_return_val_if_fail (self->type == ARGUMENT_NODE, NULL);
247 new = g_new0(Argument, 1);
248 new->type = ARGUMENT_NODE;
249 new->gtktype = g_strdup (self->gtktype);
250 new->atype = copy_type (self->atype);
251 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
252 new->name = g_strdup (self->name);
253 new->get = g_strdup (self->get);
254 new->get_line = self->get_line;
255 new->set = g_strdup (self->set);
256 new->set_line = self->set_line;
257 new->line_no = self->line_no;
262 copy_ccode (CCode * self)
265 g_return_val_if_fail (self != NULL, NULL);
266 g_return_val_if_fail (self->type == CCODE_NODE, NULL);
267 new = g_new0(CCode, 1);
268 new->type = CCODE_NODE;
269 new->cctype = self->cctype;
270 new->cbuf = g_strdup (self->cbuf);
271 new->line_no = self->line_no;
276 copy_check (Check * self)
279 g_return_val_if_fail (self != NULL, NULL);
280 g_return_val_if_fail (self->type == CHECK_NODE, NULL);
281 new = g_new0(Check, 1);
282 new->type = CHECK_NODE;
283 new->chtype = self->chtype;
284 new->number = g_strdup (self->number);
289 copy_class (Class * self)
292 g_return_val_if_fail (self != NULL, NULL);
293 g_return_val_if_fail (self->type == CLASS_NODE, NULL);
294 new = g_new0(Class, 1);
295 new->type = CLASS_NODE;
296 new->otype = g_strdup (self->otype);
297 new->ptype = g_strdup (self->ptype);
298 new->bonobo_x_class = g_strdup (self->bonobo_x_class);
299 new->chunk_size = g_strdup (self->chunk_size);
300 new->nodes = node_list_copy (self->nodes);
305 copy_funcarg (FuncArg * self)
308 g_return_val_if_fail (self != NULL, NULL);
309 g_return_val_if_fail (self->type == FUNCARG_NODE, NULL);
310 new = g_new0(FuncArg, 1);
311 new->type = FUNCARG_NODE;
312 new->atype = copy_type (self->atype);
313 new->name = g_strdup (self->name);
314 new->checks = node_list_copy (self->checks);
319 copy_method (Method * self)
322 g_return_val_if_fail (self != NULL, NULL);
323 g_return_val_if_fail (self->type == METHOD_NODE, NULL);
324 new = g_new0(Method, 1);
325 new->type = METHOD_NODE;
326 new->scope = self->scope;
327 new->method = self->method;
328 new->mtype = copy_type (self->mtype);
329 new->otype = g_strdup (self->otype);
330 new->gtktypes = g_list_copy (self->gtktypes); COPY_LIST_VALS(new->gtktypes, g_strdup);
331 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
332 new->id = g_strdup (self->id);
333 new->args = node_list_copy (self->args);
334 new->onerror = g_strdup (self->onerror);
335 new->defreturn = g_strdup (self->defreturn);
336 new->cbuf = g_strdup (self->cbuf);
337 new->line_no = self->line_no;
338 new->ccode_line = self->ccode_line;
339 new->vararg = self->vararg;
340 new->unique_id = self->unique_id;
341 new->bonobo_x_func = self->bonobo_x_func;
346 copy_property (Property * self)
349 g_return_val_if_fail (self != NULL, NULL);
350 g_return_val_if_fail (self->type == PROPERTY_NODE, NULL);
351 new = g_new0(Property, 1);
352 new->type = PROPERTY_NODE;
353 new->gtktype = g_strdup (self->gtktype);
354 new->ptype = copy_type (self->ptype);
355 new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
356 new->name = g_strdup (self->name);
357 new->nick = g_strdup (self->nick);
358 new->blurb = g_strdup (self->blurb);
359 new->minimum = g_strdup (self->minimum);
360 new->maximum = g_strdup (self->maximum);
361 new->default_value = g_strdup (self->default_value);
362 new->extra_gtktype = g_strdup (self->extra_gtktype);
363 new->link = self->link;
364 new->export = self->export;
365 new->get = g_strdup (self->get);
366 new->get_line = self->get_line;
367 new->set = g_strdup (self->set);
368 new->set_line = self->set_line;
369 new->line_no = self->line_no;
374 copy_type (Type * self)
377 g_return_val_if_fail (self != NULL, NULL);
378 g_return_val_if_fail (self->type == TYPE_NODE, NULL);
379 new = g_new0(Type, 1);
380 new->type = TYPE_NODE;
381 new->name = g_strdup (self->name);
382 new->pointer = g_strdup (self->pointer);
383 new->postfix = g_strdup (self->postfix);
388 copy_variable (Variable * self)
391 g_return_val_if_fail (self != NULL, NULL);
392 g_return_val_if_fail (self->type == VARIABLE_NODE, NULL);
393 new = g_new0(Variable, 1);
394 new->type = VARIABLE_NODE;
395 new->scope = self->scope;
396 new->vtype = copy_type (self->vtype);
397 new->id = g_strdup (self->id);
398 new->line_no = self->line_no;
399 new->destructor_unref = self->destructor_unref;
400 new->destructor = g_strdup (self->destructor);
401 new->destructor_line = self->destructor_line;
402 new->destructor_simple = self->destructor_simple;
403 new->initializer = g_strdup (self->initializer);
404 new->initializer_line = self->initializer_line;
409 free_argument (Argument * self)
411 g_return_if_fail (self != NULL);
412 g_return_if_fail (self->type == ARGUMENT_NODE);
413 g_free (self->gtktype);
414 free_type (self->atype);
415 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
423 free_ccode (CCode * self)
425 g_return_if_fail (self != NULL);
426 g_return_if_fail (self->type == CCODE_NODE);
432 free_check (Check * self)
434 g_return_if_fail (self != NULL);
435 g_return_if_fail (self->type == CHECK_NODE);
436 g_free (self->number);
441 free_class (Class * self)
443 g_return_if_fail (self != NULL);
444 g_return_if_fail (self->type == CLASS_NODE);
445 g_free (self->otype);
446 g_free (self->ptype);
447 g_free (self->bonobo_x_class);
448 g_free (self->chunk_size);
449 node_list_free (self->nodes);
454 free_funcarg (FuncArg * self)
456 g_return_if_fail (self != NULL);
457 g_return_if_fail (self->type == FUNCARG_NODE);
458 free_type (self->atype);
460 node_list_free (self->checks);
465 free_method (Method * self)
467 g_return_if_fail (self != NULL);
468 g_return_if_fail (self->type == METHOD_NODE);
469 free_type (self->mtype);
470 g_free (self->otype);
471 g_list_foreach (self->gtktypes, (GFunc)g_free, NULL); g_list_free (self->gtktypes);
472 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
474 node_list_free (self->args);
475 g_free (self->onerror);
476 g_free (self->defreturn);
482 free_property (Property * self)
484 g_return_if_fail (self != NULL);
485 g_return_if_fail (self->type == PROPERTY_NODE);
486 g_free (self->gtktype);
487 free_type (self->ptype);
488 g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
491 g_free (self->blurb);
492 g_free (self->minimum);
493 g_free (self->maximum);
494 g_free (self->default_value);
495 g_free (self->extra_gtktype);
502 free_type (Type * self)
504 g_return_if_fail (self != NULL);
505 g_return_if_fail (self->type == TYPE_NODE);
507 g_free (self->pointer);
508 g_free (self->postfix);
513 free_variable (Variable * self)
515 g_return_if_fail (self != NULL);
516 g_return_if_fail (self->type == VARIABLE_NODE);
517 free_type (self->vtype);
519 g_free (self->destructor);
520 g_free (self->initializer);
525 setv_argument (Argument * self, va_list __ap)
530 while ((arg = va_arg (__ap, char *)) != NULL) {
531 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
533 case QUARK_gtktype: {
534 char * gtktype = va_arg (__ap, char *);
535 char * __old_value = self->gtktype;
536 self->gtktype = g_strdup (gtktype);
537 g_free (__old_value);
540 case QUARK_gtktype_STEAL: {
541 char * gtktype = va_arg (__ap, char *);
542 self->gtktype = gtktype;
546 Type * atype = va_arg (__ap, Type *);
547 Type * __old_value = self->atype;
548 self->atype = copy_type (atype);
549 free_type (__old_value);
552 case QUARK_atype_STEAL: {
553 Type * atype = va_arg (__ap, Type *);
558 GList * flags = va_arg (__ap, GList *);
559 GList * __old_value = self->flags;
560 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
561 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
564 case QUARK_flags_STEAL: {
565 GList * flags = va_arg (__ap, GList *);
570 char * name = va_arg (__ap, char *);
571 char * __old_value = self->name;
572 self->name = g_strdup (name);
573 g_free (__old_value);
576 case QUARK_name_STEAL: {
577 char * name = va_arg (__ap, char *);
582 char * get = va_arg (__ap, char *);
583 char * __old_value = self->get;
584 self->get = g_strdup (get);
585 g_free (__old_value);
588 case QUARK_get_STEAL: {
589 char * get = va_arg (__ap, char *);
593 case QUARK_get_line: {
594 int get_line = va_arg (__ap, int);
595 self->get_line = get_line;
599 char * set = va_arg (__ap, char *);
600 char * __old_value = self->set;
601 self->set = g_strdup (set);
602 g_free (__old_value);
605 case QUARK_set_STEAL: {
606 char * set = va_arg (__ap, char *);
610 case QUARK_set_line: {
611 int set_line = va_arg (__ap, int);
612 self->set_line = set_line;
615 case QUARK_line_no: {
616 int line_no = va_arg (__ap, int);
617 self->line_no = line_no;
621 g_warning ("Argument named 'Argument::%s' does not exist", arg);
628 setv_ccode (CCode * self, va_list __ap)
633 while ((arg = va_arg (__ap, char *)) != NULL) {
634 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
637 int cctype = va_arg (__ap, int);
638 self->cctype = cctype;
642 char * cbuf = va_arg (__ap, char *);
643 char * __old_value = self->cbuf;
644 self->cbuf = g_strdup (cbuf);
645 g_free (__old_value);
648 case QUARK_cbuf_STEAL: {
649 char * cbuf = va_arg (__ap, char *);
653 case QUARK_line_no: {
654 int line_no = va_arg (__ap, int);
655 self->line_no = line_no;
659 g_warning ("Argument named 'CCode::%s' does not exist", arg);
666 setv_check (Check * self, va_list __ap)
671 while ((arg = va_arg (__ap, char *)) != NULL) {
672 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
675 int chtype = va_arg (__ap, int);
676 self->chtype = chtype;
680 char * number = va_arg (__ap, char *);
681 char * __old_value = self->number;
682 self->number = g_strdup (number);
683 g_free (__old_value);
686 case QUARK_number_STEAL: {
687 char * number = va_arg (__ap, char *);
688 self->number = number;
692 g_warning ("Argument named 'Check::%s' does not exist", arg);
699 setv_class (Class * self, va_list __ap)
704 while ((arg = va_arg (__ap, char *)) != NULL) {
705 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
708 char * otype = va_arg (__ap, char *);
709 char * __old_value = self->otype;
710 self->otype = g_strdup (otype);
711 g_free (__old_value);
714 case QUARK_otype_STEAL: {
715 char * otype = va_arg (__ap, char *);
720 char * ptype = va_arg (__ap, char *);
721 char * __old_value = self->ptype;
722 self->ptype = g_strdup (ptype);
723 g_free (__old_value);
726 case QUARK_ptype_STEAL: {
727 char * ptype = va_arg (__ap, char *);
731 case QUARK_bonobo_x_class: {
732 char * bonobo_x_class = va_arg (__ap, char *);
733 char * __old_value = self->bonobo_x_class;
734 self->bonobo_x_class = g_strdup (bonobo_x_class);
735 g_free (__old_value);
738 case QUARK_bonobo_x_class_STEAL: {
739 char * bonobo_x_class = va_arg (__ap, char *);
740 self->bonobo_x_class = bonobo_x_class;
743 case QUARK_chunk_size: {
744 char * chunk_size = va_arg (__ap, char *);
745 char * __old_value = self->chunk_size;
746 self->chunk_size = g_strdup (chunk_size);
747 g_free (__old_value);
750 case QUARK_chunk_size_STEAL: {
751 char * chunk_size = va_arg (__ap, char *);
752 self->chunk_size = chunk_size;
756 GList * nodes = va_arg (__ap, GList *);
757 GList * __old_value = self->nodes;
758 self->nodes = node_list_copy (nodes);
759 node_list_free (__old_value);
762 case QUARK_nodes_STEAL: {
763 GList * nodes = va_arg (__ap, GList *);
768 g_warning ("Argument named 'Class::%s' does not exist", arg);
775 setv_funcarg (FuncArg * self, va_list __ap)
780 while ((arg = va_arg (__ap, char *)) != NULL) {
781 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
784 Type * atype = va_arg (__ap, Type *);
785 Type * __old_value = self->atype;
786 self->atype = copy_type (atype);
787 free_type (__old_value);
790 case QUARK_atype_STEAL: {
791 Type * atype = va_arg (__ap, Type *);
796 char * name = va_arg (__ap, char *);
797 char * __old_value = self->name;
798 self->name = g_strdup (name);
799 g_free (__old_value);
802 case QUARK_name_STEAL: {
803 char * name = va_arg (__ap, char *);
808 GList * checks = va_arg (__ap, GList *);
809 GList * __old_value = self->checks;
810 self->checks = node_list_copy (checks);
811 node_list_free (__old_value);
814 case QUARK_checks_STEAL: {
815 GList * checks = va_arg (__ap, GList *);
816 self->checks = checks;
820 g_warning ("Argument named 'FuncArg::%s' does not exist", arg);
827 setv_method (Method * self, va_list __ap)
832 while ((arg = va_arg (__ap, char *)) != NULL) {
833 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
836 int scope = va_arg (__ap, int);
841 int method = va_arg (__ap, int);
842 self->method = method;
846 Type * mtype = va_arg (__ap, Type *);
847 Type * __old_value = self->mtype;
848 self->mtype = copy_type (mtype);
849 free_type (__old_value);
852 case QUARK_mtype_STEAL: {
853 Type * mtype = va_arg (__ap, Type *);
858 char * otype = va_arg (__ap, char *);
859 char * __old_value = self->otype;
860 self->otype = g_strdup (otype);
861 g_free (__old_value);
864 case QUARK_otype_STEAL: {
865 char * otype = va_arg (__ap, char *);
869 case QUARK_gtktypes: {
870 GList * gtktypes = va_arg (__ap, GList *);
871 GList * __old_value = self->gtktypes;
872 self->gtktypes = g_list_copy (gtktypes); COPY_LIST_VALS(self->gtktypes, g_strdup);
873 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
876 case QUARK_gtktypes_STEAL: {
877 GList * gtktypes = va_arg (__ap, GList *);
878 self->gtktypes = gtktypes;
882 GList * flags = va_arg (__ap, GList *);
883 GList * __old_value = self->flags;
884 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
885 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
888 case QUARK_flags_STEAL: {
889 GList * flags = va_arg (__ap, GList *);
894 char * id = va_arg (__ap, char *);
895 char * __old_value = self->id;
896 self->id = g_strdup (id);
897 g_free (__old_value);
900 case QUARK_id_STEAL: {
901 char * id = va_arg (__ap, char *);
906 GList * args = va_arg (__ap, GList *);
907 GList * __old_value = self->args;
908 self->args = node_list_copy (args);
909 node_list_free (__old_value);
912 case QUARK_args_STEAL: {
913 GList * args = va_arg (__ap, GList *);
917 case QUARK_onerror: {
918 char * onerror = va_arg (__ap, char *);
919 char * __old_value = self->onerror;
920 self->onerror = g_strdup (onerror);
921 g_free (__old_value);
924 case QUARK_onerror_STEAL: {
925 char * onerror = va_arg (__ap, char *);
926 self->onerror = onerror;
929 case QUARK_defreturn: {
930 char * defreturn = va_arg (__ap, char *);
931 char * __old_value = self->defreturn;
932 self->defreturn = g_strdup (defreturn);
933 g_free (__old_value);
936 case QUARK_defreturn_STEAL: {
937 char * defreturn = va_arg (__ap, char *);
938 self->defreturn = defreturn;
942 char * cbuf = va_arg (__ap, char *);
943 char * __old_value = self->cbuf;
944 self->cbuf = g_strdup (cbuf);
945 g_free (__old_value);
948 case QUARK_cbuf_STEAL: {
949 char * cbuf = va_arg (__ap, char *);
953 case QUARK_line_no: {
954 int line_no = va_arg (__ap, int);
955 self->line_no = line_no;
958 case QUARK_ccode_line: {
959 int ccode_line = va_arg (__ap, int);
960 self->ccode_line = ccode_line;
964 gboolean vararg = va_arg (__ap, gboolean);
965 self->vararg = vararg;
968 case QUARK_unique_id: {
969 int unique_id = va_arg (__ap, int);
970 self->unique_id = unique_id;
973 case QUARK_bonobo_x_func: {
974 gboolean bonobo_x_func = va_arg (__ap, gboolean);
975 self->bonobo_x_func = bonobo_x_func;
979 g_warning ("Argument named 'Method::%s' does not exist", arg);
986 setv_property (Property * self, va_list __ap)
991 while ((arg = va_arg (__ap, char *)) != NULL) {
992 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
994 case QUARK_gtktype: {
995 char * gtktype = va_arg (__ap, char *);
996 char * __old_value = self->gtktype;
997 self->gtktype = g_strdup (gtktype);
998 g_free (__old_value);
1001 case QUARK_gtktype_STEAL: {
1002 char * gtktype = va_arg (__ap, char *);
1003 self->gtktype = gtktype;
1007 Type * ptype = va_arg (__ap, Type *);
1008 Type * __old_value = self->ptype;
1009 self->ptype = copy_type (ptype);
1010 free_type (__old_value);
1013 case QUARK_ptype_STEAL: {
1014 Type * ptype = va_arg (__ap, Type *);
1015 self->ptype = ptype;
1019 GList * flags = va_arg (__ap, GList *);
1020 GList * __old_value = self->flags;
1021 self->flags = g_list_copy (flags); COPY_LIST_VALS(self->flags, g_strdup);
1022 g_list_foreach (__old_value, (GFunc)g_free, NULL); g_list_free (__old_value);
1025 case QUARK_flags_STEAL: {
1026 GList * flags = va_arg (__ap, GList *);
1027 self->flags = flags;
1031 char * name = va_arg (__ap, char *);
1032 char * __old_value = self->name;
1033 self->name = g_strdup (name);
1034 g_free (__old_value);
1037 case QUARK_name_STEAL: {
1038 char * name = va_arg (__ap, char *);
1043 char * nick = va_arg (__ap, char *);
1044 char * __old_value = self->nick;
1045 self->nick = g_strdup (nick);
1046 g_free (__old_value);
1049 case QUARK_nick_STEAL: {
1050 char * nick = va_arg (__ap, char *);
1055 char * blurb = va_arg (__ap, char *);
1056 char * __old_value = self->blurb;
1057 self->blurb = g_strdup (blurb);
1058 g_free (__old_value);
1061 case QUARK_blurb_STEAL: {
1062 char * blurb = va_arg (__ap, char *);
1063 self->blurb = blurb;
1066 case QUARK_minimum: {
1067 char * minimum = va_arg (__ap, char *);
1068 char * __old_value = self->minimum;
1069 self->minimum = g_strdup (minimum);
1070 g_free (__old_value);
1073 case QUARK_minimum_STEAL: {
1074 char * minimum = va_arg (__ap, char *);
1075 self->minimum = minimum;
1078 case QUARK_maximum: {
1079 char * maximum = va_arg (__ap, char *);
1080 char * __old_value = self->maximum;
1081 self->maximum = g_strdup (maximum);
1082 g_free (__old_value);
1085 case QUARK_maximum_STEAL: {
1086 char * maximum = va_arg (__ap, char *);
1087 self->maximum = maximum;
1090 case QUARK_default_value: {
1091 char * default_value = va_arg (__ap, char *);
1092 char * __old_value = self->default_value;
1093 self->default_value = g_strdup (default_value);
1094 g_free (__old_value);
1097 case QUARK_default_value_STEAL: {
1098 char * default_value = va_arg (__ap, char *);
1099 self->default_value = default_value;
1102 case QUARK_extra_gtktype: {
1103 char * extra_gtktype = va_arg (__ap, char *);
1104 char * __old_value = self->extra_gtktype;
1105 self->extra_gtktype = g_strdup (extra_gtktype);
1106 g_free (__old_value);
1109 case QUARK_extra_gtktype_STEAL: {
1110 char * extra_gtktype = va_arg (__ap, char *);
1111 self->extra_gtktype = extra_gtktype;
1115 gboolean link = va_arg (__ap, gboolean);
1119 case QUARK_export: {
1120 gboolean export = va_arg (__ap, gboolean);
1121 self->export = export;
1125 char * get = va_arg (__ap, char *);
1126 char * __old_value = self->get;
1127 self->get = g_strdup (get);
1128 g_free (__old_value);
1131 case QUARK_get_STEAL: {
1132 char * get = va_arg (__ap, char *);
1136 case QUARK_get_line: {
1137 int get_line = va_arg (__ap, int);
1138 self->get_line = get_line;
1142 char * set = va_arg (__ap, char *);
1143 char * __old_value = self->set;
1144 self->set = g_strdup (set);
1145 g_free (__old_value);
1148 case QUARK_set_STEAL: {
1149 char * set = va_arg (__ap, char *);
1153 case QUARK_set_line: {
1154 int set_line = va_arg (__ap, int);
1155 self->set_line = set_line;
1158 case QUARK_line_no: {
1159 int line_no = va_arg (__ap, int);
1160 self->line_no = line_no;
1164 g_warning ("Argument named 'Property::%s' does not exist", arg);
1171 setv_type (Type * self, va_list __ap)
1176 while ((arg = va_arg (__ap, char *)) != NULL) {
1177 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1180 char * name = va_arg (__ap, char *);
1181 char * __old_value = self->name;
1182 self->name = g_strdup (name);
1183 g_free (__old_value);
1186 case QUARK_name_STEAL: {
1187 char * name = va_arg (__ap, char *);
1191 case QUARK_pointer: {
1192 char * pointer = va_arg (__ap, char *);
1193 char * __old_value = self->pointer;
1194 self->pointer = g_strdup (pointer);
1195 g_free (__old_value);
1198 case QUARK_pointer_STEAL: {
1199 char * pointer = va_arg (__ap, char *);
1200 self->pointer = pointer;
1203 case QUARK_postfix: {
1204 char * postfix = va_arg (__ap, char *);
1205 char * __old_value = self->postfix;
1206 self->postfix = g_strdup (postfix);
1207 g_free (__old_value);
1210 case QUARK_postfix_STEAL: {
1211 char * postfix = va_arg (__ap, char *);
1212 self->postfix = postfix;
1216 g_warning ("Argument named 'Type::%s' does not exist", arg);
1223 setv_variable (Variable * self, va_list __ap)
1228 while ((arg = va_arg (__ap, char *)) != NULL) {
1229 quark = GPOINTER_TO_INT (g_hash_table_lookup (quark_ht, arg));
1232 int scope = va_arg (__ap, int);
1233 self->scope = scope;
1237 Type * vtype = va_arg (__ap, Type *);
1238 Type * __old_value = self->vtype;
1239 self->vtype = copy_type (vtype);
1240 free_type (__old_value);
1243 case QUARK_vtype_STEAL: {
1244 Type * vtype = va_arg (__ap, Type *);
1245 self->vtype = vtype;
1249 char * id = va_arg (__ap, char *);
1250 char * __old_value = self->id;
1251 self->id = g_strdup (id);
1252 g_free (__old_value);
1255 case QUARK_id_STEAL: {
1256 char * id = va_arg (__ap, char *);
1260 case QUARK_line_no: {
1261 int line_no = va_arg (__ap, int);
1262 self->line_no = line_no;
1265 case QUARK_destructor_unref: {
1266 gboolean destructor_unref = va_arg (__ap, gboolean);
1267 self->destructor_unref = destructor_unref;
1270 case QUARK_destructor: {
1271 char * destructor = va_arg (__ap, char *);
1272 char * __old_value = self->destructor;
1273 self->destructor = g_strdup (destructor);
1274 g_free (__old_value);
1277 case QUARK_destructor_STEAL: {
1278 char * destructor = va_arg (__ap, char *);
1279 self->destructor = destructor;
1282 case QUARK_destructor_line: {
1283 int destructor_line = va_arg (__ap, int);
1284 self->destructor_line = destructor_line;
1287 case QUARK_destructor_simple: {
1288 gboolean destructor_simple = va_arg (__ap, gboolean);
1289 self->destructor_simple = destructor_simple;
1292 case QUARK_initializer: {
1293 char * initializer = va_arg (__ap, char *);
1294 char * __old_value = self->initializer;
1295 self->initializer = g_strdup (initializer);
1296 g_free (__old_value);
1299 case QUARK_initializer_STEAL: {
1300 char * initializer = va_arg (__ap, char *);
1301 self->initializer = initializer;
1304 case QUARK_initializer_line: {
1305 int initializer_line = va_arg (__ap, int);
1306 self->initializer_line = initializer_line;
1310 g_warning ("Argument named 'Variable::%s' does not exist", arg);
1317 node_copy (Node *node)
1319 g_return_val_if_fail (node != NULL, NULL);
1320 g_return_val_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE, NULL);
1321 switch (node->type) {
1322 case ARGUMENT_NODE: return (Node *)copy_argument ((Argument *)node);
1323 case CCODE_NODE: return (Node *)copy_ccode ((CCode *)node);
1324 case CHECK_NODE: return (Node *)copy_check ((Check *)node);
1325 case CLASS_NODE: return (Node *)copy_class ((Class *)node);
1326 case FUNCARG_NODE: return (Node *)copy_funcarg ((FuncArg *)node);
1327 case METHOD_NODE: return (Node *)copy_method ((Method *)node);
1328 case PROPERTY_NODE: return (Node *)copy_property ((Property *)node);
1329 case TYPE_NODE: return (Node *)copy_type ((Type *)node);
1330 case VARIABLE_NODE: return (Node *)copy_variable ((Variable *)node);
1331 default: return NULL;
1336 node_setv (Node *node, va_list __ap)
1338 g_return_if_fail (node != NULL);
1339 g_return_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE);
1340 switch (node->type) {
1341 case ARGUMENT_NODE: setv_argument ((Argument *)node, __ap); break;
1342 case CCODE_NODE: setv_ccode ((CCode *)node, __ap); break;
1343 case CHECK_NODE: setv_check ((Check *)node, __ap); break;
1344 case CLASS_NODE: setv_class ((Class *)node, __ap); break;
1345 case FUNCARG_NODE: setv_funcarg ((FuncArg *)node, __ap); break;
1346 case METHOD_NODE: setv_method ((Method *)node, __ap); break;
1347 case PROPERTY_NODE: setv_property ((Property *)node, __ap); break;
1348 case TYPE_NODE: setv_type ((Type *)node, __ap); break;
1349 case VARIABLE_NODE: setv_variable ((Variable *)node, __ap); break;
1355 node_set (Node *node, ...)
1358 va_start (__ap, node);
1359 node_setv (node, __ap);
1364 node_new (NodeType type, ...)
1368 va_start (__ap, type);
1369 g_return_val_if_fail (type >= 0 && type < LAST_NODE_TYPE, NULL);
1372 node = (Node *)g_new0 (Argument, 1);
1374 setv_argument ((Argument *)node, __ap);
1377 node = (Node *)g_new0 (CCode, 1);
1379 setv_ccode ((CCode *)node, __ap);
1382 node = (Node *)g_new0 (Check, 1);
1384 setv_check ((Check *)node, __ap);
1387 node = (Node *)g_new0 (Class, 1);
1389 setv_class ((Class *)node, __ap);
1392 node = (Node *)g_new0 (FuncArg, 1);
1394 setv_funcarg ((FuncArg *)node, __ap);
1397 node = (Node *)g_new0 (Method, 1);
1399 setv_method ((Method *)node, __ap);
1402 node = (Node *)g_new0 (Property, 1);
1404 setv_property ((Property *)node, __ap);
1407 node = (Node *)g_new0 (Type, 1);
1409 setv_type ((Type *)node, __ap);
1412 node = (Node *)g_new0 (Variable, 1);
1414 setv_variable ((Variable *)node, __ap);
1423 node_free (Node *node)
1425 g_return_if_fail (node != NULL);
1426 g_return_if_fail (node->type >= 0 && node->type < LAST_NODE_TYPE);
1427 switch (node->type) {
1428 case ARGUMENT_NODE: free_argument ((Argument *)node); return;
1429 case CCODE_NODE: free_ccode ((CCode *)node); return;
1430 case CHECK_NODE: free_check ((Check *)node); return;
1431 case CLASS_NODE: free_class ((Class *)node); return;
1432 case FUNCARG_NODE: free_funcarg ((FuncArg *)node); return;
1433 case METHOD_NODE: free_method ((Method *)node); return;
1434 case PROPERTY_NODE: free_property ((Property *)node); return;
1435 case TYPE_NODE: free_type ((Type *)node); return;
1436 case VARIABLE_NODE: free_variable ((Variable *)node); return;
1442 node_list_copy (GList *nodes)
1445 nodes = g_list_copy (nodes);
1446 for (li = nodes; li != NULL; li = li->next) {
1447 li->data = node_copy (li->data);
1453 node_list_free (GList *nodes)
1456 for (li = nodes; li != NULL; li = li->next) {
1457 node_free (li->data);
1459 g_list_free (nodes);