Logo Search packages:      
Sourcecode: valabind version File versions

cxxwriter.c

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

/* Copyleft 2009-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_CXX_WRITER (cxx_writer_get_type ())
#define CXX_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CXX_WRITER, CxxWriter))
#define CXX_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CXX_WRITER, CxxWriterClass))
#define IS_CXX_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CXX_WRITER))
#define IS_CXX_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CXX_WRITER))
#define CXX_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CXX_WRITER, CxxWriterClass))

typedef struct _CxxWriter CxxWriter;
typedef struct _CxxWriterClass CxxWriterClass;
typedef struct _CxxWriterPrivate CxxWriterPrivate;
#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_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (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)))

00038 struct _CxxWriter {
      ValaCodeVisitor parent_instance;
      CxxWriterPrivate * priv;
      gboolean pkgmode;
      gchar* pkgname;
      gboolean show_externs;
      gboolean glib_mode;
      gboolean cxx_mode;
      gchar** files;
      gint files_length1;
      GList* includefiles;
      GList* methods;
};

00052 struct _CxxWriterClass {
      ValaCodeVisitorClass parent_class;
};

00056 struct _CxxWriterPrivate {
      ValaCodeContext* context;
      FILE* stream;
      gchar* classname;
      gchar* classcname;
      gchar* externs;
      gchar* statics;
      gchar* extends;
      gchar* enums;
      gchar* vectors;
      gchar* nspace;
      gchar* modulename;
      GHashTable* defined_classes;
};


static gpointer cxx_writer_parent_class = NULL;

GType cxx_writer_get_type (void) G_GNUC_CONST;
#define CXX_WRITER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CXX_WRITER, CxxWriterPrivate))
enum  {
      CXX_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);
CxxWriter* cxx_writer_new (const gchar* name);
CxxWriter* cxx_writer_construct (GType object_type, const gchar* name);
static gchar* cxx_writer_get_alias (CxxWriter* self, const gchar* name);
void valabind_compiler_warning (const gchar* msg);
static gchar* cxx_writer_get_ctype (CxxWriter* self, const gchar* _type);
void valabind_compiler_error (const gchar* msg);
static inline gboolean cxx_writer_is_generic (CxxWriter* self, const gchar* type);
static gboolean cxx_writer_is_target_file (CxxWriter* self, const gchar* path);
static void cxx_writer_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source);
void cxx_writer_process_includes (CxxWriter* self, ValaSymbol* s);
void cxx_writer_walk_field (CxxWriter* self, ValaField* f);
void cxx_writer_walk_class (CxxWriter* self, const gchar* pfx, ValaClass* c);
void cxx_writer_walk_enum (CxxWriter* self, ValaEnum* e);
void cxx_writer_walk_method (CxxWriter* self, ValaMethod* m);
static void cxx_writer_real_visit_namespace (ValaCodeVisitor* base, ValaNamespace* ns);
void cxx_writer_write_file (CxxWriter* self, ValaCodeContext* context, const gchar* filename);
static void cxx_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/cxxwriter.vala"
      var = (g_free (var), NULL);
#line 109 "cxxwriter.c"
}


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


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


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


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


CxxWriter* cxx_writer_new (const gchar* name) {
#line 26 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      return cxx_writer_construct (TYPE_CXX_WRITER, name);
#line 209 "cxxwriter.c"
}


static gchar* cxx_writer_get_alias (CxxWriter* 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/cxxwriter.vala"
      static GQuark _tmp4_label0 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp4_label1 = 0;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp4_label2 = 0;
#line 227 "cxxwriter.c"
      const gchar* _tmp8_;
      const gchar* _tmp9_;
      const gchar* _tmp16_;
      gchar* _tmp17_;
#line 37 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (self != NULL, NULL);
#line 37 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (name != NULL, NULL);
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = name;
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = g_strdup (_tmp0_);
#line 38 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      oname = _tmp1_;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = name;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = _tmp2_;
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("break")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("print"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("continue"))))) {
#line 39 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 252 "cxxwriter.c"
                  default:
                  {
                        const gchar* _tmp6_;
                        gchar* _tmp7_;
#line 43 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp6_ = name;
#line 43 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp7_ = g_strconcat ("_", _tmp6_, NULL);
#line 43 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp7_;
#line 43 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (oname);
#line 43 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 267 "cxxwriter.c"
                  }
            }
      }
#line 45 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp8_ = name;
#line 45 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp9_ = oname;
#line 45 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (g_strcmp0 (_tmp8_, _tmp9_) != 0) {
#line 277 "cxxwriter.c"
            const gchar* _tmp10_;
            const gchar* _tmp11_;
            const gchar* _tmp12_;
            const gchar* _tmp13_;
            gchar* _tmp14_ = NULL;
            gchar* _tmp15_;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp10_ = self->priv->classname;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp11_ = oname;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp12_ = self->priv->classname;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp13_ = name;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp14_ = g_strdup_printf ("%s.%s method renamed to %s.%s", _tmp10_, _tmp11_, _tmp12_, _tmp13_);
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp15_ = _tmp14_;
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            valabind_compiler_warning (_tmp15_);
#line 46 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp15_);
#line 300 "cxxwriter.c"
      }
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp16_ = name;
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp17_ = g_strdup (_tmp16_);
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      result = _tmp17_;
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (oname);
#line 48 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      return result;
#line 312 "cxxwriter.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 335 "cxxwriter.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 343 "cxxwriter.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 355 "cxxwriter.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 380 "cxxwriter.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 386 "cxxwriter.c"
      } else {
#line 1314 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp0_ = FALSE;
#line 390 "cxxwriter.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 396 "cxxwriter.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 408 "cxxwriter.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 418 "cxxwriter.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 424 "cxxwriter.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 438 "cxxwriter.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 448 "cxxwriter.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 454 "cxxwriter.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 463 "cxxwriter.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 483 "cxxwriter.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 496 "cxxwriter.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 526 "cxxwriter.c"
                        goto __catch4_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 535 "cxxwriter.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 551 "cxxwriter.c"
                        goto __catch4_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 562 "cxxwriter.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 570 "cxxwriter.c"
      }
      goto __finally4;
      __catch4_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 584 "cxxwriter.c"
      }
      __finally4:
#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 595 "cxxwriter.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 623 "cxxwriter.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 631 "cxxwriter.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 637 "cxxwriter.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 673 "cxxwriter.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 682 "cxxwriter.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 688 "cxxwriter.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 697 "cxxwriter.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 703 "cxxwriter.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 712 "cxxwriter.c"
      } else {
#line 1342 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp8_ = FALSE;
#line 716 "cxxwriter.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 726 "cxxwriter.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 735 "cxxwriter.c"
      } else {
#line 1343 "/usr/share/vala-0.16/vapi/glib-2.0.vapi"
            _tmp13_ = FALSE;
#line 739 "cxxwriter.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 763 "cxxwriter.c"
}


static gchar* cxx_writer_get_ctype (CxxWriter* 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 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label0 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label1 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label2 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label3 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label4 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label5 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label6 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label7 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label8 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label9 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label10 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label11 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label12 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label13 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label14 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label15 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label16 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label17 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label18 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label19 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label20 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label21 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label22 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label23 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label24 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label25 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label26 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label27 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label28 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label29 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label30 = 0;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      static GQuark _tmp48_label31 = 0;
#line 51 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (self != NULL, NULL);
#line 51 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (_type != NULL, NULL);
#line 52 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = _type;
#line 52 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = g_strdup (_tmp0_);
#line 52 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      type = _tmp1_;
#line 53 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      iter_type = NULL;
#line 54 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = type;
#line 54 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (g_strcmp0 (_tmp2_, "null") == 0) {
#line 55 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            valabind_compiler_error ("Cannot resolve type");
#line 868 "cxxwriter.c"
      }
#line 56 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = type;
#line 56 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp4_ = self->priv->nspace;
#line 56 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = g_str_has_prefix (_tmp3_, _tmp4_);
#line 56 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp5_) {
#line 878 "cxxwriter.c"
            const gchar* _tmp6_;
            const gchar* _tmp7_;
            gint _tmp8_;
            gint _tmp9_;
            gchar* _tmp10_ = NULL;
            gchar* _tmp11_;
            gchar* _tmp12_;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp6_ = type;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp7_ = self->priv->nspace;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp8_ = strlen (_tmp7_);
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp9_ = _tmp8_;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp10_ = string_substring (_tmp6_, (glong) _tmp9_, (glong) (-1));
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp11_ = _tmp10_;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp12_ = g_strconcat (_tmp11_, "*", NULL);
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (type);
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            type = _tmp12_;
#line 57 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp11_);
#line 906 "cxxwriter.c"
      }
#line 58 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp13_ = type;
#line 58 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp14_ = string_replace (_tmp13_, ".", "");
#line 58 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (type);
#line 58 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      type = _tmp14_;
#line 59 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp15_ = type;
#line 59 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp16_ = cxx_writer_is_generic (self, _tmp15_);
#line 59 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp16_) {
#line 922 "cxxwriter.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 60 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp17_ = type;
#line 60 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp18_ = string_index_of (_tmp17_, "<", 0);
#line 60 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            ptr = _tmp18_;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp20_ = ptr;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp20_ == (-1)) {
#line 954 "cxxwriter.c"
                  const gchar* _tmp21_;
                  gchar* _tmp22_;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp21_ = type;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp22_ = g_strdup (_tmp21_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp19_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp19_ = _tmp22_;
#line 965 "cxxwriter.c"
            } else {
                  const gchar* _tmp23_;
                  gint _tmp24_;
                  const gchar* _tmp25_;
                  gint _tmp26_;
                  gint _tmp27_;
                  gchar* _tmp28_ = NULL;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp23_ = type;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp24_ = ptr;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp25_ = type;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp26_ = strlen (_tmp25_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp27_ = _tmp26_;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp28_ = string_slice (_tmp23_, (glong) _tmp24_, (glong) _tmp27_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp19_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp19_ = _tmp28_;
#line 989 "cxxwriter.c"
            }
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp29_ = _tmp19_;
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp30_ = g_strdup (_tmp29_);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (iter_type);
#line 61 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            iter_type = _tmp30_;
#line 62 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp31_ = iter_type;
#line 62 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp32_ = string_replace (_tmp31_, "<", "");
#line 62 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (iter_type);
#line 62 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            iter_type = _tmp32_;
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp33_ = iter_type;
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp34_ = string_replace (_tmp33_, ">", "");
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (iter_type);
#line 63 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            iter_type = _tmp34_;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp35_ = iter_type;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp36_ = self->priv->nspace;
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp37_ = string_replace (_tmp35_, _tmp36_, "");
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (iter_type);
#line 64 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            iter_type = _tmp37_;
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp38_ = type;
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp40_ = _tmp39_ = g_strsplit (_tmp38_, "<", 2);
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp41_ = _tmp40_;
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp41__length1 = _vala_array_length (_tmp39_);
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp42_ = _tmp41_[0];
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp43_ = g_strdup (_tmp42_);
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (type);
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            type = _tmp43_;
#line 65 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp41_ = (_vala_array_free (_tmp41_, _tmp41__length1, (GDestroyNotify) g_free), NULL);
#line 59 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp19_);
#line 1045 "cxxwriter.c"
      }
#line 67 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp44_ = type;
#line 67 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp45_ = string_replace (_tmp44_, "?", "");
#line 67 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (type);
#line 67 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      type = _tmp45_;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp46_ = type;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp47_ = _tmp46_;
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp49_ = (NULL == _tmp47_) ? 0 : g_quark_from_string (_tmp47_);
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp49_ == ((0 != _tmp48_label0) ? _tmp48_label0 : (_tmp48_label0 = g_quark_from_static_string ("const gchar*")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1065 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp50_;
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp50_ = g_strdup ("const char*");
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp50_;
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 71 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1079 "cxxwriter.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 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1085 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp51_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp51_ = g_strdup ("void*");
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp51_;
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 75 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1099 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label4) ? _tmp48_label4 : (_tmp48_label4 = g_quark_from_static_string ("gdouble")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1105 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp52_;
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp52_ = g_strdup ("double");
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp52_;
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 77 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1119 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label5) ? _tmp48_label5 : (_tmp48_label5 = g_quark_from_static_string ("gfloat")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1125 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp53_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp53_ = g_strdup ("float");
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp53_;
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 79 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1139 "cxxwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label6) ? _tmp48_label6 : (_tmp48_label6 = g_quark_from_static_string ("ut8")))) || (_tmp49_ == ((0 != _tmp48_label7) ? _tmp48_label7 : (_tmp48_label7 = g_quark_from_static_string ("uint8"))))) || (_tmp49_ == ((0 != _tmp48_label8) ? _tmp48_label8 : (_tmp48_label8 = g_quark_from_static_string ("guint8"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1145 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp54_;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp54_ = g_strdup ("unsigned char");
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp54_;
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 83 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1159 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label9) ? _tmp48_label9 : (_tmp48_label9 = g_quark_from_static_string ("gchar**")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1165 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp55_;
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp55_ = g_strdup ("char **");
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp55_;
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 85 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1179 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label10) ? _tmp48_label10 : (_tmp48_label10 = g_quark_from_static_string ("gchar")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1185 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp56_;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp56_ = g_strdup ("char");
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp56_;
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 87 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1199 "cxxwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label11) ? _tmp48_label11 : (_tmp48_label11 = g_quark_from_static_string ("gchar*")))) || (_tmp49_ == ((0 != _tmp48_label12) ? _tmp48_label12 : (_tmp48_label12 = g_quark_from_static_string ("string"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1205 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp57_;
#line 90 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp57_ = g_strdup ("char *");
#line 90 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp57_;
#line 90 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 90 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 90 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1219 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label13) ? _tmp48_label13 : (_tmp48_label13 = g_quark_from_static_string ("gint")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1225 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp58_;
#line 92 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp58_ = g_strdup ("int");
#line 92 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp58_;
#line 92 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 92 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 92 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1239 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label14) ? _tmp48_label14 : (_tmp48_label14 = g_quark_from_static_string ("glong")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1245 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp59_;
#line 94 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp59_ = g_strdup ("long");
#line 94 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp59_;
#line 94 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 94 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 94 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1259 "cxxwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label15) ? _tmp48_label15 : (_tmp48_label15 = g_quark_from_static_string ("st64")))) || (_tmp49_ == ((0 != _tmp48_label16) ? _tmp48_label16 : (_tmp48_label16 = g_quark_from_static_string ("int64"))))) || (_tmp49_ == ((0 != _tmp48_label17) ? _tmp48_label17 : (_tmp48_label17 = g_quark_from_static_string ("gint64"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1265 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp60_;
#line 98 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp60_ = g_strdup ("long long");
#line 98 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp60_;
#line 98 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 98 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 98 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1279 "cxxwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label18) ? _tmp48_label18 : (_tmp48_label18 = g_quark_from_static_string ("ut64")))) || (_tmp49_ == ((0 != _tmp48_label19) ? _tmp48_label19 : (_tmp48_label19 = g_quark_from_static_string ("uint64"))))) || (_tmp49_ == ((0 != _tmp48_label20) ? _tmp48_label20 : (_tmp48_label20 = g_quark_from_static_string ("guint64"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1285 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp61_;
#line 102 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp61_ = g_strdup ("unsigned long long");
#line 102 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp61_;
#line 102 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 102 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 102 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1299 "cxxwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label21) ? _tmp48_label21 : (_tmp48_label21 = g_quark_from_static_string ("uint8*")))) || (_tmp49_ == ((0 != _tmp48_label22) ? _tmp48_label22 : (_tmp48_label22 = g_quark_from_static_string ("guint8*"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1305 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp62_;
#line 106 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp62_ = g_strdup ("unsigned char*");
#line 106 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp62_;
#line 106 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 106 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 106 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1319 "cxxwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label23) ? _tmp48_label23 : (_tmp48_label23 = g_quark_from_static_string ("guint16")))) || (_tmp49_ == ((0 != _tmp48_label24) ? _tmp48_label24 : (_tmp48_label24 = g_quark_from_static_string ("uint16"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1325 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp63_;
#line 109 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp63_ = g_strdup ("unsigned short");
#line 109 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp63_;
#line 109 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 109 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 109 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1339 "cxxwriter.c"
                  }
            }
      } else if (((_tmp49_ == ((0 != _tmp48_label25) ? _tmp48_label25 : (_tmp48_label25 = g_quark_from_static_string ("ut32")))) || (_tmp49_ == ((0 != _tmp48_label26) ? _tmp48_label26 : (_tmp48_label26 = g_quark_from_static_string ("uint32"))))) || (_tmp49_ == ((0 != _tmp48_label27) ? _tmp48_label27 : (_tmp48_label27 = g_quark_from_static_string ("guint32"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1345 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp64_;
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp64_ = g_strdup ("unsigned int");
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp64_;
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 113 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1359 "cxxwriter.c"
                  }
            }
      } else if ((_tmp49_ == ((0 != _tmp48_label28) ? _tmp48_label28 : (_tmp48_label28 = g_quark_from_static_string ("bool")))) || (_tmp49_ == ((0 != _tmp48_label29) ? _tmp48_label29 : (_tmp48_label29 = g_quark_from_static_string ("gboolean"))))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1365 "cxxwriter.c"
                  default:
                  {
                        gchar* _tmp65_;
#line 116 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp65_ = g_strdup ("bool");
#line 116 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        result = _tmp65_;
#line 116 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (iter_type);
#line 116 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (type);
#line 116 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        return result;
#line 1379 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label30) ? _tmp48_label30 : (_tmp48_label30 = g_quark_from_static_string ("RFList")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1385 "cxxwriter.c"
                  default:
                  {
                        const gchar* _tmp66_;
#line 118 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp66_ = iter_type;
#line 118 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp66_ != NULL) {
#line 1393 "cxxwriter.c"
                              const gchar* _tmp67_;
                              gchar* _tmp68_;
                              gchar* _tmp69_;
                              gchar* _tmp70_;
                              gchar* _tmp71_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp67_ = iter_type;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp68_ = g_strconcat ("std::vector<", _tmp67_, NULL);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp69_ = _tmp68_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp70_ = g_strconcat (_tmp69_, ">", NULL);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp71_ = _tmp70_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp69_);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              result = _tmp71_;
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (iter_type);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (type);
#line 119 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              return result;
#line 1419 "cxxwriter.c"
                        }
#line 120 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 1423 "cxxwriter.c"
                  }
            }
      } else if (_tmp49_ == ((0 != _tmp48_label31) ? _tmp48_label31 : (_tmp48_label31 = g_quark_from_static_string ("RList")))) {
#line 69 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            switch (0) {
#line 1429 "cxxwriter.c"
                  default:
                  {
                        const gchar* _tmp72_;
#line 122 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp72_ = iter_type;
#line 122 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp72_ != NULL) {
#line 1437 "cxxwriter.c"
                              const gchar* _tmp73_;
                              gchar* _tmp74_;
                              gchar* _tmp75_;
                              gchar* _tmp76_;
                              gchar* _tmp77_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp73_ = iter_type;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp74_ = g_strconcat ("std::vector<", _tmp73_, NULL);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp75_ = _tmp74_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp76_ = g_strconcat (_tmp75_, ">", NULL);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp77_ = _tmp76_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp75_);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              result = _tmp77_;
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (iter_type);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (type);
#line 123 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              return result;
#line 1463 "cxxwriter.c"
                        }
#line 124 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 1467 "cxxwriter.c"
                  }
            }
      }
#line 126 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      result = type;
#line 126 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (iter_type);
#line 126 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      return result;
#line 1477 "cxxwriter.c"
}


static gboolean cxx_writer_is_target_file (CxxWriter* self, const gchar* path) {
      gboolean result = FALSE;
      gchar** _tmp0_;
      gint _tmp0__length1;
#line 129 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (self != NULL, FALSE);
#line 129 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (path != NULL, FALSE);
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = self->files;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0__length1 = self->files_length1;
#line 1493 "cxxwriter.c"
      {
            gchar** file_collection = NULL;
            gint file_collection_length1 = 0;
            gint _file_collection_size_ = 0;
            gint file_it = 0;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            file_collection = _tmp0_;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            file_collection_length1 = _tmp0__length1;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            for (file_it = 0; file_it < _tmp0__length1; file_it = file_it + 1) {
#line 1505 "cxxwriter.c"
                  gchar* _tmp1_;
                  gchar* file = NULL;
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp1_ = g_strdup (file_collection[file_it]);
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  file = _tmp1_;
#line 1512 "cxxwriter.c"
                  {
                        const gchar* _tmp2_;
                        const gchar* _tmp3_;
#line 131 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp2_ = file;
#line 131 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp3_ = path;
#line 131 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (g_strcmp0 (_tmp2_, _tmp3_) == 0) {
#line 132 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              result = TRUE;
#line 132 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (file);
#line 132 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              return result;
#line 1528 "cxxwriter.c"
                        }
#line 130 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (file);
#line 1532 "cxxwriter.c"
                  }
            }
      }
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      result = FALSE;
#line 134 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      return result;
#line 1540 "cxxwriter.c"
}


static void cxx_writer_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source) {
      CxxWriter * self;
      ValaSourceFile* _tmp0_;
      const gchar* _tmp1_;
      const gchar* _tmp2_;
      gboolean _tmp3_ = FALSE;
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self = (CxxWriter*) base;
#line 137 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (source != NULL);
#line 138 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = source;
#line 138 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = vala_source_file_get_filename (_tmp0_);
#line 138 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = _tmp1_;
#line 138 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = cxx_writer_is_target_file (self, _tmp2_);
#line 138 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp3_) {
#line 1564 "cxxwriter.c"
            ValaSourceFile* _tmp4_;
#line 139 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp4_ = source;
#line 139 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            vala_source_file_accept_children (_tmp4_, (ValaCodeVisitor*) self);
#line 1570 "cxxwriter.c"
      }
}


void cxx_writer_process_includes (CxxWriter* self, ValaSymbol* s) {
      ValaSymbol* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar** _tmp3_;
      gchar** _tmp4_ = NULL;
      gchar** _tmp5_;
      gint _tmp5__length1;
#line 142 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 142 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (s != NULL);
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = s;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = vala_ccode_base_module_get_ccode_header_filenames (_tmp0_);
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = _tmp1_;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp4_ = _tmp3_ = g_strsplit (_tmp2_, ",", 0);
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = _tmp4_;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5__length1 = _vala_array_length (_tmp3_);
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (_tmp2_);
#line 1601 "cxxwriter.c"
      {
            gchar** foo_collection = NULL;
            gint foo_collection_length1 = 0;
            gint _foo_collection_size_ = 0;
            gint foo_it = 0;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            foo_collection = _tmp5_;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            foo_collection_length1 = _tmp5__length1;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            for (foo_it = 0; foo_it < _tmp5__length1; foo_it = foo_it + 1) {
#line 1613 "cxxwriter.c"
                  gchar* _tmp6_;
                  gchar* foo = NULL;
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp6_ = g_strdup (foo_collection[foo_it]);
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  foo = _tmp6_;
#line 1620 "cxxwriter.c"
                  {
                        gboolean include;
                        GList* _tmp7_;
                        gboolean _tmp11_;
#line 144 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        include = TRUE;
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp7_ = self->includefiles;
#line 1629 "cxxwriter.c"
                        {
                              GList* inc_collection = NULL;
                              GList* inc_it = NULL;
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              inc_collection = _tmp7_;
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              for (inc_it = inc_collection; inc_it != NULL; inc_it = inc_it->next) {
#line 1637 "cxxwriter.c"
                                    gchar* _tmp8_;
                                    gchar* inc = NULL;
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    _tmp8_ = g_strdup ((const gchar*) inc_it->data);
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    inc = _tmp8_;
#line 1644 "cxxwriter.c"
                                    {
                                          const gchar* _tmp9_;
                                          const gchar* _tmp10_;
#line 146 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                          _tmp9_ = inc;
#line 146 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                          _tmp10_ = foo;
#line 146 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                          if (g_strcmp0 (_tmp9_, _tmp10_) == 0) {
#line 147 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                                include = FALSE;
#line 148 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                                _g_free0 (inc);
#line 148 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                                break;
#line 1660 "cxxwriter.c"
                                          }
#line 145 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                          _g_free0 (inc);
#line 1664 "cxxwriter.c"
                                    }
                              }
                        }
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp11_ = include;
#line 151 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp11_) {
#line 1672 "cxxwriter.c"
                              const gchar* _tmp12_;
                              gchar* _tmp13_;
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp12_ = foo;
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp13_ = g_strdup (_tmp12_);
#line 152 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->includefiles = g_list_prepend (self->includefiles, _tmp13_);
#line 1681 "cxxwriter.c"
                        }
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (foo);
#line 1685 "cxxwriter.c"
                  }
            }
#line 143 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            foo_collection = (_vala_array_free (foo_collection, foo_collection_length1, (GDestroyNotify) g_free), NULL);
#line 1690 "cxxwriter.c"
      }
}


void cxx_writer_walk_field (CxxWriter* self, ValaField* f) {
      ValaField* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gboolean _tmp3_;
#line 156 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 156 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (f != NULL);
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = f;
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = vala_field_get_ctype (_tmp0_);
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = _tmp1_;
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = _tmp2_ == NULL;
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (_tmp2_);
#line 157 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp3_) {
#line 1716 "cxxwriter.c"
      } else {
            ValaField* _tmp4_;
            gchar* _tmp5_ = NULL;
            gchar* _tmp6_;
            gchar* _tmp7_ = NULL;
            gchar* _tmp8_;
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp4_ = f;
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp5_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp4_);
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp6_ = _tmp5_;
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp7_ = g_strdup_printf ("Type for %s\n", _tmp6_);
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp8_ = _tmp7_;
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            valabind_compiler_warning (_tmp8_);
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp8_);
#line 161 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp6_);
#line 1739 "cxxwriter.c"
      }
}


void cxx_writer_walk_class (CxxWriter* 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 has_constructor;
      ValaClass* _tmp35_;
      gboolean _tmp36_;
      gboolean _tmp37_;
      gboolean has_destructor;
      gboolean _tmp38_;
      GHashTable* _tmp42_;
      const gchar* _tmp43_;
      gconstpointer _tmp44_ = NULL;
      GHashTable* _tmp45_;
      const gchar* _tmp46_;
      gchar* _tmp47_;
      gboolean _tmp48_;
      const gchar* _tmp61_;
      const gchar* _tmp62_;
      gchar* _tmp63_ = NULL;
      gchar* _tmp64_;
      gchar* _tmp65_;
      const gchar* _tmp66_;
      gchar* _tmp67_;
      gboolean _tmp92_ = FALSE;
      gboolean _tmp93_;
      gboolean _tmp95_;
      const gchar* _tmp130_;
      gchar* _tmp131_;
      gchar* _tmp132_;
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (pfx != NULL);
#line 172 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (c != NULL);
#line 1785 "cxxwriter.c"
      {
            ValaClass* _tmp0_;
            ValaList* _tmp1_ = NULL;
            ValaList* _k_list;
            ValaList* _tmp2_;
            gint _tmp3_;
            gint _tmp4_;
            gint _k_size;
            gint _k_index;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp0_ = c;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp1_ = vala_class_get_classes (_tmp0_);
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _k_list = _tmp1_;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp2_ = _k_list;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp4_ = _tmp3_;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _k_size = _tmp4_;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _k_index = -1;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 1813 "cxxwriter.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 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp5_ = _k_index;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _k_index = _tmp5_ + 1;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp6_ = _k_index;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp7_ = _k_size;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp6_ < _tmp7_)) {
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 1837 "cxxwriter.c"
                  }
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp8_ = _k_list;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp9_ = _k_index;
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp10_ = vala_list_get (_tmp8_, _tmp9_);
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  k = (ValaClass*) _tmp10_;
#line 174 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp11_ = c;
#line 174 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp12_ = vala_symbol_get_name ((ValaSymbol*) _tmp11_);
#line 174 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp13_ = _tmp12_;
#line 174 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp14_ = k;
#line 174 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_class (self, _tmp13_, _tmp14_);
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (k);
#line 1859 "cxxwriter.c"
            }
#line 173 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_k_list);
#line 1863 "cxxwriter.c"
      }
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp15_ = pfx;
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp16_ = c;
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp17_ = vala_symbol_get_name ((ValaSymbol*) _tmp16_);
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp18_ = _tmp17_;
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp19_ = g_strconcat (_tmp15_, _tmp18_, NULL);
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classname);
#line 175 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->classname = _tmp19_;
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp20_ = c;
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp21_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp20_);
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classcname);
#line 176 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->classcname = _tmp21_;
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp22_ = c;
#line 178 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      cxx_writer_process_includes (self, (ValaSymbol*) _tmp22_);
#line 180 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      has_constructor = FALSE;
#line 1893 "cxxwriter.c"
      {
            ValaClass* _tmp23_;
            ValaList* _tmp24_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp25_;
            gint _tmp26_;
            gint _tmp27_;
            gint _m_size;
            gint _m_index;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp23_ = c;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp24_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp23_);
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_list = _tmp24_;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp25_ = _m_list;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp26_ = vala_collection_get_size ((ValaCollection*) _tmp25_);
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp27_ = _tmp26_;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_size = _tmp27_;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_index = -1;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 1921 "cxxwriter.c"
                  gint _tmp28_;
                  gint _tmp29_;
                  gint _tmp30_;
                  ValaList* _tmp31_;
                  gint _tmp32_;
                  gpointer _tmp33_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp34_;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp28_ = _m_index;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _m_index = _tmp28_ + 1;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp29_ = _m_index;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp30_ = _m_size;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp29_ < _tmp30_)) {
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 1942 "cxxwriter.c"
                  }
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp31_ = _m_list;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp32_ = _m_index;
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp33_ = vala_list_get (_tmp31_, _tmp32_);
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  m = (ValaMethod*) _tmp33_;
#line 182 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp34_ = m;
#line 182 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (VALA_IS_CREATION_METHOD (_tmp34_)) {
#line 183 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        has_constructor = TRUE;
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _vala_code_node_unref0 (m);
#line 184 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 1962 "cxxwriter.c"
                  }
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (m);
#line 1966 "cxxwriter.c"
            }
#line 181 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 1970 "cxxwriter.c"
      }
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp35_ = c;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp36_ = vala_class_get_is_compact (_tmp35_);
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp37_ = _tmp36_;
#line 187 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      has_destructor = !_tmp37_;
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp38_ = self->glib_mode;
#line 191 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp38_) {
#line 1984 "cxxwriter.c"
            const gchar* _tmp39_;
            const gchar* _tmp40_;
            gchar* _tmp41_ = NULL;
#line 192 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp39_ = self->priv->nspace;
#line 192 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp40_ = self->priv->classname;
#line 192 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp41_ = g_strdup_printf ("%s_%s", _tmp39_, _tmp40_);
#line 192 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->classname);
#line 192 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->classname = _tmp41_;
#line 1998 "cxxwriter.c"
      }
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp42_ = self->priv->defined_classes;
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp43_ = self->priv->classname;
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp44_ = g_hash_table_lookup (_tmp42_, _tmp43_);
#line 194 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (GPOINTER_TO_INT (_tmp44_)) {
#line 195 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            return;
#line 2010 "cxxwriter.c"
      }
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp45_ = self->priv->defined_classes;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp46_ = self->priv->classname;
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp47_ = g_strdup (_tmp46_);
#line 196 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_hash_table_insert (_tmp45_, _tmp47_, GINT_TO_POINTER (TRUE));
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp48_ = self->glib_mode;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp48_) {
#line 2024 "cxxwriter.c"
            const gchar* _tmp49_;
            const gchar* _tmp50_;
            const gchar* _tmp51_;
            gchar* _tmp52_ = NULL;
            gchar* _tmp53_;
            gchar* _tmp54_;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp49_ = self->priv->extends;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp50_ = self->priv->modulename;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp51_ = self->priv->classcname;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp52_ = g_strdup_printf ("class %s_%s {\n", _tmp50_, _tmp51_);
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp53_ = _tmp52_;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp54_ = g_strconcat (_tmp49_, _tmp53_, NULL);
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp54_;
#line 198 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp53_);
#line 2049 "cxxwriter.c"
      } else {
            const gchar* _tmp55_;
            const gchar* _tmp56_;
            const gchar* _tmp57_;
            gchar* _tmp58_ = NULL;
            gchar* _tmp59_;
            gchar* _tmp60_;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp55_ = self->priv->extends;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp56_ = self->priv->modulename;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp57_ = self->priv->classname;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp58_ = g_strdup_printf ("class %s_%s {\n", _tmp56_, _tmp57_);
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp59_ = _tmp58_;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp60_ = g_strconcat (_tmp55_, _tmp59_, NULL);
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp60_;
#line 199 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp59_);
#line 2075 "cxxwriter.c"
      }
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp61_ = self->priv->extends;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp62_ = self->priv->classname;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp63_ = g_strdup_printf (" %s *self;\n", _tmp62_);
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp64_ = _tmp63_;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp65_ = g_strconcat (_tmp61_, _tmp64_, NULL);
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->extends);
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->extends = _tmp65_;
#line 201 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (_tmp64_);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp66_ = self->priv->extends;
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp67_ = g_strconcat (_tmp66_, " public:\n", NULL);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->extends);
#line 202 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->extends = _tmp67_;
#line 2101 "cxxwriter.c"
      {
            ValaClass* _tmp68_;
            ValaList* _tmp69_ = NULL;
            ValaList* _e_list;
            ValaList* _tmp70_;
            gint _tmp71_;
            gint _tmp72_;
            gint _e_size;
            gint _e_index;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp68_ = c;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp69_ = vala_class_get_enums (_tmp68_);
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_list = _tmp69_;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp70_ = _e_list;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp71_ = vala_collection_get_size ((ValaCollection*) _tmp70_);
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp72_ = _tmp71_;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_size = _tmp72_;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_index = -1;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 2129 "cxxwriter.c"
                  gint _tmp73_;
                  gint _tmp74_;
                  gint _tmp75_;
                  ValaList* _tmp76_;
                  gint _tmp77_;
                  gpointer _tmp78_ = NULL;
                  ValaEnum* e;
                  ValaEnum* _tmp79_;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp73_ = _e_index;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _e_index = _tmp73_ + 1;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp74_ = _e_index;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp75_ = _e_size;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp74_ < _tmp75_)) {
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 2150 "cxxwriter.c"
                  }
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp76_ = _e_list;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp77_ = _e_index;
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp78_ = vala_list_get (_tmp76_, _tmp77_);
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  e = (ValaEnum*) _tmp78_;
#line 204 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp79_ = e;
#line 204 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_enum (self, _tmp79_);
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (e);
#line 2166 "cxxwriter.c"
            }
#line 203 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_e_list);
#line 2170 "cxxwriter.c"
      }
      {
            ValaClass* _tmp80_;
            ValaList* _tmp81_ = NULL;
            ValaList* _f_list;
            ValaList* _tmp82_;
            gint _tmp83_;
            gint _tmp84_;
            gint _f_size;
            gint _f_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp80_ = c;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp81_ = vala_class_get_fields (_tmp80_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_list = _tmp81_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp82_ = _f_list;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp83_ = vala_collection_get_size ((ValaCollection*) _tmp82_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp84_ = _tmp83_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_size = _tmp84_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_index = -1;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 2199 "cxxwriter.c"
                  gint _tmp85_;
                  gint _tmp86_;
                  gint _tmp87_;
                  ValaList* _tmp88_;
                  gint _tmp89_;
                  gpointer _tmp90_ = NULL;
                  ValaField* f;
                  ValaField* _tmp91_;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp85_ = _f_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _f_index = _tmp85_ + 1;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp86_ = _f_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp87_ = _f_size;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp86_ < _tmp87_)) {
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 2220 "cxxwriter.c"
                  }
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp88_ = _f_list;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp89_ = _f_index;
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp90_ = vala_list_get (_tmp88_, _tmp89_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  f = (ValaField*) _tmp90_;
#line 206 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp91_ = f;
#line 206 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_field (self, _tmp91_);
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (f);
#line 2236 "cxxwriter.c"
            }
#line 205 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_f_list);
#line 2240 "cxxwriter.c"
      }
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp93_ = has_destructor;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp93_) {
#line 2246 "cxxwriter.c"
            gboolean _tmp94_;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp94_ = has_constructor;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp92_ = _tmp94_;
#line 2252 "cxxwriter.c"
      } else {
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp92_ = FALSE;
#line 2256 "cxxwriter.c"
      }
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp95_ = _tmp92_;
#line 208 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp95_) {
#line 2262 "cxxwriter.c"
            ValaClass* _tmp96_;
            gboolean _tmp97_ = FALSE;
#line 209 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp96_ = c;
#line 209 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp97_ = vala_ccode_base_module_is_reference_counting ((ValaTypeSymbol*) _tmp96_);
#line 209 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp97_) {
#line 2271 "cxxwriter.c"
                  ValaClass* _tmp98_;
                  gchar* _tmp99_ = NULL;
                  gchar* freefun;
                  const gchar* _tmp100_;
#line 210 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp98_ = c;
#line 210 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp99_ = vala_ccode_base_module_get_ccode_unref_function ((ValaObjectTypeSymbol*) _tmp98_);
#line 210 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  freefun = _tmp99_;
#line 211 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp100_ = freefun;
#line 211 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp100_ != NULL) {
#line 2286 "cxxwriter.c"
                        const gchar* _tmp101_;
                        const gchar* _tmp102_;
                        const gchar* _tmp103_;
                        const gchar* _tmp104_;
                        gchar* _tmp105_ = NULL;
                        gchar* _tmp106_;
                        gchar* _tmp107_;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp101_ = self->priv->extends;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp102_ = self->priv->modulename;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp103_ = self->priv->classname;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp104_ = freefun;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp105_ = g_strdup_printf ("  ~%s_%s() {\n    %s (self);\n  }\n", _tmp102_, _tmp103_, _tmp104_);
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp106_ = _tmp105_;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp107_ = g_strconcat (_tmp101_, _tmp106_, NULL);
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp107_;
#line 212 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp106_);
#line 2314 "cxxwriter.c"
                  }
#line 209 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (freefun);
#line 2318 "cxxwriter.c"
            } else {
                  ValaClass* _tmp108_;
                  gchar* _tmp109_ = NULL;
                  gchar* freefun;
                  const gchar* _tmp110_;
#line 214 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp108_ = c;
#line 214 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp109_ = vala_ccode_base_module_get_ccode_free_function ((ValaTypeSymbol*) _tmp108_);
#line 214 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  freefun = _tmp109_;
#line 215 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp110_ = freefun;
#line 215 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp110_ != NULL) {
#line 2334 "cxxwriter.c"
                        const gchar* _tmp111_;
                        const gchar* _tmp112_;
                        const gchar* _tmp113_;
                        const gchar* _tmp114_;
                        gchar* _tmp115_ = NULL;
                        gchar* _tmp116_;
                        gchar* _tmp117_;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp111_ = self->priv->extends;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp112_ = self->priv->modulename;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp113_ = self->priv->classname;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp114_ = freefun;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp115_ = g_strdup_printf ("  ~%s_%s() {\n    %s (self);\n  }\n", _tmp112_, _tmp113_, _tmp114_);
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp116_ = _tmp115_;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp117_ = g_strconcat (_tmp111_, _tmp116_, NULL);
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp117_;
#line 216 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp116_);
#line 2362 "cxxwriter.c"
                  }
#line 209 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (freefun);
#line 2366 "cxxwriter.c"
            }
      }
      {
            ValaClass* _tmp118_;
            ValaList* _tmp119_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp120_;
            gint _tmp121_;
            gint _tmp122_;
            gint _m_size;
            gint _m_index;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp118_ = c;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp119_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp118_);
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_list = _tmp119_;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp120_ = _m_list;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp121_ = vala_collection_get_size ((ValaCollection*) _tmp120_);
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp122_ = _tmp121_;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_size = _tmp122_;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_index = -1;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 2396 "cxxwriter.c"
                  gint _tmp123_;
                  gint _tmp124_;
                  gint _tmp125_;
                  ValaList* _tmp126_;
                  gint _tmp127_;
                  gpointer _tmp128_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp129_;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp123_ = _m_index;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _m_index = _tmp123_ + 1;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp124_ = _m_index;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp125_ = _m_size;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp124_ < _tmp125_)) {
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 2417 "cxxwriter.c"
                  }
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp126_ = _m_list;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp127_ = _m_index;
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp128_ = vala_list_get (_tmp126_, _tmp127_);
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  m = (ValaMethod*) _tmp128_;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp129_ = m;
#line 220 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_method (self, _tmp129_);
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (m);
#line 2433 "cxxwriter.c"
            }
#line 219 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 2437 "cxxwriter.c"
      }
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp130_ = self->priv->extends;
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp131_ = g_strconcat (_tmp130_, "};\n", NULL);
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->extends);
#line 221 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->extends = _tmp131_;
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp132_ = g_strdup ("");
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classname);
#line 222 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->classname = _tmp132_;
#line 2453 "cxxwriter.c"
}


void cxx_writer_walk_enum (CxxWriter* self, ValaEnum* e) {
#line 225 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 225 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (e != NULL);
#line 2462 "cxxwriter.c"
}


static inline gboolean cxx_writer_is_generic (CxxWriter* self, const gchar* type) {
      gboolean result = FALSE;
      gboolean _tmp0_ = FALSE;
      gboolean _tmp1_ = FALSE;
      gboolean _tmp2_;
      gboolean _tmp5_;
      gboolean _tmp8_;
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (self != NULL, FALSE);
#line 243 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_val_if_fail (type != NULL, FALSE);
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = self->cxx_mode;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp2_) {
#line 2481 "cxxwriter.c"
            const gchar* _tmp3_;
            gint _tmp4_ = 0;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp3_ = type;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp4_ = string_index_of (_tmp3_, "<", 0);
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp1_ = _tmp4_ != (-1);
#line 2490 "cxxwriter.c"
      } else {
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp1_ = FALSE;
#line 2494 "cxxwriter.c"
      }
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = _tmp1_;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp5_) {
#line 2500 "cxxwriter.c"
            const gchar* _tmp6_;
            gint _tmp7_ = 0;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp6_ = type;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp7_ = string_index_of (_tmp6_, ">", 0);
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp0_ = _tmp7_ != (-1);
#line 2509 "cxxwriter.c"
      } else {
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp0_ = FALSE;
#line 2513 "cxxwriter.c"
      }
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp8_ = _tmp0_;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      result = _tmp8_;
#line 244 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      return result;
#line 2521 "cxxwriter.c"
}


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


void cxx_writer_walk_method (CxxWriter* self, ValaMethod* m) {
      gboolean first;
      ValaMethod* _tmp0_;
      gchar* _tmp1_ = NULL;
      gchar* cname;
      ValaMethod* _tmp2_;
      const gchar* _tmp3_;
      const gchar* _tmp4_;
      gchar* _tmp5_ = NULL;
      gchar* alias;
      gchar* ret = NULL;
      gchar* _tmp6_;
      gchar* def_args;
      gchar* _tmp7_;
      gchar* call_args;
      gboolean void_return = FALSE;
      ValaMethod* _tmp8_;
      ValaMemberBinding _tmp9_;
      ValaMemberBinding _tmp10_;
      gboolean is_static;
      ValaMethod* _tmp11_;
      gboolean is_constructor;
      ValaMethod* _tmp12_;
      ValaDataType* _tmp13_;
      ValaDataType* _tmp14_;
      gchar* _tmp15_ = NULL;
      gchar* _tmp16_ = NULL;
      const gchar* _tmp17_;
      gboolean _tmp18_ = FALSE;
      const gchar* _tmp25_;
      gchar* _tmp26_ = NULL;
      const gchar* _tmp27_;
      const gchar* _tmp31_;
      ValaMethod* _tmp32_;
      gboolean _tmp33_ = FALSE;
      gchar* _tmp34_;
      gchar* applys;
      gchar* _tmp35_;
      gchar* clears;
      gchar* _tmp36_;
      gchar* pfx;
      const gchar* _tmp102_;
      const gchar* _tmp112_;
      const gchar* _tmp113_;
      gboolean _tmp119_;
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (m != NULL);
#line 248 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      first = TRUE;
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = m;
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp0_);
#line 249 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      cname = _tmp1_;
#line 250 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = m;
#line 250 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = vala_symbol_get_name ((ValaSymbol*) _tmp2_);
#line 250 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp4_ = _tmp3_;
#line 250 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = cxx_writer_get_alias (self, _tmp4_);
#line 250 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      alias = _tmp5_;
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp6_ = g_strdup ("");
#line 252 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      def_args = _tmp6_;
#line 253 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp7_ = g_strdup ("");
#line 253 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      call_args = _tmp7_;
#line 255 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp8_ = m;
#line 255 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp9_ = vala_method_get_binding (_tmp8_);
#line 255 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp10_ = _tmp9_;
#line 255 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      is_static = (_tmp10_ & VALA_MEMBER_BINDING_STATIC) != 0;
#line 256 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp11_ = m;
#line 256 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      is_constructor = VALA_IS_CREATION_METHOD (_tmp11_);
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp12_ = m;
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp13_ = vala_method_get_return_type (_tmp12_);
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp14_ = _tmp13_;
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp15_ = vala_code_node_to_string ((ValaCodeNode*) _tmp14_);
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (ret);
#line 262 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      ret = _tmp15_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp17_ = ret;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp18_ = cxx_writer_is_generic (self, _tmp17_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp18_) {
#line 2637 "cxxwriter.c"
            const gchar* _tmp19_;
            gchar* _tmp20_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp19_ = ret;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp20_ = g_strdup (_tmp19_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp16_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp16_ = _tmp20_;
#line 2648 "cxxwriter.c"
      } else {
            ValaMethod* _tmp21_;
            ValaDataType* _tmp22_;
            ValaDataType* _tmp23_;
            gchar* _tmp24_ = NULL;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp21_ = m;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp22_ = vala_method_get_return_type (_tmp21_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp23_ = _tmp22_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp24_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp23_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp16_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp16_ = _tmp24_;
#line 2666 "cxxwriter.c"
      }
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp25_ = _tmp16_;
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp26_ = cxx_writer_get_ctype (self, _tmp25_);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (ret);
#line 263 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      ret = _tmp26_;
#line 264 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp27_ = ret;
#line 264 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp27_ == NULL) {
#line 2680 "cxxwriter.c"
            const gchar* _tmp28_;
            gchar* _tmp29_ = NULL;
            gchar* _tmp30_;
#line 265 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp28_ = cname;
#line 265 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp29_ = g_strdup_printf ("Cannot resolve return type for %s\n", _tmp28_);
#line 265 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp30_ = _tmp29_;
#line 265 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            valabind_compiler_error (_tmp30_);
#line 265 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp30_);
#line 2694 "cxxwriter.c"
      }
#line 266 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp31_ = ret;
#line 266 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      void_return = g_strcmp0 (_tmp31_, "void") == 0;
#line 268 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp32_ = m;
#line 268 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp33_ = vala_symbol_is_private_symbol ((ValaSymbol*) _tmp32_);
#line 268 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp33_) {
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp16_);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (call_args);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (def_args);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (ret);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (alias);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (cname);
#line 269 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            return;
#line 2720 "cxxwriter.c"
      }
#line 271 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp34_ = g_strdup ("");
#line 271 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      applys = _tmp34_;
#line 272 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp35_ = g_strdup ("");
#line 272 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      clears = _tmp35_;
#line 273 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp36_ = g_strdup ("");
#line 273 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      pfx = _tmp36_;
#line 2734 "cxxwriter.c"
      {
            ValaMethod* _tmp37_;
            ValaList* _tmp38_ = NULL;
            ValaList* _foo_list;
            ValaList* _tmp39_;
            gint _tmp40_;
            gint _tmp41_;
            gint _foo_size;
            gint _foo_index;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp37_ = m;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp38_ = vala_method_get_parameters (_tmp37_);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _foo_list = _tmp38_;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp39_ = _foo_list;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp40_ = vala_collection_get_size ((ValaCollection*) _tmp39_);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp41_ = _tmp40_;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _foo_size = _tmp41_;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _foo_index = -1;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 2762 "cxxwriter.c"
                  gint _tmp42_;
                  gint _tmp43_;
                  gint _tmp44_;
                  ValaList* _tmp45_;
                  gint _tmp46_;
                  gpointer _tmp47_ = NULL;
                  ValaParameter* foo;
                  ValaParameter* _tmp48_;
                  const gchar* _tmp49_;
                  const gchar* _tmp50_;
                  gchar* _tmp51_;
                  gchar* arg_name;
                  ValaParameter* _tmp52_;
                  ValaDataType* _tmp53_;
                  ValaDataType* _tmp54_;
                  ValaDataType* _tmp55_;
                  ValaDataType* bar;
                  ValaDataType* _tmp56_;
                  ValaDataType* _tmp57_;
                  gchar* _tmp58_ = NULL;
                  gchar* _tmp59_;
                  gchar* _tmp60_ = NULL;
                  gchar* _tmp61_;
                  gchar* arg_type;
                  gboolean _tmp62_;
                  ValaParameter* _tmp65_;
                  ValaParameterDirection _tmp66_;
                  ValaParameterDirection _tmp67_;
                  const gchar* _tmp89_;
                  const gchar* _tmp90_;
                  const gchar* _tmp91_;
                  gchar* _tmp92_ = NULL;
                  gchar* _tmp93_;
                  gchar* _tmp94_;
                  const gchar* _tmp95_;
                  const gchar* _tmp96_;
                  const gchar* _tmp97_;
                  const gchar* _tmp98_;
                  gchar* _tmp99_ = NULL;
                  gchar* _tmp100_;
                  gchar* _tmp101_;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp42_ = _foo_index;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _foo_index = _tmp42_ + 1;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp43_ = _foo_index;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp44_ = _foo_size;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp43_ < _tmp44_)) {
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 2816 "cxxwriter.c"
                  }
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp45_ = _foo_list;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp46_ = _foo_index;
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp47_ = vala_list_get (_tmp45_, _tmp46_);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  foo = (ValaParameter*) _tmp47_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp48_ = foo;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp49_ = vala_symbol_get_name ((ValaSymbol*) _tmp48_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp50_ = _tmp49_;
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp51_ = g_strdup (_tmp50_);
#line 275 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  arg_name = _tmp51_;
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp52_ = foo;
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp53_ = vala_variable_get_variable_type ((ValaVariable*) _tmp52_);
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp54_ = _tmp53_;
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp55_ = _vala_code_node_ref0 (_tmp54_);
#line 277 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  bar = _tmp55_;
#line 278 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp56_ = bar;
#line 278 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp56_ == NULL) {
#line 279 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _vala_code_node_unref0 (bar);
#line 279 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (arg_name);
#line 279 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _vala_code_node_unref0 (foo);
#line 279 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        continue;
#line 2858 "cxxwriter.c"
                  }
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp57_ = bar;
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp58_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp57_);
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp59_ = _tmp58_;
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp60_ = cxx_writer_get_ctype (self, _tmp59_);
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp61_ = _tmp60_;
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp59_);
#line 280 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  arg_type = _tmp61_;
#line 282 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp62_ = first;
#line 282 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp62_) {
#line 2878 "cxxwriter.c"
                        gchar* _tmp63_;
#line 283 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp63_ = g_strdup ("");
#line 283 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (pfx);
#line 283 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        pfx = _tmp63_;
#line 284 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        first = FALSE;
#line 2888 "cxxwriter.c"
                  } else {
                        gchar* _tmp64_;
#line 285 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp64_ = g_strdup (", ");
#line 285 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (pfx);
#line 285 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        pfx = _tmp64_;
#line 2897 "cxxwriter.c"
                  }
#line 288 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp65_ = foo;
#line 288 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp66_ = vala_parameter_get_direction (_tmp65_);
#line 288 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp67_ = _tmp66_;
#line 288 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp67_ != VALA_PARAMETER_DIRECTION_IN) {
#line 2907 "cxxwriter.c"
                        gchar* _tmp68_;
                        gchar* var_name;
                        ValaParameter* _tmp69_;
                        ValaParameterDirection _tmp70_;
                        ValaParameterDirection _tmp71_;
                        const gchar* _tmp77_;
                        gint _tmp78_ = 0;
                        const gchar* _tmp81_;
                        const gchar* _tmp82_;
                        const gchar* _tmp83_;
                        const gchar* _tmp84_;
                        const gchar* _tmp85_;
                        gchar* _tmp86_ = NULL;
                        gchar* _tmp87_;
                        gchar* _tmp88_;
#line 289 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp68_ = g_strdup ("");
#line 289 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        var_name = _tmp68_;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp69_ = foo;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp70_ = vala_parameter_get_direction (_tmp69_);
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp71_ = _tmp70_;
#line 290 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp71_ == VALA_PARAMETER_DIRECTION_OUT) {
#line 2935 "cxxwriter.c"
                              gchar* _tmp72_;
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp72_ = g_strdup ("OUTPUT");
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (var_name);
#line 291 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              var_name = _tmp72_;
#line 2943 "cxxwriter.c"
                        } else {
                              ValaParameter* _tmp73_;
                              ValaParameterDirection _tmp74_;
                              ValaParameterDirection _tmp75_;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp73_ = foo;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp74_ = vala_parameter_get_direction (_tmp73_);
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp75_ = _tmp74_;
#line 293 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              if (_tmp75_ == VALA_PARAMETER_DIRECTION_REF) {
#line 2956 "cxxwriter.c"
                                    gchar* _tmp76_;
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    _tmp76_ = g_strdup ("INOUT");
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    _g_free0 (var_name);
#line 294 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    var_name = _tmp76_;
#line 2964 "cxxwriter.c"
                              }
                        }
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp77_ = arg_type;
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp78_ = string_index_of (_tmp77_, "*", 0);
#line 296 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp78_ == (-1)) {
#line 2973 "cxxwriter.c"
                              const gchar* _tmp79_;
                              gchar* _tmp80_;
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp79_ = arg_type;
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp80_ = g_strconcat (_tmp79_, "*", NULL);
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (arg_type);
#line 297 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              arg_type = _tmp80_;
#line 2984 "cxxwriter.c"
                        }
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp81_ = applys;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp82_ = arg_type;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp83_ = var_name;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp84_ = arg_type;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp85_ = arg_name;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp86_ = g_strdup_printf ("  %%apply %s %s { %s %s };\n", _tmp82_, _tmp83_, _tmp84_, _tmp85_);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp87_ = _tmp86_;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp88_ = g_strconcat (_tmp81_, _tmp87_, NULL);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (applys);
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        applys = _tmp88_;
#line 298 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp87_);
#line 288 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (var_name);
#line 3010 "cxxwriter.c"
                  }
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp89_ = call_args;
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp90_ = pfx;
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp91_ = arg_name;
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp92_ = g_strdup_printf ("%s%s", _tmp90_, _tmp91_);
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp93_ = _tmp92_;
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp94_ = g_strconcat (_tmp89_, _tmp93_, NULL);
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (call_args);
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  call_args = _tmp94_;
#line 302 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp93_);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp95_ = def_args;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp96_ = pfx;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp97_ = arg_type;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp98_ = arg_name;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp99_ = g_strdup_printf ("%s%s %s", _tmp96_, _tmp97_, _tmp98_);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp100_ = _tmp99_;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp101_ = g_strconcat (_tmp95_, _tmp100_, NULL);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (def_args);
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  def_args = _tmp101_;
#line 303 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp100_);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (arg_type);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (bar);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (arg_name);
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (foo);
#line 3058 "cxxwriter.c"
            }
#line 274 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_foo_list);
#line 3062 "cxxwriter.c"
      }
#line 307 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp102_ = self->priv->classname;
#line 307 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (g_strcmp0 (_tmp102_, "") == 0) {
#line 3068 "cxxwriter.c"
            const gchar* _tmp103_;
            const gchar* _tmp104_;
            const gchar* _tmp105_;
            const gchar* _tmp106_;
            gchar* _tmp107_ = NULL;
            gchar* _tmp108_;
            gchar* _tmp109_;
            const gchar* _tmp110_;
            gchar* _tmp111_;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp103_ = self->priv->externs;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp104_ = ret;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp105_ = cname;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp106_ = def_args;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp107_ = g_strdup_printf ("extern %s %s (%s);\n", _tmp104_, _tmp105_, _tmp106_);
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp108_ = _tmp107_;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp109_ = g_strconcat (_tmp103_, _tmp108_, NULL);
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->externs);
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->externs = _tmp109_;
#line 308 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp108_);
#line 309 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            is_constructor = FALSE;
#line 310 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            is_static = TRUE;
#line 311 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp110_ = self->priv->nspace;
#line 311 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp111_ = g_strdup (_tmp110_);
#line 311 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->classname);
#line 311 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->classname = _tmp111_;
#line 3110 "cxxwriter.c"
      }
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp112_ = self->priv->nspace;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp113_ = self->priv->classname;
#line 313 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (g_strcmp0 (_tmp112_, _tmp113_) == 0) {
#line 3118 "cxxwriter.c"
            const gchar* _tmp114_;
            gchar* _tmp115_;
            gchar* _tmp116_;
            const gchar* _tmp117_;
            gchar* _tmp118_;
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp114_ = self->priv->nspace;
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp115_ = g_strconcat (_tmp114_, "_", NULL);
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp116_ = _tmp115_;
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp117_ = alias;
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp118_ = g_strconcat (_tmp116_, _tmp117_, NULL);
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (alias);
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            alias = _tmp118_;
#line 314 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp116_);
#line 3140 "cxxwriter.c"
      }
#line 315 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp119_ = is_constructor;
#line 315 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp119_) {
#line 3146 "cxxwriter.c"
            const gchar* _tmp120_;
            const gchar* _tmp121_;
            const gchar* _tmp122_;
            const gchar* _tmp123_;
            gchar* _tmp124_ = NULL;
            gchar* _tmp125_;
            gchar* _tmp126_;
            const gchar* _tmp127_;
            const gchar* _tmp128_;
            const gchar* _tmp129_;
            const gchar* _tmp130_;
            gchar* _tmp131_ = NULL;
            gchar* _tmp132_;
            gchar* _tmp133_;
            gboolean _tmp134_;
            const gchar* _tmp137_;
            const gchar* _tmp138_;
            const gchar* _tmp139_;
            gchar* _tmp140_ = NULL;
            gchar* _tmp141_;
            gchar* _tmp142_;
            const gchar* _tmp143_;
            const gchar* _tmp144_;
            gchar* _tmp145_;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp120_ = self->priv->externs;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp121_ = self->priv->classcname;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp122_ = cname;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp123_ = def_args;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp124_ = g_strdup_printf ("extern %s* %s (%s);\n", _tmp121_, _tmp122_, _tmp123_);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp125_ = _tmp124_;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp126_ = g_strconcat (_tmp120_, _tmp125_, NULL);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->externs);
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->externs = _tmp126_;
#line 316 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp125_);
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp127_ = self->priv->extends;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp128_ = self->priv->modulename;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp129_ = self->priv->classname;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp130_ = def_args;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp131_ = g_strdup_printf ("  %s_%s (%s) {\n", _tmp128_, _tmp129_, _tmp130_);
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp132_ = _tmp131_;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp133_ = g_strconcat (_tmp127_, _tmp132_, NULL);
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp133_;
#line 318 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp132_);
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp134_ = self->glib_mode;
#line 319 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp134_) {
#line 3215 "cxxwriter.c"
                  const gchar* _tmp135_;
                  gchar* _tmp136_;
#line 320 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp135_ = self->priv->extends;
#line 320 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp136_ = g_strconcat (_tmp135_, "    g_type_init ();\n", NULL);
#line 320 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (self->priv->extends);
#line 320 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  self->priv->extends = _tmp136_;
#line 3226 "cxxwriter.c"
            }
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp137_ = self->priv->extends;
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp138_ = cname;
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp139_ = call_args;
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp140_ = g_strdup_printf ("    self = %s (%s);\n  }\n", _tmp138_, _tmp139_);
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp141_ = _tmp140_;
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp142_ = g_strconcat (_tmp137_, _tmp141_, NULL);
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp142_;
#line 321 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp141_);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp143_ = self->priv->extends;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp144_ = clears;
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp145_ = g_strconcat (_tmp143_, _tmp144_, NULL);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 322 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp145_;
#line 3256 "cxxwriter.c"
      } else {
            gboolean _tmp146_;
            gboolean _tmp154_;
            gboolean _tmp169_ = FALSE;
            gboolean _tmp170_;
            gboolean _tmp173_;
            const gchar* _tmp286_;
            const gchar* _tmp287_;
            gchar* _tmp288_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp146_ = is_static;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (!_tmp146_) {
#line 3270 "cxxwriter.c"
                  gchar* _tmp147_ = NULL;
                  const gchar* _tmp148_;
                  const gchar* _tmp152_;
                  gchar* _tmp153_;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp148_ = call_args;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (g_strcmp0 (_tmp148_, "") == 0) {
#line 3279 "cxxwriter.c"
                        gchar* _tmp149_;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp149_ = g_strdup ("self");
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp147_);
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp147_ = _tmp149_;
#line 3287 "cxxwriter.c"
                  } else {
                        const gchar* _tmp150_;
                        gchar* _tmp151_;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp150_ = call_args;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp151_ = g_strconcat ("self, ", _tmp150_, NULL);
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp147_);
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp147_ = _tmp151_;
#line 3299 "cxxwriter.c"
                  }
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp152_ = _tmp147_;
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp153_ = g_strdup (_tmp152_);
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (call_args);
#line 325 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  call_args = _tmp153_;
#line 324 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp147_);
#line 3311 "cxxwriter.c"
            }
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp154_ = is_static;
#line 328 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp154_) {
#line 3317 "cxxwriter.c"
                  const gchar* _tmp155_;
                  const gchar* _tmp156_;
                  const gchar* _tmp157_;
                  const gchar* _tmp158_;
                  gchar* _tmp159_ = NULL;
                  gchar* _tmp160_;
                  gchar* _tmp161_;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp155_ = self->priv->extends;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp156_ = ret;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp157_ = alias;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp158_ = def_args;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp159_ = g_strdup_printf ("  static %s %s (%s) {\n", _tmp156_, _tmp157_, _tmp158_);
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp160_ = _tmp159_;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp161_ = g_strconcat (_tmp155_, _tmp160_, NULL);
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (self->priv->extends);
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  self->priv->extends = _tmp161_;
#line 329 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp160_);
#line 3345 "cxxwriter.c"
            } else {
                  const gchar* _tmp162_;
                  const gchar* _tmp163_;
                  const gchar* _tmp164_;
                  const gchar* _tmp165_;
                  gchar* _tmp166_ = NULL;
                  gchar* _tmp167_;
                  gchar* _tmp168_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp162_ = self->priv->extends;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp163_ = ret;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp164_ = alias;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp165_ = def_args;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp166_ = g_strdup_printf ("  %s %s (%s) {\n", _tmp163_, _tmp164_, _tmp165_);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp167_ = _tmp166_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp168_ = g_strconcat (_tmp162_, _tmp167_, NULL);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (self->priv->extends);
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  self->priv->extends = _tmp168_;
#line 330 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp167_);
#line 3374 "cxxwriter.c"
            }
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp170_ = self->cxx_mode;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp170_) {
#line 3380 "cxxwriter.c"
                  const gchar* _tmp171_;
                  gint _tmp172_ = 0;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp171_ = ret;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp172_ = string_index_of (_tmp171_, "std::vector", 0);
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp169_ = _tmp172_ != (-1);
#line 3389 "cxxwriter.c"
            } else {
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp169_ = FALSE;
#line 3393 "cxxwriter.c"
            }
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp173_ = _tmp169_;
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            if (_tmp173_) {
#line 3399 "cxxwriter.c"
                  const gchar* _tmp174_;
                  gint _tmp175_ = 0;
                  gint ptr;
                  gchar* _tmp176_ = NULL;
                  gint _tmp177_;
                  const gchar* _tmp186_;
                  gchar* _tmp187_;
                  gchar* iter_type;
                  const gchar* _tmp188_;
                  gchar* _tmp189_ = NULL;
                  const gchar* _tmp190_;
                  gchar* _tmp191_ = NULL;
                  const gchar* _tmp192_;
                  ValaMethod* _tmp193_;
                  ValaDataType* _tmp194_;
                  ValaDataType* _tmp195_;
                  gchar* _tmp196_ = NULL;
                  gchar* _tmp197_;
                  gint _tmp198_ = 0;
                  gboolean _tmp199_;
                  const gchar* _tmp271_;
                  const gchar* _tmp272_;
                  const gchar* _tmp273_;
                  gchar* _tmp274_ = NULL;
                  gchar* _tmp275_;
                  gchar* _tmp276_;
#line 332 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp174_ = ret;
#line 332 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp175_ = string_index_of (_tmp174_, "<", 0);
#line 332 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  ptr = _tmp175_;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp177_ = ptr;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp177_ == (-1)) {
#line 3436 "cxxwriter.c"
                        const gchar* _tmp178_;
                        gchar* _tmp179_;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp178_ = ret;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp179_ = g_strdup (_tmp178_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp176_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp176_ = _tmp179_;
#line 3447 "cxxwriter.c"
                  } else {
                        const gchar* _tmp180_;
                        gint _tmp181_;
                        const gchar* _tmp182_;
                        gint _tmp183_;
                        gint _tmp184_;
                        gchar* _tmp185_ = NULL;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp180_ = ret;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp181_ = ptr;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp182_ = ret;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp183_ = strlen (_tmp182_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp184_ = _tmp183_;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp185_ = string_slice (_tmp180_, (glong) _tmp181_, (glong) _tmp184_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp176_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp176_ = _tmp185_;
#line 3471 "cxxwriter.c"
                  }
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp186_ = _tmp176_;
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp187_ = g_strdup (_tmp186_);
#line 333 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  iter_type = _tmp187_;
#line 334 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp188_ = iter_type;
#line 334 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp189_ = string_replace (_tmp188_, "<", "");
#line 334 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (iter_type);
#line 334 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  iter_type = _tmp189_;
#line 335 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp190_ = iter_type;
#line 335 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp191_ = string_replace (_tmp190_, ">", "");
#line 335 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (iter_type);
#line 335 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  iter_type = _tmp191_;
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp192_ = iter_type;
#line 340 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (g_strcmp0 (_tmp192_, "G*") == 0) {
#line 341 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        valabind_compiler_error ("Fuck, no <G> type support.\n");
#line 3501 "cxxwriter.c"
                  }
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp193_ = m;
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp194_ = vala_method_get_return_type (_tmp193_);
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp195_ = _tmp194_;
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp196_ = vala_code_node_to_string ((ValaCodeNode*) _tmp195_);
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp197_ = _tmp196_;
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp198_ = string_index_of (_tmp197_, "RFList", 0);
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp199_ = _tmp198_ != (-1);
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp197_);
#line 343 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp199_) {
#line 3521 "cxxwriter.c"
                        const gchar* _tmp200_;
                        const gchar* _tmp201_;
                        gchar* _tmp202_ = NULL;
                        gchar* _tmp203_;
                        gchar* _tmp204_;
                        const gchar* _tmp205_;
                        gchar* _tmp206_;
                        const gchar* _tmp207_;
                        const gchar* _tmp208_;
                        gchar* _tmp209_ = NULL;
                        gchar* _tmp210_;
                        gchar* _tmp211_;
                        const gchar* _tmp212_;
                        const gchar* _tmp213_;
                        const gchar* _tmp214_;
                        gchar* _tmp215_ = NULL;
                        gchar* _tmp216_;
                        gchar* _tmp217_;
                        const gchar* _tmp218_;
                        gchar* _tmp219_;
                        const gchar* _tmp220_;
                        const gchar* _tmp221_;
                        gchar* _tmp222_ = NULL;
                        gchar* _tmp223_;
                        gchar* _tmp224_;
                        const gchar* _tmp225_;
                        gchar* _tmp226_;
                        const gchar* _tmp227_;
                        gchar* _tmp228_;
                        const gchar* _tmp229_;
                        gchar* _tmp230_;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp200_ = self->priv->extends;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp201_ = ret;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp202_ = g_strdup_printf ("    %s ret;\n", _tmp201_);
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp203_ = _tmp202_;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp204_ = g_strconcat (_tmp200_, _tmp203_, NULL);
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp204_;
#line 344 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp203_);
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp205_ = self->priv->extends;
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp206_ = g_strconcat (_tmp205_, "    void** array;\n", NULL);
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 345 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp206_;
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp207_ = self->priv->extends;
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp208_ = iter_type;
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp209_ = g_strdup_printf ("    %s *item;\n", _tmp208_);
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp210_ = _tmp209_;
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp211_ = g_strconcat (_tmp207_, _tmp210_, NULL);
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp211_;
#line 346 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp210_);
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp212_ = self->priv->extends;
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp213_ = cname;
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp214_ = call_args;
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp215_ = g_strdup_printf ("    array = %s (%s);\n", _tmp213_, _tmp214_);
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp216_ = _tmp215_;
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp217_ = g_strconcat (_tmp212_, _tmp216_, NULL);
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp217_;
#line 347 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp216_);
#line 348 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp218_ = self->priv->extends;
#line 348 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp219_ = g_strconcat (_tmp218_, "    r_flist_rewind (array);\n", NULL);
#line 348 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 348 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp219_;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp220_ = self->priv->extends;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp221_ = iter_type;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp222_ = g_strdup_printf ("    while (*array != 0 && (item = (%s*)(*array++)))\n", _tmp221_);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp223_ = _tmp222_;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp224_ = g_strconcat (_tmp220_, _tmp223_, NULL);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp224_;
#line 349 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp223_);
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp225_ = self->priv->extends;
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp226_ = g_strconcat (_tmp225_, "        ret.push_back(*item);\n", NULL);
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 350 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp226_;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp227_ = self->priv->extends;
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp228_ = g_strconcat (_tmp227_, "    return ret;\n", NULL);
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 351 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp228_;
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp229_ = self->priv->extends;
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp230_ = g_strconcat (_tmp229_, "  }\n", NULL);
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (self->priv->extends);
#line 352 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        self->priv->extends = _tmp230_;
#line 3659 "cxxwriter.c"
                  } else {
                        ValaMethod* _tmp231_;
                        ValaDataType* _tmp232_;
                        ValaDataType* _tmp233_;
                        gchar* _tmp234_ = NULL;
                        gchar* _tmp235_;
                        gint _tmp236_ = 0;
                        gboolean _tmp237_;
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp231_ = m;
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp232_ = vala_method_get_return_type (_tmp231_);
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp233_ = _tmp232_;
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp234_ = vala_code_node_to_string ((ValaCodeNode*) _tmp233_);
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp235_ = _tmp234_;
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp236_ = string_index_of (_tmp235_, "RList", 0);
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp237_ = _tmp236_ != (-1);
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (_tmp235_);
#line 353 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        if (_tmp237_) {
#line 3686 "cxxwriter.c"
                              const gchar* _tmp238_;
                              const gchar* _tmp239_;
                              gchar* _tmp240_ = NULL;
                              gchar* _tmp241_;
                              gchar* _tmp242_;
                              const gchar* _tmp243_;
                              gchar* _tmp244_;
                              const gchar* _tmp245_;
                              gchar* _tmp246_;
                              const gchar* _tmp247_;
                              const gchar* _tmp248_;
                              gchar* _tmp249_ = NULL;
                              gchar* _tmp250_;
                              gchar* _tmp251_;
                              const gchar* _tmp252_;
                              const gchar* _tmp253_;
                              const gchar* _tmp254_;
                              gchar* _tmp255_ = NULL;
                              gchar* _tmp256_;
                              gchar* _tmp257_;
                              const gchar* _tmp258_;
                              gchar* _tmp259_;
                              const gchar* _tmp260_;
                              const gchar* _tmp261_;
                              gchar* _tmp262_ = NULL;
                              gchar* _tmp263_;
                              gchar* _tmp264_;
                              const gchar* _tmp265_;
                              gchar* _tmp266_;
                              const gchar* _tmp267_;
                              gchar* _tmp268_;
                              const gchar* _tmp269_;
                              gchar* _tmp270_;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp238_ = self->priv->extends;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp239_ = ret;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp240_ = g_strdup_printf ("    %s ret;\n", _tmp239_);
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp241_ = _tmp240_;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp242_ = g_strconcat (_tmp238_, _tmp241_, NULL);
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp242_;
#line 354 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp241_);
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp243_ = self->priv->extends;
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp244_ = g_strconcat (_tmp243_, "    RList *list;\n", NULL);
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 355 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp244_;
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp245_ = self->priv->extends;
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp246_ = g_strconcat (_tmp245_, "    RListIter *iter;\n", NULL);
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 356 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp246_;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp247_ = self->priv->extends;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp248_ = iter_type;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp249_ = g_strdup_printf ("    %s *item;\n", _tmp248_);
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp250_ = _tmp249_;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp251_ = g_strconcat (_tmp247_, _tmp250_, NULL);
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp251_;
#line 357 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp250_);
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp252_ = self->priv->extends;
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp253_ = cname;
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp254_ = call_args;
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp255_ = g_strdup_printf ("    list = %s (%s);\n", _tmp253_, _tmp254_);
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp256_ = _tmp255_;
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp257_ = g_strconcat (_tmp252_, _tmp256_, NULL);
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp257_;
#line 358 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp256_);
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp258_ = self->priv->extends;
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp259_ = g_strconcat (_tmp258_, "    if (list)\n", NULL);
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 359 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp259_;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp260_ = self->priv->extends;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp261_ = iter_type;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp262_ = g_strdup_printf ("    for (iter = list->head; iter && (item = (%s*)iter->data); iter = i" \
"ter->n)\n", _tmp261_);
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp263_ = _tmp262_;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp264_ = g_strconcat (_tmp260_, _tmp263_, NULL);
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp264_;
#line 360 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (_tmp263_);
#line 361 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp265_ = self->priv->extends;
#line 361 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp266_ = g_strconcat (_tmp265_, "        ret.push_back(*item);\n", NULL);
#line 361 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 361 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp266_;
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp267_ = self->priv->extends;
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp268_ = g_strconcat (_tmp267_, "    return ret;\n", NULL);
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 362 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp268_;
#line 363 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp269_ = self->priv->extends;
#line 363 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp270_ = g_strconcat (_tmp269_, "  }\n", NULL);
#line 363 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (self->priv->extends);
#line 363 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              self->priv->extends = _tmp270_;
#line 3834 "cxxwriter.c"
                        }
                  }
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp271_ = self->priv->vectors;
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp272_ = iter_type;
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp273_ = iter_type;
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp274_ = g_strdup_printf ("  %%template(%sVector) std::vector<%s>;\n", _tmp272_, _tmp273_);
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp275_ = _tmp274_;
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp276_ = g_strconcat (_tmp271_, _tmp275_, NULL);
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (self->priv->vectors);
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  self->priv->vectors = _tmp276_;
#line 365 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp275_);
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (iter_type);
#line 331 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp176_);
#line 3859 "cxxwriter.c"
            } else {
                  const gchar* _tmp277_ = NULL;
                  gboolean _tmp278_;
                  const gchar* _tmp279_;
                  const gchar* _tmp280_;
                  const gchar* _tmp281_;
                  const gchar* _tmp282_;
                  gchar* _tmp283_ = NULL;
                  gchar* _tmp284_;
                  gchar* _tmp285_;
#line 369 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp278_ = void_return;
#line 369 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (_tmp278_) {
#line 369 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp277_ = "";
#line 3876 "cxxwriter.c"
                  } else {
#line 369 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp277_ = "return";
#line 3880 "cxxwriter.c"
                  }
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp279_ = self->priv->extends;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp280_ = _tmp277_;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp281_ = cname;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp282_ = call_args;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp283_ = g_strdup_printf ("    %s %s (%s);\n  }\n", _tmp280_, _tmp281_, _tmp282_);
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp284_ = _tmp283_;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp285_ = g_strconcat (_tmp279_, _tmp284_, NULL);
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (self->priv->extends);
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  self->priv->extends = _tmp285_;
#line 368 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _g_free0 (_tmp284_);
#line 3902 "cxxwriter.c"
            }
#line 371 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp286_ = self->priv->extends;
#line 371 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp287_ = clears;
#line 371 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp288_ = g_strconcat (_tmp286_, _tmp287_, NULL);
#line 371 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (self->priv->extends);
#line 371 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            self->priv->extends = _tmp288_;
#line 3914 "cxxwriter.c"
      }
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (pfx);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (clears);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (applys);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (_tmp16_);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (call_args);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (def_args);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (ret);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (alias);
#line 247 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (cname);
#line 3934 "cxxwriter.c"
}


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


static void cxx_writer_real_visit_namespace (ValaCodeVisitor* base, ValaNamespace* ns) {
      CxxWriter * self;
      ValaNamespace* _tmp0_;
      const gchar* _tmp1_;
      const gchar* _tmp2_;
      gchar* _tmp3_;
      ValaNamespace* _tmp4_;
      ValaSourceReference* _tmp5_;
      ValaSourceReference* _tmp6_;
      ValaSourceReference* _tmp7_;
      ValaSourceReference* sr;
      gboolean _tmp8_ = FALSE;
      ValaSourceReference* _tmp9_;
      gboolean _tmp16_;
      ValaNamespace* _tmp17_;
      const gchar* _tmp18_;
      const gchar* _tmp19_;
      gchar* _tmp20_;
      ValaNamespace* _tmp21_;
      const gchar* _tmp93_ = NULL;
      ValaNamespace* _tmp94_;
      const gchar* _tmp95_;
      const gchar* _tmp96_;
      const gchar* _tmp97_;
      const gchar* _tmp101_;
      gchar* _tmp102_;
      gchar* classprefix;
#line 376 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self = (CxxWriter*) base;
#line 376 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (ns != NULL);
#line 377 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = ns;
#line 377 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = vala_symbol_get_name ((ValaSymbol*) _tmp0_);
#line 377 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = _tmp1_;
#line 377 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp2_ == NULL) {
#line 378 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            return;
#line 3986 "cxxwriter.c"
      }
#line 380 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp3_ = g_strdup ("");
#line 380 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classname);
#line 380 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->classname = _tmp3_;
#line 381 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp4_ = ns;
#line 381 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp5_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp4_);
#line 381 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp6_ = _tmp5_;
#line 381 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp7_ = _vala_source_reference_ref0 (_tmp6_);
#line 381 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      sr = _tmp7_;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp9_ = sr;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp9_ != NULL) {
#line 4008 "cxxwriter.c"
            ValaSourceReference* _tmp10_;
            ValaSourceFile* _tmp11_;
            ValaSourceFile* _tmp12_;
            const gchar* _tmp13_;
            const gchar* _tmp14_;
            gboolean _tmp15_ = FALSE;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp10_ = sr;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp11_ = vala_source_reference_get_file (_tmp10_);
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp12_ = _tmp11_;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp13_ = vala_source_file_get_filename (_tmp12_);
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp14_ = _tmp13_;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp15_ = cxx_writer_is_target_file (self, _tmp14_);
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp8_ = !_tmp15_;
#line 4029 "cxxwriter.c"
      } else {
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp8_ = FALSE;
#line 4033 "cxxwriter.c"
      }
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp16_ = _tmp8_;
#line 382 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp16_) {
#line 383 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_source_reference_unref0 (sr);
#line 383 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            return;
#line 4043 "cxxwriter.c"
      }
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp17_ = ns;
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp18_ = vala_symbol_get_name ((ValaSymbol*) _tmp17_);
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp19_ = _tmp18_;
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp20_ = g_strdup (_tmp19_);
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->nspace);
#line 385 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->nspace = _tmp20_;
#line 386 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp21_ = ns;
#line 386 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      cxx_writer_process_includes (self, (ValaSymbol*) _tmp21_);
#line 4061 "cxxwriter.c"
      {
            ValaNamespace* _tmp22_;
            ValaList* _tmp23_ = NULL;
            ValaList* _f_list;
            ValaList* _tmp24_;
            gint _tmp25_;
            gint _tmp26_;
            gint _f_size;
            gint _f_index;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp22_ = ns;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp23_ = vala_namespace_get_fields (_tmp22_);
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_list = _tmp23_;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp24_ = _f_list;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp25_ = vala_collection_get_size ((ValaCollection*) _tmp24_);
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp26_ = _tmp25_;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_size = _tmp26_;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _f_index = -1;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 4089 "cxxwriter.c"
                  gint _tmp27_;
                  gint _tmp28_;
                  gint _tmp29_;
                  ValaList* _tmp30_;
                  gint _tmp31_;
                  gpointer _tmp32_ = NULL;
                  ValaField* f;
                  ValaField* _tmp33_;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp27_ = _f_index;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _f_index = _tmp27_ + 1;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp28_ = _f_index;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp29_ = _f_size;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp28_ < _tmp29_)) {
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 4110 "cxxwriter.c"
                  }
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp30_ = _f_list;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp31_ = _f_index;
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp32_ = vala_list_get (_tmp30_, _tmp31_);
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  f = (ValaField*) _tmp32_;
#line 392 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp33_ = f;
#line 392 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_field (self, _tmp33_);
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (f);
#line 4126 "cxxwriter.c"
            }
#line 391 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_f_list);
#line 4130 "cxxwriter.c"
      }
      {
            ValaNamespace* _tmp34_;
            ValaList* _tmp35_ = NULL;
            ValaList* _e_list;
            ValaList* _tmp36_;
            gint _tmp37_;
            gint _tmp38_;
            gint _e_size;
            gint _e_index;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp34_ = ns;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp35_ = vala_namespace_get_enums (_tmp34_);
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_list = _tmp35_;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp36_ = _e_list;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp37_ = vala_collection_get_size ((ValaCollection*) _tmp36_);
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp38_ = _tmp37_;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_size = _tmp38_;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _e_index = -1;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 4159 "cxxwriter.c"
                  gint _tmp39_;
                  gint _tmp40_;
                  gint _tmp41_;
                  ValaList* _tmp42_;
                  gint _tmp43_;
                  gpointer _tmp44_ = NULL;
                  ValaEnum* e;
                  ValaEnum* _tmp45_;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp39_ = _e_index;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _e_index = _tmp39_ + 1;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp40_ = _e_index;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp41_ = _e_size;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp40_ < _tmp41_)) {
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 4180 "cxxwriter.c"
                  }
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp42_ = _e_list;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp43_ = _e_index;
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp44_ = vala_list_get (_tmp42_, _tmp43_);
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  e = (ValaEnum*) _tmp44_;
#line 394 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp45_ = e;
#line 394 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_enum (self, _tmp45_);
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (e);
#line 4196 "cxxwriter.c"
            }
#line 393 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_e_list);
#line 4200 "cxxwriter.c"
      }
      {
            ValaNamespace* _tmp46_;
            ValaList* _tmp47_ = NULL;
            ValaList* _c_list;
            ValaList* _tmp48_;
            gint _tmp49_;
            gint _tmp50_;
            gint _c_size;
            gint _c_index;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp46_ = ns;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp47_ = vala_namespace_get_structs (_tmp46_);
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_list = _tmp47_;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp48_ = _c_list;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp49_ = vala_collection_get_size ((ValaCollection*) _tmp48_);
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp50_ = _tmp49_;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_size = _tmp50_;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_index = -1;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 4229 "cxxwriter.c"
                  gint _tmp51_;
                  gint _tmp52_;
                  gint _tmp53_;
                  ValaList* _tmp54_;
                  gint _tmp55_;
                  gpointer _tmp56_ = NULL;
                  ValaStruct* c;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp51_ = _c_index;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _c_index = _tmp51_ + 1;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp52_ = _c_index;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp53_ = _c_size;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp52_ < _tmp53_)) {
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 4249 "cxxwriter.c"
                  }
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp54_ = _c_list;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp55_ = _c_index;
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp56_ = vala_list_get (_tmp54_, _tmp55_);
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  c = (ValaStruct*) _tmp56_;
#line 4259 "cxxwriter.c"
                  {
                        ValaStruct* _tmp57_;
                        ValaList* _tmp58_ = NULL;
                        ValaList* _m_list;
                        ValaList* _tmp59_;
                        gint _tmp60_;
                        gint _tmp61_;
                        gint _m_size;
                        gint _m_index;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp57_ = c;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp58_ = vala_struct_get_methods (_tmp57_);
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _m_list = _tmp58_;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp59_ = _m_list;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp60_ = vala_collection_get_size ((ValaCollection*) _tmp59_);
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp61_ = _tmp60_;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _m_size = _tmp61_;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _m_index = -1;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        while (TRUE) {
#line 4287 "cxxwriter.c"
                              gint _tmp62_;
                              gint _tmp63_;
                              gint _tmp64_;
                              ValaList* _tmp65_;
                              gint _tmp66_;
                              gpointer _tmp67_ = NULL;
                              ValaMethod* m;
                              ValaMethod* _tmp68_;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp62_ = _m_index;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _m_index = _tmp62_ + 1;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp63_ = _m_index;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp64_ = _m_size;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              if (!(_tmp63_ < _tmp64_)) {
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    break;
#line 4308 "cxxwriter.c"
                              }
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp65_ = _m_list;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp66_ = _m_index;
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp67_ = vala_list_get (_tmp65_, _tmp66_);
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              m = (ValaMethod*) _tmp67_;
#line 398 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp68_ = m;
#line 398 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              cxx_writer_walk_method (self, _tmp68_);
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _vala_code_node_unref0 (m);
#line 4324 "cxxwriter.c"
                        }
#line 397 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _vala_iterable_unref0 (_m_list);
#line 4328 "cxxwriter.c"
                  }
                  {
                        ValaStruct* _tmp69_;
                        ValaList* _tmp70_ = NULL;
                        ValaList* _f_list;
                        ValaList* _tmp71_;
                        gint _tmp72_;
                        gint _tmp73_;
                        gint _f_size;
                        gint _f_index;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp69_ = c;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp70_ = vala_struct_get_fields (_tmp69_);
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _f_list = _tmp70_;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp71_ = _f_list;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp72_ = vala_collection_get_size ((ValaCollection*) _tmp71_);
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp73_ = _tmp72_;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _f_size = _tmp73_;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _f_index = -1;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        while (TRUE) {
#line 4357 "cxxwriter.c"
                              gint _tmp74_;
                              gint _tmp75_;
                              gint _tmp76_;
                              ValaList* _tmp77_;
                              gint _tmp78_;
                              gpointer _tmp79_ = NULL;
                              ValaField* f;
                              ValaField* _tmp80_;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp74_ = _f_index;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _f_index = _tmp74_ + 1;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp75_ = _f_index;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp76_ = _f_size;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              if (!(_tmp75_ < _tmp76_)) {
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                                    break;
#line 4378 "cxxwriter.c"
                              }
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp77_ = _f_list;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp78_ = _f_index;
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp79_ = vala_list_get (_tmp77_, _tmp78_);
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              f = (ValaField*) _tmp79_;
#line 400 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp80_ = f;
#line 400 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              cxx_writer_walk_field (self, _tmp80_);
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _vala_code_node_unref0 (f);
#line 4394 "cxxwriter.c"
                        }
#line 399 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _vala_iterable_unref0 (_f_list);
#line 4398 "cxxwriter.c"
                  }
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (c);
#line 4402 "cxxwriter.c"
            }
#line 395 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_c_list);
#line 4406 "cxxwriter.c"
      }
      {
            ValaNamespace* _tmp81_;
            ValaList* _tmp82_ = NULL;
            ValaList* _m_list;
            ValaList* _tmp83_;
            gint _tmp84_;
            gint _tmp85_;
            gint _m_size;
            gint _m_index;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp81_ = ns;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp82_ = vala_namespace_get_methods (_tmp81_);
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_list = _tmp82_;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp83_ = _m_list;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp84_ = vala_collection_get_size ((ValaCollection*) _tmp83_);
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp85_ = _tmp84_;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_size = _tmp85_;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _m_index = -1;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 4435 "cxxwriter.c"
                  gint _tmp86_;
                  gint _tmp87_;
                  gint _tmp88_;
                  ValaList* _tmp89_;
                  gint _tmp90_;
                  gpointer _tmp91_ = NULL;
                  ValaMethod* m;
                  ValaMethod* _tmp92_;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp86_ = _m_index;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _m_index = _tmp86_ + 1;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp87_ = _m_index;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp88_ = _m_size;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp87_ < _tmp88_)) {
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 4456 "cxxwriter.c"
                  }
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp89_ = _m_list;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp90_ = _m_index;
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp91_ = vala_list_get (_tmp89_, _tmp90_);
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  m = (ValaMethod*) _tmp91_;
#line 403 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp92_ = m;
#line 403 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_method (self, _tmp92_);
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (m);
#line 4472 "cxxwriter.c"
            }
#line 402 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_m_list);
#line 4476 "cxxwriter.c"
      }
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp94_ = ns;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp95_ = vala_symbol_get_name ((ValaSymbol*) _tmp94_);
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp96_ = _tmp95_;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp97_ = self->priv->modulename;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (g_strcmp0 (_tmp96_, _tmp97_) == 0) {
#line 4488 "cxxwriter.c"
            ValaNamespace* _tmp98_;
            const gchar* _tmp99_;
            const gchar* _tmp100_;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp98_ = ns;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp99_ = vala_symbol_get_name ((ValaSymbol*) _tmp98_);
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp100_ = _tmp99_;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp93_ = _tmp100_;
#line 4500 "cxxwriter.c"
      } else {
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp93_ = "";
#line 4504 "cxxwriter.c"
      }
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp101_ = _tmp93_;
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp102_ = g_strdup (_tmp101_);
#line 404 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      classprefix = _tmp102_;
#line 4512 "cxxwriter.c"
      {
            ValaNamespace* _tmp103_;
            ValaList* _tmp104_ = NULL;
            ValaList* _c_list;
            ValaList* _tmp105_;
            gint _tmp106_;
            gint _tmp107_;
            gint _c_size;
            gint _c_index;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp103_ = ns;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp104_ = vala_namespace_get_classes (_tmp103_);
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_list = _tmp104_;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp105_ = _c_list;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp106_ = vala_collection_get_size ((ValaCollection*) _tmp105_);
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp107_ = _tmp106_;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_size = _tmp107_;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _c_index = -1;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            while (TRUE) {
#line 4540 "cxxwriter.c"
                  gint _tmp108_;
                  gint _tmp109_;
                  gint _tmp110_;
                  ValaList* _tmp111_;
                  gint _tmp112_;
                  gpointer _tmp113_ = NULL;
                  ValaClass* c;
                  const gchar* _tmp114_;
                  ValaClass* _tmp115_;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp108_ = _c_index;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _c_index = _tmp108_ + 1;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp109_ = _c_index;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp110_ = _c_size;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  if (!(_tmp109_ < _tmp110_)) {
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        break;
#line 4562 "cxxwriter.c"
                  }
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp111_ = _c_list;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp112_ = _c_index;
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp113_ = vala_list_get (_tmp111_, _tmp112_);
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  c = (ValaClass*) _tmp113_;
#line 406 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp114_ = classprefix;
#line 406 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp115_ = c;
#line 406 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  cxx_writer_walk_class (self, _tmp114_, _tmp115_);
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _vala_code_node_unref0 (c);
#line 4580 "cxxwriter.c"
            }
#line 405 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _vala_iterable_unref0 (_c_list);
#line 4584 "cxxwriter.c"
      }
#line 376 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (classprefix);
#line 376 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _vala_source_reference_unref0 (sr);
#line 4590 "cxxwriter.c"
}


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


void cxx_writer_write_file (CxxWriter* self, ValaCodeContext* context, const gchar* filename) {
      const gchar* _tmp0_;
      FILE* _tmp1_ = NULL;
      FILE* _tmp2_;
      ValaCodeContext* _tmp6_;
      ValaCodeContext* _tmp7_;
      ValaCodeContext* _tmp8_;
      GList* _tmp9_;
      guint _tmp10_ = 0U;
      GList* _tmp17_;
      FILE* _tmp21_;
      const gchar* _tmp22_;
      FILE* _tmp23_;
      const gchar* _tmp24_;
      FILE* _tmp25_;
      const gchar* _tmp26_;
#line 410 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (self != NULL);
#line 410 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (context != NULL);
#line 410 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_return_if_fail (filename != NULL);
#line 411 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = filename;
#line 411 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = fopen (_tmp0_, "w");
#line 411 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _fclose0 (self->priv->stream);
#line 411 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->stream = _tmp1_;
#line 412 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = self->priv->stream;
#line 412 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp2_ == NULL) {
#line 4635 "cxxwriter.c"
            const gchar* _tmp3_;
            gchar* _tmp4_ = NULL;
            gchar* _tmp5_;
#line 413 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp3_ = filename;
#line 413 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp4_ = g_strdup_printf ("Cannot open %s for writing", _tmp3_);
#line 413 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp5_ = _tmp4_;
#line 413 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            g_error ("cxxwriter.vala:413: %s", _tmp5_);
#line 413 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _g_free0 (_tmp5_);
#line 4649 "cxxwriter.c"
      }
#line 414 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp6_ = context;
#line 414 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp7_ = _vala_code_context_ref0 (_tmp6_);
#line 414 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _vala_code_context_unref0 (self->priv->context);
#line 414 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->context = _tmp7_;
#line 415 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp8_ = context;
#line 415 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      vala_code_context_accept (_tmp8_, (ValaCodeVisitor*) self);
#line 416 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp9_ = self->includefiles;
#line 416 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp10_ = g_list_length (_tmp9_);
#line 416 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      if (_tmp10_ > ((guint) 0)) {
#line 4669 "cxxwriter.c"
            FILE* _tmp11_;
            GList* _tmp12_;
            FILE* _tmp16_;
#line 417 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp11_ = self->priv->stream;
#line 417 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            fprintf (_tmp11_, "extern \"C\" {\n");
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp12_ = self->includefiles;
#line 4679 "cxxwriter.c"
            {
                  GList* inc_collection = NULL;
                  GList* inc_it = NULL;
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  inc_collection = _tmp12_;
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  for (inc_it = inc_collection; inc_it != NULL; inc_it = inc_it->next) {
#line 4687 "cxxwriter.c"
                        gchar* _tmp13_;
                        gchar* inc = NULL;
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp13_ = g_strdup ((const gchar*) inc_it->data);
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        inc = _tmp13_;
#line 4694 "cxxwriter.c"
                        {
                              FILE* _tmp14_;
                              const gchar* _tmp15_;
#line 419 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp14_ = self->priv->stream;
#line 419 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _tmp15_ = inc;
#line 419 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              fprintf (_tmp14_, "#include <%s>\n", _tmp15_);
#line 418 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                              _g_free0 (inc);
#line 4706 "cxxwriter.c"
                        }
                  }
            }
#line 420 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            _tmp16_ = self->priv->stream;
#line 420 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            fprintf (_tmp16_, "}\n#include <vector>\n");
#line 4714 "cxxwriter.c"
      }
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp17_ = self->includefiles;
#line 4718 "cxxwriter.c"
      {
            GList* inc_collection = NULL;
            GList* inc_it = NULL;
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            inc_collection = _tmp17_;
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
            for (inc_it = inc_collection; inc_it != NULL; inc_it = inc_it->next) {
#line 4726 "cxxwriter.c"
                  gchar* _tmp18_;
                  gchar* inc = NULL;
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  _tmp18_ = g_strdup ((const gchar*) inc_it->data);
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                  inc = _tmp18_;
#line 4733 "cxxwriter.c"
                  {
                        FILE* _tmp19_;
                        const gchar* _tmp20_;
#line 423 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp19_ = self->priv->stream;
#line 423 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _tmp20_ = inc;
#line 423 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        fprintf (_tmp19_, "#include <%s>\n", _tmp20_);
#line 422 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
                        _g_free0 (inc);
#line 4745 "cxxwriter.c"
                  }
            }
      }
#line 430 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp21_ = self->priv->stream;
#line 430 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp22_ = self->priv->enums;
#line 430 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      fprintf (_tmp21_, "%s\n", _tmp22_);
#line 435 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp23_ = self->priv->stream;
#line 435 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp24_ = self->priv->statics;
#line 435 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      fprintf (_tmp23_, "%s\n", _tmp24_);
#line 436 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp25_ = self->priv->stream;
#line 436 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp26_ = self->priv->extends;
#line 436 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      fprintf (_tmp25_, "%s\n", _tmp26_);
#line 438 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _fclose0 (self->priv->stream);
#line 438 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->stream = NULL;
#line 4771 "cxxwriter.c"
}


static void cxx_writer_class_init (CxxWriterClass * klass) {
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      cxx_writer_parent_class = g_type_class_peek_parent (klass);
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->finalize = cxx_writer_finalize;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      g_type_class_add_private (klass, sizeof (CxxWriterPrivate));
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->visit_source_file = cxx_writer_real_visit_source_file;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      VALA_CODE_VISITOR_CLASS (klass)->visit_namespace = cxx_writer_real_visit_namespace;
#line 4786 "cxxwriter.c"
}


static void cxx_writer_instance_init (CxxWriter * self) {
      GHashFunc _tmp0_;
      GEqualFunc _tmp1_;
      GHashTable* _tmp2_;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv = CXX_WRITER_GET_PRIVATE (self);
#line 170 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp0_ = g_str_hash;
#line 170 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp1_ = g_str_equal;
#line 170 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, NULL);
#line 170 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self->priv->defined_classes = _tmp2_;
#line 4804 "cxxwriter.c"
}


static void cxx_writer_finalize (ValaCodeVisitor* obj) {
      CxxWriter * self;
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      self = CXX_WRITER (obj);
#line 7 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->pkgname);
#line 11 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.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/cxxwriter.vala"
      __g_list_free__g_free0_0 (self->includefiles);
#line 13 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      __g_list_free__vala_code_node_unref0_0 (self->methods);
#line 14 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _vala_code_context_unref0 (self->priv->context);
#line 15 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _fclose0 (self->priv->stream);
#line 16 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classname);
#line 17 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->classcname);
#line 18 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->externs);
#line 19 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->statics);
#line 20 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->extends);
#line 21 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->enums);
#line 22 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->vectors);
#line 23 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->nspace);
#line 24 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_free0 (self->priv->modulename);
#line 170 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      _g_hash_table_unref0 (self->priv->defined_classes);
#line 5 "/Users/pancake/prg/valabind/valabind-0.5.1/cxxwriter.vala"
      VALA_CODE_VISITOR_CLASS (cxx_writer_parent_class)->finalize (obj);
#line 4846 "cxxwriter.c"
}


GType cxx_writer_get_type (void) {
      static volatile gsize cxx_writer_type_id__volatile = 0;
      if (g_once_init_enter (&cxx_writer_type_id__volatile)) {
            static const GTypeInfo g_define_type_info = { sizeof (CxxWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) cxx_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CxxWriter), 0, (GInstanceInitFunc) cxx_writer_instance_init, NULL };
            GType cxx_writer_type_id;
            cxx_writer_type_id = g_type_register_static (VALA_TYPE_CODE_VISITOR, "CxxWriter", &g_define_type_info, 0);
            g_once_init_leave (&cxx_writer_type_id__volatile, cxx_writer_type_id);
      }
      return cxx_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