Logo Search packages:      
Sourcecode: valabind version File versions

girwriter.c

/* girwriter.c generated by valac 0.14.0.17-9c67, the Vala compiler
 * generated from girwriter.vala, do not modify */

/* Copyleft 2011 -- pancake // nopcode.org */

#include <glib.h>
#include <glib-object.h>
#include <vala.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <valacodegen.h>
#include <valagee.h>


#define TYPE_GIR_WRITER (gir_writer_get_type ())
#define GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GIR_WRITER, GirWriter))
#define GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GIR_WRITER, GirWriterClass))
#define IS_GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GIR_WRITER))
#define IS_GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GIR_WRITER))
#define GIR_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GIR_WRITER, GirWriterClass))

typedef struct _GirWriter GirWriter;
typedef struct _GirWriterClass GirWriterClass;
typedef struct _GirWriterPrivate GirWriterPrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
#define __g_list_free__vala_code_node_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__vala_code_node_unref0_ (var), NULL)))
#define _vala_code_context_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_context_unref (var), NULL)))
#define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
#define _vala_source_reference_unref0(var) ((var == NULL) ? NULL : (var = (vala_source_reference_unref (var), NULL)))

00037 struct _GirWriter {
      ValaCodeVisitor parent_instance;
      GirWriterPrivate * priv;
      gboolean pkgmode;
      gchar* pkgname;
      gboolean show_externs;
      gboolean glib_mode;
      gboolean cxx_mode;
      gchar** files;
      gint files_length1;
      GList* includefiles;
      GList* methods;
};

00051 struct _GirWriterClass {
      ValaCodeVisitorClass parent_class;
};

00055 struct _GirWriterPrivate {
      ValaCodeContext* context;
      FILE* stream;
      gchar* classname;
      gchar* classcname;
      gchar* externs;
      gchar* statics;
      gchar* extends;
      gchar* enums;
      gchar* vectors;
      gchar* nspace;
      gchar* modulename;
};


static gpointer gir_writer_parent_class = NULL;

GType gir_writer_get_type (void) G_GNUC_CONST;
#define GIR_WRITER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GIR_WRITER, GirWriterPrivate))
enum  {
      GIR_WRITER_DUMMY_PROPERTY
};
static void _g_free0_ (gpointer var);
static void _g_list_free__g_free0_ (GList* self);
static void _vala_code_node_unref0_ (gpointer var);
static void _g_list_free__vala_code_node_unref0_ (GList* self);
GirWriter* gir_writer_new (const gchar* name);
GirWriter* gir_writer_construct (GType object_type, const gchar* name);
static gchar* gir_writer_get_alias (GirWriter* self, const gchar* name);
void valabind_compiler_warning (const gchar* msg);
static gchar* gir_writer_get_ctype (GirWriter* self, const gchar* _type);
void valabind_compiler_error (const gchar* msg);
static inline gboolean gir_writer_is_generic (GirWriter* self, const gchar* type);
static gboolean gir_writer_is_target_file (GirWriter* self, const gchar* path);
static void gir_writer_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source);
void gir_writer_process_includes (GirWriter* self, ValaSymbol* s);
void gir_writer_walk_field (GirWriter* self, ValaField* f);
void gir_writer_walk_struct (GirWriter* self, const gchar* pfx, ValaStruct* s);
void gir_writer_walk_method (GirWriter* self, ValaMethod* m);
void gir_writer_walk_class (GirWriter* self, const gchar* pfx, ValaClass* c);
void gir_writer_walk_enum (GirWriter* self, ValaEnum* e);
static void gir_writer_real_visit_namespace (ValaCodeVisitor* base, ValaNamespace* ns);
void gir_writer_write_file (GirWriter* self, ValaCodeContext* context, const gchar* filename);
static void gir_writer_finalize (ValaCodeVisitor* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


static void _g_free0_ (gpointer var) {
#line 12 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      var = (g_free (var), NULL);
#line 108 "girwriter.c"
}


static void _g_list_free__g_free0_ (GList* self) {
#line 12 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_list_foreach (self, (GFunc) _g_free0_, NULL);
#line 12 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_list_free (self);
#line 117 "girwriter.c"
}


static void _vala_code_node_unref0_ (gpointer var) {
#line 13 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      (var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL));
#line 124 "girwriter.c"
}


static void _g_list_free__vala_code_node_unref0_ (GList* self) {
#line 13 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_list_foreach (self, (GFunc) _vala_code_node_unref0_, NULL);
#line 13 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_list_free (self);
#line 133 "girwriter.c"
}


GirWriter* gir_writer_construct (GType object_type, const gchar* name) {
      GirWriter* self = NULL;
      gchar* _tmp0_;
      gchar* _tmp1_;
      gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* _tmp5_;
      const gchar* _tmp6_;
      gchar* _tmp7_;
#line 26 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (name != NULL, NULL);
#line 26 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self = (GirWriter*) vala_code_visitor_construct (object_type);
#line 27 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = g_strdup ("");
#line 27 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->enums);
#line 27 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->enums = _tmp0_;
#line 28 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = g_strdup ("");
#line 28 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->statics);
#line 28 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->statics = _tmp1_;
#line 29 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = g_strdup ("");
#line 29 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 29 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp2_;
#line 30 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = g_strdup ("");
#line 30 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->extends);
#line 30 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->extends = _tmp3_;
#line 31 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = g_strdup ("");
#line 31 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->vectors);
#line 31 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->vectors = _tmp4_;
#line 32 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = g_strdup ("");
#line 32 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classname);
#line 32 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->classname = _tmp5_;
#line 33 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = name;
#line 33 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = g_strdup (_tmp6_);
#line 33 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->modulename);
#line 33 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->modulename = _tmp7_;
#line 34 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      __g_list_free__g_free0_0 (self->includefiles);
#line 34 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->includefiles = NULL;
#line 26 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return self;
#line 201 "girwriter.c"
}


GirWriter* gir_writer_new (const gchar* name) {
#line 26 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return gir_writer_construct (TYPE_GIR_WRITER, name);
#line 208 "girwriter.c"
}


static gchar* gir_writer_get_alias (GirWriter* self, const gchar* name) {
      gchar* result = NULL;
      const gchar* _tmp0_;
      gchar* _tmp1_;
      gchar* oname;
      const gchar* _tmp2_;
      const gchar* _tmp3_;
      GQuark _tmp5_ = 0U;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label0 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label1 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label2 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label3 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label4 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp4_label5 = 0;
#line 232 "girwriter.c"
      const gchar* _tmp6_;
      const gchar* _tmp7_;
      const gchar* _tmp14_;
      gchar* _tmp15_;
#line 37 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (self != NULL, NULL);
#line 37 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (name != NULL, NULL);
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = name;
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = g_strdup (_tmp0_);
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      oname = _tmp1_;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = name;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = _tmp2_;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("cmd")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 257 "girwriter.c"
                  default:
                  {
#line 45 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "_cmd";
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 264 "girwriter.c"
                  }
            }
      } else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("def")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 270 "girwriter.c"
                  default:
                  {
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "_def";
#line 49 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 277 "girwriter.c"
                  }
            }
      } else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("print")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 283 "girwriter.c"
                  default:
                  {
#line 51 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "_print";
#line 52 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 290 "girwriter.c"
                  }
            }
      } else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("del")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 296 "girwriter.c"
                  default:
                  {
#line 54 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "_del";
#line 55 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 303 "girwriter.c"
                  }
            }
      } else if (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("from")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 309 "girwriter.c"
                  default:
                  {
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "_from";
#line 58 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 316 "girwriter.c"
                  }
            }
      } else if (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("continue")))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 322 "girwriter.c"
                  default:
                  {
#line 60 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        name = "cont";
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 329 "girwriter.c"
                  }
            }
      }
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = name;
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = oname;
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (g_strcmp0 (_tmp6_, _tmp7_) != 0) {
#line 339 "girwriter.c"
            const gchar* _tmp8_;
            const gchar* _tmp9_;
            const gchar* _tmp10_;
            const gchar* _tmp11_;
            gchar* _tmp12_ = NULL;
            gchar* _tmp13_;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp8_ = self->priv->classname;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp9_ = oname;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp10_ = self->priv->classname;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp11_ = name;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp12_ = g_strdup_printf ("%s.%s method renamed to %s.%s", _tmp8_, _tmp9_, _tmp10_, _tmp11_);
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp13_ = _tmp12_;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            valabind_compiler_warning (_tmp13_);
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp13_);
#line 362 "girwriter.c"
      }
#line 66 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp14_ = name;
#line 66 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = g_strdup (_tmp14_);
#line 66 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      result = _tmp15_;
#line 66 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (oname);
#line 66 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return result;
#line 374 "girwriter.c"
}


static glong string_strnlen (gchar* str, glong maxlen) {
      glong result = 0L;
      gchar* _tmp0_;
      glong _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* end;
      gchar* _tmp3_;
#line 1301 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp0_ = str;
#line 1301 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp1_ = maxlen;
#line 1301 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
#line 1301 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      end = _tmp2_;
#line 1302 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp3_ = end;
#line 1302 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp3_ == NULL) {
#line 397 "girwriter.c"
            glong _tmp4_;
#line 1303 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp4_ = maxlen;
#line 1303 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            result = _tmp4_;
#line 1303 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return result;
#line 405 "girwriter.c"
      } else {
            gchar* _tmp5_;
            gchar* _tmp6_;
#line 1305 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp5_ = end;
#line 1305 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp6_ = str;
#line 1305 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            result = (glong) (_tmp5_ - _tmp6_);
#line 1305 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return result;
#line 417 "girwriter.c"
      }
}


static gchar* string_substring (const gchar* self, glong offset, glong len) {
      gchar* result = NULL;
      glong string_length = 0L;
      gboolean _tmp0_ = FALSE;
      glong _tmp1_;
      gboolean _tmp3_;
      glong _tmp9_;
      glong _tmp15_;
      glong _tmp18_;
      glong _tmp19_;
      glong _tmp20_;
      glong _tmp21_;
      glong _tmp22_;
      gchar* _tmp23_ = NULL;
#line 1312 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (self != NULL, NULL);
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp1_ = offset;
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp1_ >= ((glong) 0)) {
#line 442 "girwriter.c"
            glong _tmp2_;
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp2_ = len;
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp0_ = _tmp2_ >= ((glong) 0);
#line 448 "girwriter.c"
      } else {
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp0_ = FALSE;
#line 452 "girwriter.c"
      }
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp3_ = _tmp0_;
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp3_) {
#line 458 "girwriter.c"
            glong _tmp4_;
            glong _tmp5_;
            glong _tmp6_ = 0L;
#line 1316 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp4_ = offset;
#line 1316 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp5_ = len;
#line 1316 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
#line 1316 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            string_length = _tmp6_;
#line 470 "girwriter.c"
      } else {
            gint _tmp7_;
            gint _tmp8_;
#line 1318 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp7_ = strlen (self);
#line 1318 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp8_ = _tmp7_;
#line 1318 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            string_length = (glong) _tmp8_;
#line 480 "girwriter.c"
      }
#line 1321 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp9_ = offset;
#line 1321 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp9_ < ((glong) 0)) {
#line 486 "girwriter.c"
            glong _tmp10_;
            glong _tmp11_;
            glong _tmp12_;
#line 1322 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp10_ = string_length;
#line 1322 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp11_ = offset;
#line 1322 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            offset = _tmp10_ + _tmp11_;
#line 1323 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp12_ = offset;
#line 1323 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
#line 500 "girwriter.c"
      } else {
            glong _tmp13_;
            glong _tmp14_;
#line 1325 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp13_ = offset;
#line 1325 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp14_ = string_length;
#line 1325 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
#line 510 "girwriter.c"
      }
#line 1327 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp15_ = len;
#line 1327 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp15_ < ((glong) 0)) {
#line 516 "girwriter.c"
            glong _tmp16_;
            glong _tmp17_;
#line 1328 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp16_ = string_length;
#line 1328 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp17_ = offset;
#line 1328 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            len = _tmp16_ - _tmp17_;
#line 525 "girwriter.c"
      }
#line 1330 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp18_ = offset;
#line 1330 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp19_ = len;
#line 1330 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp20_ = string_length;
#line 1330 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
#line 1331 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp21_ = offset;
#line 1331 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp22_ = len;
#line 1331 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
#line 1331 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      result = _tmp23_;
#line 1331 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      return result;
#line 545 "girwriter.c"
}


static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
      gchar* result = NULL;
      GError * _inner_error_ = NULL;
#line 1386 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (self != NULL, NULL);
#line 1386 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (old != NULL, NULL);
#line 1386 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (replacement != NULL, NULL);
#line 558 "girwriter.c"
      {
            const gchar* _tmp0_;
            gchar* _tmp1_ = NULL;
            gchar* _tmp2_;
            GRegex* _tmp3_;
            GRegex* _tmp4_;
            GRegex* regex;
            GRegex* _tmp5_;
            const gchar* _tmp6_;
            gchar* _tmp7_ = NULL;
            gchar* _tmp8_;
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp0_ = old;
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp1_ = g_regex_escape_string (_tmp0_, -1);
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp2_ = _tmp1_;
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp4_ = _tmp3_;
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _g_free0 (_tmp2_);
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            regex = _tmp4_;
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            if (_inner_error_ != NULL) {
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  if (_inner_error_->domain == G_REGEX_ERROR) {
#line 588 "girwriter.c"
                        goto __catch2_g_regex_error;
                  }
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  g_clear_error (&_inner_error_);
#line 1388 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  return NULL;
#line 597 "girwriter.c"
            }
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp5_ = regex;
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp6_ = replacement;
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp7_ = g_regex_replace_literal (_tmp5_, self, (gssize) (-1), 0, _tmp6_, 0, &_inner_error_);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp8_ = _tmp7_;
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            if (_inner_error_ != NULL) {
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  _g_regex_unref0 (regex);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  if (_inner_error_->domain == G_REGEX_ERROR) {
#line 613 "girwriter.c"
                        goto __catch2_g_regex_error;
                  }
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  _g_regex_unref0 (regex);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  g_clear_error (&_inner_error_);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
                  return NULL;
#line 624 "girwriter.c"
            }
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            result = _tmp8_;
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _g_regex_unref0 (regex);
#line 1389 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return result;
#line 632 "girwriter.c"
      }
      goto __finally2;
      __catch2_g_regex_error:
      {
            GError* e = NULL;
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            e = _inner_error_;
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _inner_error_ = NULL;
#line 1391 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            g_assert_not_reached ();
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _g_error_free0 (e);
#line 646 "girwriter.c"
      }
      __finally2:
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_inner_error_ != NULL) {
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            g_clear_error (&_inner_error_);
#line 1387 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return NULL;
#line 657 "girwriter.c"
      }
}


static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
      gint result = 0;
      gint _tmp0_;
      const gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _result_;
      gchar* _tmp3_;
#line 1055 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (self != NULL, 0);
#line 1055 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (needle != NULL, 0);
#line 1056 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp0_ = start_index;
#line 1056 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp1_ = needle;
#line 1056 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
#line 1056 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _result_ = _tmp2_;
#line 1058 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp3_ = _result_;
#line 1058 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp3_ != NULL) {
#line 685 "girwriter.c"
            gchar* _tmp4_;
#line 1059 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp4_ = _result_;
#line 1059 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            result = (gint) (_tmp4_ - ((gchar*) self));
#line 1059 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return result;
#line 693 "girwriter.c"
      } else {
#line 1061 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            result = -1;
#line 1061 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            return result;
#line 699 "girwriter.c"
      }
}


static gchar* string_slice (const gchar* self, glong start, glong end) {
      gchar* result = NULL;
      gint _tmp0_;
      gint _tmp1_;
      glong string_length;
      glong _tmp2_;
      glong _tmp5_;
      gboolean _tmp8_ = FALSE;
      glong _tmp9_;
      gboolean _tmp12_;
      gboolean _tmp13_ = FALSE;
      glong _tmp14_;
      gboolean _tmp17_;
      glong _tmp18_;
      glong _tmp19_;
      glong _tmp20_;
      glong _tmp21_;
      glong _tmp22_;
      gchar* _tmp23_ = NULL;
#line 1334 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (self != NULL, NULL);
#line 1335 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp0_ = strlen (self);
#line 1335 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp1_ = _tmp0_;
#line 1335 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      string_length = (glong) _tmp1_;
#line 1336 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp2_ = start;
#line 1336 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp2_ < ((glong) 0)) {
#line 735 "girwriter.c"
            glong _tmp3_;
            glong _tmp4_;
#line 1337 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp3_ = string_length;
#line 1337 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp4_ = start;
#line 1337 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            start = _tmp3_ + _tmp4_;
#line 744 "girwriter.c"
      }
#line 1339 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp5_ = end;
#line 1339 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp5_ < ((glong) 0)) {
#line 750 "girwriter.c"
            glong _tmp6_;
            glong _tmp7_;
#line 1340 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp6_ = string_length;
#line 1340 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp7_ = end;
#line 1340 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            end = _tmp6_ + _tmp7_;
#line 759 "girwriter.c"
      }
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp9_ = start;
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp9_ >= ((glong) 0)) {
#line 765 "girwriter.c"
            glong _tmp10_;
            glong _tmp11_;
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp10_ = start;
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp11_ = string_length;
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp8_ = _tmp10_ <= _tmp11_;
#line 774 "girwriter.c"
      } else {
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp8_ = FALSE;
#line 778 "girwriter.c"
      }
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp12_ = _tmp8_;
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (_tmp12_, NULL);
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp14_ = end;
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      if (_tmp14_ >= ((glong) 0)) {
#line 788 "girwriter.c"
            glong _tmp15_;
            glong _tmp16_;
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp15_ = end;
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp16_ = string_length;
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp13_ = _tmp15_ <= _tmp16_;
#line 797 "girwriter.c"
      } else {
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp13_ = FALSE;
#line 801 "girwriter.c"
      }
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp17_ = _tmp13_;
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (_tmp17_, NULL);
#line 1344 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp18_ = start;
#line 1344 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp19_ = end;
#line 1344 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL);
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp20_ = start;
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp21_ = end;
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp22_ = start;
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_));
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      result = _tmp23_;
#line 1345 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
      return result;
#line 825 "girwriter.c"
}


static gchar* gir_writer_get_ctype (GirWriter* self, const gchar* _type) {
      gchar* result = NULL;
      const gchar* _tmp0_;
      gchar* _tmp1_;
      gchar* type;
      gchar* iter_type;
      const gchar* _tmp2_;
      const gchar* _tmp3_;
      const gchar* _tmp4_;
      gboolean _tmp5_ = FALSE;
      const gchar* _tmp13_;
      gchar* _tmp14_ = NULL;
      const gchar* _tmp15_;
      gboolean _tmp16_ = FALSE;
      const gchar* _tmp44_;
      gchar* _tmp45_ = NULL;
      const gchar* _tmp46_;
      const gchar* _tmp47_;
      GQuark _tmp49_ = 0U;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label0 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label1 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label2 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label3 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label4 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label5 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label6 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label7 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label8 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label9 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label10 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label11 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label12 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label13 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label14 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label15 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label16 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label17 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label18 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label19 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label20 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label21 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label22 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label23 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label24 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label25 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label26 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label27 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label28 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label29 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label30 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label31 = 0;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      static GQuark _tmp48_label32 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (self != NULL, NULL);
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (_type != NULL, NULL);
#line 70 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = _type;
#line 70 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = g_strdup (_tmp0_);
#line 70 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp1_;
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      iter_type = NULL;
#line 72 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = type;
#line 72 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (g_strcmp0 (_tmp2_, "null") == 0) {
#line 73 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            valabind_compiler_error ("Cannot resolve type");
#line 932 "girwriter.c"
      }
#line 74 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = type;
#line 74 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = self->priv->nspace;
#line 74 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = g_str_has_prefix (_tmp3_, _tmp4_);
#line 74 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp5_) {
#line 942 "girwriter.c"
            const gchar* _tmp6_;
            const gchar* _tmp7_;
            gint _tmp8_;
            gint _tmp9_;
            gchar* _tmp10_ = NULL;
            gchar* _tmp11_;
            gchar* _tmp12_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp6_ = type;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp7_ = self->priv->nspace;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp8_ = strlen (_tmp7_);
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp9_ = _tmp8_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp10_ = string_substring (_tmp6_, (glong) _tmp9_, (glong) (-1));
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp11_ = _tmp10_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp12_ = g_strconcat (_tmp11_, "*", NULL);
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (type);
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            type = _tmp12_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp11_);
#line 970 "girwriter.c"
      }
#line 76 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp13_ = type;
#line 76 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp14_ = string_replace (_tmp13_, ".", "");
#line 76 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (type);
#line 76 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp14_;
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = type;
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = gir_writer_is_generic (self, _tmp15_);
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp16_) {
#line 986 "girwriter.c"
            const gchar* _tmp17_;
            gint _tmp18_ = 0;
            gint ptr;
            gchar* _tmp19_ = NULL;
            gint _tmp20_;
            const gchar* _tmp29_;
            gchar* _tmp30_;
            const gchar* _tmp31_;
            gchar* _tmp32_ = NULL;
            const gchar* _tmp33_;
            gchar* _tmp34_ = NULL;
            const gchar* _tmp35_;
            const gchar* _tmp36_;
            gchar* _tmp37_ = NULL;
            const gchar* _tmp38_;
            gchar** _tmp39_;
            gchar** _tmp40_ = NULL;
            gchar** _tmp41_;
            gint _tmp41__length1;
            const gchar* _tmp42_;
            gchar* _tmp43_;
#line 78 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp17_ = type;
#line 78 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp18_ = string_index_of (_tmp17_, "<", 0);
#line 78 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            ptr = _tmp18_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp20_ = ptr;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            if (_tmp20_ == (-1)) {
#line 1018 "girwriter.c"
                  const gchar* _tmp21_;
                  gchar* _tmp22_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp21_ = type;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp22_ = g_strdup (_tmp21_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp19_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp19_ = _tmp22_;
#line 1029 "girwriter.c"
            } else {
                  const gchar* _tmp23_;
                  gint _tmp24_;
                  const gchar* _tmp25_;
                  gint _tmp26_;
                  gint _tmp27_;
                  gchar* _tmp28_ = NULL;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp23_ = type;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp24_ = ptr;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp25_ = type;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp26_ = strlen (_tmp25_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp27_ = _tmp26_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp28_ = string_slice (_tmp23_, (glong) _tmp24_, (glong) _tmp27_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp19_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp19_ = _tmp28_;
#line 1053 "girwriter.c"
            }
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp29_ = _tmp19_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp30_ = g_strdup (_tmp29_);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (iter_type);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            iter_type = _tmp30_;
#line 80 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp31_ = iter_type;
#line 80 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp32_ = string_replace (_tmp31_, "<", "");
#line 80 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (iter_type);
#line 80 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            iter_type = _tmp32_;
#line 81 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp33_ = iter_type;
#line 81 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp34_ = string_replace (_tmp33_, ">", "");
#line 81 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (iter_type);
#line 81 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            iter_type = _tmp34_;
#line 82 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp35_ = iter_type;
#line 82 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp36_ = self->priv->nspace;
#line 82 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp37_ = string_replace (_tmp35_, _tmp36_, "");
#line 82 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (iter_type);
#line 82 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            iter_type = _tmp37_;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp38_ = type;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp40_ = _tmp39_ = g_strsplit (_tmp38_, "<", 2);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp41_ = _tmp40_;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp41__length1 = _vala_array_length (_tmp39_);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp42_ = _tmp41_[0];
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp43_ = g_strdup (_tmp42_);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (type);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            type = _tmp43_;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp41_ = (_vala_array_free (_tmp41_, _tmp41__length1, (GDestroyNotify) g_free), NULL);
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp19_);
#line 1109 "girwriter.c"
      }
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp44_ = type;
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp45_ = string_replace (_tmp44_, "?", "");
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (type);
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp45_;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp46_ = type;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp47_ = _tmp46_;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp49_ = (NULL == _tmp47_) ? 0 : g_quark_from_string (_tmp47_);
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp49_ == ((0 != _tmp48_label0) ? _tmp48_label0 : (_tmp48_label0 = g_quark_from_static_string ("const gchar*")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1129 "girwriter.c"
                  default:
                  {
                        gchar* _tmp50_;
#line 89 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp50_ = g_strdup ("const char*");
#line 89 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp50_;
#line 89 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 89 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 89 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1143 "girwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label1) ? _tmp48_label1 : (_tmp48_label1 = g_quark_from_static_string ("G")))) || (_tmp49_ == ((0 != _tmp48_label2) ? _tmp48_label2 : (_tmp48_label2 = g_quark_from_static_string ("gconstpointer"))))) || (_tmp49_ == ((0 != _tmp48_label3) ? _tmp48_label3 : (_tmp48_label3 = g_quark_from_static_string ("gpointer"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1149 "girwriter.c"
                  default:
                  {
                        gchar* _tmp51_;
#line 93 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp51_ = g_strdup ("void*");
#line 93 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp51_;
#line 93 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 93 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 93 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1163 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label4) ? _tmp48_label4 : (_tmp48_label4 = g_quark_from_static_string ("gdouble")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1169 "girwriter.c"
                  default:
                  {
                        gchar* _tmp52_;
#line 95 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp52_ = g_strdup ("double");
#line 95 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp52_;
#line 95 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 95 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 95 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1183 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label5) ? _tmp48_label5 : (_tmp48_label5 = g_quark_from_static_string ("gfloat")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1189 "girwriter.c"
                  default:
                  {
                        gchar* _tmp53_;
#line 97 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp53_ = g_strdup ("float");
#line 97 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp53_;
#line 97 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 97 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 97 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1203 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label6) ? _tmp48_label6 : (_tmp48_label6 = g_quark_from_static_string ("break")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1209 "girwriter.c"
                  default:
                  {
                        gchar* _tmp54_;
#line 99 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp54_ = g_strdup ("_break");
#line 99 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp54_;
#line 99 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 99 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 99 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1223 "girwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label7) ? _tmp48_label7 : (_tmp48_label7 = g_quark_from_static_string ("ut8")))) || (_tmp49_ == ((0 != _tmp48_label8) ? _tmp48_label8 : (_tmp48_label8 = g_quark_from_static_string ("uint8"))))) || (_tmp49_ == ((0 != _tmp48_label9) ? _tmp48_label9 : (_tmp48_label9 = g_quark_from_static_string ("guint8"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1229 "girwriter.c"
                  default:
                  {
                        gchar* _tmp55_;
#line 103 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp55_ = g_strdup ("unsigned char");
#line 103 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp55_;
#line 103 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 103 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 103 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1243 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label10) ? _tmp48_label10 : (_tmp48_label10 = g_quark_from_static_string ("gchar**")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1249 "girwriter.c"
                  default:
                  {
                        gchar* _tmp56_;
#line 105 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp56_ = g_strdup ("char **");
#line 105 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp56_;
#line 105 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 105 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 105 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1263 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label11) ? _tmp48_label11 : (_tmp48_label11 = g_quark_from_static_string ("gchar")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1269 "girwriter.c"
                  default:
                  {
                        gchar* _tmp57_;
#line 107 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp57_ = g_strdup ("char");
#line 107 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp57_;
#line 107 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 107 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 107 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1283 "girwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label12) ? _tmp48_label12 : (_tmp48_label12 = g_quark_from_static_string ("gchar*")))) || (_tmp49_ == ((0 != _tmp48_label13) ? _tmp48_label13 : (_tmp48_label13 = g_quark_from_static_string ("string"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1289 "girwriter.c"
                  default:
                  {
                        gchar* _tmp58_;
#line 110 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp58_ = g_strdup ("string");
#line 110 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp58_;
#line 110 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 110 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 110 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1303 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label14) ? _tmp48_label14 : (_tmp48_label14 = g_quark_from_static_string ("gint")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1309 "girwriter.c"
                  default:
                  {
                        gchar* _tmp59_;
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp59_ = g_strdup ("int");
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp59_;
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1323 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label15) ? _tmp48_label15 : (_tmp48_label15 = g_quark_from_static_string ("glong")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1329 "girwriter.c"
                  default:
                  {
                        gchar* _tmp60_;
#line 115 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp60_ = g_strdup ("long");
#line 115 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp60_;
#line 115 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 115 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 115 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1343 "girwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label16) ? _tmp48_label16 : (_tmp48_label16 = g_quark_from_static_string ("st64")))) || (_tmp49_ == ((0 != _tmp48_label17) ? _tmp48_label17 : (_tmp48_label17 = g_quark_from_static_string ("int64"))))) || (_tmp49_ == ((0 != _tmp48_label18) ? _tmp48_label18 : (_tmp48_label18 = g_quark_from_static_string ("gint64"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1349 "girwriter.c"
                  default:
                  {
                        gchar* _tmp61_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp61_ = g_strdup ("long long");
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp61_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1363 "girwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label19) ? _tmp48_label19 : (_tmp48_label19 = g_quark_from_static_string ("ut64")))) || (_tmp49_ == ((0 != _tmp48_label20) ? _tmp48_label20 : (_tmp48_label20 = g_quark_from_static_string ("uint64"))))) || (_tmp49_ == ((0 != _tmp48_label21) ? _tmp48_label21 : (_tmp48_label21 = g_quark_from_static_string ("guint64"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1369 "girwriter.c"
                  default:
                  {
                        gchar* _tmp62_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp62_ = g_strdup ("unsigned long long");
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp62_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1383 "girwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label22) ? _tmp48_label22 : (_tmp48_label22 = g_quark_from_static_string ("uint8*")))) || (_tmp49_ == ((0 != _tmp48_label23) ? _tmp48_label23 : (_tmp48_label23 = g_quark_from_static_string ("guint8*"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1389 "girwriter.c"
                  default:
                  {
                        gchar* _tmp63_;
#line 127 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp63_ = g_strdup ("unsigned char*");
#line 127 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp63_;
#line 127 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 127 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 127 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1403 "girwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label24) ? _tmp48_label24 : (_tmp48_label24 = g_quark_from_static_string ("guint16")))) || (_tmp49_ == ((0 != _tmp48_label25) ? _tmp48_label25 : (_tmp48_label25 = g_quark_from_static_string ("uint16"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1409 "girwriter.c"
                  default:
                  {
                        gchar* _tmp64_;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp64_ = g_strdup ("unsigned short");
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp64_;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1423 "girwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label26) ? _tmp48_label26 : (_tmp48_label26 = g_quark_from_static_string ("ut32")))) || (_tmp49_ == ((0 != _tmp48_label27) ? _tmp48_label27 : (_tmp48_label27 = g_quark_from_static_string ("uint32"))))) || (_tmp49_ == ((0 != _tmp48_label28) ? _tmp48_label28 : (_tmp48_label28 = g_quark_from_static_string ("guint32"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1429 "girwriter.c"
                  default:
                  {
                        gchar* _tmp65_;
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp65_ = g_strdup ("unsigned int");
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp65_;
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1443 "girwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label29) ? _tmp48_label29 : (_tmp48_label29 = g_quark_from_static_string ("bool")))) || (_tmp49_ == ((0 != _tmp48_label30) ? _tmp48_label30 : (_tmp48_label30 = g_quark_from_static_string ("gboolean"))))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1449 "girwriter.c"
                  default:
                  {
                        gchar* _tmp66_;
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp66_ = g_strdup ("gboolean");
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        result = _tmp66_;
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (iter_type);
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (type);
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        return result;
#line 1463 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label31) ? _tmp48_label31 : (_tmp48_label31 = g_quark_from_static_string ("RFList")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1469 "girwriter.c"
                  default:
                  {
                        const gchar* _tmp67_;
#line 139 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp67_ = iter_type;
#line 139 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (_tmp67_ != NULL) {
#line 1477 "girwriter.c"
                              const gchar* _tmp68_;
                              gchar* _tmp69_;
                              gchar* _tmp70_;
                              gchar* _tmp71_;
                              gchar* _tmp72_;
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp68_ = iter_type;
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp69_ = g_strconcat ("std::vector<", _tmp68_, NULL);
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp70_ = _tmp69_;
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp71_ = g_strconcat (_tmp70_, ">", NULL);
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp72_ = _tmp71_;
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (_tmp70_);
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              result = _tmp72_;
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (iter_type);
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (type);
#line 140 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              return result;
#line 1503 "girwriter.c"
                        }
#line 141 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 1507 "girwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label32) ? _tmp48_label32 : (_tmp48_label32 = g_quark_from_static_string ("RList")))) {
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            switch (0) {
#line 1513 "girwriter.c"
                  default:
                  {
                        const gchar* _tmp73_;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp73_ = iter_type;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (_tmp73_ != NULL) {
#line 1521 "girwriter.c"
                              const gchar* _tmp74_;
                              gchar* _tmp75_;
                              gchar* _tmp76_;
                              gchar* _tmp77_;
                              gchar* _tmp78_;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp74_ = iter_type;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp75_ = g_strconcat ("std::vector<", _tmp74_, NULL);
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp76_ = _tmp75_;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp77_ = g_strconcat (_tmp76_, ">", NULL);
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp78_ = _tmp77_;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (_tmp76_);
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              result = _tmp78_;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (iter_type);
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (type);
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              return result;
#line 1547 "girwriter.c"
                        }
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 1551 "girwriter.c"
                  }
            }
      }
#line 147 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      result = type;
#line 147 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (iter_type);
#line 147 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return result;
#line 1561 "girwriter.c"
}


static gboolean gir_writer_is_target_file (GirWriter* self, const gchar* path) {
      gboolean result = FALSE;
      gchar** _tmp0_;
      gint _tmp0__length1;
#line 150 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (self != NULL, FALSE);
#line 150 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (path != NULL, FALSE);
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = self->files;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0__length1 = self->files_length1;
#line 1577 "girwriter.c"
      {
            gchar** file_collection = NULL;
            gint file_collection_length1 = 0;
            gint _file_collection_size_ = 0;
            gint file_it = 0;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            file_collection = _tmp0_;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            file_collection_length1 = _tmp0__length1;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            for (file_it = 0; file_it < _tmp0__length1; file_it = file_it + 1) {
#line 1589 "girwriter.c"
                  gchar* _tmp1_;
                  gchar* file = NULL;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp1_ = g_strdup (file_collection[file_it]);
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  file = _tmp1_;
#line 1596 "girwriter.c"
                  {
                        const gchar* _tmp2_;
                        const gchar* _tmp3_;
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp2_ = file;
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp3_ = path;
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (g_strcmp0 (_tmp2_, _tmp3_) == 0) {
#line 153 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              result = TRUE;
#line 153 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (file);
#line 153 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              return result;
#line 1612 "girwriter.c"
                        }
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (file);
#line 1616 "girwriter.c"
                  }
            }
      }
#line 154 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      result = FALSE;
#line 154 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return result;
#line 1624 "girwriter.c"
}


static void gir_writer_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source) {
      GirWriter * self;
      ValaSourceFile* _tmp0_;
      const gchar* _tmp1_;
      const gchar* _tmp2_;
      gboolean _tmp3_ = FALSE;
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self = (GirWriter*) base;
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (source != NULL);
#line 158 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = source;
#line 158 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_source_file_get_filename (_tmp0_);
#line 158 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = _tmp1_;
#line 158 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = gir_writer_is_target_file (self, _tmp2_);
#line 158 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp3_) {
#line 1648 "girwriter.c"
            ValaSourceFile* _tmp4_;
#line 159 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp4_ = source;
#line 159 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            vala_source_file_accept_children (_tmp4_, (ValaCodeVisitor*) self);
#line 1654 "girwriter.c"
      }
}


void gir_writer_process_includes (GirWriter* self, ValaSymbol* s) {
      ValaSymbol* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar** _tmp3_;
      gchar** _tmp4_ = NULL;
      gchar** _tmp5_;
      gint _tmp5__length1;
#line 162 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 162 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (s != NULL);
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = s;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_ccode_base_module_get_ccode_header_filenames (_tmp0_);
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = _tmp1_;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = _tmp3_ = g_strsplit (_tmp2_, ",", 0);
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = _tmp4_;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5__length1 = _vala_array_length (_tmp3_);
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp2_);
#line 1685 "girwriter.c"
      {
            gchar** foo_collection = NULL;
            gint foo_collection_length1 = 0;
            gint _foo_collection_size_ = 0;
            gint foo_it = 0;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            foo_collection = _tmp5_;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            foo_collection_length1 = _tmp5__length1;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            for (foo_it = 0; foo_it < _tmp5__length1; foo_it = foo_it + 1) {
#line 1697 "girwriter.c"
                  gchar* _tmp6_;
                  gchar* foo = NULL;
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp6_ = g_strdup (foo_collection[foo_it]);
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  foo = _tmp6_;
#line 1704 "girwriter.c"
                  {
                        gboolean include;
                        GList* _tmp7_;
                        gboolean _tmp11_;
#line 164 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        include = TRUE;
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp7_ = self->includefiles;
#line 1713 "girwriter.c"
                        {
                              GList* inc_collection = NULL;
                              GList* inc_it = NULL;
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              inc_collection = _tmp7_;
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              for (inc_it = inc_collection; inc_it != NULL; inc_it = inc_it->next) {
#line 1721 "girwriter.c"
                                    gchar* _tmp8_;
                                    gchar* inc = NULL;
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                    _tmp8_ = g_strdup ((const gchar*) inc_it->data);
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                    inc = _tmp8_;
#line 1728 "girwriter.c"
                                    {
                                          const gchar* _tmp9_;
                                          const gchar* _tmp10_;
#line 166 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                          _tmp9_ = inc;
#line 166 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                          _tmp10_ = foo;
#line 166 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                          if (g_strcmp0 (_tmp9_, _tmp10_) == 0) {
#line 167 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                                include = FALSE;
#line 168 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                                _g_free0 (inc);
#line 168 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                                break;
#line 1744 "girwriter.c"
                                          }
#line 165 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                                          _g_free0 (inc);
#line 1748 "girwriter.c"
                                    }
                              }
                        }
#line 171 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp11_ = include;
#line 171 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (_tmp11_) {
#line 1756 "girwriter.c"
                              const gchar* _tmp12_;
                              gchar* _tmp13_;
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp12_ = foo;
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp13_ = g_strdup (_tmp12_);
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              self->includefiles = g_list_prepend (self->includefiles, _tmp13_);
#line 1765 "girwriter.c"
                        }
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (foo);
#line 1769 "girwriter.c"
                  }
            }
#line 163 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            foo_collection = (_vala_array_free (foo_collection, foo_collection_length1, (GDestroyNotify) g_free), NULL);
#line 1774 "girwriter.c"
      }
}


void gir_writer_walk_field (GirWriter* self, ValaField* f) {
      ValaField* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* name;
      ValaField* _tmp2_;
      ValaDataType* _tmp3_;
      ValaDataType* _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* type;
      const gchar* _tmp6_;
      gchar* _tmp7_ = NULL;
      const gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      gchar* _tmp11_;
      gchar* _tmp12_;
      const gchar* _tmp13_;
      gchar* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp16_;
      gchar* _tmp17_;
      gchar* _tmp18_;
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (f != NULL);
#line 177 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = f;
#line 177 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp0_);
#line 177 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      name = _tmp1_;
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = f;
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = vala_variable_get_variable_type ((ValaVariable*) _tmp2_);
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = _tmp3_;
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = vala_code_node_to_string ((ValaCodeNode*) _tmp4_);
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp5_;
#line 179 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = type;
#line 179 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = gir_writer_get_ctype (self, _tmp6_);
#line 179 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (type);
#line 179 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp7_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = self->priv->externs;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp9_ = g_strconcat ("    <field name=\"", name, NULL);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp10_ = _tmp9_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp11_ = g_strconcat (_tmp10_, "\" type=\"", NULL);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp12_ = _tmp11_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp13_ = type;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = _tmp14_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = g_strconcat (_tmp15_, "\"/>\n", NULL);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp17_ = _tmp16_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp18_ = g_strconcat (_tmp8_, _tmp17_, NULL);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp18_;
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp17_);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp15_);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp12_);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp10_);
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (type);
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (name);
#line 1867 "girwriter.c"
}


void gir_writer_walk_struct (GirWriter* self, const gchar* pfx, ValaStruct* s) {
      ValaStruct* _tmp0_;
      const gchar* _tmp1_;
      const gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* name;
      const gchar* _tmp4_;
      const gchar* _tmp5_;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      const gchar* _tmp35_;
      gchar* _tmp36_;
#line 183 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 183 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (pfx != NULL);
#line 183 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (s != NULL);
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = s;
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_symbol_get_name ((ValaSymbol*) _tmp0_);
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = _tmp1_;
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = g_strdup (_tmp2_);
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      name = _tmp3_;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = self->priv->externs;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = name;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = g_strconcat ("  <struct name=\"", _tmp5_, NULL);
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = _tmp6_;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = g_strconcat (_tmp7_, "\">\n", NULL);
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp9_ = _tmp8_;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp10_ = g_strconcat (_tmp4_, _tmp9_, NULL);
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp10_;
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp9_);
#line 185 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp7_);
#line 1924 "girwriter.c"
      {
            ValaStruct* _tmp11_;
            ValaList* _tmp12_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp13_;
            gint _tmp14_;
            gint _tmp15_;
            gint _m_size;
            gint _m_index;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp11_ = s;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp12_ = vala_struct_get_methods (_tmp11_);
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_list = _tmp12_;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp13_ = _m_list;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp14_ = vala_collection_get_size ((ValaCollection*) _tmp13_);
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp15_ = _tmp14_;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_size = _tmp15_;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_index = -1;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 1952 "girwriter.c"
                  gint _tmp16_;
                  gint _tmp17_;
                  gint _tmp18_;
                  ValaList* _tmp19_;
                  gint _tmp20_;
                  gpointer _tmp21_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp22_;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp16_ = _m_index;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _m_index = _tmp16_ + 1;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp17_ = _m_index;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp18_ = _m_size;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp17_ < _tmp18_)) {
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 1973 "girwriter.c"
                  }
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp19_ = _m_list;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp20_ = _m_index;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp21_ = vala_list_get (_tmp19_, _tmp20_);
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  m = (ValaMethod*) _tmp21_;
#line 188 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp22_ = m;
#line 188 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_method (self, _tmp22_);
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (m);
#line 1989 "girwriter.c"
            }
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 1993 "girwriter.c"
      }
      {
            ValaStruct* _tmp23_;
            ValaList* _tmp24_ = NULL;
            ValaList* _f_list;
            ValaList* _tmp25_;
            gint _tmp26_;
            gint _tmp27_;
            gint _f_size;
            gint _f_index;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp23_ = s;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp24_ = vala_struct_get_fields (_tmp23_);
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_list = _tmp24_;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp25_ = _f_list;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp26_ = vala_collection_get_size ((ValaCollection*) _tmp25_);
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp27_ = _tmp26_;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_size = _tmp27_;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_index = -1;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2022 "girwriter.c"
                  gint _tmp28_;
                  gint _tmp29_;
                  gint _tmp30_;
                  ValaList* _tmp31_;
                  gint _tmp32_;
                  gpointer _tmp33_ = NULL;
                  ValaField* f;
                  ValaField* _tmp34_;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp28_ = _f_index;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _f_index = _tmp28_ + 1;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp29_ = _f_index;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp30_ = _f_size;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp29_ < _tmp30_)) {
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2043 "girwriter.c"
                  }
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp31_ = _f_list;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp32_ = _f_index;
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp33_ = vala_list_get (_tmp31_, _tmp32_);
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  f = (ValaField*) _tmp33_;
#line 190 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp34_ = f;
#line 190 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_field (self, _tmp34_);
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (f);
#line 2059 "girwriter.c"
            }
#line 189 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_f_list);
#line 2063 "girwriter.c"
      }
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp35_ = self->priv->externs;
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp36_ = g_strconcat (_tmp35_, "  </struct>\n", NULL);
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp36_;
#line 183 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (name);
#line 2075 "girwriter.c"
}


void gir_writer_walk_class (GirWriter* self, const gchar* pfx, ValaClass* c) {
      const gchar* _tmp15_;
      ValaClass* _tmp16_;
      const gchar* _tmp17_;
      const gchar* _tmp18_;
      gchar* _tmp19_;
      ValaClass* _tmp20_;
      gchar* _tmp21_ = NULL;
      ValaClass* _tmp22_;
      gboolean _tmp23_;
      const gchar* _tmp27_;
      const gchar* _tmp28_;
      gchar* _tmp29_;
      gchar* _tmp30_;
      gchar* _tmp31_;
      gchar* _tmp32_;
      gchar* _tmp33_;
      const gchar* _tmp70_;
      gchar* _tmp71_;
      gchar* _tmp72_;
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (pfx != NULL);
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (c != NULL);
#line 2105 "girwriter.c"
      {
            ValaClass* _tmp0_;
            ValaList* _tmp1_ = NULL;
            ValaList* _k_list;
            ValaList* _tmp2_;
            gint _tmp3_;
            gint _tmp4_;
            gint _k_size;
            gint _k_index;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp0_ = c;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp1_ = vala_class_get_classes (_tmp0_);
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _k_list = _tmp1_;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp2_ = _k_list;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp4_ = _tmp3_;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _k_size = _tmp4_;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _k_index = -1;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2133 "girwriter.c"
                  gint _tmp5_;
                  gint _tmp6_;
                  gint _tmp7_;
                  ValaList* _tmp8_;
                  gint _tmp9_;
                  gpointer _tmp10_ = NULL;
                  ValaClass* k;
                  ValaClass* _tmp11_;
                  const gchar* _tmp12_;
                  const gchar* _tmp13_;
                  ValaClass* _tmp14_;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp5_ = _k_index;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _k_index = _tmp5_ + 1;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp6_ = _k_index;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp7_ = _k_size;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp6_ < _tmp7_)) {
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2157 "girwriter.c"
                  }
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp8_ = _k_list;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp9_ = _k_index;
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp10_ = vala_list_get (_tmp8_, _tmp9_);
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  k = (ValaClass*) _tmp10_;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp11_ = c;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp12_ = vala_symbol_get_name ((ValaSymbol*) _tmp11_);
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp13_ = _tmp12_;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp14_ = k;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_class (self, _tmp13_, _tmp14_);
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (k);
#line 2179 "girwriter.c"
            }
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_k_list);
#line 2183 "girwriter.c"
      }
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = pfx;
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = c;
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp17_ = vala_symbol_get_name ((ValaSymbol*) _tmp16_);
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp18_ = _tmp17_;
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp19_ = g_strconcat (_tmp15_, _tmp18_, NULL);
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classname);
#line 197 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->classname = _tmp19_;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp20_ = c;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp21_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp20_);
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classcname);
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->classcname = _tmp21_;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp22_ = c;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      gir_writer_process_includes (self, (ValaSymbol*) _tmp22_);
#line 200 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp23_ = self->glib_mode;
#line 200 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp23_) {
#line 2215 "girwriter.c"
            const gchar* _tmp24_;
            const gchar* _tmp25_;
            gchar* _tmp26_ = NULL;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp24_ = self->priv->nspace;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp25_ = self->priv->classname;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp26_ = g_strdup_printf ("%s%s", _tmp24_, _tmp25_);
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (self->priv->classname);
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            self->priv->classname = _tmp26_;
#line 2229 "girwriter.c"
      }
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp27_ = self->priv->externs;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp28_ = self->priv->classname;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp29_ = g_strconcat ("  <object name=\"", _tmp28_, NULL);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp30_ = _tmp29_;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp31_ = g_strconcat (_tmp30_, "\">\n", NULL);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp32_ = _tmp31_;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp33_ = g_strconcat (_tmp27_, _tmp32_, NULL);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp33_;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp32_);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp30_);
#line 2253 "girwriter.c"
      {
            ValaClass* _tmp34_;
            ValaList* _tmp35_ = NULL;
            ValaList* _e_list;
            ValaList* _tmp36_;
            gint _tmp37_;
            gint _tmp38_;
            gint _e_size;
            gint _e_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp34_ = c;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp35_ = vala_class_get_enums (_tmp34_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_list = _tmp35_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp36_ = _e_list;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp37_ = vala_collection_get_size ((ValaCollection*) _tmp36_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp38_ = _tmp37_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_size = _tmp38_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_index = -1;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2281 "girwriter.c"
                  gint _tmp39_;
                  gint _tmp40_;
                  gint _tmp41_;
                  ValaList* _tmp42_;
                  gint _tmp43_;
                  gpointer _tmp44_ = NULL;
                  ValaEnum* e;
                  ValaEnum* _tmp45_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp39_ = _e_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _e_index = _tmp39_ + 1;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp40_ = _e_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp41_ = _e_size;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp40_ < _tmp41_)) {
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2302 "girwriter.c"
                  }
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp42_ = _e_list;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp43_ = _e_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp44_ = vala_list_get (_tmp42_, _tmp43_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  e = (ValaEnum*) _tmp44_;
#line 206 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp45_ = e;
#line 206 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_enum (self, _tmp45_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (e);
#line 2318 "girwriter.c"
            }
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_e_list);
#line 2322 "girwriter.c"
      }
      {
            ValaClass* _tmp46_;
            ValaList* _tmp47_ = NULL;
            ValaList* _f_list;
            ValaList* _tmp48_;
            gint _tmp49_;
            gint _tmp50_;
            gint _f_size;
            gint _f_index;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp46_ = c;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp47_ = vala_class_get_fields (_tmp46_);
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_list = _tmp47_;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp48_ = _f_list;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp49_ = vala_collection_get_size ((ValaCollection*) _tmp48_);
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp50_ = _tmp49_;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_size = _tmp50_;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_index = -1;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2351 "girwriter.c"
                  gint _tmp51_;
                  gint _tmp52_;
                  gint _tmp53_;
                  ValaList* _tmp54_;
                  gint _tmp55_;
                  gpointer _tmp56_ = NULL;
                  ValaField* f;
                  ValaField* _tmp57_;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp51_ = _f_index;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _f_index = _tmp51_ + 1;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp52_ = _f_index;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp53_ = _f_size;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp52_ < _tmp53_)) {
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2372 "girwriter.c"
                  }
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp54_ = _f_list;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp55_ = _f_index;
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp56_ = vala_list_get (_tmp54_, _tmp55_);
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  f = (ValaField*) _tmp56_;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp57_ = f;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_field (self, _tmp57_);
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (f);
#line 2388 "girwriter.c"
            }
#line 207 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_f_list);
#line 2392 "girwriter.c"
      }
      {
            ValaClass* _tmp58_;
            ValaList* _tmp59_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp60_;
            gint _tmp61_;
            gint _tmp62_;
            gint _m_size;
            gint _m_index;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp58_ = c;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp59_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp58_);
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_list = _tmp59_;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp60_ = _m_list;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp61_ = vala_collection_get_size ((ValaCollection*) _tmp60_);
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp62_ = _tmp61_;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_size = _tmp62_;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_index = -1;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2421 "girwriter.c"
                  gint _tmp63_;
                  gint _tmp64_;
                  gint _tmp65_;
                  ValaList* _tmp66_;
                  gint _tmp67_;
                  gpointer _tmp68_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp69_;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp63_ = _m_index;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _m_index = _tmp63_ + 1;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp64_ = _m_index;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp65_ = _m_size;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp64_ < _tmp65_)) {
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2442 "girwriter.c"
                  }
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp66_ = _m_list;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp67_ = _m_index;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp68_ = vala_list_get (_tmp66_, _tmp67_);
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  m = (ValaMethod*) _tmp68_;
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp69_ = m;
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_method (self, _tmp69_);
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (m);
#line 2458 "girwriter.c"
            }
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 2462 "girwriter.c"
      }
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp70_ = self->priv->externs;
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp71_ = g_strconcat (_tmp70_, "  </object>\n", NULL);
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp71_;
#line 223 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp72_ = g_strdup ("");
#line 223 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classname);
#line 223 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->classname = _tmp72_;
#line 2478 "girwriter.c"
}


void gir_writer_walk_enum (GirWriter* self, ValaEnum* e) {
      const gchar* _tmp0_;
      ValaEnum* _tmp1_;
      const gchar* _tmp2_;
      const gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* enumname;
      const gchar* _tmp5_;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* tmp;
      const gchar* _tmp37_;
      gchar* _tmp38_;
      const gchar* _tmp39_;
      gchar* _tmp40_;
      gchar* _tmp41_;
      const gchar* _tmp42_;
      gchar* _tmp43_;
#line 226 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 226 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (e != NULL);
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = self->priv->classname;
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = e;
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) _tmp1_);
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = _tmp2_;
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = g_strconcat (_tmp0_, _tmp3_, NULL);
#line 227 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      enumname = _tmp4_;
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = enumname;
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = g_strconcat ("  <enum name=\"", _tmp5_, NULL);
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = _tmp6_;
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = g_strconcat (_tmp7_, "\">\n", NULL);
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp9_ = _tmp8_;
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp7_);
#line 228 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      tmp = _tmp9_;
#line 2532 "girwriter.c"
      {
            ValaEnum* _tmp10_;
            ValaList* _tmp11_ = NULL;
            ValaList* _v_list;
            ValaList* _tmp12_;
            gint _tmp13_;
            gint _tmp14_;
            gint _v_size;
            gint _v_index;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp10_ = e;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp11_ = vala_enum_get_values (_tmp10_);
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _v_list = _tmp11_;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp12_ = _v_list;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp13_ = vala_collection_get_size ((ValaCollection*) _tmp12_);
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp14_ = _tmp13_;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _v_size = _tmp14_;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _v_index = -1;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 2560 "girwriter.c"
                  gint _tmp15_;
                  gint _tmp16_;
                  gint _tmp17_;
                  ValaList* _tmp18_;
                  gint _tmp19_;
                  gpointer _tmp20_ = NULL;
                  ValaEnumValue* v;
                  const gchar* _tmp21_;
                  ValaEnum* _tmp22_;
                  const gchar* _tmp23_;
                  const gchar* _tmp24_;
                  gchar* _tmp25_;
                  gchar* _tmp26_;
                  gchar* _tmp27_;
                  gchar* _tmp28_;
                  ValaEnumValue* _tmp29_;
                  gchar* _tmp30_ = NULL;
                  gchar* _tmp31_;
                  gchar* _tmp32_;
                  gchar* _tmp33_;
                  gchar* _tmp34_;
                  gchar* _tmp35_;
                  gchar* _tmp36_;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp15_ = _v_index;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _v_index = _tmp15_ + 1;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp16_ = _v_index;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp17_ = _v_size;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp16_ < _tmp17_)) {
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 2596 "girwriter.c"
                  }
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp18_ = _v_list;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp19_ = _v_index;
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp20_ = vala_list_get (_tmp18_, _tmp19_);
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  v = (ValaEnumValue*) _tmp20_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp21_ = tmp;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp22_ = e;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp23_ = vala_symbol_get_name ((ValaSymbol*) _tmp22_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp24_ = _tmp23_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp25_ = g_strconcat ("    <member name=\"", _tmp24_, NULL);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp26_ = _tmp25_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp27_ = g_strconcat (_tmp26_, "\" value=\"", NULL);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp28_ = _tmp27_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp29_ = v;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp30_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp29_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp31_ = _tmp30_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp32_ = g_strconcat (_tmp28_, _tmp31_, NULL);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp33_ = _tmp32_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp34_ = g_strconcat (_tmp33_, "\"/>\n", NULL);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp35_ = _tmp34_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp36_ = g_strconcat (_tmp21_, _tmp35_, NULL);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (tmp);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  tmp = _tmp36_;
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp35_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp33_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp31_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp28_);
#line 233 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _g_free0 (_tmp26_);
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (v);
#line 2654 "girwriter.c"
            }
#line 232 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_v_list);
#line 2658 "girwriter.c"
      }
#line 238 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp37_ = tmp;
#line 238 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp38_ = g_strconcat (_tmp37_, "  </enum>\n", NULL);
#line 238 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (tmp);
#line 238 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      tmp = _tmp38_;
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp39_ = tmp;
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp40_ = g_strconcat (_tmp39_, "\n", NULL);
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp41_ = _tmp40_;
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp42_ = self->priv->enums;
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp43_ = g_strconcat (_tmp41_, _tmp42_, NULL);
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->enums);
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->enums = _tmp43_;
#line 239 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp41_);
#line 226 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (tmp);
#line 226 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (enumname);
#line 2688 "girwriter.c"
}


static inline gboolean gir_writer_is_generic (GirWriter* self, const gchar* type) {
      gboolean result = FALSE;
      gboolean _tmp0_ = FALSE;
      gboolean _tmp1_ = FALSE;
      gboolean _tmp2_;
      gboolean _tmp5_;
      gboolean _tmp8_;
#line 242 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (self != NULL, FALSE);
#line 242 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_val_if_fail (type != NULL, FALSE);
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = self->cxx_mode;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp2_) {
#line 2707 "girwriter.c"
            const gchar* _tmp3_;
            gint _tmp4_ = 0;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp3_ = type;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp4_ = string_index_of (_tmp3_, "<", 0);
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp1_ = _tmp4_ != (-1);
#line 2716 "girwriter.c"
      } else {
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp1_ = FALSE;
#line 2720 "girwriter.c"
      }
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = _tmp1_;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp5_) {
#line 2726 "girwriter.c"
            const gchar* _tmp6_;
            gint _tmp7_ = 0;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp6_ = type;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp7_ = string_index_of (_tmp6_, ">", 0);
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp0_ = _tmp7_ != (-1);
#line 2735 "girwriter.c"
      } else {
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp0_ = FALSE;
#line 2739 "girwriter.c"
      }
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = _tmp0_;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      result = _tmp8_;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return result;
#line 2747 "girwriter.c"
}


static gpointer _vala_iterable_ref0 (gpointer self) {
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return self ? vala_iterable_ref (self) : NULL;
#line 2754 "girwriter.c"
}


static gpointer _vala_code_node_ref0 (gpointer self) {
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return self ? vala_code_node_ref (self) : NULL;
#line 2761 "girwriter.c"
}


void gir_writer_walk_method (GirWriter* self, ValaMethod* m) {
      ValaMethod* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* cname;
      ValaMethod* _tmp2_;
      const gchar* _tmp3_;
      const gchar* _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* alias;
      gchar* ret = NULL;
      gchar* vret = NULL;
      gboolean void_return = FALSE;
      ValaMethod* _tmp6_;
      ValaMemberBinding _tmp7_;
      ValaMemberBinding _tmp8_;
      gboolean is_static;
      ValaMethod* _tmp9_;
      gboolean is_constructor;
      ValaMethod* _tmp10_;
      ValaDataType* _tmp11_;
      ValaDataType* _tmp12_;
      gchar* _tmp13_ = NULL;
      const gchar* _tmp14_;
      gchar* _tmp15_;
      const gchar* _tmp16_;
      gboolean _tmp17_ = FALSE;
      const gchar* _tmp26_;
      const gchar* _tmp30_;
      ValaMethod* _tmp31_;
      gboolean _tmp32_ = FALSE;
      const gchar* _tmp33_ = NULL;
      gboolean _tmp34_;
      const gchar* _tmp35_;
      gchar* _tmp36_;
      gchar* type;
      gboolean _tmp37_ = FALSE;
      const gchar* _tmp38_;
      gboolean _tmp40_;
      gboolean _tmp42_;
      const gchar* _tmp44_;
      const gchar* _tmp45_;
      gchar* _tmp46_;
      gchar* _tmp47_;
      gchar* _tmp48_;
      gchar* _tmp49_;
      const gchar* _tmp50_;
      gchar* _tmp51_;
      gchar* _tmp52_;
      gchar* _tmp53_;
      gchar* _tmp54_;
      const gchar* _tmp55_;
      gchar* _tmp56_;
      gchar* _tmp57_;
      gchar* _tmp58_;
      gchar* _tmp59_;
      gchar* _tmp60_;
      gboolean _tmp61_;
      ValaMethod* _tmp73_;
      ValaList* _tmp74_ = NULL;
      ValaList* parameters;
      ValaList* _tmp75_;
      gint _tmp76_;
      gint _tmp77_;
      const gchar* _tmp130_;
      const gchar* _tmp131_;
      gchar* _tmp132_;
      gchar* _tmp133_;
      gchar* _tmp134_;
      gchar* _tmp135_;
      gchar* _tmp136_;
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (m != NULL);
#line 248 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = m;
#line 248 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp0_);
#line 248 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      cname = _tmp1_;
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = m;
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = vala_symbol_get_name ((ValaSymbol*) _tmp2_);
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = _tmp3_;
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = gir_writer_get_alias (self, _tmp4_);
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      alias = _tmp5_;
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = m;
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = vala_method_get_binding (_tmp6_);
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = _tmp7_;
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      is_static = (_tmp8_ & VALA_MEMBER_BINDING_STATIC) != 0;
#line 253 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp9_ = m;
#line 253 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      is_constructor = VALA_IS_CREATION_METHOD (_tmp9_);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp10_ = m;
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp11_ = vala_method_get_return_type (_tmp10_);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp12_ = _tmp11_;
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp13_ = vala_code_node_to_string ((ValaCodeNode*) _tmp12_);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (vret);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      vret = _tmp13_;
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp14_ = vret;
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = g_strdup (_tmp14_);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (ret);
#line 259 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      ret = _tmp15_;
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = ret;
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp17_ = gir_writer_is_generic (self, _tmp16_);
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp17_) {
#line 2893 "girwriter.c"
            const gchar* _tmp18_;
            gchar* _tmp19_ = NULL;
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp18_ = vret;
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp19_ = gir_writer_get_ctype (self, _tmp18_);
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (ret);
#line 260 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            ret = _tmp19_;
#line 2904 "girwriter.c"
      } else {
            ValaMethod* _tmp20_;
            ValaDataType* _tmp21_;
            ValaDataType* _tmp22_;
            gchar* _tmp23_ = NULL;
            gchar* _tmp24_;
            gchar* _tmp25_ = NULL;
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp20_ = m;
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp21_ = vala_method_get_return_type (_tmp20_);
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp22_ = _tmp21_;
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp23_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp22_);
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp24_ = _tmp23_;
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp25_ = gir_writer_get_ctype (self, _tmp24_);
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (ret);
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            ret = _tmp25_;
#line 261 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp24_);
#line 2930 "girwriter.c"
      }
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp26_ = ret;
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp26_ == NULL) {
#line 2936 "girwriter.c"
            const gchar* _tmp27_;
            gchar* _tmp28_ = NULL;
            gchar* _tmp29_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp27_ = cname;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp28_ = g_strdup_printf ("Cannot resolve return type for %s\n", _tmp27_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp29_ = _tmp28_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            valabind_compiler_error (_tmp29_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp29_);
#line 2950 "girwriter.c"
      }
#line 264 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp30_ = ret;
#line 264 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      void_return = g_strcmp0 (_tmp30_, "void") == 0;
#line 266 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp31_ = m;
#line 266 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp32_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp31_);
#line 266 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp32_) {
#line 267 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (vret);
#line 267 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (ret);
#line 267 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (alias);
#line 267 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (cname);
#line 267 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            return;
#line 2972 "girwriter.c"
      }
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp34_ = is_static;
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp34_) {
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp33_ = "function";
#line 2980 "girwriter.c"
      } else {
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp33_ = "method";
#line 2984 "girwriter.c"
      }
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp35_ = _tmp33_;
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp36_ = g_strdup (_tmp35_);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      type = _tmp36_;
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp38_ = self->priv->classname;
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (g_strcmp0 (_tmp38_, "") != 0) {
#line 2996 "girwriter.c"
            gboolean _tmp39_;
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp39_ = is_static;
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp37_ = !_tmp39_;
#line 3002 "girwriter.c"
      } else {
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp37_ = FALSE;
#line 3006 "girwriter.c"
      }
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp40_ = _tmp37_;
#line 270 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp40_) {
#line 3012 "girwriter.c"
            gchar* _tmp41_;
#line 271 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp41_ = g_strdup ("method");
#line 271 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (type);
#line 271 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            type = _tmp41_;
#line 3020 "girwriter.c"
      }
#line 272 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp42_ = is_constructor;
#line 272 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp42_) {
#line 3026 "girwriter.c"
            gchar* _tmp43_;
#line 273 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp43_ = g_strdup ("constructor");
#line 273 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (type);
#line 273 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            type = _tmp43_;
#line 3034 "girwriter.c"
      }
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp44_ = self->priv->externs;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp45_ = type;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp46_ = g_strconcat ("<", _tmp45_, NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp47_ = _tmp46_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp48_ = g_strconcat (_tmp47_, " name=\"", NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp49_ = _tmp48_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp50_ = alias;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp51_ = g_strconcat (_tmp49_, _tmp50_, NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp52_ = _tmp51_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp53_ = g_strconcat (_tmp52_, "\" c:identifier=\"", NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp54_ = _tmp53_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp55_ = cname;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp56_ = g_strconcat (_tmp54_, _tmp55_, NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp57_ = _tmp56_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp58_ = g_strconcat (_tmp57_, "\">\n", NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp59_ = _tmp58_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp60_ = g_strconcat (_tmp44_, _tmp59_, NULL);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp60_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp59_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp57_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp54_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp52_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp49_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp47_);
#line 276 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp61_ = void_return;
#line 276 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp61_) {
#line 3090 "girwriter.c"
            const gchar* _tmp62_;
            gchar* _tmp63_;
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp62_ = self->priv->externs;
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp63_ = g_strconcat (_tmp62_, "  <return-type type=\"void\"/>\n", NULL);
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (self->priv->externs);
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            self->priv->externs = _tmp63_;
#line 3101 "girwriter.c"
      } else {
            const gchar* _tmp64_;
            gchar* _tmp65_ = NULL;
            gchar* rtype;
            const gchar* _tmp66_;
            const gchar* _tmp67_;
            gchar* _tmp68_;
            gchar* _tmp69_;
            gchar* _tmp70_;
            gchar* _tmp71_;
            gchar* _tmp72_;
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp64_ = ret;
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp65_ = gir_writer_get_ctype (self, _tmp64_);
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            rtype = _tmp65_;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp66_ = self->priv->externs;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp67_ = rtype;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp68_ = g_strconcat ("  <return-type type=\"", _tmp67_, NULL);
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp69_ = _tmp68_;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp70_ = g_strconcat (_tmp69_, "\" />\n", NULL);
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp71_ = _tmp70_;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp72_ = g_strconcat (_tmp66_, _tmp71_, NULL);
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (self->priv->externs);
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            self->priv->externs = _tmp72_;
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp71_);
#line 281 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp69_);
#line 276 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (rtype);
#line 3143 "girwriter.c"
      }
#line 289 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp73_ = m;
#line 289 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp74_ = vala_method_get_parameters (_tmp73_);
#line 289 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      parameters = _tmp74_;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp75_ = parameters;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp76_ = vala_collection_get_size ((ValaCollection*) _tmp75_);
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp77_ = _tmp76_;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp77_ > 0) {
#line 3159 "girwriter.c"
            const gchar* _tmp78_;
            gchar* _tmp79_;
            const gchar* _tmp128_;
            gchar* _tmp129_;
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp78_ = self->priv->externs;
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp79_ = g_strconcat (_tmp78_, "  <parameters>\n", NULL);
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (self->priv->externs);
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            self->priv->externs = _tmp79_;
#line 3172 "girwriter.c"
            {
                  ValaList* _tmp80_;
                  ValaList* _tmp81_;
                  ValaList* _foo_list;
                  ValaList* _tmp82_;
                  gint _tmp83_;
                  gint _tmp84_;
                  gint _foo_size;
                  gint _foo_index;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp80_ = parameters;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp81_ = _vala_iterable_ref0 (_tmp80_);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _foo_list = _tmp81_;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp82_ = _foo_list;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp83_ = vala_collection_get_size ((ValaCollection*) _tmp82_);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp84_ = _tmp83_;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _foo_size = _tmp84_;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _foo_index = -1;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  while (TRUE) {
#line 3200 "girwriter.c"
                        gint _tmp85_;
                        gint _tmp86_;
                        gint _tmp87_;
                        ValaList* _tmp88_;
                        gint _tmp89_;
                        gpointer _tmp90_ = NULL;
                        ValaParameter* foo;
                        ValaParameter* _tmp91_;
                        const gchar* _tmp92_;
                        const gchar* _tmp93_;
                        gchar* _tmp94_;
                        gchar* arg_name;
                        ValaParameter* _tmp95_;
                        ValaDataType* _tmp96_;
                        ValaDataType* _tmp97_;
                        ValaDataType* _tmp98_;
                        ValaDataType* bar;
                        ValaDataType* _tmp99_;
                        ValaDataType* _tmp100_;
                        gchar* _tmp101_ = NULL;
                        gchar* arg_type;
                        ValaDataType* _tmp102_;
                        gchar* _tmp103_ = NULL;
                        gchar* _tmp104_;
                        gchar* _tmp105_ = NULL;
                        gchar* _tmp106_;
                        gchar* arg_ctype;
                        const gchar* _tmp107_;
                        const gchar* _tmp108_;
                        gchar* _tmp109_;
                        gchar* _tmp110_;
                        gchar* _tmp111_;
                        gchar* _tmp112_;
                        gchar* _tmp113_;
                        const gchar* _tmp114_;
                        const gchar* _tmp115_;
                        gchar* _tmp116_;
                        gchar* _tmp117_;
                        gchar* _tmp118_;
                        gchar* _tmp119_;
                        const gchar* _tmp120_;
                        gchar* _tmp121_;
                        gchar* _tmp122_;
                        gchar* _tmp123_;
                        gchar* _tmp124_;
                        gchar* _tmp125_;
                        const gchar* _tmp126_;
                        gchar* _tmp127_;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp85_ = _foo_index;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _foo_index = _tmp85_ + 1;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp86_ = _foo_index;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp87_ = _foo_size;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (!(_tmp86_ < _tmp87_)) {
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              break;
#line 3261 "girwriter.c"
                        }
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp88_ = _foo_list;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp89_ = _foo_index;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp90_ = vala_list_get (_tmp88_, _tmp89_);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        foo = (ValaParameter*) _tmp90_;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp91_ = foo;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp92_ = vala_symbol_get_name ((ValaSymbol*) _tmp91_);
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp93_ = _tmp92_;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp94_ = g_strdup (_tmp93_);
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        arg_name = _tmp94_;
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp95_ = foo;
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp96_ = vala_variable_get_variable_type ((ValaVariable*) _tmp95_);
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp97_ = _tmp96_;
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp98_ = _vala_code_node_ref0 (_tmp97_);
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        bar = _tmp98_;
#line 295 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp99_ = bar;
#line 295 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        if (_tmp99_ == NULL) {
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _vala_code_node_unref0 (bar);
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (arg_name);
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _vala_code_node_unref0 (foo);
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              continue;
#line 3303 "girwriter.c"
                        }
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp100_ = bar;
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp101_ = vala_code_node_to_string ((ValaCodeNode*) _tmp100_);
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        arg_type = _tmp101_;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp102_ = bar;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp103_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp102_);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp104_ = _tmp103_;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp105_ = gir_writer_get_ctype (self, _tmp104_);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp106_ = _tmp105_;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp104_);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        arg_ctype = _tmp106_;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp107_ = self->priv->externs;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp108_ = arg_name;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp109_ = g_strconcat ("    <parameter name=\"", _tmp108_, NULL);
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp110_ = _tmp109_;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp111_ = g_strconcat (_tmp110_, "\" transfer-ownership=\"none\">\n", NULL);
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp112_ = _tmp111_;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp113_ = g_strconcat (_tmp107_, _tmp112_, NULL);
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (self->priv->externs);
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        self->priv->externs = _tmp113_;
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp112_);
#line 299 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp110_);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp114_ = self->priv->externs;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp115_ = arg_type;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp116_ = g_strconcat ("      <type name=\"", _tmp115_, NULL);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp117_ = _tmp116_;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp118_ = g_strconcat (_tmp117_, "\" c:type=\"", NULL);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp119_ = _tmp118_;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp120_ = arg_ctype;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp121_ = g_strconcat (_tmp119_, _tmp120_, NULL);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp122_ = _tmp121_;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp123_ = g_strconcat (_tmp122_, "\"/>\n", NULL);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp124_ = _tmp123_;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp125_ = g_strconcat (_tmp114_, _tmp124_, NULL);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (self->priv->externs);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        self->priv->externs = _tmp125_;
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp124_);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp122_);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp119_);
#line 300 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (_tmp117_);
#line 301 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp126_ = self->priv->externs;
#line 301 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp127_ = g_strconcat (_tmp126_, "    </parameter>\n", NULL);
#line 301 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (self->priv->externs);
#line 301 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        self->priv->externs = _tmp127_;
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (arg_ctype);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (arg_type);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _vala_code_node_unref0 (bar);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _g_free0 (arg_name);
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _vala_code_node_unref0 (foo);
#line 3401 "girwriter.c"
                  }
#line 292 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_iterable_unref0 (_foo_list);
#line 3405 "girwriter.c"
            }
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp128_ = self->priv->externs;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp129_ = g_strconcat (_tmp128_, "  </parameters>\n", NULL);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (self->priv->externs);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            self->priv->externs = _tmp129_;
#line 3415 "girwriter.c"
      }
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp130_ = self->priv->externs;
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp131_ = type;
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp132_ = g_strconcat ("</", _tmp131_, NULL);
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp133_ = _tmp132_;
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp134_ = g_strconcat (_tmp133_, ">\n", NULL);
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp135_ = _tmp134_;
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp136_ = g_strconcat (_tmp130_, _tmp135_, NULL);
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp136_;
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp135_);
#line 305 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp133_);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _vala_iterable_unref0 (parameters);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (type);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (vret);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (ret);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (alias);
#line 246 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (cname);
#line 3451 "girwriter.c"
}


static gpointer _vala_source_reference_ref0 (gpointer self) {
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return self ? vala_source_reference_ref (self) : NULL;
#line 3458 "girwriter.c"
}


static void gir_writer_real_visit_namespace (ValaCodeVisitor* base, ValaNamespace* ns) {
      GirWriter * self;
      ValaNamespace* _tmp0_;
      const gchar* _tmp1_;
      const gchar* _tmp2_;
      ValaNamespace* _tmp3_;
      ValaSourceReference* _tmp4_;
      ValaSourceReference* _tmp5_;
      ValaSourceReference* _tmp6_;
      ValaSourceReference* sr;
      gboolean _tmp7_ = FALSE;
      ValaSourceReference* _tmp8_;
      gboolean _tmp15_;
      ValaNamespace* _tmp16_;
      const gchar* _tmp17_;
      const gchar* _tmp18_;
      gchar* _tmp19_;
      ValaNamespace* _tmp20_;
      const gchar* _tmp21_;
      const gchar* _tmp22_;
      gchar* _tmp23_;
      gchar* _tmp24_;
      gchar* _tmp25_;
      gchar* _tmp26_;
      gchar* _tmp27_;
      const gchar* _tmp88_;
      gchar* _tmp89_;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self = (GirWriter*) base;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (ns != NULL);
#line 309 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = ns;
#line 309 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = vala_symbol_get_name ((ValaSymbol*) _tmp0_);
#line 309 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = _tmp1_;
#line 309 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp2_ == NULL) {
#line 310 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            return;
#line 3503 "girwriter.c"
      }
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp3_ = ns;
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp4_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp3_);
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp5_ = _tmp4_;
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = _vala_source_reference_ref0 (_tmp5_);
#line 312 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      sr = _tmp6_;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = sr;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp8_ != NULL) {
#line 3519 "girwriter.c"
            ValaSourceReference* _tmp9_;
            ValaSourceFile* _tmp10_;
            ValaSourceFile* _tmp11_;
            const gchar* _tmp12_;
            const gchar* _tmp13_;
            gboolean _tmp14_ = FALSE;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp9_ = sr;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp10_ = vala_source_reference_get_file (_tmp9_);
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp11_ = _tmp10_;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp12_ = vala_source_file_get_filename (_tmp11_);
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp13_ = _tmp12_;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp14_ = gir_writer_is_target_file (self, _tmp13_);
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp7_ = !_tmp14_;
#line 3540 "girwriter.c"
      } else {
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp7_ = FALSE;
#line 3544 "girwriter.c"
      }
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = _tmp7_;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp15_) {
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_source_reference_unref0 (sr);
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            return;
#line 3554 "girwriter.c"
      }
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = ns;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp17_ = vala_symbol_get_name ((ValaSymbol*) _tmp16_);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp18_ = _tmp17_;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp19_ = g_strdup (_tmp18_);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->nspace);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->nspace = _tmp19_;
#line 317 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp20_ = ns;
#line 317 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      gir_writer_process_includes (self, (ValaSymbol*) _tmp20_);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp21_ = self->priv->externs;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp22_ = self->priv->nspace;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp23_ = g_strconcat ("<namespace version=\"1.0\" name=\"", _tmp22_, NULL);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp24_ = _tmp23_;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp25_ = g_strconcat (_tmp24_, "\">\n", NULL);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp26_ = _tmp25_;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp27_ = g_strconcat (_tmp21_, _tmp26_, NULL);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp27_;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp26_);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp24_);
#line 3594 "girwriter.c"
      {
            ValaNamespace* _tmp28_;
            ValaList* _tmp29_ = NULL;
            ValaList* _f_list;
            ValaList* _tmp30_;
            gint _tmp31_;
            gint _tmp32_;
            gint _f_size;
            gint _f_index;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp28_ = ns;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp29_ = vala_namespace_get_fields (_tmp28_);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_list = _tmp29_;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp30_ = _f_list;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp31_ = vala_collection_get_size ((ValaCollection*) _tmp30_);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp32_ = _tmp31_;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_size = _tmp32_;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _f_index = -1;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 3622 "girwriter.c"
                  gint _tmp33_;
                  gint _tmp34_;
                  gint _tmp35_;
                  ValaList* _tmp36_;
                  gint _tmp37_;
                  gpointer _tmp38_ = NULL;
                  ValaField* f;
                  ValaField* _tmp39_;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp33_ = _f_index;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _f_index = _tmp33_ + 1;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp34_ = _f_index;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp35_ = _f_size;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp34_ < _tmp35_)) {
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 3643 "girwriter.c"
                  }
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp36_ = _f_list;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp37_ = _f_index;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp38_ = vala_list_get (_tmp36_, _tmp37_);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  f = (ValaField*) _tmp38_;
#line 323 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp39_ = f;
#line 323 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_field (self, _tmp39_);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (f);
#line 3659 "girwriter.c"
            }
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_f_list);
#line 3663 "girwriter.c"
      }
      {
            ValaNamespace* _tmp40_;
            ValaList* _tmp41_ = NULL;
            ValaList* _e_list;
            ValaList* _tmp42_;
            gint _tmp43_;
            gint _tmp44_;
            gint _e_size;
            gint _e_index;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp40_ = ns;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp41_ = vala_namespace_get_enums (_tmp40_);
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_list = _tmp41_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp42_ = _e_list;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp43_ = vala_collection_get_size ((ValaCollection*) _tmp42_);
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp44_ = _tmp43_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_size = _tmp44_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _e_index = -1;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 3692 "girwriter.c"
                  gint _tmp45_;
                  gint _tmp46_;
                  gint _tmp47_;
                  ValaList* _tmp48_;
                  gint _tmp49_;
                  gpointer _tmp50_ = NULL;
                  ValaEnum* e;
                  ValaEnum* _tmp51_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp45_ = _e_index;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _e_index = _tmp45_ + 1;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp46_ = _e_index;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp47_ = _e_size;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp46_ < _tmp47_)) {
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 3713 "girwriter.c"
                  }
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp48_ = _e_list;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp49_ = _e_index;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp50_ = vala_list_get (_tmp48_, _tmp49_);
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  e = (ValaEnum*) _tmp50_;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp51_ = e;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_enum (self, _tmp51_);
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (e);
#line 3729 "girwriter.c"
            }
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_e_list);
#line 3733 "girwriter.c"
      }
      {
            ValaNamespace* _tmp52_;
            ValaList* _tmp53_ = NULL;
            ValaList* _s_list;
            ValaList* _tmp54_;
            gint _tmp55_;
            gint _tmp56_;
            gint _s_size;
            gint _s_index;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp52_ = ns;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp53_ = vala_namespace_get_structs (_tmp52_);
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _s_list = _tmp53_;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp54_ = _s_list;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_);
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp56_ = _tmp55_;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _s_size = _tmp56_;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _s_index = -1;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 3762 "girwriter.c"
                  gint _tmp57_;
                  gint _tmp58_;
                  gint _tmp59_;
                  ValaList* _tmp60_;
                  gint _tmp61_;
                  gpointer _tmp62_ = NULL;
                  ValaStruct* s;
                  ValaStruct* _tmp63_;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp57_ = _s_index;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _s_index = _tmp57_ + 1;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp58_ = _s_index;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp59_ = _s_size;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp58_ < _tmp59_)) {
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 3783 "girwriter.c"
                  }
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp60_ = _s_list;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp61_ = _s_index;
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp62_ = vala_list_get (_tmp60_, _tmp61_);
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  s = (ValaStruct*) _tmp62_;
#line 327 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp63_ = s;
#line 327 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_struct (self, "", _tmp63_);
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (s);
#line 3799 "girwriter.c"
            }
#line 326 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_s_list);
#line 3803 "girwriter.c"
      }
      {
            ValaNamespace* _tmp64_;
            ValaList* _tmp65_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp66_;
            gint _tmp67_;
            gint _tmp68_;
            gint _m_size;
            gint _m_index;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp64_ = ns;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp65_ = vala_namespace_get_methods (_tmp64_);
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_list = _tmp65_;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp66_ = _m_list;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp67_ = vala_collection_get_size ((ValaCollection*) _tmp66_);
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp68_ = _tmp67_;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_size = _tmp68_;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _m_index = -1;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 3832 "girwriter.c"
                  gint _tmp69_;
                  gint _tmp70_;
                  gint _tmp71_;
                  ValaList* _tmp72_;
                  gint _tmp73_;
                  gpointer _tmp74_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp75_;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp69_ = _m_index;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _m_index = _tmp69_ + 1;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp70_ = _m_index;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp71_ = _m_size;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp70_ < _tmp71_)) {
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 3853 "girwriter.c"
                  }
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp72_ = _m_list;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp73_ = _m_index;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp74_ = vala_list_get (_tmp72_, _tmp73_);
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  m = (ValaMethod*) _tmp74_;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp75_ = m;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_method (self, _tmp75_);
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (m);
#line 3869 "girwriter.c"
            }
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 3873 "girwriter.c"
      }
      {
            ValaNamespace* _tmp76_;
            ValaList* _tmp77_ = NULL;
            ValaList* _c_list;
            ValaList* _tmp78_;
            gint _tmp79_;
            gint _tmp80_;
            gint _c_size;
            gint _c_index;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp76_ = ns;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp77_ = vala_namespace_get_classes (_tmp76_);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _c_list = _tmp77_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp78_ = _c_list;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp79_ = vala_collection_get_size ((ValaCollection*) _tmp78_);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp80_ = _tmp79_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _c_size = _tmp80_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _c_index = -1;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            while (TRUE) {
#line 3902 "girwriter.c"
                  gint _tmp81_;
                  gint _tmp82_;
                  gint _tmp83_;
                  ValaList* _tmp84_;
                  gint _tmp85_;
                  gpointer _tmp86_ = NULL;
                  ValaClass* c;
                  ValaClass* _tmp87_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp81_ = _c_index;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _c_index = _tmp81_ + 1;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp82_ = _c_index;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp83_ = _c_size;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  if (!(_tmp82_ < _tmp83_)) {
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        break;
#line 3923 "girwriter.c"
                  }
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp84_ = _c_list;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp85_ = _c_index;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp86_ = vala_list_get (_tmp84_, _tmp85_);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  c = (ValaClass*) _tmp86_;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _tmp87_ = c;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  gir_writer_walk_class (self, "", _tmp87_);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  _vala_code_node_unref0 (c);
#line 3939 "girwriter.c"
            }
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _vala_iterable_unref0 (_c_list);
#line 3943 "girwriter.c"
      }
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp88_ = self->priv->externs;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp89_ = g_strconcat (_tmp88_, "</namespace>\n", NULL);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->externs = _tmp89_;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _vala_source_reference_unref0 (sr);
#line 3955 "girwriter.c"
}


static gpointer _vala_code_context_ref0 (gpointer self) {
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      return self ? vala_code_context_ref (self) : NULL;
#line 3962 "girwriter.c"
}


void gir_writer_write_file (GirWriter* self, ValaCodeContext* context, const gchar* filename) {
      const gchar* _tmp0_;
      FILE* _tmp1_ = NULL;
      FILE* _tmp2_;
      ValaCodeContext* _tmp6_;
      ValaCodeContext* _tmp7_;
      ValaCodeContext* _tmp8_;
      FILE* _tmp9_;
      FILE* _tmp10_;
      FILE* _tmp11_;
      FILE* _tmp12_;
      FILE* _tmp13_;
      const gchar* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp16_;
      gchar* _tmp17_;
      gchar* _tmp18_;
      GList* _tmp19_;
      guint _tmp20_ = 0U;
      FILE* _tmp25_;
      const gchar* _tmp26_;
      FILE* _tmp27_;
      const gchar* _tmp28_;
      FILE* _tmp29_;
      const gchar* _tmp30_;
      FILE* _tmp31_;
      const gchar* _tmp32_;
      FILE* _tmp33_;
      FILE* _tmp34_;
#line 336 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (self != NULL);
#line 336 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (context != NULL);
#line 336 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_return_if_fail (filename != NULL);
#line 337 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp0_ = filename;
#line 337 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp1_ = fopen (_tmp0_, "w");
#line 337 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _fclose0 (self->priv->stream);
#line 337 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->stream = _tmp1_;
#line 338 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp2_ = self->priv->stream;
#line 338 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp2_ == NULL) {
#line 4013 "girwriter.c"
            const gchar* _tmp3_;
            gchar* _tmp4_ = NULL;
            gchar* _tmp5_;
#line 339 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp3_ = filename;
#line 339 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp4_ = g_strdup_printf ("Cannot open %s for writing", _tmp3_);
#line 339 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp5_ = _tmp4_;
#line 339 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            g_error ("girwriter.vala:339: %s", _tmp5_);
#line 339 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _g_free0 (_tmp5_);
#line 4027 "girwriter.c"
      }
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp6_ = context;
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp7_ = _vala_code_context_ref0 (_tmp6_);
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _vala_code_context_unref0 (self->priv->context);
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->context = _tmp7_;
#line 341 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp8_ = context;
#line 341 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      vala_code_context_accept (_tmp8_, (ValaCodeVisitor*) self);
#line 342 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp9_ = self->priv->stream;
#line 342 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp9_, "<?xml version=\"1.0\"?>\n");
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp10_ = self->priv->stream;
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp10_, "<!-- automatically generated with valabind -->\n");
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp11_ = self->priv->stream;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp11_, "<!-- To compile: g-ir-compiler foo.gir > foo.typelib -->\n");
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp12_ = self->priv->stream;
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp12_, "%s", "<repository version=\"1.2\"\n" "   xmlns=\"http://www.gtk.org/introspection/core/1.0\"\n" "    xmlns:c=\"http://www.gtk.org/introspection/c/1.0\"\n" "     xmlns:glib=\"http://www.gtk.org/introspection/glib/1.0\">\n");
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp13_ = self->priv->stream;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp14_ = self->priv->modulename;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp15_ = g_strconcat ("  <namespace version=\"1.0\" name=\"", _tmp14_, NULL);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp16_ = _tmp15_;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp17_ = g_strconcat (_tmp16_, "\">\n", NULL);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp18_ = _tmp17_;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp13_, "%s", _tmp18_);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp18_);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (_tmp16_);
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp19_ = self->includefiles;
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp20_ = g_list_length (_tmp19_);
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      if (_tmp20_ > ((guint) 0)) {
#line 4081 "girwriter.c"
            GList* _tmp21_;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
            _tmp21_ = self->includefiles;
#line 4085 "girwriter.c"
            {
                  GList* inc_collection = NULL;
                  GList* inc_it = NULL;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  inc_collection = _tmp21_;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                  for (inc_it = inc_collection; inc_it != NULL; inc_it = inc_it->next) {
#line 4093 "girwriter.c"
                        gchar* _tmp22_;
                        gchar* inc = NULL;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        _tmp22_ = g_strdup ((const gchar*) inc_it->data);
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                        inc = _tmp22_;
#line 4100 "girwriter.c"
                        {
                              FILE* _tmp23_;
                              const gchar* _tmp24_;
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp23_ = self->priv->stream;
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _tmp24_ = inc;
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              fprintf (_tmp23_, "  <c:include name=\"%s\"/>\n", _tmp24_);
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
                              _g_free0 (inc);
#line 4112 "girwriter.c"
                        }
                  }
            }
      }
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp25_ = self->priv->stream;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp26_ = self->priv->enums;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp25_, "%s\n", _tmp26_);
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp27_ = self->priv->stream;
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp28_ = self->priv->externs;
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp27_, "%s\n", _tmp28_);
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp29_ = self->priv->stream;
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp30_ = self->priv->statics;
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp29_, "%s\n", _tmp30_);
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp31_ = self->priv->stream;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp32_ = self->priv->extends;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp31_, "%s\n", _tmp32_);
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp33_ = self->priv->stream;
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp33_, "  </namespace>\n");
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _tmp34_ = self->priv->stream;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      fprintf (_tmp34_, "</repository>\n");
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _fclose0 (self->priv->stream);
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv->stream = NULL;
#line 4153 "girwriter.c"
}


static void gir_writer_class_init (GirWriterClass * klass) {
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      gir_writer_parent_class = g_type_class_peek_parent (klass);
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->finalize = gir_writer_finalize;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      g_type_class_add_private (klass, sizeof (GirWriterPrivate));
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->visit_source_file = gir_writer_real_visit_source_file;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->visit_namespace = gir_writer_real_visit_namespace;
#line 4168 "girwriter.c"
}


static void gir_writer_instance_init (GirWriter * self) {
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->priv = GIR_WRITER_GET_PRIVATE (self);
#line 4175 "girwriter.c"
}


static void gir_writer_finalize (ValaCodeVisitor* obj) {
      GirWriter * self;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self = GIR_WRITER (obj);
#line 7 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->pkgname);
#line 11 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      self->files = (_vala_array_free (self->files, self->files_length1, (GDestroyNotify) g_free), NULL);
#line 12 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      __g_list_free__g_free0_0 (self->includefiles);
#line 13 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      __g_list_free__vala_code_node_unref0_0 (self->methods);
#line 14 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _vala_code_context_unref0 (self->priv->context);
#line 15 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _fclose0 (self->priv->stream);
#line 16 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classname);
#line 17 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->classcname);
#line 18 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->externs);
#line 19 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->statics);
#line 20 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->extends);
#line 21 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->enums);
#line 22 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->vectors);
#line 23 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->nspace);
#line 24 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      _g_free0 (self->priv->modulename);
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/girwriter.vala"
      VALA_CODE_VISITOR_CLASS (gir_writer_parent_class)->finalize (obj);
#line 4215 "girwriter.c"
}


GType gir_writer_get_type (void) {
      static volatile gsize gir_writer_type_id__volatile = 0;
      if (g_once_init_enter (&gir_writer_type_id__volatile)) {
            static const GTypeInfo g_define_type_info = { sizeof (GirWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gir_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GirWriter), 0, (GInstanceInitFunc) gir_writer_instance_init, NULL };
            GType gir_writer_type_id;
            gir_writer_type_id = g_type_register_static (VALA_TYPE_CODE_VISITOR, "GirWriter", &g_define_type_info, 0);
            g_once_init_leave (&gir_writer_type_id__volatile, gir_writer_type_id);
      }
      return gir_writer_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
      if ((array != NULL) && (destroy_func != NULL)) {
            int i;
            for (i = 0; i < array_length; i = i + 1) {
                  if (((gpointer*) array)[i] != NULL) {
                        destroy_func (((gpointer*) array)[i]);
                  }
            }
      }
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
      _vala_array_destroy (array, array_length, destroy_func);
      g_free (array);
}


static gint _vala_array_length (gpointer array) {
      int length;
      length = 0;
      if (array) {
            while (((gpointer*) array)[length]) {
                  length++;
            }
      }
      return length;
}




Generated by  Doxygen 1.6.0   Back to index