/* composer_library.c generated by valac 0.56.19, the Vala compiler
 * generated from composer_library.vala, do not modify */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gee.h>
#include <glib/gstdio.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TYPE_PHP_TO_VALA_COMPOSER_LIBRARY (php_to_vala_composer_library_get_type ())
#define PHP_TO_VALA_COMPOSER_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHP_TO_VALA_COMPOSER_LIBRARY, PhpToValaComposerLibrary))
#define PHP_TO_VALA_COMPOSER_LIBRARY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHP_TO_VALA_COMPOSER_LIBRARY, PhpToValaComposerLibraryClass))
#define IS_PHP_TO_VALA_COMPOSER_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHP_TO_VALA_COMPOSER_LIBRARY))
#define IS_PHP_TO_VALA_COMPOSER_LIBRARY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHP_TO_VALA_COMPOSER_LIBRARY))
#define PHP_TO_VALA_COMPOSER_LIBRARY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHP_TO_VALA_COMPOSER_LIBRARY, PhpToValaComposerLibraryClass))

typedef struct _PhpToValaComposerLibrary PhpToValaComposerLibrary;
typedef struct _PhpToValaComposerLibraryClass PhpToValaComposerLibraryClass;
typedef struct _PhpToValaComposerLibraryPrivate PhpToValaComposerLibraryPrivate;

#define PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL (php_to_vala_composer_library_composer_symbol_get_type ())
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, PhpToValaComposerLibraryComposerSymbol))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, PhpToValaComposerLibraryComposerSymbolClass))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, PhpToValaComposerLibraryComposerSymbolClass))

typedef struct _PhpToValaComposerLibraryComposerSymbol PhpToValaComposerLibraryComposerSymbol;
typedef struct _PhpToValaComposerLibraryComposerSymbolClass PhpToValaComposerLibraryComposerSymbolClass;
enum  {
	PHP_TO_VALA_COMPOSER_LIBRARY_0_PROPERTY,
	PHP_TO_VALA_COMPOSER_LIBRARY_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_composer_library_properties[PHP_TO_VALA_COMPOSER_LIBRARY_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _PhpToValaComposerLibraryComposerSymbolPrivate PhpToValaComposerLibraryComposerSymbolPrivate;

#define PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD (php_to_vala_composer_library_composer_method_get_type ())
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD, PhpToValaComposerLibraryComposerMethod))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD, PhpToValaComposerLibraryComposerMethodClass))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD, PhpToValaComposerLibraryComposerMethodClass))

typedef struct _PhpToValaComposerLibraryComposerMethod PhpToValaComposerLibraryComposerMethod;
typedef struct _PhpToValaComposerLibraryComposerMethodClass PhpToValaComposerLibraryComposerMethodClass;

#define PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT (php_to_vala_composer_library_composer_constant_get_type ())
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT, PhpToValaComposerLibraryComposerConstant))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT, PhpToValaComposerLibraryComposerConstantClass))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT, PhpToValaComposerLibraryComposerConstantClass))

typedef struct _PhpToValaComposerLibraryComposerConstant PhpToValaComposerLibraryComposerConstant;
typedef struct _PhpToValaComposerLibraryComposerConstantClass PhpToValaComposerLibraryComposerConstantClass;

#define PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY (php_to_vala_composer_library_composer_property_get_type ())
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY, PhpToValaComposerLibraryComposerProperty))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY, PhpToValaComposerLibraryComposerPropertyClass))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY))
#define PHP_TO_VALA_COMPOSER_LIBRARY_IS_COMPOSER_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY))
#define PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY, PhpToValaComposerLibraryComposerPropertyClass))

typedef struct _PhpToValaComposerLibraryComposerProperty PhpToValaComposerLibraryComposerProperty;
typedef struct _PhpToValaComposerLibraryComposerPropertyClass PhpToValaComposerLibraryComposerPropertyClass;

#define TYPE_PHP_TO_VALA_ERROR (php_to_vala_error_get_type ())
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
#define _g_dir_close0(var) ((var == NULL) ? NULL : (var = (g_dir_close (var), NULL)))
typedef struct _PhpToValaComposerLibraryComposerMethodPrivate PhpToValaComposerLibraryComposerMethodPrivate;

#define TYPE_LOCAL_PARAMETER (local_parameter_get_type ())
#define LOCAL_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LOCAL_PARAMETER, LocalParameter))
#define LOCAL_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LOCAL_PARAMETER, LocalParameterClass))
#define IS_LOCAL_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LOCAL_PARAMETER))
#define IS_LOCAL_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LOCAL_PARAMETER))
#define LOCAL_PARAMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LOCAL_PARAMETER, LocalParameterClass))

typedef struct _LocalParameter LocalParameter;
typedef struct _LocalParameterClass LocalParameterClass;
typedef struct _PhpToValaComposerLibraryComposerConstantPrivate PhpToValaComposerLibraryComposerConstantPrivate;
typedef struct _PhpToValaComposerLibraryComposerPropertyPrivate PhpToValaComposerLibraryComposerPropertyPrivate;
typedef struct _LocalParameterPrivate LocalParameterPrivate;
enum  {
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD_0_PROPERTY,
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_composer_library_composer_method_properties[PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_METHOD_NUM_PROPERTIES];
enum  {
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT_0_PROPERTY,
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_composer_library_composer_constant_properties[PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_CONSTANT_NUM_PROPERTIES];
enum  {
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY_0_PROPERTY,
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_composer_library_composer_property_properties[PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_PROPERTY_NUM_PROPERTIES];
enum  {
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL_0_PROPERTY,
	PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_composer_library_composer_symbol_properties[PHP_TO_VALA_COMPOSER_LIBRARY_COMPOSER_SYMBOL_NUM_PROPERTIES];

struct _PhpToValaComposerLibrary {
	GObject parent_instance;
	PhpToValaComposerLibraryPrivate * priv;
	gchar* vala_source;
	gchar* stub_source;
};

struct _PhpToValaComposerLibraryClass {
	GObjectClass parent_class;
};

struct _PhpToValaComposerLibraryPrivate {
	GeeArrayList* symbols;
	GeeHashMap* symbol_by_name;
};

struct _PhpToValaComposerLibraryComposerSymbol {
	GObject parent_instance;
	PhpToValaComposerLibraryComposerSymbolPrivate * priv;
	gchar* kind;
	gchar* namespace_name;
	gchar* name;
	gchar* doc_comment;
	gchar* extends_name;
	gchar* implements_name;
	gboolean is_abstract;
	GeeArrayList* traits;
	GeeArrayList* methods;
	GeeArrayList* constants;
	GeeArrayList* properties;
};

struct _PhpToValaComposerLibraryComposerSymbolClass {
	GObjectClass parent_class;
};

typedef enum  {
	PHP_TO_VALA_ERROR_UNSUPPORTED
} PhpToValaError;
#define PHP_TO_VALA_ERROR php_to_vala_error_quark ()

struct _PhpToValaComposerLibraryComposerMethod {
	GObject parent_instance;
	PhpToValaComposerLibraryComposerMethodPrivate * priv;
	gchar* name;
	gchar* doc_comment;
	gchar* return_type;
	gchar* visibility;
	gboolean is_static;
	gboolean is_abstract;
	gchar* body;
	GeeArrayList* parameters;
};

struct _PhpToValaComposerLibraryComposerMethodClass {
	GObjectClass parent_class;
};

struct _PhpToValaComposerLibraryComposerConstant {
	GObject parent_instance;
	PhpToValaComposerLibraryComposerConstantPrivate * priv;
	gchar* name;
	gchar* value;
};

struct _PhpToValaComposerLibraryComposerConstantClass {
	GObjectClass parent_class;
};

struct _PhpToValaComposerLibraryComposerProperty {
	GObject parent_instance;
	PhpToValaComposerLibraryComposerPropertyPrivate * priv;
	gchar* name;
	gchar* type_name;
	gchar* visibility;
	gboolean nullable;
};

struct _PhpToValaComposerLibraryComposerPropertyClass {
	GObjectClass parent_class;
};

struct _LocalParameter {
	GObject parent_instance;
	LocalParameterPrivate * priv;
	gchar* name;
	gchar* type_name;
	gchar* default_value;
};

struct _LocalParameterClass {
	GObjectClass parent_class;
};

static gint PhpToValaComposerLibrary_private_offset;
static gpointer php_to_vala_composer_library_parent_class = NULL;
static gpointer php_to_vala_composer_library_composer_method_parent_class = NULL;
static gpointer php_to_vala_composer_library_composer_constant_parent_class = NULL;
static gpointer php_to_vala_composer_library_composer_property_parent_class = NULL;
static gpointer php_to_vala_composer_library_composer_symbol_parent_class = NULL;

VALA_EXTERN GType php_to_vala_composer_library_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaComposerLibrary, g_object_unref)
static GType php_to_vala_composer_library_composer_symbol_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaComposerLibraryComposerSymbol, g_object_unref)
VALA_EXTERN PhpToValaComposerLibrary* php_to_vala_composer_library_generate (const gchar* composer_json_path,
                                                                 GError** error);
VALA_EXTERN PhpToValaComposerLibrary* php_to_vala_composer_library_new (void);
VALA_EXTERN PhpToValaComposerLibrary* php_to_vala_composer_library_construct (GType object_type);
static void php_to_vala_composer_library_load (PhpToValaComposerLibrary* self,
                                        const gchar* composer_json_path,
                                        GError** error);
static gchar* php_to_vala_composer_library_build_vala_source (PhpToValaComposerLibrary* self,
                                                       const gchar* composer_json_path);
static gchar* php_to_vala_composer_library_build_stub_source (PhpToValaComposerLibrary* self,
                                                       const gchar* composer_json_path);
static void php_to_vala_composer_library_parse_first_psr4_mapping (const gchar* composer_json,
                                                            gchar** namespace_name,
                                                            gchar** path,
                                                            GError** error);
static void php_to_vala_composer_library_collect_php_files (const gchar* dir_path,
                                                     GeeArrayList* files,
                                                     GError** error);
static gint __lambda4_ (PhpToValaComposerLibrary* self,
                 const gchar* a,
                 const gchar* b);
static gint ___lambda4__gcompare_data_func (gconstpointer a,
                                     gconstpointer b,
                                     gpointer self);
static void php_to_vala_composer_library_parse_php_file (PhpToValaComposerLibrary* self,
                                                  const gchar* php_file,
                                                  GError** error);
static GType php_to_vala_composer_library_composer_method_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaComposerLibraryComposerMethod, g_object_unref)
static GType php_to_vala_composer_library_composer_constant_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaComposerLibraryComposerConstant, g_object_unref)
static GType php_to_vala_composer_library_composer_property_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaComposerLibraryComposerProperty, g_object_unref)
static GeeArrayList* php_to_vala_composer_library_extract_quoted_strings (const gchar* line);
static gchar* php_to_vala_composer_library_unescape_json_string (const gchar* value);
VALA_EXTERN GQuark php_to_vala_error_quark (void);
VALA_EXTERN GType php_to_vala_error_get_type (void) G_GNUC_CONST ;
static gint php_to_vala_composer_library_count_braces (const gchar* line);
VALA_EXTERN GType local_parameter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LocalParameter, g_object_unref)
static PhpToValaComposerLibraryComposerSymbol* php_to_vala_composer_library_parse_symbol_declaration (const gchar* line,
                                                                                               const gchar* namespace_name,
                                                                                               const gchar* doc_comment);
static gchar* php_to_vala_composer_library_consume_doc (GString* pending_doc);
static PhpToValaComposerLibraryComposerConstant* php_to_vala_composer_library_parse_constant (const gchar* line);
static PhpToValaComposerLibraryComposerMethod* php_to_vala_composer_library_parse_method_header (const gchar* line,
                                                                                          const gchar* doc_comment);
static PhpToValaComposerLibraryComposerProperty* php_to_vala_composer_library_parse_property (const gchar* line);
static PhpToValaComposerLibraryComposerSymbol* php_to_vala_composer_library_composer_symbol_new (void);
static PhpToValaComposerLibraryComposerSymbol* php_to_vala_composer_library_composer_symbol_construct (GType object_type);
static gchar* php_to_vala_composer_library_strip_global_prefix (const gchar* name);
static PhpToValaComposerLibraryComposerConstant* php_to_vala_composer_library_composer_constant_new (void);
static PhpToValaComposerLibraryComposerConstant* php_to_vala_composer_library_composer_constant_construct (GType object_type);
static PhpToValaComposerLibraryComposerProperty* php_to_vala_composer_library_composer_property_new (void);
static PhpToValaComposerLibraryComposerProperty* php_to_vala_composer_library_composer_property_construct (GType object_type);
static PhpToValaComposerLibraryComposerMethod* php_to_vala_composer_library_composer_method_new (void);
static PhpToValaComposerLibraryComposerMethod* php_to_vala_composer_library_composer_method_construct (GType object_type);
static void php_to_vala_composer_library_parse_parameters (const gchar* raw_parameters,
                                                    GeeArrayList* parameters);
static GeeArrayList* php_to_vala_composer_library_split_top_level (const gchar* value,
                                                            gchar delimiter);
VALA_EXTERN LocalParameter* local_parameter_new (const gchar* name,
                                     const gchar* type_name,
                                     const gchar* default_value);
VALA_EXTERN LocalParameter* local_parameter_construct (GType object_type,
                                           const gchar* name,
                                           const gchar* type_name,
                                           const gchar* default_value);
static gchar* php_to_vala_composer_library_php_namespace_to_vala (const gchar* namespace_name);
static void php_to_vala_composer_library_append_vala_interface (PhpToValaComposerLibrary* self,
                                                         GString* output,
                                                         PhpToValaComposerLibraryComposerSymbol* symbol,
                                                         gint indent);
static void php_to_vala_composer_library_append_vala_trait_surrogate (PhpToValaComposerLibrary* self,
                                                               GString* output,
                                                               PhpToValaComposerLibraryComposerSymbol* symbol,
                                                               gint indent);
static void php_to_vala_composer_library_append_vala_class (PhpToValaComposerLibrary* self,
                                                     GString* output,
                                                     PhpToValaComposerLibraryComposerSymbol* symbol,
                                                     gint indent);
static void php_to_vala_composer_library_append_indent (GString* output,
                                                 gint indent);
static gchar* php_to_vala_composer_library_vala_return_type (const gchar* php_type);
static gchar* php_to_vala_composer_library_vala_parameter_list (PhpToValaComposerLibraryComposerMethod* method);
static gchar* php_to_vala_composer_library_vala_type (const gchar* php_type);
static void php_to_vala_composer_library_append_vala_method (PhpToValaComposerLibrary* self,
                                                      GString* output,
                                                      PhpToValaComposerLibraryComposerSymbol* owner,
                                                      PhpToValaComposerLibraryComposerMethod* method,
                                                      gint indent,
                                                      gboolean from_trait,
                                                      gboolean allow_abstract);
static gchar* php_to_vala_composer_library_vala_parent_for (PhpToValaComposerLibrary* self,
                                                     PhpToValaComposerLibraryComposerSymbol* symbol);
static GeeArrayList* php_to_vala_composer_library_split_implements (const gchar* implements_name);
static gchar* php_to_vala_composer_library_short_php_name (const gchar* name);
static gchar* php_to_vala_composer_library_php_string_to_vala_string (const gchar* value);
static gboolean php_to_vala_composer_library_overrides_parent_method (PhpToValaComposerLibrary* self,
                                                               PhpToValaComposerLibraryComposerSymbol* owner,
                                                               const gchar* method_name);
static gchar* php_to_vala_composer_library_vala_delegate_body (PhpToValaComposerLibrary* self,
                                                        PhpToValaComposerLibraryComposerMethod* method);
static gchar* php_to_vala_composer_library_php_variable_to_vala (const gchar* value);
static void php_to_vala_composer_library_append_doc (GString* output,
                                              const gchar* doc,
                                              const gchar* indent);
static gchar* php_to_vala_composer_library_php_parameter_list (PhpToValaComposerLibraryComposerMethod* method);
static void php_to_vala_composer_library_composer_method_finalize (GObject * obj);
static GType php_to_vala_composer_library_composer_method_get_type_once (void);
static void php_to_vala_composer_library_composer_constant_finalize (GObject * obj);
static GType php_to_vala_composer_library_composer_constant_get_type_once (void);
static void php_to_vala_composer_library_composer_property_finalize (GObject * obj);
static GType php_to_vala_composer_library_composer_property_get_type_once (void);
static void php_to_vala_composer_library_composer_symbol_finalize (GObject * obj);
static GType php_to_vala_composer_library_composer_symbol_get_type_once (void);
static void php_to_vala_composer_library_finalize (GObject * obj);
static GType php_to_vala_composer_library_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static inline gpointer
php_to_vala_composer_library_get_instance_private (PhpToValaComposerLibrary* self)
{
	return G_STRUCT_MEMBER_P (self, PhpToValaComposerLibrary_private_offset);
}

PhpToValaComposerLibrary*
php_to_vala_composer_library_generate (const gchar* composer_json_path,
                                       GError** error)
{
	PhpToValaComposerLibrary* generator = NULL;
	PhpToValaComposerLibrary* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GError* _inner_error0_ = NULL;
	PhpToValaComposerLibrary* result;
#line 47 "../src/composer_library.vala"
	g_return_val_if_fail (composer_json_path != NULL, NULL);
#line 48 "../src/composer_library.vala"
	_tmp0_ = php_to_vala_composer_library_new ();
#line 48 "../src/composer_library.vala"
	generator = _tmp0_;
#line 49 "../src/composer_library.vala"
	php_to_vala_composer_library_load (generator, composer_json_path, &_inner_error0_);
#line 49 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 49 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 49 "../src/composer_library.vala"
		_g_object_unref0 (generator);
#line 49 "../src/composer_library.vala"
		return NULL;
#line 391 "composer_library.c"
	}
#line 50 "../src/composer_library.vala"
	_tmp1_ = php_to_vala_composer_library_build_vala_source (generator, composer_json_path);
#line 50 "../src/composer_library.vala"
	_g_free0 (generator->vala_source);
#line 50 "../src/composer_library.vala"
	generator->vala_source = _tmp1_;
#line 51 "../src/composer_library.vala"
	_tmp2_ = php_to_vala_composer_library_build_stub_source (generator, composer_json_path);
#line 51 "../src/composer_library.vala"
	_g_free0 (generator->stub_source);
#line 51 "../src/composer_library.vala"
	generator->stub_source = _tmp2_;
#line 52 "../src/composer_library.vala"
	result = generator;
#line 52 "../src/composer_library.vala"
	return result;
#line 409 "composer_library.c"
}

static gint
__lambda4_ (PhpToValaComposerLibrary* self,
            const gchar* a,
            const gchar* b)
{
	GCompareFunc _tmp0_;
	gint result;
#line 66 "../src/composer_library.vala"
	g_return_val_if_fail (a != NULL, -1);
#line 66 "../src/composer_library.vala"
	g_return_val_if_fail (b != NULL, -1);
#line 66 "../src/composer_library.vala"
	_tmp0_ = ((GCompareFunc) g_strcmp0);
#line 66 "../src/composer_library.vala"
	result = _tmp0_ (a, b);
#line 66 "../src/composer_library.vala"
	return result;
#line 429 "composer_library.c"
}

static gint
___lambda4__gcompare_data_func (gconstpointer a,
                                gconstpointer b,
                                gpointer self)
{
	gint result;
	result = __lambda4_ ((PhpToValaComposerLibrary*) self, (const gchar*) a, (const gchar*) b);
#line 66 "../src/composer_library.vala"
	return result;
#line 441 "composer_library.c"
}

static void
php_to_vala_composer_library_load (PhpToValaComposerLibrary* self,
                                   const gchar* composer_json_path,
                                   GError** error)
{
	gchar* composer_json = NULL;
	gchar* _tmp0_ = NULL;
	gchar* source_dir = NULL;
	gchar* _tmp1_;
	gchar* psr_namespace = NULL;
	gchar* psr_path = NULL;
	const gchar* _tmp2_;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* php_dir = NULL;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	GeeArrayList* files = NULL;
	GeeArrayList* _tmp8_;
	const gchar* _tmp9_;
	GeeArrayList* _tmp10_;
	GeeArrayList* _tmp11_;
	GError* _inner_error0_ = NULL;
#line 55 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 55 "../src/composer_library.vala"
	g_return_if_fail (composer_json_path != NULL);
#line 57 "../src/composer_library.vala"
	g_file_get_contents (composer_json_path, &_tmp0_, NULL, &_inner_error0_);
#line 57 "../src/composer_library.vala"
	_g_free0 (composer_json);
#line 57 "../src/composer_library.vala"
	composer_json = _tmp0_;
#line 57 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 57 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 57 "../src/composer_library.vala"
		_g_free0 (composer_json);
#line 57 "../src/composer_library.vala"
		return;
#line 486 "composer_library.c"
	}
#line 58 "../src/composer_library.vala"
	_tmp1_ = g_path_get_dirname (composer_json_path);
#line 58 "../src/composer_library.vala"
	source_dir = _tmp1_;
#line 61 "../src/composer_library.vala"
	_tmp2_ = composer_json;
#line 61 "../src/composer_library.vala"
	php_to_vala_composer_library_parse_first_psr4_mapping (_tmp2_, &_tmp3_, &_tmp4_, &_inner_error0_);
#line 61 "../src/composer_library.vala"
	_g_free0 (psr_namespace);
#line 61 "../src/composer_library.vala"
	psr_namespace = _tmp3_;
#line 61 "../src/composer_library.vala"
	_g_free0 (psr_path);
#line 61 "../src/composer_library.vala"
	psr_path = _tmp4_;
#line 61 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 61 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 61 "../src/composer_library.vala"
		_g_free0 (psr_path);
#line 61 "../src/composer_library.vala"
		_g_free0 (psr_namespace);
#line 61 "../src/composer_library.vala"
		_g_free0 (source_dir);
#line 61 "../src/composer_library.vala"
		_g_free0 (composer_json);
#line 61 "../src/composer_library.vala"
		return;
#line 518 "composer_library.c"
	}
#line 63 "../src/composer_library.vala"
	_tmp5_ = source_dir;
#line 63 "../src/composer_library.vala"
	_tmp6_ = psr_path;
#line 63 "../src/composer_library.vala"
	_tmp7_ = g_build_filename (_tmp5_, _tmp6_, NULL);
#line 63 "../src/composer_library.vala"
	php_dir = _tmp7_;
#line 64 "../src/composer_library.vala"
	_tmp8_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 64 "../src/composer_library.vala"
	files = _tmp8_;
#line 65 "../src/composer_library.vala"
	_tmp9_ = php_dir;
#line 65 "../src/composer_library.vala"
	_tmp10_ = files;
#line 65 "../src/composer_library.vala"
	php_to_vala_composer_library_collect_php_files (_tmp9_, _tmp10_, &_inner_error0_);
#line 65 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 65 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 65 "../src/composer_library.vala"
		_g_object_unref0 (files);
#line 65 "../src/composer_library.vala"
		_g_free0 (php_dir);
#line 65 "../src/composer_library.vala"
		_g_free0 (psr_path);
#line 65 "../src/composer_library.vala"
		_g_free0 (psr_namespace);
#line 65 "../src/composer_library.vala"
		_g_free0 (source_dir);
#line 65 "../src/composer_library.vala"
		_g_free0 (composer_json);
#line 65 "../src/composer_library.vala"
		return;
#line 556 "composer_library.c"
	}
#line 66 "../src/composer_library.vala"
	_tmp11_ = files;
#line 66 "../src/composer_library.vala"
	gee_list_sort ((GeeList*) _tmp11_, ___lambda4__gcompare_data_func, g_object_ref (self), g_object_unref);
#line 562 "composer_library.c"
	{
		GeeArrayList* _php_file_list = NULL;
		GeeArrayList* _tmp12_;
		gint _php_file_size = 0;
		GeeArrayList* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		gint _php_file_index = 0;
#line 67 "../src/composer_library.vala"
		_tmp12_ = files;
#line 67 "../src/composer_library.vala"
		_php_file_list = _tmp12_;
#line 67 "../src/composer_library.vala"
		_tmp13_ = _php_file_list;
#line 67 "../src/composer_library.vala"
		_tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
#line 67 "../src/composer_library.vala"
		_tmp15_ = _tmp14_;
#line 67 "../src/composer_library.vala"
		_php_file_size = _tmp15_;
#line 67 "../src/composer_library.vala"
		_php_file_index = -1;
#line 67 "../src/composer_library.vala"
		while (TRUE) {
#line 587 "composer_library.c"
			gint _tmp16_;
			gint _tmp17_;
			gchar* php_file = NULL;
			GeeArrayList* _tmp18_;
			gpointer _tmp19_;
			const gchar* _tmp20_;
#line 67 "../src/composer_library.vala"
			_php_file_index = _php_file_index + 1;
#line 67 "../src/composer_library.vala"
			_tmp16_ = _php_file_index;
#line 67 "../src/composer_library.vala"
			_tmp17_ = _php_file_size;
#line 67 "../src/composer_library.vala"
			if (!(_tmp16_ < _tmp17_)) {
#line 67 "../src/composer_library.vala"
				break;
#line 604 "composer_library.c"
			}
#line 67 "../src/composer_library.vala"
			_tmp18_ = _php_file_list;
#line 67 "../src/composer_library.vala"
			_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _php_file_index);
#line 67 "../src/composer_library.vala"
			php_file = (gchar*) _tmp19_;
#line 68 "../src/composer_library.vala"
			_tmp20_ = php_file;
#line 68 "../src/composer_library.vala"
			php_to_vala_composer_library_parse_php_file (self, _tmp20_, &_inner_error0_);
#line 68 "../src/composer_library.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 68 "../src/composer_library.vala"
				g_propagate_error (error, _inner_error0_);
#line 68 "../src/composer_library.vala"
				_g_free0 (php_file);
#line 68 "../src/composer_library.vala"
				_g_object_unref0 (files);
#line 68 "../src/composer_library.vala"
				_g_free0 (php_dir);
#line 68 "../src/composer_library.vala"
				_g_free0 (psr_path);
#line 68 "../src/composer_library.vala"
				_g_free0 (psr_namespace);
#line 68 "../src/composer_library.vala"
				_g_free0 (source_dir);
#line 68 "../src/composer_library.vala"
				_g_free0 (composer_json);
#line 68 "../src/composer_library.vala"
				return;
#line 636 "composer_library.c"
			}
#line 67 "../src/composer_library.vala"
			_g_free0 (php_file);
#line 640 "composer_library.c"
		}
	}
	{
		GeeArrayList* _symbol_list = NULL;
		GeeArrayList* _tmp21_;
		gint _symbol_size = 0;
		GeeArrayList* _tmp22_;
		gint _tmp23_;
		gint _tmp24_;
		gint _symbol_index = 0;
#line 71 "../src/composer_library.vala"
		_tmp21_ = self->priv->symbols;
#line 71 "../src/composer_library.vala"
		_symbol_list = _tmp21_;
#line 71 "../src/composer_library.vala"
		_tmp22_ = _symbol_list;
#line 71 "../src/composer_library.vala"
		_tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp22_);
#line 71 "../src/composer_library.vala"
		_tmp24_ = _tmp23_;
#line 71 "../src/composer_library.vala"
		_symbol_size = _tmp24_;
#line 71 "../src/composer_library.vala"
		_symbol_index = -1;
#line 71 "../src/composer_library.vala"
		while (TRUE) {
#line 667 "composer_library.c"
			gint _tmp25_;
			gint _tmp26_;
			PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
			GeeArrayList* _tmp27_;
			gpointer _tmp28_;
			GeeHashMap* _tmp29_;
			PhpToValaComposerLibraryComposerSymbol* _tmp30_;
			const gchar* _tmp31_;
			PhpToValaComposerLibraryComposerSymbol* _tmp32_;
			PhpToValaComposerLibraryComposerSymbol* _tmp33_;
			const gchar* _tmp34_;
#line 71 "../src/composer_library.vala"
			_symbol_index = _symbol_index + 1;
#line 71 "../src/composer_library.vala"
			_tmp25_ = _symbol_index;
#line 71 "../src/composer_library.vala"
			_tmp26_ = _symbol_size;
#line 71 "../src/composer_library.vala"
			if (!(_tmp25_ < _tmp26_)) {
#line 71 "../src/composer_library.vala"
				break;
#line 689 "composer_library.c"
			}
#line 71 "../src/composer_library.vala"
			_tmp27_ = _symbol_list;
#line 71 "../src/composer_library.vala"
			_tmp28_ = gee_abstract_list_get ((GeeAbstractList*) _tmp27_, _symbol_index);
#line 71 "../src/composer_library.vala"
			symbol = (PhpToValaComposerLibraryComposerSymbol*) _tmp28_;
#line 72 "../src/composer_library.vala"
			_tmp29_ = self->priv->symbol_by_name;
#line 72 "../src/composer_library.vala"
			_tmp30_ = symbol;
#line 72 "../src/composer_library.vala"
			_tmp31_ = _tmp30_->name;
#line 72 "../src/composer_library.vala"
			_tmp32_ = symbol;
#line 72 "../src/composer_library.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp29_, _tmp31_, _tmp32_);
#line 73 "../src/composer_library.vala"
			_tmp33_ = symbol;
#line 73 "../src/composer_library.vala"
			_tmp34_ = _tmp33_->namespace_name;
#line 73 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp34_, "") != 0) {
#line 713 "composer_library.c"
				GeeHashMap* _tmp35_;
				PhpToValaComposerLibraryComposerSymbol* _tmp36_;
				const gchar* _tmp37_;
				gchar* _tmp38_;
				gchar* _tmp39_;
				PhpToValaComposerLibraryComposerSymbol* _tmp40_;
				const gchar* _tmp41_;
				gchar* _tmp42_;
				gchar* _tmp43_;
				PhpToValaComposerLibraryComposerSymbol* _tmp44_;
#line 74 "../src/composer_library.vala"
				_tmp35_ = self->priv->symbol_by_name;
#line 74 "../src/composer_library.vala"
				_tmp36_ = symbol;
#line 74 "../src/composer_library.vala"
				_tmp37_ = _tmp36_->namespace_name;
#line 74 "../src/composer_library.vala"
				_tmp38_ = g_strconcat (_tmp37_, "\\", NULL);
#line 74 "../src/composer_library.vala"
				_tmp39_ = _tmp38_;
#line 74 "../src/composer_library.vala"
				_tmp40_ = symbol;
#line 74 "../src/composer_library.vala"
				_tmp41_ = _tmp40_->name;
#line 74 "../src/composer_library.vala"
				_tmp42_ = g_strconcat (_tmp39_, _tmp41_, NULL);
#line 74 "../src/composer_library.vala"
				_tmp43_ = _tmp42_;
#line 74 "../src/composer_library.vala"
				_tmp44_ = symbol;
#line 74 "../src/composer_library.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp35_, _tmp43_, _tmp44_);
#line 74 "../src/composer_library.vala"
				_g_free0 (_tmp43_);
#line 74 "../src/composer_library.vala"
				_g_free0 (_tmp39_);
#line 750 "composer_library.c"
			}
#line 71 "../src/composer_library.vala"
			_g_object_unref0 (symbol);
#line 754 "composer_library.c"
		}
	}
#line 55 "../src/composer_library.vala"
	_g_object_unref0 (files);
#line 55 "../src/composer_library.vala"
	_g_free0 (php_dir);
#line 55 "../src/composer_library.vala"
	_g_free0 (psr_path);
#line 55 "../src/composer_library.vala"
	_g_free0 (psr_namespace);
#line 55 "../src/composer_library.vala"
	_g_free0 (source_dir);
#line 55 "../src/composer_library.vala"
	_g_free0 (composer_json);
#line 769 "composer_library.c"
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
#line 1413 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1414 "glib-2.0.vapi"
	_tmp0_ = g_strdup (self);
#line 1414 "glib-2.0.vapi"
	_result_ = _tmp0_;
#line 1415 "glib-2.0.vapi"
	g_strstrip (_result_);
#line 1416 "glib-2.0.vapi"
	result = _result_;
#line 1416 "glib-2.0.vapi"
	return result;
#line 790 "composer_library.c"
}

static gint
string_index_of (const gchar* self,
                 const gchar* needle,
                 gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
#line 1184 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, -1);
#line 1184 "glib-2.0.vapi"
	g_return_val_if_fail (needle != NULL, -1);
#line 1185 "glib-2.0.vapi"
	_tmp0_ = strstr (((gchar*) self) + start_index, (gchar*) needle);
#line 1185 "glib-2.0.vapi"
	_result_ = _tmp0_;
#line 1187 "glib-2.0.vapi"
	_tmp1_ = _result_;
#line 1187 "glib-2.0.vapi"
	if (_tmp1_ != NULL) {
#line 814 "composer_library.c"
		gchar* _tmp2_;
#line 1188 "glib-2.0.vapi"
		_tmp2_ = _result_;
#line 1188 "glib-2.0.vapi"
		result = (gint) (_tmp2_ - ((gchar*) self));
#line 1188 "glib-2.0.vapi"
		return result;
#line 822 "composer_library.c"
	} else {
#line 1190 "glib-2.0.vapi"
		result = -1;
#line 1190 "glib-2.0.vapi"
		return result;
#line 828 "composer_library.c"
	}
}

static void
php_to_vala_composer_library_parse_first_psr4_mapping (const gchar* composer_json,
                                                       gchar** namespace_name,
                                                       gchar** path,
                                                       GError** error)
{
	gchar* _vala_namespace_name = NULL;
	gchar* _vala_path = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean in_psr4 = FALSE;
	gchar** _tmp2_;
	gchar** _tmp3_;
	GError* _tmp22_;
	GError* _inner_error0_ = NULL;
#line 79 "../src/composer_library.vala"
	g_return_if_fail (composer_json != NULL);
#line 80 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 80 "../src/composer_library.vala"
	_g_free0 (_vala_namespace_name);
#line 80 "../src/composer_library.vala"
	_vala_namespace_name = _tmp0_;
#line 81 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 81 "../src/composer_library.vala"
	_g_free0 (_vala_path);
#line 81 "../src/composer_library.vala"
	_vala_path = _tmp1_;
#line 82 "../src/composer_library.vala"
	in_psr4 = FALSE;
#line 83 "../src/composer_library.vala"
	_tmp3_ = _tmp2_ = g_strsplit (composer_json, "\n", 0);
#line 865 "composer_library.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 83 "../src/composer_library.vala"
		raw_line_collection = _tmp3_;
#line 83 "../src/composer_library.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp2_);
#line 83 "../src/composer_library.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 877 "composer_library.c"
			gchar* _tmp4_;
			gchar* raw_line = NULL;
#line 83 "../src/composer_library.vala"
			_tmp4_ = g_strdup (raw_line_collection[raw_line_it]);
#line 83 "../src/composer_library.vala"
			raw_line = _tmp4_;
#line 884 "composer_library.c"
			{
				gchar* line = NULL;
				const gchar* _tmp5_;
				gchar* _tmp6_;
				const gchar* _tmp7_;
				const gchar* _tmp8_;
				GeeArrayList* quoted = NULL;
				const gchar* _tmp9_;
				GeeArrayList* _tmp10_;
				GeeArrayList* _tmp11_;
				gint _tmp12_;
				gint _tmp13_;
#line 84 "../src/composer_library.vala"
				_tmp5_ = raw_line;
#line 84 "../src/composer_library.vala"
				_tmp6_ = string_strip (_tmp5_);
#line 84 "../src/composer_library.vala"
				line = _tmp6_;
#line 85 "../src/composer_library.vala"
				_tmp7_ = line;
#line 85 "../src/composer_library.vala"
				if (string_index_of (_tmp7_, "\"psr-4\"", 0) >= 0) {
#line 86 "../src/composer_library.vala"
					in_psr4 = TRUE;
#line 87 "../src/composer_library.vala"
					_g_free0 (line);
#line 87 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 87 "../src/composer_library.vala"
					continue;
#line 915 "composer_library.c"
				}
#line 89 "../src/composer_library.vala"
				if (!in_psr4) {
#line 90 "../src/composer_library.vala"
					_g_free0 (line);
#line 90 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 90 "../src/composer_library.vala"
					continue;
#line 925 "composer_library.c"
				}
#line 92 "../src/composer_library.vala"
				_tmp8_ = line;
#line 92 "../src/composer_library.vala"
				if (string_index_of (_tmp8_, "}", 0) >= 0) {
#line 93 "../src/composer_library.vala"
					_g_free0 (line);
#line 93 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 93 "../src/composer_library.vala"
					break;
#line 937 "composer_library.c"
				}
#line 95 "../src/composer_library.vala"
				_tmp9_ = line;
#line 95 "../src/composer_library.vala"
				_tmp10_ = php_to_vala_composer_library_extract_quoted_strings (_tmp9_);
#line 95 "../src/composer_library.vala"
				quoted = _tmp10_;
#line 96 "../src/composer_library.vala"
				_tmp11_ = quoted;
#line 96 "../src/composer_library.vala"
				_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
#line 96 "../src/composer_library.vala"
				_tmp13_ = _tmp12_;
#line 96 "../src/composer_library.vala"
				if (_tmp13_ >= 2) {
#line 953 "composer_library.c"
					GeeArrayList* _tmp14_;
					gpointer _tmp15_;
					gchar* _tmp16_;
					gchar* _tmp17_;
					GeeArrayList* _tmp18_;
					gpointer _tmp19_;
					gchar* _tmp20_;
					gchar* _tmp21_;
#line 97 "../src/composer_library.vala"
					_tmp14_ = quoted;
#line 97 "../src/composer_library.vala"
					_tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, 0);
#line 97 "../src/composer_library.vala"
					_tmp16_ = (gchar*) _tmp15_;
#line 97 "../src/composer_library.vala"
					_tmp17_ = php_to_vala_composer_library_unescape_json_string (_tmp16_);
#line 97 "../src/composer_library.vala"
					_g_free0 (_vala_namespace_name);
#line 97 "../src/composer_library.vala"
					_vala_namespace_name = _tmp17_;
#line 97 "../src/composer_library.vala"
					_g_free0 (_tmp16_);
#line 98 "../src/composer_library.vala"
					_tmp18_ = quoted;
#line 98 "../src/composer_library.vala"
					_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, 1);
#line 98 "../src/composer_library.vala"
					_tmp20_ = (gchar*) _tmp19_;
#line 98 "../src/composer_library.vala"
					_tmp21_ = php_to_vala_composer_library_unescape_json_string (_tmp20_);
#line 98 "../src/composer_library.vala"
					_g_free0 (_vala_path);
#line 98 "../src/composer_library.vala"
					_vala_path = _tmp21_;
#line 98 "../src/composer_library.vala"
					_g_free0 (_tmp20_);
#line 99 "../src/composer_library.vala"
					_g_object_unref0 (quoted);
#line 99 "../src/composer_library.vala"
					_g_free0 (line);
#line 99 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 99 "../src/composer_library.vala"
					raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 99 "../src/composer_library.vala"
					if (namespace_name) {
#line 99 "../src/composer_library.vala"
						*namespace_name = _vala_namespace_name;
#line 1002 "composer_library.c"
					} else {
#line 99 "../src/composer_library.vala"
						_g_free0 (_vala_namespace_name);
#line 1006 "composer_library.c"
					}
#line 99 "../src/composer_library.vala"
					if (path) {
#line 99 "../src/composer_library.vala"
						*path = _vala_path;
#line 1012 "composer_library.c"
					} else {
#line 99 "../src/composer_library.vala"
						_g_free0 (_vala_path);
#line 1016 "composer_library.c"
					}
#line 99 "../src/composer_library.vala"
					return;
#line 1020 "composer_library.c"
				}
#line 83 "../src/composer_library.vala"
				_g_object_unref0 (quoted);
#line 83 "../src/composer_library.vala"
				_g_free0 (line);
#line 83 "../src/composer_library.vala"
				_g_free0 (raw_line);
#line 1028 "composer_library.c"
			}
		}
#line 83 "../src/composer_library.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 1033 "composer_library.c"
	}
#line 102 "../src/composer_library.vala"
	_tmp22_ = g_error_new_literal (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "composer.json has no readable autoload.psr-4 mapping");
#line 102 "../src/composer_library.vala"
	_inner_error0_ = _tmp22_;
#line 102 "../src/composer_library.vala"
	g_propagate_error (error, _inner_error0_);
#line 102 "../src/composer_library.vala"
	_g_free0 (_vala_namespace_name);
#line 102 "../src/composer_library.vala"
	_g_free0 (_vala_path);
#line 102 "../src/composer_library.vala"
	return;
#line 1047 "composer_library.c"
}

static gchar
string_get (const gchar* self,
            glong index)
{
	gchar _tmp0_;
	gchar result;
#line 1283 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, '\0');
#line 1284 "glib-2.0.vapi"
	_tmp0_ = ((gchar*) self)[index];
#line 1284 "glib-2.0.vapi"
	result = _tmp0_;
#line 1284 "glib-2.0.vapi"
	return result;
#line 1064 "composer_library.c"
}

static GeeArrayList*
php_to_vala_composer_library_extract_quoted_strings (const gchar* line)
{
	GeeArrayList* values = NULL;
	GeeArrayList* _tmp0_;
	gboolean in_string = FALSE;
	gboolean escaped = FALSE;
	GString* current = NULL;
	GString* _tmp1_;
	GeeArrayList* result;
#line 105 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 106 "../src/composer_library.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 106 "../src/composer_library.vala"
	values = _tmp0_;
#line 107 "../src/composer_library.vala"
	in_string = FALSE;
#line 108 "../src/composer_library.vala"
	escaped = FALSE;
#line 109 "../src/composer_library.vala"
	_tmp1_ = g_string_new ("");
#line 109 "../src/composer_library.vala"
	current = _tmp1_;
#line 1091 "composer_library.c"
	{
		gint i = 0;
#line 110 "../src/composer_library.vala"
		i = 0;
#line 1096 "composer_library.c"
		{
			gboolean _tmp2_ = FALSE;
#line 110 "../src/composer_library.vala"
			_tmp2_ = TRUE;
#line 110 "../src/composer_library.vala"
			while (TRUE) {
#line 1103 "composer_library.c"
				gint _tmp4_;
				gint _tmp5_;
				gchar c = '\0';
				gboolean _tmp7_ = FALSE;
#line 110 "../src/composer_library.vala"
				if (!_tmp2_) {
#line 1110 "composer_library.c"
					gint _tmp3_;
#line 110 "../src/composer_library.vala"
					_tmp3_ = i;
#line 110 "../src/composer_library.vala"
					i = _tmp3_ + 1;
#line 1116 "composer_library.c"
				}
#line 110 "../src/composer_library.vala"
				_tmp2_ = FALSE;
#line 110 "../src/composer_library.vala"
				_tmp4_ = strlen (line);
#line 110 "../src/composer_library.vala"
				_tmp5_ = _tmp4_;
#line 110 "../src/composer_library.vala"
				if (!(i < _tmp5_)) {
#line 110 "../src/composer_library.vala"
					break;
#line 1128 "composer_library.c"
				}
#line 111 "../src/composer_library.vala"
				c = string_get (line, (glong) i);
#line 112 "../src/composer_library.vala"
				if (escaped) {
#line 1134 "composer_library.c"
					GString* _tmp6_;
#line 113 "../src/composer_library.vala"
					_tmp6_ = current;
#line 113 "../src/composer_library.vala"
					g_string_append_c (_tmp6_, c);
#line 114 "../src/composer_library.vala"
					escaped = FALSE;
#line 115 "../src/composer_library.vala"
					continue;
#line 1144 "composer_library.c"
				}
#line 117 "../src/composer_library.vala"
				if (in_string) {
#line 117 "../src/composer_library.vala"
					_tmp7_ = c == '\\';
#line 1150 "composer_library.c"
				} else {
#line 117 "../src/composer_library.vala"
					_tmp7_ = FALSE;
#line 1154 "composer_library.c"
				}
#line 117 "../src/composer_library.vala"
				if (_tmp7_) {
#line 1158 "composer_library.c"
					GString* _tmp8_;
#line 118 "../src/composer_library.vala"
					_tmp8_ = current;
#line 118 "../src/composer_library.vala"
					g_string_append_c (_tmp8_, c);
#line 119 "../src/composer_library.vala"
					escaped = TRUE;
#line 120 "../src/composer_library.vala"
					continue;
#line 1168 "composer_library.c"
				}
#line 122 "../src/composer_library.vala"
				if (c == '"') {
#line 123 "../src/composer_library.vala"
					if (in_string) {
#line 1174 "composer_library.c"
						GeeArrayList* _tmp9_;
						GString* _tmp10_;
						const gchar* _tmp11_;
						GString* _tmp12_;
#line 124 "../src/composer_library.vala"
						_tmp9_ = values;
#line 124 "../src/composer_library.vala"
						_tmp10_ = current;
#line 124 "../src/composer_library.vala"
						_tmp11_ = _tmp10_->str;
#line 124 "../src/composer_library.vala"
						gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp11_);
#line 125 "../src/composer_library.vala"
						_tmp12_ = current;
#line 125 "../src/composer_library.vala"
						g_string_truncate (_tmp12_, (gsize) 0);
#line 126 "../src/composer_library.vala"
						in_string = FALSE;
#line 1193 "composer_library.c"
					} else {
#line 128 "../src/composer_library.vala"
						in_string = TRUE;
#line 1197 "composer_library.c"
					}
#line 130 "../src/composer_library.vala"
					continue;
#line 1201 "composer_library.c"
				}
#line 132 "../src/composer_library.vala"
				if (in_string) {
#line 1205 "composer_library.c"
					GString* _tmp13_;
#line 133 "../src/composer_library.vala"
					_tmp13_ = current;
#line 133 "../src/composer_library.vala"
					g_string_append_c (_tmp13_, c);
#line 1211 "composer_library.c"
				}
			}
		}
	}
#line 136 "../src/composer_library.vala"
	result = values;
#line 136 "../src/composer_library.vala"
	_g_string_free0 (current);
#line 136 "../src/composer_library.vala"
	return result;
#line 1222 "composer_library.c"
}

static gchar*
string_replace (const gchar* self,
                const gchar* old,
                const gchar* replacement)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1588 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1588 "glib-2.0.vapi"
	g_return_val_if_fail (old != NULL, NULL);
#line 1588 "glib-2.0.vapi"
	g_return_val_if_fail (replacement != NULL, NULL);
#line 1589 "glib-2.0.vapi"
	if ((*((gchar*) self)) == '\0') {
#line 1589 "glib-2.0.vapi"
		_tmp1_ = TRUE;
#line 1244 "composer_library.c"
	} else {
#line 1589 "glib-2.0.vapi"
		_tmp1_ = (*((gchar*) old)) == '\0';
#line 1248 "composer_library.c"
	}
#line 1589 "glib-2.0.vapi"
	if (_tmp1_) {
#line 1589 "glib-2.0.vapi"
		_tmp0_ = TRUE;
#line 1254 "composer_library.c"
	} else {
#line 1589 "glib-2.0.vapi"
		_tmp0_ = g_strcmp0 (old, replacement) == 0;
#line 1258 "composer_library.c"
	}
#line 1589 "glib-2.0.vapi"
	if (_tmp0_) {
#line 1262 "composer_library.c"
		gchar* _tmp2_;
#line 1590 "glib-2.0.vapi"
		_tmp2_ = g_strdup (self);
#line 1590 "glib-2.0.vapi"
		result = _tmp2_;
#line 1590 "glib-2.0.vapi"
		return result;
#line 1270 "composer_library.c"
	}
	{
		GRegex* regex = NULL;
		gchar* _tmp3_;
		gchar* _tmp4_;
		GRegex* _tmp5_;
		GRegex* _tmp6_;
		gchar* _tmp7_ = NULL;
		GRegex* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
#line 1593 "glib-2.0.vapi"
		_tmp3_ = g_regex_escape_string (old, -1);
#line 1593 "glib-2.0.vapi"
		_tmp4_ = _tmp3_;
#line 1593 "glib-2.0.vapi"
		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
#line 1593 "glib-2.0.vapi"
		_tmp6_ = _tmp5_;
#line 1593 "glib-2.0.vapi"
		_g_free0 (_tmp4_);
#line 1593 "glib-2.0.vapi"
		regex = _tmp6_;
#line 1593 "glib-2.0.vapi"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1593 "glib-2.0.vapi"
			if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 1298 "composer_library.c"
				goto __catch0_g_regex_error;
			}
#line 1593 "glib-2.0.vapi"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 1593 "glib-2.0.vapi"
			g_clear_error (&_inner_error0_);
#line 1593 "glib-2.0.vapi"
			return NULL;
#line 1307 "composer_library.c"
		}
#line 1594 "glib-2.0.vapi"
		_tmp8_ = regex;
#line 1594 "glib-2.0.vapi"
		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
#line 1594 "glib-2.0.vapi"
		_tmp7_ = _tmp9_;
#line 1594 "glib-2.0.vapi"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1594 "glib-2.0.vapi"
			_g_regex_unref0 (regex);
#line 1594 "glib-2.0.vapi"
			if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 1321 "composer_library.c"
				goto __catch0_g_regex_error;
			}
#line 1594 "glib-2.0.vapi"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 1594 "glib-2.0.vapi"
			g_clear_error (&_inner_error0_);
#line 1594 "glib-2.0.vapi"
			return NULL;
#line 1330 "composer_library.c"
		}
#line 1594 "glib-2.0.vapi"
		_tmp10_ = _tmp7_;
#line 1594 "glib-2.0.vapi"
		_tmp7_ = NULL;
#line 1594 "glib-2.0.vapi"
		result = _tmp10_;
#line 1594 "glib-2.0.vapi"
		_g_free0 (_tmp7_);
#line 1594 "glib-2.0.vapi"
		_g_regex_unref0 (regex);
#line 1594 "glib-2.0.vapi"
		return result;
#line 1344 "composer_library.c"
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
#line 1592 "glib-2.0.vapi"
		g_clear_error (&_inner_error0_);
#line 1596 "glib-2.0.vapi"
		g_assert_not_reached ();
#line 1353 "composer_library.c"
	}
	__finally0:
#line 1592 "glib-2.0.vapi"
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 1592 "glib-2.0.vapi"
	g_clear_error (&_inner_error0_);
#line 1592 "glib-2.0.vapi"
	return NULL;
#line 1362 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_unescape_json_string (const gchar* value)
{
	gchar* _tmp0_;
	gchar* result;
#line 139 "../src/composer_library.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 140 "../src/composer_library.vala"
	_tmp0_ = string_replace (value, "\\\\", "\\");
#line 140 "../src/composer_library.vala"
	result = _tmp0_;
#line 140 "../src/composer_library.vala"
	return result;
#line 1378 "composer_library.c"
}

static void
php_to_vala_composer_library_collect_php_files (const gchar* dir_path,
                                                GeeArrayList* files,
                                                GError** error)
{
	GDir* dir = NULL;
	GDir* _tmp0_;
	gchar* name = NULL;
	GError* _inner_error0_ = NULL;
#line 143 "../src/composer_library.vala"
	g_return_if_fail (dir_path != NULL);
#line 143 "../src/composer_library.vala"
	g_return_if_fail (files != NULL);
#line 144 "../src/composer_library.vala"
	_tmp0_ = g_dir_open (dir_path, (guint) 0, &_inner_error0_);
#line 144 "../src/composer_library.vala"
	dir = _tmp0_;
#line 144 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 144 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 144 "../src/composer_library.vala"
		return;
#line 1404 "composer_library.c"
	}
#line 146 "../src/composer_library.vala"
	while (TRUE) {
#line 1408 "composer_library.c"
		GDir* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		const gchar* _tmp4_;
		gboolean _tmp5_ = FALSE;
		const gchar* _tmp6_;
		gchar* path = NULL;
		const gchar* _tmp8_;
		gchar* _tmp9_;
		const gchar* _tmp10_;
#line 146 "../src/composer_library.vala"
		_tmp1_ = dir;
#line 146 "../src/composer_library.vala"
		_tmp2_ = g_dir_read_name (_tmp1_);
#line 146 "../src/composer_library.vala"
		_tmp3_ = g_strdup (_tmp2_);
#line 146 "../src/composer_library.vala"
		_g_free0 (name);
#line 146 "../src/composer_library.vala"
		name = _tmp3_;
#line 146 "../src/composer_library.vala"
		_tmp4_ = name;
#line 146 "../src/composer_library.vala"
		if (!(_tmp4_ != NULL)) {
#line 146 "../src/composer_library.vala"
			break;
#line 1435 "composer_library.c"
		}
#line 147 "../src/composer_library.vala"
		_tmp6_ = name;
#line 147 "../src/composer_library.vala"
		if (g_strcmp0 (_tmp6_, ".") == 0) {
#line 147 "../src/composer_library.vala"
			_tmp5_ = TRUE;
#line 1443 "composer_library.c"
		} else {
			const gchar* _tmp7_;
#line 147 "../src/composer_library.vala"
			_tmp7_ = name;
#line 147 "../src/composer_library.vala"
			_tmp5_ = g_strcmp0 (_tmp7_, "..") == 0;
#line 1450 "composer_library.c"
		}
#line 147 "../src/composer_library.vala"
		if (_tmp5_) {
#line 148 "../src/composer_library.vala"
			continue;
#line 1456 "composer_library.c"
		}
#line 150 "../src/composer_library.vala"
		_tmp8_ = name;
#line 150 "../src/composer_library.vala"
		_tmp9_ = g_build_filename (dir_path, _tmp8_, NULL);
#line 150 "../src/composer_library.vala"
		path = _tmp9_;
#line 151 "../src/composer_library.vala"
		_tmp10_ = path;
#line 151 "../src/composer_library.vala"
		if (g_file_test (_tmp10_, G_FILE_TEST_IS_DIR)) {
#line 1468 "composer_library.c"
			const gchar* _tmp11_;
#line 152 "../src/composer_library.vala"
			_tmp11_ = path;
#line 152 "../src/composer_library.vala"
			php_to_vala_composer_library_collect_php_files (_tmp11_, files, &_inner_error0_);
#line 152 "../src/composer_library.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 152 "../src/composer_library.vala"
				g_propagate_error (error, _inner_error0_);
#line 152 "../src/composer_library.vala"
				_g_free0 (path);
#line 152 "../src/composer_library.vala"
				_g_free0 (name);
#line 152 "../src/composer_library.vala"
				_g_dir_close0 (dir);
#line 152 "../src/composer_library.vala"
				return;
#line 1486 "composer_library.c"
			}
		} else {
			const gchar* _tmp12_;
#line 153 "../src/composer_library.vala"
			_tmp12_ = path;
#line 153 "../src/composer_library.vala"
			if (g_str_has_suffix (_tmp12_, ".php")) {
#line 1494 "composer_library.c"
				const gchar* _tmp13_;
#line 154 "../src/composer_library.vala"
				_tmp13_ = path;
#line 154 "../src/composer_library.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) files, _tmp13_);
#line 1500 "composer_library.c"
			}
		}
#line 146 "../src/composer_library.vala"
		_g_free0 (path);
#line 1505 "composer_library.c"
	}
#line 143 "../src/composer_library.vala"
	_g_free0 (name);
#line 143 "../src/composer_library.vala"
	_g_dir_close0 (dir);
#line 1511 "composer_library.c"
}

static glong
string_strnlen (gchar* str,
                glong maxlen)
{
	gchar* end = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	glong result;
#line 1501 "glib-2.0.vapi"
	_tmp0_ = memchr (str, 0, (gsize) maxlen);
#line 1501 "glib-2.0.vapi"
	end = _tmp0_;
#line 1502 "glib-2.0.vapi"
	_tmp1_ = end;
#line 1502 "glib-2.0.vapi"
	if (_tmp1_ == NULL) {
#line 1503 "glib-2.0.vapi"
		result = maxlen;
#line 1503 "glib-2.0.vapi"
		return result;
#line 1534 "composer_library.c"
	} else {
		gchar* _tmp2_;
#line 1505 "glib-2.0.vapi"
		_tmp2_ = end;
#line 1505 "glib-2.0.vapi"
		result = (glong) (_tmp2_ - str);
#line 1505 "glib-2.0.vapi"
		return result;
#line 1543 "composer_library.c"
	}
}

static gchar*
string_substring (const gchar* self,
                  glong offset,
                  glong len)
{
	glong string_length = 0L;
	gboolean _tmp0_ = FALSE;
	gchar* _tmp3_;
	gchar* result;
#line 1512 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1514 "glib-2.0.vapi"
	if (offset >= ((glong) 0)) {
#line 1514 "glib-2.0.vapi"
		_tmp0_ = len >= ((glong) 0);
#line 1562 "composer_library.c"
	} else {
#line 1514 "glib-2.0.vapi"
		_tmp0_ = FALSE;
#line 1566 "composer_library.c"
	}
#line 1514 "glib-2.0.vapi"
	if (_tmp0_) {
#line 1516 "glib-2.0.vapi"
		string_length = string_strnlen ((gchar*) self, offset + len);
#line 1572 "composer_library.c"
	} else {
		gint _tmp1_;
		gint _tmp2_;
#line 1518 "glib-2.0.vapi"
		_tmp1_ = strlen (self);
#line 1518 "glib-2.0.vapi"
		_tmp2_ = _tmp1_;
#line 1518 "glib-2.0.vapi"
		string_length = (glong) _tmp2_;
#line 1582 "composer_library.c"
	}
#line 1521 "glib-2.0.vapi"
	if (offset < ((glong) 0)) {
#line 1522 "glib-2.0.vapi"
		offset = string_length + offset;
#line 1523 "glib-2.0.vapi"
		g_return_val_if_fail (offset >= ((glong) 0), NULL);
#line 1590 "composer_library.c"
	} else {
#line 1525 "glib-2.0.vapi"
		g_return_val_if_fail (offset <= string_length, NULL);
#line 1594 "composer_library.c"
	}
#line 1527 "glib-2.0.vapi"
	if (len < ((glong) 0)) {
#line 1528 "glib-2.0.vapi"
		len = string_length - offset;
#line 1600 "composer_library.c"
	}
#line 1530 "glib-2.0.vapi"
	g_return_val_if_fail ((offset + len) <= string_length, NULL);
#line 1531 "glib-2.0.vapi"
	_tmp3_ = g_strndup (((gchar*) self) + offset, (gsize) len);
#line 1531 "glib-2.0.vapi"
	result = _tmp3_;
#line 1531 "glib-2.0.vapi"
	return result;
#line 1610 "composer_library.c"
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 211 "../src/composer_library.vala"
	return self ? g_object_ref (self) : NULL;
#line 1618 "composer_library.c"
}

static void
php_to_vala_composer_library_parse_php_file (PhpToValaComposerLibrary* self,
                                             const gchar* php_file,
                                             GError** error)
{
	gchar* source = NULL;
	gchar* _tmp0_ = NULL;
	gchar* namespace_name = NULL;
	gchar* _tmp1_;
	PhpToValaComposerLibraryComposerSymbol* current_symbol = NULL;
	PhpToValaComposerLibraryComposerMethod* current_method = NULL;
	GString* pending_doc = NULL;
	GString* _tmp2_;
	gboolean in_doc = FALSE;
	gboolean in_method_body = FALSE;
	gint method_depth = 0;
	GString* method_body = NULL;
	GString* _tmp3_;
	const gchar* _tmp4_;
	gchar** _tmp5_;
	gchar** _tmp6_;
	GError* _inner_error0_ = NULL;
#line 159 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 159 "../src/composer_library.vala"
	g_return_if_fail (php_file != NULL);
#line 161 "../src/composer_library.vala"
	g_file_get_contents (php_file, &_tmp0_, NULL, &_inner_error0_);
#line 161 "../src/composer_library.vala"
	_g_free0 (source);
#line 161 "../src/composer_library.vala"
	source = _tmp0_;
#line 161 "../src/composer_library.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 161 "../src/composer_library.vala"
		g_propagate_error (error, _inner_error0_);
#line 161 "../src/composer_library.vala"
		_g_free0 (source);
#line 161 "../src/composer_library.vala"
		return;
#line 1661 "composer_library.c"
	}
#line 162 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 162 "../src/composer_library.vala"
	namespace_name = _tmp1_;
#line 163 "../src/composer_library.vala"
	current_symbol = NULL;
#line 164 "../src/composer_library.vala"
	current_method = NULL;
#line 165 "../src/composer_library.vala"
	_tmp2_ = g_string_new ("");
#line 165 "../src/composer_library.vala"
	pending_doc = _tmp2_;
#line 166 "../src/composer_library.vala"
	in_doc = FALSE;
#line 167 "../src/composer_library.vala"
	in_method_body = FALSE;
#line 168 "../src/composer_library.vala"
	method_depth = 0;
#line 169 "../src/composer_library.vala"
	_tmp3_ = g_string_new ("");
#line 169 "../src/composer_library.vala"
	method_body = _tmp3_;
#line 171 "../src/composer_library.vala"
	_tmp4_ = source;
#line 171 "../src/composer_library.vala"
	_tmp6_ = _tmp5_ = g_strsplit (_tmp4_, "\n", 0);
#line 1689 "composer_library.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 171 "../src/composer_library.vala"
		raw_line_collection = _tmp6_;
#line 171 "../src/composer_library.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp5_);
#line 171 "../src/composer_library.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 1701 "composer_library.c"
			gchar* _tmp7_;
			gchar* raw_line = NULL;
#line 171 "../src/composer_library.vala"
			_tmp7_ = g_strdup (raw_line_collection[raw_line_it]);
#line 171 "../src/composer_library.vala"
			raw_line = _tmp7_;
#line 1708 "composer_library.c"
			{
				gchar* line = NULL;
				const gchar* _tmp8_;
				gchar* _tmp9_;
				gboolean _tmp10_ = FALSE;
				const gchar* _tmp11_;
				gboolean _tmp13_ = FALSE;
				gboolean _tmp20_ = FALSE;
				gboolean _tmp33_ = FALSE;
				const gchar* _tmp34_;
				PhpToValaComposerLibraryComposerSymbol* _tmp47_;
				const gchar* _tmp60_;
				gboolean _tmp61_ = FALSE;
				const gchar* _tmp62_;
				PhpToValaComposerLibraryComposerConstant* constant = NULL;
				const gchar* _tmp78_;
				PhpToValaComposerLibraryComposerConstant* _tmp79_;
				PhpToValaComposerLibraryComposerConstant* _tmp80_;
				PhpToValaComposerLibraryComposerMethod* method = NULL;
				const gchar* _tmp84_;
				GString* _tmp85_;
				gchar* _tmp86_;
				gchar* _tmp87_;
				PhpToValaComposerLibraryComposerMethod* _tmp88_;
				PhpToValaComposerLibraryComposerMethod* _tmp89_;
				PhpToValaComposerLibraryComposerMethod* _tmp90_;
				PhpToValaComposerLibraryComposerProperty* property = NULL;
				const gchar* _tmp99_;
				PhpToValaComposerLibraryComposerProperty* _tmp100_;
				PhpToValaComposerLibraryComposerProperty* _tmp101_;
				const gchar* _tmp105_;
#line 172 "../src/composer_library.vala"
				_tmp8_ = raw_line;
#line 172 "../src/composer_library.vala"
				_tmp9_ = string_strip (_tmp8_);
#line 172 "../src/composer_library.vala"
				line = _tmp9_;
#line 173 "../src/composer_library.vala"
				_tmp11_ = line;
#line 173 "../src/composer_library.vala"
				if (g_strcmp0 (_tmp11_, "<?php") == 0) {
#line 173 "../src/composer_library.vala"
					_tmp10_ = TRUE;
#line 1752 "composer_library.c"
				} else {
					const gchar* _tmp12_;
#line 173 "../src/composer_library.vala"
					_tmp12_ = line;
#line 173 "../src/composer_library.vala"
					_tmp10_ = g_strcmp0 (_tmp12_, "") == 0;
#line 1759 "composer_library.c"
				}
#line 173 "../src/composer_library.vala"
				if (_tmp10_) {
#line 174 "../src/composer_library.vala"
					_g_free0 (line);
#line 174 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 174 "../src/composer_library.vala"
					continue;
#line 1769 "composer_library.c"
				}
#line 177 "../src/composer_library.vala"
				if (in_doc) {
#line 177 "../src/composer_library.vala"
					_tmp13_ = TRUE;
#line 1775 "composer_library.c"
				} else {
					const gchar* _tmp14_;
#line 177 "../src/composer_library.vala"
					_tmp14_ = line;
#line 177 "../src/composer_library.vala"
					_tmp13_ = g_str_has_prefix (_tmp14_, "/**");
#line 1782 "composer_library.c"
				}
#line 177 "../src/composer_library.vala"
				if (_tmp13_) {
#line 1786 "composer_library.c"
					GString* _tmp15_;
					GString* _tmp17_;
					const gchar* _tmp18_;
					const gchar* _tmp19_;
#line 178 "../src/composer_library.vala"
					_tmp15_ = pending_doc;
#line 178 "../src/composer_library.vala"
					if (_tmp15_->len > ((gssize) 0)) {
#line 1795 "composer_library.c"
						GString* _tmp16_;
#line 179 "../src/composer_library.vala"
						_tmp16_ = pending_doc;
#line 179 "../src/composer_library.vala"
						g_string_append (_tmp16_, "\n");
#line 1801 "composer_library.c"
					}
#line 181 "../src/composer_library.vala"
					_tmp17_ = pending_doc;
#line 181 "../src/composer_library.vala"
					_tmp18_ = raw_line;
#line 181 "../src/composer_library.vala"
					g_string_append (_tmp17_, _tmp18_);
#line 182 "../src/composer_library.vala"
					_tmp19_ = line;
#line 182 "../src/composer_library.vala"
					in_doc = string_index_of (_tmp19_, "*/", 0) < 0;
#line 183 "../src/composer_library.vala"
					_g_free0 (line);
#line 183 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 183 "../src/composer_library.vala"
					continue;
#line 1819 "composer_library.c"
				}
#line 186 "../src/composer_library.vala"
				if (in_method_body) {
#line 1823 "composer_library.c"
					PhpToValaComposerLibraryComposerMethod* _tmp21_;
#line 186 "../src/composer_library.vala"
					_tmp21_ = current_method;
#line 186 "../src/composer_library.vala"
					_tmp20_ = _tmp21_ != NULL;
#line 1829 "composer_library.c"
				} else {
#line 186 "../src/composer_library.vala"
					_tmp20_ = FALSE;
#line 1833 "composer_library.c"
				}
#line 186 "../src/composer_library.vala"
				if (_tmp20_) {
#line 1837 "composer_library.c"
					gint next_depth = 0;
					const gchar* _tmp22_;
					gboolean _tmp23_ = FALSE;
					const gchar* _tmp24_;
#line 187 "../src/composer_library.vala"
					_tmp22_ = line;
#line 187 "../src/composer_library.vala"
					next_depth = method_depth + php_to_vala_composer_library_count_braces (_tmp22_);
#line 188 "../src/composer_library.vala"
					_tmp24_ = line;
#line 188 "../src/composer_library.vala"
					if (g_strcmp0 (_tmp24_, "}") == 0) {
#line 188 "../src/composer_library.vala"
						_tmp23_ = next_depth == 0;
#line 1852 "composer_library.c"
					} else {
#line 188 "../src/composer_library.vala"
						_tmp23_ = FALSE;
#line 1856 "composer_library.c"
					}
#line 188 "../src/composer_library.vala"
					if (!_tmp23_) {
#line 1860 "composer_library.c"
						GString* _tmp25_;
						const gchar* _tmp26_;
						GString* _tmp27_;
#line 189 "../src/composer_library.vala"
						_tmp25_ = method_body;
#line 189 "../src/composer_library.vala"
						_tmp26_ = raw_line;
#line 189 "../src/composer_library.vala"
						g_string_append (_tmp25_, _tmp26_);
#line 190 "../src/composer_library.vala"
						_tmp27_ = method_body;
#line 190 "../src/composer_library.vala"
						g_string_append (_tmp27_, "\n");
#line 1874 "composer_library.c"
					}
#line 192 "../src/composer_library.vala"
					method_depth = next_depth;
#line 193 "../src/composer_library.vala"
					if (method_depth <= 0) {
#line 1880 "composer_library.c"
						PhpToValaComposerLibraryComposerMethod* _tmp28_;
						GString* _tmp29_;
						const gchar* _tmp30_;
						gchar* _tmp31_;
						GString* _tmp32_;
#line 194 "../src/composer_library.vala"
						_tmp28_ = current_method;
#line 194 "../src/composer_library.vala"
						_tmp29_ = method_body;
#line 194 "../src/composer_library.vala"
						_tmp30_ = _tmp29_->str;
#line 194 "../src/composer_library.vala"
						_tmp31_ = g_strdup (_tmp30_);
#line 194 "../src/composer_library.vala"
						_g_free0 (_tmp28_->body);
#line 194 "../src/composer_library.vala"
						_tmp28_->body = _tmp31_;
#line 195 "../src/composer_library.vala"
						_g_object_unref0 (current_method);
#line 195 "../src/composer_library.vala"
						current_method = NULL;
#line 196 "../src/composer_library.vala"
						in_method_body = FALSE;
#line 197 "../src/composer_library.vala"
						_tmp32_ = method_body;
#line 197 "../src/composer_library.vala"
						g_string_truncate (_tmp32_, (gsize) 0);
#line 1908 "composer_library.c"
					}
#line 199 "../src/composer_library.vala"
					_g_free0 (line);
#line 199 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 199 "../src/composer_library.vala"
					continue;
#line 1916 "composer_library.c"
				}
#line 202 "../src/composer_library.vala"
				_tmp34_ = line;
#line 202 "../src/composer_library.vala"
				if (g_str_has_prefix (_tmp34_, "namespace ")) {
#line 1922 "composer_library.c"
					const gchar* _tmp35_;
#line 202 "../src/composer_library.vala"
					_tmp35_ = line;
#line 202 "../src/composer_library.vala"
					_tmp33_ = g_str_has_suffix (_tmp35_, ";");
#line 1928 "composer_library.c"
				} else {
#line 202 "../src/composer_library.vala"
					_tmp33_ = FALSE;
#line 1932 "composer_library.c"
				}
#line 202 "../src/composer_library.vala"
				if (_tmp33_) {
#line 1936 "composer_library.c"
					const gchar* _tmp36_;
					gint _tmp37_;
					gint _tmp38_;
					const gchar* _tmp39_;
					gint _tmp40_;
					gint _tmp41_;
					gint _tmp42_;
					gint _tmp43_;
					gchar* _tmp44_;
					gchar* _tmp45_;
					gchar* _tmp46_;
#line 203 "../src/composer_library.vala"
					_tmp36_ = line;
#line 203 "../src/composer_library.vala"
					_tmp37_ = strlen ("namespace ");
#line 203 "../src/composer_library.vala"
					_tmp38_ = _tmp37_;
#line 203 "../src/composer_library.vala"
					_tmp39_ = line;
#line 203 "../src/composer_library.vala"
					_tmp40_ = strlen (_tmp39_);
#line 203 "../src/composer_library.vala"
					_tmp41_ = _tmp40_;
#line 203 "../src/composer_library.vala"
					_tmp42_ = strlen ("namespace ");
#line 203 "../src/composer_library.vala"
					_tmp43_ = _tmp42_;
#line 203 "../src/composer_library.vala"
					_tmp44_ = string_substring (_tmp36_, (glong) _tmp38_, (glong) ((_tmp41_ - _tmp43_) - 1));
#line 203 "../src/composer_library.vala"
					_tmp45_ = _tmp44_;
#line 203 "../src/composer_library.vala"
					_tmp46_ = string_strip (_tmp45_);
#line 203 "../src/composer_library.vala"
					_g_free0 (namespace_name);
#line 203 "../src/composer_library.vala"
					namespace_name = _tmp46_;
#line 203 "../src/composer_library.vala"
					_g_free0 (_tmp45_);
#line 204 "../src/composer_library.vala"
					_g_free0 (line);
#line 204 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 204 "../src/composer_library.vala"
					continue;
#line 1982 "composer_library.c"
				}
#line 207 "../src/composer_library.vala"
				_tmp47_ = current_symbol;
#line 207 "../src/composer_library.vala"
				if (_tmp47_ == NULL) {
#line 1988 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
					const gchar* _tmp48_;
					const gchar* _tmp49_;
					GString* _tmp50_;
					gchar* _tmp51_;
					gchar* _tmp52_;
					PhpToValaComposerLibraryComposerSymbol* _tmp53_;
					PhpToValaComposerLibraryComposerSymbol* _tmp54_;
					PhpToValaComposerLibraryComposerSymbol* _tmp55_;
#line 208 "../src/composer_library.vala"
					_tmp48_ = line;
#line 208 "../src/composer_library.vala"
					_tmp49_ = namespace_name;
#line 208 "../src/composer_library.vala"
					_tmp50_ = pending_doc;
#line 208 "../src/composer_library.vala"
					_tmp51_ = php_to_vala_composer_library_consume_doc (_tmp50_);
#line 208 "../src/composer_library.vala"
					_tmp52_ = _tmp51_;
#line 208 "../src/composer_library.vala"
					_tmp53_ = php_to_vala_composer_library_parse_symbol_declaration (_tmp48_, _tmp49_, _tmp52_);
#line 208 "../src/composer_library.vala"
					_tmp54_ = _tmp53_;
#line 208 "../src/composer_library.vala"
					_g_free0 (_tmp52_);
#line 208 "../src/composer_library.vala"
					symbol = _tmp54_;
#line 209 "../src/composer_library.vala"
					_tmp55_ = symbol;
#line 209 "../src/composer_library.vala"
					if (_tmp55_ != NULL) {
#line 2020 "composer_library.c"
						GeeArrayList* _tmp56_;
						PhpToValaComposerLibraryComposerSymbol* _tmp57_;
						PhpToValaComposerLibraryComposerSymbol* _tmp58_;
						PhpToValaComposerLibraryComposerSymbol* _tmp59_;
#line 210 "../src/composer_library.vala"
						_tmp56_ = self->priv->symbols;
#line 210 "../src/composer_library.vala"
						_tmp57_ = symbol;
#line 210 "../src/composer_library.vala"
						gee_abstract_collection_add ((GeeAbstractCollection*) _tmp56_, _tmp57_);
#line 211 "../src/composer_library.vala"
						_tmp58_ = symbol;
#line 211 "../src/composer_library.vala"
						_tmp59_ = _g_object_ref0 (_tmp58_);
#line 211 "../src/composer_library.vala"
						_g_object_unref0 (current_symbol);
#line 211 "../src/composer_library.vala"
						current_symbol = _tmp59_;
#line 2039 "composer_library.c"
					}
#line 213 "../src/composer_library.vala"
					_g_object_unref0 (symbol);
#line 213 "../src/composer_library.vala"
					_g_free0 (line);
#line 213 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 213 "../src/composer_library.vala"
					continue;
#line 2049 "composer_library.c"
				}
#line 216 "../src/composer_library.vala"
				_tmp60_ = line;
#line 216 "../src/composer_library.vala"
				if (g_strcmp0 (_tmp60_, "}") == 0) {
#line 217 "../src/composer_library.vala"
					_g_object_unref0 (current_symbol);
#line 217 "../src/composer_library.vala"
					current_symbol = NULL;
#line 218 "../src/composer_library.vala"
					_g_free0 (line);
#line 218 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 218 "../src/composer_library.vala"
					continue;
#line 2065 "composer_library.c"
				}
#line 221 "../src/composer_library.vala"
				_tmp62_ = line;
#line 221 "../src/composer_library.vala"
				if (g_str_has_prefix (_tmp62_, "use ")) {
#line 2071 "composer_library.c"
					const gchar* _tmp63_;
#line 221 "../src/composer_library.vala"
					_tmp63_ = line;
#line 221 "../src/composer_library.vala"
					_tmp61_ = g_str_has_suffix (_tmp63_, ";");
#line 2077 "composer_library.c"
				} else {
#line 221 "../src/composer_library.vala"
					_tmp61_ = FALSE;
#line 2081 "composer_library.c"
				}
#line 221 "../src/composer_library.vala"
				if (_tmp61_) {
#line 2085 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp64_;
					GeeArrayList* _tmp65_;
					const gchar* _tmp66_;
					gint _tmp67_;
					gint _tmp68_;
					const gchar* _tmp69_;
					gint _tmp70_;
					gint _tmp71_;
					gint _tmp72_;
					gint _tmp73_;
					gchar* _tmp74_;
					gchar* _tmp75_;
					gchar* _tmp76_;
					gchar* _tmp77_;
#line 222 "../src/composer_library.vala"
					_tmp64_ = current_symbol;
#line 222 "../src/composer_library.vala"
					_tmp65_ = _tmp64_->traits;
#line 222 "../src/composer_library.vala"
					_tmp66_ = line;
#line 222 "../src/composer_library.vala"
					_tmp67_ = strlen ("use ");
#line 222 "../src/composer_library.vala"
					_tmp68_ = _tmp67_;
#line 222 "../src/composer_library.vala"
					_tmp69_ = line;
#line 222 "../src/composer_library.vala"
					_tmp70_ = strlen (_tmp69_);
#line 222 "../src/composer_library.vala"
					_tmp71_ = _tmp70_;
#line 222 "../src/composer_library.vala"
					_tmp72_ = strlen ("use ");
#line 222 "../src/composer_library.vala"
					_tmp73_ = _tmp72_;
#line 222 "../src/composer_library.vala"
					_tmp74_ = string_substring (_tmp66_, (glong) _tmp68_, (glong) ((_tmp71_ - _tmp73_) - 1));
#line 222 "../src/composer_library.vala"
					_tmp75_ = _tmp74_;
#line 222 "../src/composer_library.vala"
					_tmp76_ = string_strip (_tmp75_);
#line 222 "../src/composer_library.vala"
					_tmp77_ = _tmp76_;
#line 222 "../src/composer_library.vala"
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp65_, _tmp77_);
#line 222 "../src/composer_library.vala"
					_g_free0 (_tmp77_);
#line 222 "../src/composer_library.vala"
					_g_free0 (_tmp75_);
#line 223 "../src/composer_library.vala"
					_g_free0 (line);
#line 223 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 223 "../src/composer_library.vala"
					continue;
#line 2140 "composer_library.c"
				}
#line 226 "../src/composer_library.vala"
				_tmp78_ = line;
#line 226 "../src/composer_library.vala"
				_tmp79_ = php_to_vala_composer_library_parse_constant (_tmp78_);
#line 226 "../src/composer_library.vala"
				constant = _tmp79_;
#line 227 "../src/composer_library.vala"
				_tmp80_ = constant;
#line 227 "../src/composer_library.vala"
				if (_tmp80_ != NULL) {
#line 2152 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp81_;
					GeeArrayList* _tmp82_;
					PhpToValaComposerLibraryComposerConstant* _tmp83_;
#line 228 "../src/composer_library.vala"
					_tmp81_ = current_symbol;
#line 228 "../src/composer_library.vala"
					_tmp82_ = _tmp81_->constants;
#line 228 "../src/composer_library.vala"
					_tmp83_ = constant;
#line 228 "../src/composer_library.vala"
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp82_, _tmp83_);
#line 229 "../src/composer_library.vala"
					_g_object_unref0 (constant);
#line 229 "../src/composer_library.vala"
					_g_free0 (line);
#line 229 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 229 "../src/composer_library.vala"
					continue;
#line 2172 "composer_library.c"
				}
#line 232 "../src/composer_library.vala"
				_tmp84_ = line;
#line 232 "../src/composer_library.vala"
				_tmp85_ = pending_doc;
#line 232 "../src/composer_library.vala"
				_tmp86_ = php_to_vala_composer_library_consume_doc (_tmp85_);
#line 232 "../src/composer_library.vala"
				_tmp87_ = _tmp86_;
#line 232 "../src/composer_library.vala"
				_tmp88_ = php_to_vala_composer_library_parse_method_header (_tmp84_, _tmp87_);
#line 232 "../src/composer_library.vala"
				_tmp89_ = _tmp88_;
#line 232 "../src/composer_library.vala"
				_g_free0 (_tmp87_);
#line 232 "../src/composer_library.vala"
				method = _tmp89_;
#line 233 "../src/composer_library.vala"
				_tmp90_ = method;
#line 233 "../src/composer_library.vala"
				if (_tmp90_ != NULL) {
#line 2194 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp91_;
					GeeArrayList* _tmp92_;
					PhpToValaComposerLibraryComposerMethod* _tmp93_;
					const gchar* _tmp94_;
#line 234 "../src/composer_library.vala"
					_tmp91_ = current_symbol;
#line 234 "../src/composer_library.vala"
					_tmp92_ = _tmp91_->methods;
#line 234 "../src/composer_library.vala"
					_tmp93_ = method;
#line 234 "../src/composer_library.vala"
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp92_, _tmp93_);
#line 235 "../src/composer_library.vala"
					_tmp94_ = line;
#line 235 "../src/composer_library.vala"
					if (!g_str_has_suffix (_tmp94_, ";")) {
#line 2211 "composer_library.c"
						PhpToValaComposerLibraryComposerMethod* _tmp95_;
						PhpToValaComposerLibraryComposerMethod* _tmp96_;
						const gchar* _tmp97_;
						GString* _tmp98_;
#line 236 "../src/composer_library.vala"
						_tmp95_ = method;
#line 236 "../src/composer_library.vala"
						_tmp96_ = _g_object_ref0 (_tmp95_);
#line 236 "../src/composer_library.vala"
						_g_object_unref0 (current_method);
#line 236 "../src/composer_library.vala"
						current_method = _tmp96_;
#line 237 "../src/composer_library.vala"
						in_method_body = TRUE;
#line 238 "../src/composer_library.vala"
						_tmp97_ = line;
#line 238 "../src/composer_library.vala"
						method_depth = php_to_vala_composer_library_count_braces (_tmp97_);
#line 239 "../src/composer_library.vala"
						_tmp98_ = method_body;
#line 239 "../src/composer_library.vala"
						g_string_truncate (_tmp98_, (gsize) 0);
#line 2234 "composer_library.c"
					}
#line 241 "../src/composer_library.vala"
					_g_object_unref0 (method);
#line 241 "../src/composer_library.vala"
					_g_object_unref0 (constant);
#line 241 "../src/composer_library.vala"
					_g_free0 (line);
#line 241 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 241 "../src/composer_library.vala"
					continue;
#line 2246 "composer_library.c"
				}
#line 244 "../src/composer_library.vala"
				_tmp99_ = line;
#line 244 "../src/composer_library.vala"
				_tmp100_ = php_to_vala_composer_library_parse_property (_tmp99_);
#line 244 "../src/composer_library.vala"
				property = _tmp100_;
#line 245 "../src/composer_library.vala"
				_tmp101_ = property;
#line 245 "../src/composer_library.vala"
				if (_tmp101_ != NULL) {
#line 2258 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp102_;
					GeeArrayList* _tmp103_;
					PhpToValaComposerLibraryComposerProperty* _tmp104_;
#line 246 "../src/composer_library.vala"
					_tmp102_ = current_symbol;
#line 246 "../src/composer_library.vala"
					_tmp103_ = _tmp102_->properties;
#line 246 "../src/composer_library.vala"
					_tmp104_ = property;
#line 246 "../src/composer_library.vala"
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp103_, _tmp104_);
#line 247 "../src/composer_library.vala"
					_g_object_unref0 (property);
#line 247 "../src/composer_library.vala"
					_g_object_unref0 (method);
#line 247 "../src/composer_library.vala"
					_g_object_unref0 (constant);
#line 247 "../src/composer_library.vala"
					_g_free0 (line);
#line 247 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 247 "../src/composer_library.vala"
					continue;
#line 2282 "composer_library.c"
				}
#line 250 "../src/composer_library.vala"
				_tmp105_ = line;
#line 250 "../src/composer_library.vala"
				if (g_strcmp0 (_tmp105_, "") != 0) {
#line 2288 "composer_library.c"
					GString* _tmp106_;
					gchar* _tmp107_;
					gchar* _tmp108_;
#line 251 "../src/composer_library.vala"
					_tmp106_ = pending_doc;
#line 251 "../src/composer_library.vala"
					_tmp107_ = php_to_vala_composer_library_consume_doc (_tmp106_);
#line 251 "../src/composer_library.vala"
					_tmp108_ = _tmp107_;
#line 251 "../src/composer_library.vala"
					_g_free0 (_tmp108_);
#line 2300 "composer_library.c"
				}
#line 171 "../src/composer_library.vala"
				_g_object_unref0 (property);
#line 171 "../src/composer_library.vala"
				_g_object_unref0 (method);
#line 171 "../src/composer_library.vala"
				_g_object_unref0 (constant);
#line 171 "../src/composer_library.vala"
				_g_free0 (line);
#line 171 "../src/composer_library.vala"
				_g_free0 (raw_line);
#line 2312 "composer_library.c"
			}
		}
#line 171 "../src/composer_library.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 2317 "composer_library.c"
	}
#line 159 "../src/composer_library.vala"
	_g_string_free0 (method_body);
#line 159 "../src/composer_library.vala"
	_g_string_free0 (pending_doc);
#line 159 "../src/composer_library.vala"
	_g_object_unref0 (current_method);
#line 159 "../src/composer_library.vala"
	_g_object_unref0 (current_symbol);
#line 159 "../src/composer_library.vala"
	_g_free0 (namespace_name);
#line 159 "../src/composer_library.vala"
	_g_free0 (source);
#line 2331 "composer_library.c"
}

static PhpToValaComposerLibraryComposerSymbol*
php_to_vala_composer_library_parse_symbol_declaration (const gchar* line,
                                                       const gchar* namespace_name,
                                                       const gchar* doc_comment)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
	PhpToValaComposerLibraryComposerSymbol* _tmp1_;
	PhpToValaComposerLibraryComposerSymbol* _tmp2_;
	gchar* _tmp3_;
	PhpToValaComposerLibraryComposerSymbol* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	gchar** tokens = NULL;
	const gchar* _tmp47_;
	gchar** _tmp48_;
	gchar** _tmp49_;
	gint tokens_length1;
	gint _tokens_size_;
	gboolean _tmp50_ = FALSE;
	gchar** _tmp51_;
	gint _tmp51__length1;
	PhpToValaComposerLibraryComposerSymbol* _tmp54_;
	gchar** _tmp55_;
	gint _tmp55__length1;
	const gchar* _tmp56_;
	gchar* _tmp57_;
	gint extends_index = 0;
	const gchar* _tmp58_;
	gint implements_index = 0;
	const gchar* _tmp76_;
	PhpToValaComposerLibraryComposerSymbol* result;
#line 256 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 256 "../src/composer_library.vala"
	g_return_val_if_fail (namespace_name != NULL, NULL);
#line 256 "../src/composer_library.vala"
	g_return_val_if_fail (doc_comment != NULL, NULL);
#line 257 "../src/composer_library.vala"
	_tmp0_ = g_strdup (line);
#line 257 "../src/composer_library.vala"
	clean = _tmp0_;
#line 258 "../src/composer_library.vala"
	_tmp1_ = php_to_vala_composer_library_composer_symbol_new ();
#line 258 "../src/composer_library.vala"
	symbol = _tmp1_;
#line 259 "../src/composer_library.vala"
	_tmp2_ = symbol;
#line 259 "../src/composer_library.vala"
	_tmp3_ = g_strdup (namespace_name);
#line 259 "../src/composer_library.vala"
	_g_free0 (_tmp2_->namespace_name);
#line 259 "../src/composer_library.vala"
	_tmp2_->namespace_name = _tmp3_;
#line 260 "../src/composer_library.vala"
	_tmp4_ = symbol;
#line 260 "../src/composer_library.vala"
	_tmp5_ = g_strdup (doc_comment);
#line 260 "../src/composer_library.vala"
	_g_free0 (_tmp4_->doc_comment);
#line 260 "../src/composer_library.vala"
	_tmp4_->doc_comment = _tmp5_;
#line 261 "../src/composer_library.vala"
	_tmp6_ = clean;
#line 261 "../src/composer_library.vala"
	if (g_str_has_prefix (_tmp6_, "abstract class ")) {
#line 2405 "composer_library.c"
		PhpToValaComposerLibraryComposerSymbol* _tmp7_;
		PhpToValaComposerLibraryComposerSymbol* _tmp8_;
		gchar* _tmp9_;
		const gchar* _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
#line 262 "../src/composer_library.vala"
		_tmp7_ = symbol;
#line 262 "../src/composer_library.vala"
		_tmp7_->is_abstract = TRUE;
#line 263 "../src/composer_library.vala"
		_tmp8_ = symbol;
#line 263 "../src/composer_library.vala"
		_tmp9_ = g_strdup ("class");
#line 263 "../src/composer_library.vala"
		_g_free0 (_tmp8_->kind);
#line 263 "../src/composer_library.vala"
		_tmp8_->kind = _tmp9_;
#line 264 "../src/composer_library.vala"
		_tmp10_ = clean;
#line 264 "../src/composer_library.vala"
		_tmp11_ = strlen ("abstract class ");
#line 264 "../src/composer_library.vala"
		_tmp12_ = _tmp11_;
#line 264 "../src/composer_library.vala"
		_tmp13_ = string_substring (_tmp10_, (glong) _tmp12_, (glong) -1);
#line 264 "../src/composer_library.vala"
		_tmp14_ = _tmp13_;
#line 264 "../src/composer_library.vala"
		_tmp15_ = string_strip (_tmp14_);
#line 264 "../src/composer_library.vala"
		_g_free0 (clean);
#line 264 "../src/composer_library.vala"
		clean = _tmp15_;
#line 264 "../src/composer_library.vala"
		_g_free0 (_tmp14_);
#line 2445 "composer_library.c"
	} else {
		const gchar* _tmp16_;
#line 265 "../src/composer_library.vala"
		_tmp16_ = clean;
#line 265 "../src/composer_library.vala"
		if (g_str_has_prefix (_tmp16_, "class ")) {
#line 2452 "composer_library.c"
			PhpToValaComposerLibraryComposerSymbol* _tmp17_;
			gchar* _tmp18_;
			const gchar* _tmp19_;
			gint _tmp20_;
			gint _tmp21_;
			gchar* _tmp22_;
			gchar* _tmp23_;
			gchar* _tmp24_;
#line 266 "../src/composer_library.vala"
			_tmp17_ = symbol;
#line 266 "../src/composer_library.vala"
			_tmp18_ = g_strdup ("class");
#line 266 "../src/composer_library.vala"
			_g_free0 (_tmp17_->kind);
#line 266 "../src/composer_library.vala"
			_tmp17_->kind = _tmp18_;
#line 267 "../src/composer_library.vala"
			_tmp19_ = clean;
#line 267 "../src/composer_library.vala"
			_tmp20_ = strlen ("class ");
#line 267 "../src/composer_library.vala"
			_tmp21_ = _tmp20_;
#line 267 "../src/composer_library.vala"
			_tmp22_ = string_substring (_tmp19_, (glong) _tmp21_, (glong) -1);
#line 267 "../src/composer_library.vala"
			_tmp23_ = _tmp22_;
#line 267 "../src/composer_library.vala"
			_tmp24_ = string_strip (_tmp23_);
#line 267 "../src/composer_library.vala"
			_g_free0 (clean);
#line 267 "../src/composer_library.vala"
			clean = _tmp24_;
#line 267 "../src/composer_library.vala"
			_g_free0 (_tmp23_);
#line 2487 "composer_library.c"
		} else {
			const gchar* _tmp25_;
#line 268 "../src/composer_library.vala"
			_tmp25_ = clean;
#line 268 "../src/composer_library.vala"
			if (g_str_has_prefix (_tmp25_, "interface ")) {
#line 2494 "composer_library.c"
				PhpToValaComposerLibraryComposerSymbol* _tmp26_;
				gchar* _tmp27_;
				const gchar* _tmp28_;
				gint _tmp29_;
				gint _tmp30_;
				gchar* _tmp31_;
				gchar* _tmp32_;
				gchar* _tmp33_;
#line 269 "../src/composer_library.vala"
				_tmp26_ = symbol;
#line 269 "../src/composer_library.vala"
				_tmp27_ = g_strdup ("interface");
#line 269 "../src/composer_library.vala"
				_g_free0 (_tmp26_->kind);
#line 269 "../src/composer_library.vala"
				_tmp26_->kind = _tmp27_;
#line 270 "../src/composer_library.vala"
				_tmp28_ = clean;
#line 270 "../src/composer_library.vala"
				_tmp29_ = strlen ("interface ");
#line 270 "../src/composer_library.vala"
				_tmp30_ = _tmp29_;
#line 270 "../src/composer_library.vala"
				_tmp31_ = string_substring (_tmp28_, (glong) _tmp30_, (glong) -1);
#line 270 "../src/composer_library.vala"
				_tmp32_ = _tmp31_;
#line 270 "../src/composer_library.vala"
				_tmp33_ = string_strip (_tmp32_);
#line 270 "../src/composer_library.vala"
				_g_free0 (clean);
#line 270 "../src/composer_library.vala"
				clean = _tmp33_;
#line 270 "../src/composer_library.vala"
				_g_free0 (_tmp32_);
#line 2529 "composer_library.c"
			} else {
				const gchar* _tmp34_;
#line 271 "../src/composer_library.vala"
				_tmp34_ = clean;
#line 271 "../src/composer_library.vala"
				if (g_str_has_prefix (_tmp34_, "trait ")) {
#line 2536 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp35_;
					gchar* _tmp36_;
					const gchar* _tmp37_;
					gint _tmp38_;
					gint _tmp39_;
					gchar* _tmp40_;
					gchar* _tmp41_;
					gchar* _tmp42_;
#line 272 "../src/composer_library.vala"
					_tmp35_ = symbol;
#line 272 "../src/composer_library.vala"
					_tmp36_ = g_strdup ("trait");
#line 272 "../src/composer_library.vala"
					_g_free0 (_tmp35_->kind);
#line 272 "../src/composer_library.vala"
					_tmp35_->kind = _tmp36_;
#line 273 "../src/composer_library.vala"
					_tmp37_ = clean;
#line 273 "../src/composer_library.vala"
					_tmp38_ = strlen ("trait ");
#line 273 "../src/composer_library.vala"
					_tmp39_ = _tmp38_;
#line 273 "../src/composer_library.vala"
					_tmp40_ = string_substring (_tmp37_, (glong) _tmp39_, (glong) -1);
#line 273 "../src/composer_library.vala"
					_tmp41_ = _tmp40_;
#line 273 "../src/composer_library.vala"
					_tmp42_ = string_strip (_tmp41_);
#line 273 "../src/composer_library.vala"
					_g_free0 (clean);
#line 273 "../src/composer_library.vala"
					clean = _tmp42_;
#line 273 "../src/composer_library.vala"
					_g_free0 (_tmp41_);
#line 2571 "composer_library.c"
				} else {
#line 275 "../src/composer_library.vala"
					result = NULL;
#line 275 "../src/composer_library.vala"
					_g_object_unref0 (symbol);
#line 275 "../src/composer_library.vala"
					_g_free0 (clean);
#line 275 "../src/composer_library.vala"
					return result;
#line 2581 "composer_library.c"
				}
			}
		}
	}
#line 278 "../src/composer_library.vala"
	_tmp43_ = clean;
#line 278 "../src/composer_library.vala"
	_tmp44_ = string_replace (_tmp43_, "{", "");
#line 278 "../src/composer_library.vala"
	_tmp45_ = _tmp44_;
#line 278 "../src/composer_library.vala"
	_tmp46_ = string_strip (_tmp45_);
#line 278 "../src/composer_library.vala"
	_g_free0 (clean);
#line 278 "../src/composer_library.vala"
	clean = _tmp46_;
#line 278 "../src/composer_library.vala"
	_g_free0 (_tmp45_);
#line 279 "../src/composer_library.vala"
	_tmp47_ = clean;
#line 279 "../src/composer_library.vala"
	_tmp49_ = _tmp48_ = g_strsplit (_tmp47_, " ", 0);
#line 279 "../src/composer_library.vala"
	tokens = _tmp49_;
#line 279 "../src/composer_library.vala"
	tokens_length1 = _vala_array_length (_tmp48_);
#line 279 "../src/composer_library.vala"
	_tokens_size_ = tokens_length1;
#line 280 "../src/composer_library.vala"
	_tmp51_ = tokens;
#line 280 "../src/composer_library.vala"
	_tmp51__length1 = tokens_length1;
#line 280 "../src/composer_library.vala"
	if (_tmp51__length1 < 1) {
#line 280 "../src/composer_library.vala"
		_tmp50_ = TRUE;
#line 2618 "composer_library.c"
	} else {
		gchar** _tmp52_;
		gint _tmp52__length1;
		const gchar* _tmp53_;
#line 280 "../src/composer_library.vala"
		_tmp52_ = tokens;
#line 280 "../src/composer_library.vala"
		_tmp52__length1 = tokens_length1;
#line 280 "../src/composer_library.vala"
		_tmp53_ = _tmp52_[0];
#line 280 "../src/composer_library.vala"
		_tmp50_ = g_strcmp0 (_tmp53_, "") == 0;
#line 2631 "composer_library.c"
	}
#line 280 "../src/composer_library.vala"
	if (_tmp50_) {
#line 281 "../src/composer_library.vala"
		result = NULL;
#line 281 "../src/composer_library.vala"
		tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
#line 281 "../src/composer_library.vala"
		_g_object_unref0 (symbol);
#line 281 "../src/composer_library.vala"
		_g_free0 (clean);
#line 281 "../src/composer_library.vala"
		return result;
#line 2645 "composer_library.c"
	}
#line 283 "../src/composer_library.vala"
	_tmp54_ = symbol;
#line 283 "../src/composer_library.vala"
	_tmp55_ = tokens;
#line 283 "../src/composer_library.vala"
	_tmp55__length1 = tokens_length1;
#line 283 "../src/composer_library.vala"
	_tmp56_ = _tmp55_[0];
#line 283 "../src/composer_library.vala"
	_tmp57_ = string_strip (_tmp56_);
#line 283 "../src/composer_library.vala"
	_g_free0 (_tmp54_->name);
#line 283 "../src/composer_library.vala"
	_tmp54_->name = _tmp57_;
#line 284 "../src/composer_library.vala"
	_tmp58_ = clean;
#line 284 "../src/composer_library.vala"
	extends_index = string_index_of (_tmp58_, " extends ", 0);
#line 285 "../src/composer_library.vala"
	if (extends_index >= 0) {
#line 2667 "composer_library.c"
		gchar* rest = NULL;
		const gchar* _tmp59_;
		gint _tmp60_;
		gint _tmp61_;
		gchar* _tmp62_;
		gchar* _tmp63_;
		gchar* _tmp64_;
		gchar* _tmp65_;
		gint end = 0;
		const gchar* _tmp66_;
		gchar* _tmp67_ = NULL;
		PhpToValaComposerLibraryComposerSymbol* _tmp74_;
		gchar* _tmp75_;
#line 286 "../src/composer_library.vala"
		_tmp59_ = clean;
#line 286 "../src/composer_library.vala"
		_tmp60_ = strlen (" extends ");
#line 286 "../src/composer_library.vala"
		_tmp61_ = _tmp60_;
#line 286 "../src/composer_library.vala"
		_tmp62_ = string_substring (_tmp59_, (glong) (extends_index + _tmp61_), (glong) -1);
#line 286 "../src/composer_library.vala"
		_tmp63_ = _tmp62_;
#line 286 "../src/composer_library.vala"
		_tmp64_ = string_strip (_tmp63_);
#line 286 "../src/composer_library.vala"
		_tmp65_ = _tmp64_;
#line 286 "../src/composer_library.vala"
		_g_free0 (_tmp63_);
#line 286 "../src/composer_library.vala"
		rest = _tmp65_;
#line 287 "../src/composer_library.vala"
		_tmp66_ = rest;
#line 287 "../src/composer_library.vala"
		end = string_index_of (_tmp66_, " ", 0);
#line 288 "../src/composer_library.vala"
		if (end >= 0) {
#line 2705 "composer_library.c"
			const gchar* _tmp68_;
			gchar* _tmp69_;
			gchar* _tmp70_;
			gchar* _tmp71_;
#line 288 "../src/composer_library.vala"
			_tmp68_ = rest;
#line 288 "../src/composer_library.vala"
			_tmp69_ = string_substring (_tmp68_, (glong) 0, (glong) end);
#line 288 "../src/composer_library.vala"
			_tmp70_ = _tmp69_;
#line 288 "../src/composer_library.vala"
			_tmp71_ = string_strip (_tmp70_);
#line 288 "../src/composer_library.vala"
			_g_free0 (_tmp67_);
#line 288 "../src/composer_library.vala"
			_tmp67_ = _tmp71_;
#line 288 "../src/composer_library.vala"
			_g_free0 (_tmp70_);
#line 2724 "composer_library.c"
		} else {
			const gchar* _tmp72_;
			gchar* _tmp73_;
#line 288 "../src/composer_library.vala"
			_tmp72_ = rest;
#line 288 "../src/composer_library.vala"
			_tmp73_ = g_strdup (_tmp72_);
#line 288 "../src/composer_library.vala"
			_g_free0 (_tmp67_);
#line 288 "../src/composer_library.vala"
			_tmp67_ = _tmp73_;
#line 2736 "composer_library.c"
		}
#line 288 "../src/composer_library.vala"
		_tmp74_ = symbol;
#line 288 "../src/composer_library.vala"
		_tmp75_ = php_to_vala_composer_library_strip_global_prefix (_tmp67_);
#line 288 "../src/composer_library.vala"
		_g_free0 (_tmp74_->extends_name);
#line 288 "../src/composer_library.vala"
		_tmp74_->extends_name = _tmp75_;
#line 285 "../src/composer_library.vala"
		_g_free0 (_tmp67_);
#line 285 "../src/composer_library.vala"
		_g_free0 (rest);
#line 2750 "composer_library.c"
	}
#line 290 "../src/composer_library.vala"
	_tmp76_ = clean;
#line 290 "../src/composer_library.vala"
	implements_index = string_index_of (_tmp76_, " implements ", 0);
#line 291 "../src/composer_library.vala"
	if (implements_index >= 0) {
#line 2758 "composer_library.c"
		PhpToValaComposerLibraryComposerSymbol* _tmp77_;
		const gchar* _tmp78_;
		gint _tmp79_;
		gint _tmp80_;
		gchar* _tmp81_;
		gchar* _tmp82_;
		gchar* _tmp83_;
#line 292 "../src/composer_library.vala"
		_tmp77_ = symbol;
#line 292 "../src/composer_library.vala"
		_tmp78_ = clean;
#line 292 "../src/composer_library.vala"
		_tmp79_ = strlen (" implements ");
#line 292 "../src/composer_library.vala"
		_tmp80_ = _tmp79_;
#line 292 "../src/composer_library.vala"
		_tmp81_ = string_substring (_tmp78_, (glong) (implements_index + _tmp80_), (glong) -1);
#line 292 "../src/composer_library.vala"
		_tmp82_ = _tmp81_;
#line 292 "../src/composer_library.vala"
		_tmp83_ = string_strip (_tmp82_);
#line 292 "../src/composer_library.vala"
		_g_free0 (_tmp77_->implements_name);
#line 292 "../src/composer_library.vala"
		_tmp77_->implements_name = _tmp83_;
#line 292 "../src/composer_library.vala"
		_g_free0 (_tmp82_);
#line 2786 "composer_library.c"
	}
#line 294 "../src/composer_library.vala"
	result = symbol;
#line 294 "../src/composer_library.vala"
	tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
#line 294 "../src/composer_library.vala"
	_g_free0 (clean);
#line 294 "../src/composer_library.vala"
	return result;
#line 2796 "composer_library.c"
}

static PhpToValaComposerLibraryComposerConstant*
php_to_vala_composer_library_parse_constant (const gchar* line)
{
	gboolean _tmp0_ = FALSE;
	gchar* rest = NULL;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gint equals_index = 0;
	const gchar* _tmp11_;
	PhpToValaComposerLibraryComposerConstant* constant = NULL;
	PhpToValaComposerLibraryComposerConstant* _tmp12_;
	PhpToValaComposerLibraryComposerConstant* _tmp13_;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	PhpToValaComposerLibraryComposerConstant* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	PhpToValaComposerLibraryComposerConstant* result;
#line 297 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 298 "../src/composer_library.vala"
	if (!g_str_has_prefix (line, "const ")) {
#line 298 "../src/composer_library.vala"
		_tmp0_ = TRUE;
#line 2835 "composer_library.c"
	} else {
#line 298 "../src/composer_library.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 2839 "composer_library.c"
	}
#line 298 "../src/composer_library.vala"
	if (_tmp0_) {
#line 299 "../src/composer_library.vala"
		result = NULL;
#line 299 "../src/composer_library.vala"
		return result;
#line 2847 "composer_library.c"
	}
#line 301 "../src/composer_library.vala"
	_tmp1_ = strlen ("const ");
#line 301 "../src/composer_library.vala"
	_tmp2_ = _tmp1_;
#line 301 "../src/composer_library.vala"
	_tmp3_ = strlen (line);
#line 301 "../src/composer_library.vala"
	_tmp4_ = _tmp3_;
#line 301 "../src/composer_library.vala"
	_tmp5_ = strlen ("const ");
#line 301 "../src/composer_library.vala"
	_tmp6_ = _tmp5_;
#line 301 "../src/composer_library.vala"
	_tmp7_ = string_substring (line, (glong) _tmp2_, (glong) ((_tmp4_ - _tmp6_) - 1));
#line 301 "../src/composer_library.vala"
	_tmp8_ = _tmp7_;
#line 301 "../src/composer_library.vala"
	_tmp9_ = string_strip (_tmp8_);
#line 301 "../src/composer_library.vala"
	_tmp10_ = _tmp9_;
#line 301 "../src/composer_library.vala"
	_g_free0 (_tmp8_);
#line 301 "../src/composer_library.vala"
	rest = _tmp10_;
#line 302 "../src/composer_library.vala"
	_tmp11_ = rest;
#line 302 "../src/composer_library.vala"
	equals_index = string_index_of (_tmp11_, "=", 0);
#line 303 "../src/composer_library.vala"
	if (equals_index < 0) {
#line 304 "../src/composer_library.vala"
		result = NULL;
#line 304 "../src/composer_library.vala"
		_g_free0 (rest);
#line 304 "../src/composer_library.vala"
		return result;
#line 2885 "composer_library.c"
	}
#line 306 "../src/composer_library.vala"
	_tmp12_ = php_to_vala_composer_library_composer_constant_new ();
#line 306 "../src/composer_library.vala"
	constant = _tmp12_;
#line 307 "../src/composer_library.vala"
	_tmp13_ = constant;
#line 307 "../src/composer_library.vala"
	_tmp14_ = rest;
#line 307 "../src/composer_library.vala"
	_tmp15_ = string_substring (_tmp14_, (glong) 0, (glong) equals_index);
#line 307 "../src/composer_library.vala"
	_tmp16_ = _tmp15_;
#line 307 "../src/composer_library.vala"
	_tmp17_ = string_strip (_tmp16_);
#line 307 "../src/composer_library.vala"
	_g_free0 (_tmp13_->name);
#line 307 "../src/composer_library.vala"
	_tmp13_->name = _tmp17_;
#line 307 "../src/composer_library.vala"
	_g_free0 (_tmp16_);
#line 308 "../src/composer_library.vala"
	_tmp18_ = constant;
#line 308 "../src/composer_library.vala"
	_tmp19_ = rest;
#line 308 "../src/composer_library.vala"
	_tmp20_ = string_substring (_tmp19_, (glong) (equals_index + 1), (glong) -1);
#line 308 "../src/composer_library.vala"
	_tmp21_ = _tmp20_;
#line 308 "../src/composer_library.vala"
	_tmp22_ = string_strip (_tmp21_);
#line 308 "../src/composer_library.vala"
	_g_free0 (_tmp18_->value);
#line 308 "../src/composer_library.vala"
	_tmp18_->value = _tmp22_;
#line 308 "../src/composer_library.vala"
	_g_free0 (_tmp21_);
#line 309 "../src/composer_library.vala"
	result = constant;
#line 309 "../src/composer_library.vala"
	_g_free0 (rest);
#line 309 "../src/composer_library.vala"
	return result;
#line 2929 "composer_library.c"
}

static PhpToValaComposerLibraryComposerProperty*
php_to_vala_composer_library_parse_property (const gchar* line)
{
	gboolean _tmp0_ = FALSE;
	gchar* visibility = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar** _tmp5_;
	const gchar* _tmp10_;
	gint dollar_index = 0;
	gint end = 0;
	PhpToValaComposerLibraryComposerProperty* property = NULL;
	PhpToValaComposerLibraryComposerProperty* _tmp16_;
	PhpToValaComposerLibraryComposerProperty* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	PhpToValaComposerLibraryComposerProperty* _tmp20_;
	gchar* _tmp21_;
	gchar* before = NULL;
	const gchar* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	const gchar* _tmp25_;
	gint _tmp26_;
	gint _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	const gchar* _tmp32_;
	PhpToValaComposerLibraryComposerProperty* _tmp38_;
	const gchar* _tmp39_;
	gchar* _tmp40_;
	PhpToValaComposerLibraryComposerProperty* result;
#line 312 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 313 "../src/composer_library.vala"
	if (!g_str_has_suffix (line, ";")) {
#line 313 "../src/composer_library.vala"
		_tmp0_ = TRUE;
#line 2974 "composer_library.c"
	} else {
#line 313 "../src/composer_library.vala"
		_tmp0_ = string_index_of (line, "$", 0) < 0;
#line 2978 "composer_library.c"
	}
#line 313 "../src/composer_library.vala"
	if (_tmp0_) {
#line 314 "../src/composer_library.vala"
		result = NULL;
#line 314 "../src/composer_library.vala"
		return result;
#line 2986 "composer_library.c"
	}
#line 316 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 316 "../src/composer_library.vala"
	visibility = _tmp1_;
#line 317 "../src/composer_library.vala"
	_tmp2_ = g_strdup ("public ");
#line 317 "../src/composer_library.vala"
	_tmp3_ = g_strdup ("protected ");
#line 317 "../src/composer_library.vala"
	_tmp4_ = g_strdup ("private ");
#line 317 "../src/composer_library.vala"
	_tmp5_ = g_new0 (gchar*, 3 + 1);
#line 317 "../src/composer_library.vala"
	_tmp5_[0] = _tmp2_;
#line 317 "../src/composer_library.vala"
	_tmp5_[1] = _tmp3_;
#line 317 "../src/composer_library.vala"
	_tmp5_[2] = _tmp4_;
#line 3006 "composer_library.c"
	{
		gchar** candidate_collection = NULL;
		gint candidate_collection_length1 = 0;
		gint _candidate_collection_size_ = 0;
		gint candidate_it = 0;
#line 317 "../src/composer_library.vala"
		candidate_collection = _tmp5_;
#line 317 "../src/composer_library.vala"
		candidate_collection_length1 = 3;
#line 317 "../src/composer_library.vala"
		for (candidate_it = 0; candidate_it < candidate_collection_length1; candidate_it = candidate_it + 1) {
#line 3018 "composer_library.c"
			gchar* _tmp6_;
			gchar* candidate = NULL;
#line 317 "../src/composer_library.vala"
			_tmp6_ = g_strdup (candidate_collection[candidate_it]);
#line 317 "../src/composer_library.vala"
			candidate = _tmp6_;
#line 3025 "composer_library.c"
			{
				const gchar* _tmp7_;
#line 318 "../src/composer_library.vala"
				_tmp7_ = candidate;
#line 318 "../src/composer_library.vala"
				if (g_str_has_prefix (line, _tmp7_)) {
#line 3032 "composer_library.c"
					const gchar* _tmp8_;
					gchar* _tmp9_;
#line 319 "../src/composer_library.vala"
					_tmp8_ = candidate;
#line 319 "../src/composer_library.vala"
					_tmp9_ = string_strip (_tmp8_);
#line 319 "../src/composer_library.vala"
					_g_free0 (visibility);
#line 319 "../src/composer_library.vala"
					visibility = _tmp9_;
#line 320 "../src/composer_library.vala"
					_g_free0 (candidate);
#line 320 "../src/composer_library.vala"
					break;
#line 3047 "composer_library.c"
				}
#line 317 "../src/composer_library.vala"
				_g_free0 (candidate);
#line 3051 "composer_library.c"
			}
		}
#line 317 "../src/composer_library.vala"
		candidate_collection = (_vala_array_free (candidate_collection, candidate_collection_length1, (GDestroyNotify) g_free), NULL);
#line 3056 "composer_library.c"
	}
#line 323 "../src/composer_library.vala"
	_tmp10_ = visibility;
#line 323 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp10_, "") == 0) {
#line 324 "../src/composer_library.vala"
		result = NULL;
#line 324 "../src/composer_library.vala"
		_g_free0 (visibility);
#line 324 "../src/composer_library.vala"
		return result;
#line 3068 "composer_library.c"
	}
#line 326 "../src/composer_library.vala"
	dollar_index = string_index_of (line, "$", 0);
#line 327 "../src/composer_library.vala"
	end = dollar_index + 1;
#line 328 "../src/composer_library.vala"
	while (TRUE) {
#line 3076 "composer_library.c"
		gboolean _tmp11_ = FALSE;
		gint _tmp12_;
		gint _tmp13_;
		gint _tmp15_;
#line 328 "../src/composer_library.vala"
		_tmp12_ = strlen (line);
#line 328 "../src/composer_library.vala"
		_tmp13_ = _tmp12_;
#line 328 "../src/composer_library.vala"
		if (end < _tmp13_) {
#line 3087 "composer_library.c"
			gboolean _tmp14_ = FALSE;
#line 328 "../src/composer_library.vala"
			if (g_ascii_isalnum (string_get (line, (glong) end))) {
#line 328 "../src/composer_library.vala"
				_tmp14_ = TRUE;
#line 3093 "composer_library.c"
			} else {
#line 328 "../src/composer_library.vala"
				_tmp14_ = string_get (line, (glong) end) == '_';
#line 3097 "composer_library.c"
			}
#line 328 "../src/composer_library.vala"
			_tmp11_ = _tmp14_;
#line 3101 "composer_library.c"
		} else {
#line 328 "../src/composer_library.vala"
			_tmp11_ = FALSE;
#line 3105 "composer_library.c"
		}
#line 328 "../src/composer_library.vala"
		if (!_tmp11_) {
#line 328 "../src/composer_library.vala"
			break;
#line 3111 "composer_library.c"
		}
#line 329 "../src/composer_library.vala"
		_tmp15_ = end;
#line 329 "../src/composer_library.vala"
		end = _tmp15_ + 1;
#line 3117 "composer_library.c"
	}
#line 331 "../src/composer_library.vala"
	_tmp16_ = php_to_vala_composer_library_composer_property_new ();
#line 331 "../src/composer_library.vala"
	property = _tmp16_;
#line 332 "../src/composer_library.vala"
	_tmp17_ = property;
#line 332 "../src/composer_library.vala"
	_tmp18_ = visibility;
#line 332 "../src/composer_library.vala"
	_tmp19_ = g_strdup (_tmp18_);
#line 332 "../src/composer_library.vala"
	_g_free0 (_tmp17_->visibility);
#line 332 "../src/composer_library.vala"
	_tmp17_->visibility = _tmp19_;
#line 333 "../src/composer_library.vala"
	_tmp20_ = property;
#line 333 "../src/composer_library.vala"
	_tmp21_ = string_substring (line, (glong) (dollar_index + 1), (glong) ((end - dollar_index) - 1));
#line 333 "../src/composer_library.vala"
	_g_free0 (_tmp20_->name);
#line 333 "../src/composer_library.vala"
	_tmp20_->name = _tmp21_;
#line 334 "../src/composer_library.vala"
	_tmp22_ = visibility;
#line 334 "../src/composer_library.vala"
	_tmp23_ = strlen (_tmp22_);
#line 334 "../src/composer_library.vala"
	_tmp24_ = _tmp23_;
#line 334 "../src/composer_library.vala"
	_tmp25_ = visibility;
#line 334 "../src/composer_library.vala"
	_tmp26_ = strlen (_tmp25_);
#line 334 "../src/composer_library.vala"
	_tmp27_ = _tmp26_;
#line 334 "../src/composer_library.vala"
	_tmp28_ = string_substring (line, (glong) _tmp24_, (glong) (dollar_index - _tmp27_));
#line 334 "../src/composer_library.vala"
	_tmp29_ = _tmp28_;
#line 334 "../src/composer_library.vala"
	_tmp30_ = string_strip (_tmp29_);
#line 334 "../src/composer_library.vala"
	_tmp31_ = _tmp30_;
#line 334 "../src/composer_library.vala"
	_g_free0 (_tmp29_);
#line 334 "../src/composer_library.vala"
	before = _tmp31_;
#line 335 "../src/composer_library.vala"
	_tmp32_ = before;
#line 335 "../src/composer_library.vala"
	if (g_str_has_prefix (_tmp32_, "?")) {
#line 3169 "composer_library.c"
		PhpToValaComposerLibraryComposerProperty* _tmp33_;
		const gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
#line 336 "../src/composer_library.vala"
		_tmp33_ = property;
#line 336 "../src/composer_library.vala"
		_tmp33_->nullable = TRUE;
#line 337 "../src/composer_library.vala"
		_tmp34_ = before;
#line 337 "../src/composer_library.vala"
		_tmp35_ = string_substring (_tmp34_, (glong) 1, (glong) -1);
#line 337 "../src/composer_library.vala"
		_tmp36_ = _tmp35_;
#line 337 "../src/composer_library.vala"
		_tmp37_ = string_strip (_tmp36_);
#line 337 "../src/composer_library.vala"
		_g_free0 (before);
#line 337 "../src/composer_library.vala"
		before = _tmp37_;
#line 337 "../src/composer_library.vala"
		_g_free0 (_tmp36_);
#line 3193 "composer_library.c"
	}
#line 339 "../src/composer_library.vala"
	_tmp38_ = property;
#line 339 "../src/composer_library.vala"
	_tmp39_ = before;
#line 339 "../src/composer_library.vala"
	_tmp40_ = g_strdup (_tmp39_);
#line 339 "../src/composer_library.vala"
	_g_free0 (_tmp38_->type_name);
#line 339 "../src/composer_library.vala"
	_tmp38_->type_name = _tmp40_;
#line 340 "../src/composer_library.vala"
	result = property;
#line 340 "../src/composer_library.vala"
	_g_free0 (before);
#line 340 "../src/composer_library.vala"
	_g_free0 (visibility);
#line 340 "../src/composer_library.vala"
	return result;
#line 3213 "composer_library.c"
}

static gint
string_last_index_of (const gchar* self,
                      const gchar* needle,
                      gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
#line 1194 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, -1);
#line 1194 "glib-2.0.vapi"
	g_return_val_if_fail (needle != NULL, -1);
#line 1195 "glib-2.0.vapi"
	_tmp0_ = g_strrstr (((gchar*) self) + start_index, (gchar*) needle);
#line 1195 "glib-2.0.vapi"
	_result_ = _tmp0_;
#line 1197 "glib-2.0.vapi"
	_tmp1_ = _result_;
#line 1197 "glib-2.0.vapi"
	if (_tmp1_ != NULL) {
#line 3237 "composer_library.c"
		gchar* _tmp2_;
#line 1198 "glib-2.0.vapi"
		_tmp2_ = _result_;
#line 1198 "glib-2.0.vapi"
		result = (gint) (_tmp2_ - ((gchar*) self));
#line 1198 "glib-2.0.vapi"
		return result;
#line 3245 "composer_library.c"
	} else {
#line 1200 "glib-2.0.vapi"
		result = -1;
#line 1200 "glib-2.0.vapi"
		return result;
#line 3251 "composer_library.c"
	}
}

static PhpToValaComposerLibraryComposerMethod*
php_to_vala_composer_library_parse_method_header (const gchar* line,
                                                  const gchar* doc_comment)
{
	gchar* header = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	PhpToValaComposerLibraryComposerMethod* method = NULL;
	PhpToValaComposerLibraryComposerMethod* _tmp6_;
	PhpToValaComposerLibraryComposerMethod* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp52_;
	const gchar* _tmp53_;
	gint _tmp54_;
	gint _tmp55_;
	gchar* _tmp56_;
	gchar* _tmp57_;
	gchar* _tmp58_;
	gint open_index = 0;
	const gchar* _tmp59_;
	gint close_index = 0;
	const gchar* _tmp60_;
	gboolean _tmp61_ = FALSE;
	PhpToValaComposerLibraryComposerMethod* _tmp62_;
	const gchar* _tmp63_;
	gchar* _tmp64_;
	gchar* _tmp65_;
	gchar* _tmp66_;
	const gchar* _tmp67_;
	gchar* _tmp68_;
	gchar* _tmp69_;
	PhpToValaComposerLibraryComposerMethod* _tmp70_;
	GeeArrayList* _tmp71_;
	gchar* return_part = NULL;
	const gchar* _tmp72_;
	gchar* _tmp73_;
	gchar* _tmp74_;
	gchar* _tmp75_;
	gchar* _tmp76_;
	const gchar* _tmp77_;
	PhpToValaComposerLibraryComposerMethod* result;
#line 343 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 343 "../src/composer_library.vala"
	g_return_val_if_fail (doc_comment != NULL, NULL);
#line 344 "../src/composer_library.vala"
	if (string_index_of (line, "function ", 0) < 0) {
#line 345 "../src/composer_library.vala"
		result = NULL;
#line 345 "../src/composer_library.vala"
		return result;
#line 3310 "composer_library.c"
	}
#line 347 "../src/composer_library.vala"
	_tmp0_ = string_replace (line, "{", "");
#line 347 "../src/composer_library.vala"
	_tmp1_ = _tmp0_;
#line 347 "../src/composer_library.vala"
	_tmp2_ = string_replace (_tmp1_, ";", "");
#line 347 "../src/composer_library.vala"
	_tmp3_ = _tmp2_;
#line 347 "../src/composer_library.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 347 "../src/composer_library.vala"
	_tmp5_ = _tmp4_;
#line 347 "../src/composer_library.vala"
	_g_free0 (_tmp3_);
#line 347 "../src/composer_library.vala"
	_g_free0 (_tmp1_);
#line 347 "../src/composer_library.vala"
	header = _tmp5_;
#line 348 "../src/composer_library.vala"
	_tmp6_ = php_to_vala_composer_library_composer_method_new ();
#line 348 "../src/composer_library.vala"
	method = _tmp6_;
#line 349 "../src/composer_library.vala"
	_tmp7_ = method;
#line 349 "../src/composer_library.vala"
	_tmp8_ = g_strdup (doc_comment);
#line 349 "../src/composer_library.vala"
	_g_free0 (_tmp7_->doc_comment);
#line 349 "../src/composer_library.vala"
	_tmp7_->doc_comment = _tmp8_;
#line 350 "../src/composer_library.vala"
	while (TRUE) {
#line 3344 "composer_library.c"
		const gchar* _tmp9_;
#line 351 "../src/composer_library.vala"
		_tmp9_ = header;
#line 351 "../src/composer_library.vala"
		if (g_str_has_prefix (_tmp9_, "abstract ")) {
#line 3350 "composer_library.c"
			PhpToValaComposerLibraryComposerMethod* _tmp10_;
			const gchar* _tmp11_;
			gint _tmp12_;
			gint _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
#line 352 "../src/composer_library.vala"
			_tmp10_ = method;
#line 352 "../src/composer_library.vala"
			_tmp10_->is_abstract = TRUE;
#line 353 "../src/composer_library.vala"
			_tmp11_ = header;
#line 353 "../src/composer_library.vala"
			_tmp12_ = strlen ("abstract ");
#line 353 "../src/composer_library.vala"
			_tmp13_ = _tmp12_;
#line 353 "../src/composer_library.vala"
			_tmp14_ = string_substring (_tmp11_, (glong) _tmp13_, (glong) -1);
#line 353 "../src/composer_library.vala"
			_tmp15_ = _tmp14_;
#line 353 "../src/composer_library.vala"
			_tmp16_ = string_strip (_tmp15_);
#line 353 "../src/composer_library.vala"
			_g_free0 (header);
#line 353 "../src/composer_library.vala"
			header = _tmp16_;
#line 353 "../src/composer_library.vala"
			_g_free0 (_tmp15_);
#line 3380 "composer_library.c"
		} else {
			const gchar* _tmp17_;
#line 354 "../src/composer_library.vala"
			_tmp17_ = header;
#line 354 "../src/composer_library.vala"
			if (g_str_has_prefix (_tmp17_, "public ")) {
#line 3387 "composer_library.c"
				PhpToValaComposerLibraryComposerMethod* _tmp18_;
				gchar* _tmp19_;
				const gchar* _tmp20_;
				gint _tmp21_;
				gint _tmp22_;
				gchar* _tmp23_;
				gchar* _tmp24_;
				gchar* _tmp25_;
#line 355 "../src/composer_library.vala"
				_tmp18_ = method;
#line 355 "../src/composer_library.vala"
				_tmp19_ = g_strdup ("public");
#line 355 "../src/composer_library.vala"
				_g_free0 (_tmp18_->visibility);
#line 355 "../src/composer_library.vala"
				_tmp18_->visibility = _tmp19_;
#line 356 "../src/composer_library.vala"
				_tmp20_ = header;
#line 356 "../src/composer_library.vala"
				_tmp21_ = strlen ("public ");
#line 356 "../src/composer_library.vala"
				_tmp22_ = _tmp21_;
#line 356 "../src/composer_library.vala"
				_tmp23_ = string_substring (_tmp20_, (glong) _tmp22_, (glong) -1);
#line 356 "../src/composer_library.vala"
				_tmp24_ = _tmp23_;
#line 356 "../src/composer_library.vala"
				_tmp25_ = string_strip (_tmp24_);
#line 356 "../src/composer_library.vala"
				_g_free0 (header);
#line 356 "../src/composer_library.vala"
				header = _tmp25_;
#line 356 "../src/composer_library.vala"
				_g_free0 (_tmp24_);
#line 3422 "composer_library.c"
			} else {
				const gchar* _tmp26_;
#line 357 "../src/composer_library.vala"
				_tmp26_ = header;
#line 357 "../src/composer_library.vala"
				if (g_str_has_prefix (_tmp26_, "protected ")) {
#line 3429 "composer_library.c"
					PhpToValaComposerLibraryComposerMethod* _tmp27_;
					gchar* _tmp28_;
					const gchar* _tmp29_;
					gint _tmp30_;
					gint _tmp31_;
					gchar* _tmp32_;
					gchar* _tmp33_;
					gchar* _tmp34_;
#line 358 "../src/composer_library.vala"
					_tmp27_ = method;
#line 358 "../src/composer_library.vala"
					_tmp28_ = g_strdup ("protected");
#line 358 "../src/composer_library.vala"
					_g_free0 (_tmp27_->visibility);
#line 358 "../src/composer_library.vala"
					_tmp27_->visibility = _tmp28_;
#line 359 "../src/composer_library.vala"
					_tmp29_ = header;
#line 359 "../src/composer_library.vala"
					_tmp30_ = strlen ("protected ");
#line 359 "../src/composer_library.vala"
					_tmp31_ = _tmp30_;
#line 359 "../src/composer_library.vala"
					_tmp32_ = string_substring (_tmp29_, (glong) _tmp31_, (glong) -1);
#line 359 "../src/composer_library.vala"
					_tmp33_ = _tmp32_;
#line 359 "../src/composer_library.vala"
					_tmp34_ = string_strip (_tmp33_);
#line 359 "../src/composer_library.vala"
					_g_free0 (header);
#line 359 "../src/composer_library.vala"
					header = _tmp34_;
#line 359 "../src/composer_library.vala"
					_g_free0 (_tmp33_);
#line 3464 "composer_library.c"
				} else {
					const gchar* _tmp35_;
#line 360 "../src/composer_library.vala"
					_tmp35_ = header;
#line 360 "../src/composer_library.vala"
					if (g_str_has_prefix (_tmp35_, "private ")) {
#line 3471 "composer_library.c"
						PhpToValaComposerLibraryComposerMethod* _tmp36_;
						gchar* _tmp37_;
						const gchar* _tmp38_;
						gint _tmp39_;
						gint _tmp40_;
						gchar* _tmp41_;
						gchar* _tmp42_;
						gchar* _tmp43_;
#line 361 "../src/composer_library.vala"
						_tmp36_ = method;
#line 361 "../src/composer_library.vala"
						_tmp37_ = g_strdup ("private");
#line 361 "../src/composer_library.vala"
						_g_free0 (_tmp36_->visibility);
#line 361 "../src/composer_library.vala"
						_tmp36_->visibility = _tmp37_;
#line 362 "../src/composer_library.vala"
						_tmp38_ = header;
#line 362 "../src/composer_library.vala"
						_tmp39_ = strlen ("private ");
#line 362 "../src/composer_library.vala"
						_tmp40_ = _tmp39_;
#line 362 "../src/composer_library.vala"
						_tmp41_ = string_substring (_tmp38_, (glong) _tmp40_, (glong) -1);
#line 362 "../src/composer_library.vala"
						_tmp42_ = _tmp41_;
#line 362 "../src/composer_library.vala"
						_tmp43_ = string_strip (_tmp42_);
#line 362 "../src/composer_library.vala"
						_g_free0 (header);
#line 362 "../src/composer_library.vala"
						header = _tmp43_;
#line 362 "../src/composer_library.vala"
						_g_free0 (_tmp42_);
#line 3506 "composer_library.c"
					} else {
						const gchar* _tmp44_;
#line 363 "../src/composer_library.vala"
						_tmp44_ = header;
#line 363 "../src/composer_library.vala"
						if (g_str_has_prefix (_tmp44_, "static ")) {
#line 3513 "composer_library.c"
							PhpToValaComposerLibraryComposerMethod* _tmp45_;
							const gchar* _tmp46_;
							gint _tmp47_;
							gint _tmp48_;
							gchar* _tmp49_;
							gchar* _tmp50_;
							gchar* _tmp51_;
#line 364 "../src/composer_library.vala"
							_tmp45_ = method;
#line 364 "../src/composer_library.vala"
							_tmp45_->is_static = TRUE;
#line 365 "../src/composer_library.vala"
							_tmp46_ = header;
#line 365 "../src/composer_library.vala"
							_tmp47_ = strlen ("static ");
#line 365 "../src/composer_library.vala"
							_tmp48_ = _tmp47_;
#line 365 "../src/composer_library.vala"
							_tmp49_ = string_substring (_tmp46_, (glong) _tmp48_, (glong) -1);
#line 365 "../src/composer_library.vala"
							_tmp50_ = _tmp49_;
#line 365 "../src/composer_library.vala"
							_tmp51_ = string_strip (_tmp50_);
#line 365 "../src/composer_library.vala"
							_g_free0 (header);
#line 365 "../src/composer_library.vala"
							header = _tmp51_;
#line 365 "../src/composer_library.vala"
							_g_free0 (_tmp50_);
#line 3543 "composer_library.c"
						} else {
#line 367 "../src/composer_library.vala"
							break;
#line 3547 "composer_library.c"
						}
					}
				}
			}
		}
	}
#line 370 "../src/composer_library.vala"
	_tmp52_ = header;
#line 370 "../src/composer_library.vala"
	if (!g_str_has_prefix (_tmp52_, "function ")) {
#line 371 "../src/composer_library.vala"
		result = NULL;
#line 371 "../src/composer_library.vala"
		_g_object_unref0 (method);
#line 371 "../src/composer_library.vala"
		_g_free0 (header);
#line 371 "../src/composer_library.vala"
		return result;
#line 3566 "composer_library.c"
	}
#line 373 "../src/composer_library.vala"
	_tmp53_ = header;
#line 373 "../src/composer_library.vala"
	_tmp54_ = strlen ("function ");
#line 373 "../src/composer_library.vala"
	_tmp55_ = _tmp54_;
#line 373 "../src/composer_library.vala"
	_tmp56_ = string_substring (_tmp53_, (glong) _tmp55_, (glong) -1);
#line 373 "../src/composer_library.vala"
	_tmp57_ = _tmp56_;
#line 373 "../src/composer_library.vala"
	_tmp58_ = string_strip (_tmp57_);
#line 373 "../src/composer_library.vala"
	_g_free0 (header);
#line 373 "../src/composer_library.vala"
	header = _tmp58_;
#line 373 "../src/composer_library.vala"
	_g_free0 (_tmp57_);
#line 374 "../src/composer_library.vala"
	_tmp59_ = header;
#line 374 "../src/composer_library.vala"
	open_index = string_index_of (_tmp59_, "(", 0);
#line 375 "../src/composer_library.vala"
	_tmp60_ = header;
#line 375 "../src/composer_library.vala"
	close_index = string_last_index_of (_tmp60_, ")", 0);
#line 376 "../src/composer_library.vala"
	if (open_index <= 0) {
#line 376 "../src/composer_library.vala"
		_tmp61_ = TRUE;
#line 3598 "composer_library.c"
	} else {
#line 376 "../src/composer_library.vala"
		_tmp61_ = close_index < open_index;
#line 3602 "composer_library.c"
	}
#line 376 "../src/composer_library.vala"
	if (_tmp61_) {
#line 377 "../src/composer_library.vala"
		result = NULL;
#line 377 "../src/composer_library.vala"
		_g_object_unref0 (method);
#line 377 "../src/composer_library.vala"
		_g_free0 (header);
#line 377 "../src/composer_library.vala"
		return result;
#line 3614 "composer_library.c"
	}
#line 379 "../src/composer_library.vala"
	_tmp62_ = method;
#line 379 "../src/composer_library.vala"
	_tmp63_ = header;
#line 379 "../src/composer_library.vala"
	_tmp64_ = string_substring (_tmp63_, (glong) 0, (glong) open_index);
#line 379 "../src/composer_library.vala"
	_tmp65_ = _tmp64_;
#line 379 "../src/composer_library.vala"
	_tmp66_ = string_strip (_tmp65_);
#line 379 "../src/composer_library.vala"
	_g_free0 (_tmp62_->name);
#line 379 "../src/composer_library.vala"
	_tmp62_->name = _tmp66_;
#line 379 "../src/composer_library.vala"
	_g_free0 (_tmp65_);
#line 380 "../src/composer_library.vala"
	_tmp67_ = header;
#line 380 "../src/composer_library.vala"
	_tmp68_ = string_substring (_tmp67_, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 380 "../src/composer_library.vala"
	_tmp69_ = _tmp68_;
#line 380 "../src/composer_library.vala"
	_tmp70_ = method;
#line 380 "../src/composer_library.vala"
	_tmp71_ = _tmp70_->parameters;
#line 380 "../src/composer_library.vala"
	php_to_vala_composer_library_parse_parameters (_tmp69_, _tmp71_);
#line 380 "../src/composer_library.vala"
	_g_free0 (_tmp69_);
#line 381 "../src/composer_library.vala"
	_tmp72_ = header;
#line 381 "../src/composer_library.vala"
	_tmp73_ = string_substring (_tmp72_, (glong) (close_index + 1), (glong) -1);
#line 381 "../src/composer_library.vala"
	_tmp74_ = _tmp73_;
#line 381 "../src/composer_library.vala"
	_tmp75_ = string_strip (_tmp74_);
#line 381 "../src/composer_library.vala"
	_tmp76_ = _tmp75_;
#line 381 "../src/composer_library.vala"
	_g_free0 (_tmp74_);
#line 381 "../src/composer_library.vala"
	return_part = _tmp76_;
#line 382 "../src/composer_library.vala"
	_tmp77_ = return_part;
#line 382 "../src/composer_library.vala"
	if (g_str_has_prefix (_tmp77_, ":")) {
#line 3664 "composer_library.c"
		PhpToValaComposerLibraryComposerMethod* _tmp78_;
		const gchar* _tmp79_;
		gchar* _tmp80_;
		gchar* _tmp81_;
		gchar* _tmp82_;
#line 383 "../src/composer_library.vala"
		_tmp78_ = method;
#line 383 "../src/composer_library.vala"
		_tmp79_ = return_part;
#line 383 "../src/composer_library.vala"
		_tmp80_ = string_substring (_tmp79_, (glong) 1, (glong) -1);
#line 383 "../src/composer_library.vala"
		_tmp81_ = _tmp80_;
#line 383 "../src/composer_library.vala"
		_tmp82_ = string_strip (_tmp81_);
#line 383 "../src/composer_library.vala"
		_g_free0 (_tmp78_->return_type);
#line 383 "../src/composer_library.vala"
		_tmp78_->return_type = _tmp82_;
#line 383 "../src/composer_library.vala"
		_g_free0 (_tmp81_);
#line 3686 "composer_library.c"
	}
#line 385 "../src/composer_library.vala"
	result = method;
#line 385 "../src/composer_library.vala"
	_g_free0 (return_part);
#line 385 "../src/composer_library.vala"
	_g_free0 (header);
#line 385 "../src/composer_library.vala"
	return result;
#line 3696 "composer_library.c"
}

static void
php_to_vala_composer_library_parse_parameters (const gchar* raw_parameters,
                                               GeeArrayList* parameters)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
#line 388 "../src/composer_library.vala"
	g_return_if_fail (raw_parameters != NULL);
#line 388 "../src/composer_library.vala"
	g_return_if_fail (parameters != NULL);
#line 389 "../src/composer_library.vala"
	_tmp0_ = string_strip (raw_parameters);
#line 389 "../src/composer_library.vala"
	_tmp1_ = _tmp0_;
#line 389 "../src/composer_library.vala"
	_tmp2_ = g_strcmp0 (_tmp1_, "") == 0;
#line 389 "../src/composer_library.vala"
	_g_free0 (_tmp1_);
#line 389 "../src/composer_library.vala"
	if (_tmp2_) {
#line 390 "../src/composer_library.vala"
		return;
#line 3722 "composer_library.c"
	}
	{
		GeeArrayList* _raw_parameter_list = NULL;
		GeeArrayList* _tmp3_;
		gint _raw_parameter_size = 0;
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _raw_parameter_index = 0;
#line 392 "../src/composer_library.vala"
		_tmp3_ = php_to_vala_composer_library_split_top_level (raw_parameters, ',');
#line 392 "../src/composer_library.vala"
		_raw_parameter_list = _tmp3_;
#line 392 "../src/composer_library.vala"
		_tmp4_ = _raw_parameter_list;
#line 392 "../src/composer_library.vala"
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
#line 392 "../src/composer_library.vala"
		_tmp6_ = _tmp5_;
#line 392 "../src/composer_library.vala"
		_raw_parameter_size = _tmp6_;
#line 392 "../src/composer_library.vala"
		_raw_parameter_index = -1;
#line 392 "../src/composer_library.vala"
		while (TRUE) {
#line 3748 "composer_library.c"
			gint _tmp7_;
			gint _tmp8_;
			gchar* raw_parameter = NULL;
			GeeArrayList* _tmp9_;
			gpointer _tmp10_;
			gchar* parameter = NULL;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* default_value = NULL;
			gint equals_index = 0;
			const gchar* _tmp13_;
			gint dollar_index = 0;
			const gchar* _tmp22_;
			gchar* _tmp23_ = NULL;
			gchar* type_name = NULL;
			gchar* _tmp29_;
			gchar* name = NULL;
			const gchar* _tmp30_;
			gchar* _tmp31_;
			gchar* _tmp32_;
			gchar* _tmp33_;
			gchar* _tmp34_;
			const gchar* _tmp35_ = NULL;
			const gchar* _tmp36_;
			const gchar* _tmp38_;
			const gchar* _tmp39_;
			LocalParameter* _tmp40_;
			LocalParameter* _tmp41_;
#line 392 "../src/composer_library.vala"
			_raw_parameter_index = _raw_parameter_index + 1;
#line 392 "../src/composer_library.vala"
			_tmp7_ = _raw_parameter_index;
#line 392 "../src/composer_library.vala"
			_tmp8_ = _raw_parameter_size;
#line 392 "../src/composer_library.vala"
			if (!(_tmp7_ < _tmp8_)) {
#line 392 "../src/composer_library.vala"
				break;
#line 3787 "composer_library.c"
			}
#line 392 "../src/composer_library.vala"
			_tmp9_ = _raw_parameter_list;
#line 392 "../src/composer_library.vala"
			_tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _raw_parameter_index);
#line 392 "../src/composer_library.vala"
			raw_parameter = (gchar*) _tmp10_;
#line 393 "../src/composer_library.vala"
			_tmp11_ = raw_parameter;
#line 393 "../src/composer_library.vala"
			_tmp12_ = string_strip (_tmp11_);
#line 393 "../src/composer_library.vala"
			parameter = _tmp12_;
#line 394 "../src/composer_library.vala"
			default_value = NULL;
#line 395 "../src/composer_library.vala"
			_tmp13_ = parameter;
#line 395 "../src/composer_library.vala"
			equals_index = string_index_of (_tmp13_, "=", 0);
#line 396 "../src/composer_library.vala"
			if (equals_index >= 0) {
#line 3809 "composer_library.c"
				const gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				gchar* _tmp17_;
				const gchar* _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				gchar* _tmp21_;
#line 397 "../src/composer_library.vala"
				_tmp14_ = parameter;
#line 397 "../src/composer_library.vala"
				_tmp15_ = string_substring (_tmp14_, (glong) (equals_index + 1), (glong) -1);
#line 397 "../src/composer_library.vala"
				_tmp16_ = _tmp15_;
#line 397 "../src/composer_library.vala"
				_tmp17_ = string_strip (_tmp16_);
#line 397 "../src/composer_library.vala"
				_g_free0 (default_value);
#line 397 "../src/composer_library.vala"
				default_value = _tmp17_;
#line 397 "../src/composer_library.vala"
				_g_free0 (_tmp16_);
#line 398 "../src/composer_library.vala"
				_tmp18_ = parameter;
#line 398 "../src/composer_library.vala"
				_tmp19_ = string_substring (_tmp18_, (glong) 0, (glong) equals_index);
#line 398 "../src/composer_library.vala"
				_tmp20_ = _tmp19_;
#line 398 "../src/composer_library.vala"
				_tmp21_ = string_strip (_tmp20_);
#line 398 "../src/composer_library.vala"
				_g_free0 (parameter);
#line 398 "../src/composer_library.vala"
				parameter = _tmp21_;
#line 398 "../src/composer_library.vala"
				_g_free0 (_tmp20_);
#line 3846 "composer_library.c"
			}
#line 400 "../src/composer_library.vala"
			_tmp22_ = parameter;
#line 400 "../src/composer_library.vala"
			dollar_index = string_index_of (_tmp22_, "$", 0);
#line 401 "../src/composer_library.vala"
			if (dollar_index < 0) {
#line 402 "../src/composer_library.vala"
				_g_free0 (default_value);
#line 402 "../src/composer_library.vala"
				_g_free0 (parameter);
#line 402 "../src/composer_library.vala"
				_g_free0 (raw_parameter);
#line 402 "../src/composer_library.vala"
				continue;
#line 3862 "composer_library.c"
			}
#line 404 "../src/composer_library.vala"
			if (dollar_index > 0) {
#line 3866 "composer_library.c"
				const gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
#line 404 "../src/composer_library.vala"
				_tmp24_ = parameter;
#line 404 "../src/composer_library.vala"
				_tmp25_ = string_substring (_tmp24_, (glong) 0, (glong) dollar_index);
#line 404 "../src/composer_library.vala"
				_tmp26_ = _tmp25_;
#line 404 "../src/composer_library.vala"
				_tmp27_ = string_strip (_tmp26_);
#line 404 "../src/composer_library.vala"
				_g_free0 (_tmp23_);
#line 404 "../src/composer_library.vala"
				_tmp23_ = _tmp27_;
#line 404 "../src/composer_library.vala"
				_g_free0 (_tmp26_);
#line 3885 "composer_library.c"
			} else {
				gchar* _tmp28_;
#line 404 "../src/composer_library.vala"
				_tmp28_ = g_strdup ("");
#line 404 "../src/composer_library.vala"
				_g_free0 (_tmp23_);
#line 404 "../src/composer_library.vala"
				_tmp23_ = _tmp28_;
#line 3894 "composer_library.c"
			}
#line 404 "../src/composer_library.vala"
			_tmp29_ = _tmp23_;
#line 404 "../src/composer_library.vala"
			_tmp23_ = NULL;
#line 404 "../src/composer_library.vala"
			type_name = _tmp29_;
#line 405 "../src/composer_library.vala"
			_tmp30_ = parameter;
#line 405 "../src/composer_library.vala"
			_tmp31_ = string_substring (_tmp30_, (glong) (dollar_index + 1), (glong) -1);
#line 405 "../src/composer_library.vala"
			_tmp32_ = _tmp31_;
#line 405 "../src/composer_library.vala"
			_tmp33_ = string_strip (_tmp32_);
#line 405 "../src/composer_library.vala"
			_tmp34_ = _tmp33_;
#line 405 "../src/composer_library.vala"
			_g_free0 (_tmp32_);
#line 405 "../src/composer_library.vala"
			name = _tmp34_;
#line 406 "../src/composer_library.vala"
			_tmp36_ = type_name;
#line 406 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp36_, "") == 0) {
#line 406 "../src/composer_library.vala"
				_tmp35_ = NULL;
#line 3922 "composer_library.c"
			} else {
				const gchar* _tmp37_;
#line 406 "../src/composer_library.vala"
				_tmp37_ = type_name;
#line 406 "../src/composer_library.vala"
				_tmp35_ = _tmp37_;
#line 3929 "composer_library.c"
			}
#line 406 "../src/composer_library.vala"
			_tmp38_ = name;
#line 406 "../src/composer_library.vala"
			_tmp39_ = default_value;
#line 406 "../src/composer_library.vala"
			_tmp40_ = local_parameter_new (_tmp38_, _tmp35_, _tmp39_);
#line 406 "../src/composer_library.vala"
			_tmp41_ = _tmp40_;
#line 406 "../src/composer_library.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) parameters, _tmp41_);
#line 406 "../src/composer_library.vala"
			_g_object_unref0 (_tmp41_);
#line 392 "../src/composer_library.vala"
			_g_free0 (name);
#line 392 "../src/composer_library.vala"
			_g_free0 (type_name);
#line 392 "../src/composer_library.vala"
			_g_free0 (_tmp23_);
#line 392 "../src/composer_library.vala"
			_g_free0 (default_value);
#line 392 "../src/composer_library.vala"
			_g_free0 (parameter);
#line 392 "../src/composer_library.vala"
			_g_free0 (raw_parameter);
#line 3955 "composer_library.c"
		}
#line 392 "../src/composer_library.vala"
		_g_object_unref0 (_raw_parameter_list);
#line 3959 "composer_library.c"
	}
}

static gchar*
php_to_vala_composer_library_build_vala_source (PhpToValaComposerLibrary* self,
                                                const gchar* composer_json_path)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp1_;
	const gchar* _tmp2_ = NULL;
	GeeArrayList* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gchar* namespace_name = NULL;
	gchar* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp52_;
	GString* _tmp54_;
	const gchar* _tmp55_;
	gchar* _tmp56_;
	gchar* result;
#line 410 "../src/composer_library.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 410 "../src/composer_library.vala"
	g_return_val_if_fail (composer_json_path != NULL, NULL);
#line 411 "../src/composer_library.vala"
	_tmp0_ = g_string_new ("");
#line 411 "../src/composer_library.vala"
	output = _tmp0_;
#line 412 "../src/composer_library.vala"
	_tmp1_ = output;
#line 412 "../src/composer_library.vala"
	g_string_append (_tmp1_, "using Gee;\n\n");
#line 413 "../src/composer_library.vala"
	_tmp3_ = self->priv->symbols;
#line 413 "../src/composer_library.vala"
	_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
#line 413 "../src/composer_library.vala"
	_tmp5_ = _tmp4_;
#line 413 "../src/composer_library.vala"
	if (_tmp5_ > 0) {
#line 4002 "composer_library.c"
		GeeArrayList* _tmp6_;
		gpointer _tmp7_;
		PhpToValaComposerLibraryComposerSymbol* _tmp8_;
		const gchar* _tmp9_;
#line 413 "../src/composer_library.vala"
		_tmp6_ = self->priv->symbols;
#line 413 "../src/composer_library.vala"
		_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, 0);
#line 413 "../src/composer_library.vala"
		_tmp8_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp7_;
#line 413 "../src/composer_library.vala"
		_tmp9_ = _tmp8_->namespace_name;
#line 413 "../src/composer_library.vala"
		_tmp2_ = _tmp9_;
#line 413 "../src/composer_library.vala"
		_g_object_unref0 (_tmp8_);
#line 4019 "composer_library.c"
	} else {
#line 413 "../src/composer_library.vala"
		_tmp2_ = "";
#line 4023 "composer_library.c"
	}
#line 413 "../src/composer_library.vala"
	_tmp10_ = g_strdup (_tmp2_);
#line 413 "../src/composer_library.vala"
	namespace_name = _tmp10_;
#line 414 "../src/composer_library.vala"
	_tmp11_ = namespace_name;
#line 414 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp11_, "") != 0) {
#line 4033 "composer_library.c"
		GString* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
#line 415 "../src/composer_library.vala"
		_tmp12_ = output;
#line 415 "../src/composer_library.vala"
		_tmp13_ = namespace_name;
#line 415 "../src/composer_library.vala"
		_tmp14_ = php_to_vala_composer_library_php_namespace_to_vala (_tmp13_);
#line 415 "../src/composer_library.vala"
		_tmp15_ = _tmp14_;
#line 415 "../src/composer_library.vala"
		g_string_append_printf (_tmp12_, "namespace %s {\n", _tmp15_);
#line 415 "../src/composer_library.vala"
		_g_free0 (_tmp15_);
#line 4050 "composer_library.c"
	}
	{
		GeeArrayList* _symbol_list = NULL;
		GeeArrayList* _tmp16_;
		gint _symbol_size = 0;
		GeeArrayList* _tmp17_;
		gint _tmp18_;
		gint _tmp19_;
		gint _symbol_index = 0;
#line 418 "../src/composer_library.vala"
		_tmp16_ = self->priv->symbols;
#line 418 "../src/composer_library.vala"
		_symbol_list = _tmp16_;
#line 418 "../src/composer_library.vala"
		_tmp17_ = _symbol_list;
#line 418 "../src/composer_library.vala"
		_tmp18_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp17_);
#line 418 "../src/composer_library.vala"
		_tmp19_ = _tmp18_;
#line 418 "../src/composer_library.vala"
		_symbol_size = _tmp19_;
#line 418 "../src/composer_library.vala"
		_symbol_index = -1;
#line 418 "../src/composer_library.vala"
		while (TRUE) {
#line 4076 "composer_library.c"
			gint _tmp20_;
			gint _tmp21_;
			PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
			GeeArrayList* _tmp22_;
			gpointer _tmp23_;
			PhpToValaComposerLibraryComposerSymbol* _tmp24_;
			const gchar* _tmp25_;
#line 418 "../src/composer_library.vala"
			_symbol_index = _symbol_index + 1;
#line 418 "../src/composer_library.vala"
			_tmp20_ = _symbol_index;
#line 418 "../src/composer_library.vala"
			_tmp21_ = _symbol_size;
#line 418 "../src/composer_library.vala"
			if (!(_tmp20_ < _tmp21_)) {
#line 418 "../src/composer_library.vala"
				break;
#line 4094 "composer_library.c"
			}
#line 418 "../src/composer_library.vala"
			_tmp22_ = _symbol_list;
#line 418 "../src/composer_library.vala"
			_tmp23_ = gee_abstract_list_get ((GeeAbstractList*) _tmp22_, _symbol_index);
#line 418 "../src/composer_library.vala"
			symbol = (PhpToValaComposerLibraryComposerSymbol*) _tmp23_;
#line 419 "../src/composer_library.vala"
			_tmp24_ = symbol;
#line 419 "../src/composer_library.vala"
			_tmp25_ = _tmp24_->kind;
#line 419 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp25_, "interface") == 0) {
#line 4108 "composer_library.c"
				GString* _tmp26_;
				PhpToValaComposerLibraryComposerSymbol* _tmp27_;
#line 420 "../src/composer_library.vala"
				_tmp26_ = output;
#line 420 "../src/composer_library.vala"
				_tmp27_ = symbol;
#line 420 "../src/composer_library.vala"
				php_to_vala_composer_library_append_vala_interface (self, _tmp26_, _tmp27_, 1);
#line 4117 "composer_library.c"
			}
#line 418 "../src/composer_library.vala"
			_g_object_unref0 (symbol);
#line 4121 "composer_library.c"
		}
	}
	{
		GeeArrayList* _symbol_list = NULL;
		GeeArrayList* _tmp28_;
		gint _symbol_size = 0;
		GeeArrayList* _tmp29_;
		gint _tmp30_;
		gint _tmp31_;
		gint _symbol_index = 0;
#line 423 "../src/composer_library.vala"
		_tmp28_ = self->priv->symbols;
#line 423 "../src/composer_library.vala"
		_symbol_list = _tmp28_;
#line 423 "../src/composer_library.vala"
		_tmp29_ = _symbol_list;
#line 423 "../src/composer_library.vala"
		_tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp29_);
#line 423 "../src/composer_library.vala"
		_tmp31_ = _tmp30_;
#line 423 "../src/composer_library.vala"
		_symbol_size = _tmp31_;
#line 423 "../src/composer_library.vala"
		_symbol_index = -1;
#line 423 "../src/composer_library.vala"
		while (TRUE) {
#line 4148 "composer_library.c"
			gint _tmp32_;
			gint _tmp33_;
			PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
			GeeArrayList* _tmp34_;
			gpointer _tmp35_;
			PhpToValaComposerLibraryComposerSymbol* _tmp36_;
			const gchar* _tmp37_;
#line 423 "../src/composer_library.vala"
			_symbol_index = _symbol_index + 1;
#line 423 "../src/composer_library.vala"
			_tmp32_ = _symbol_index;
#line 423 "../src/composer_library.vala"
			_tmp33_ = _symbol_size;
#line 423 "../src/composer_library.vala"
			if (!(_tmp32_ < _tmp33_)) {
#line 423 "../src/composer_library.vala"
				break;
#line 4166 "composer_library.c"
			}
#line 423 "../src/composer_library.vala"
			_tmp34_ = _symbol_list;
#line 423 "../src/composer_library.vala"
			_tmp35_ = gee_abstract_list_get ((GeeAbstractList*) _tmp34_, _symbol_index);
#line 423 "../src/composer_library.vala"
			symbol = (PhpToValaComposerLibraryComposerSymbol*) _tmp35_;
#line 424 "../src/composer_library.vala"
			_tmp36_ = symbol;
#line 424 "../src/composer_library.vala"
			_tmp37_ = _tmp36_->kind;
#line 424 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp37_, "trait") == 0) {
#line 4180 "composer_library.c"
				GString* _tmp38_;
				PhpToValaComposerLibraryComposerSymbol* _tmp39_;
#line 425 "../src/composer_library.vala"
				_tmp38_ = output;
#line 425 "../src/composer_library.vala"
				_tmp39_ = symbol;
#line 425 "../src/composer_library.vala"
				php_to_vala_composer_library_append_vala_trait_surrogate (self, _tmp38_, _tmp39_, 1);
#line 4189 "composer_library.c"
			}
#line 423 "../src/composer_library.vala"
			_g_object_unref0 (symbol);
#line 4193 "composer_library.c"
		}
	}
	{
		GeeArrayList* _symbol_list = NULL;
		GeeArrayList* _tmp40_;
		gint _symbol_size = 0;
		GeeArrayList* _tmp41_;
		gint _tmp42_;
		gint _tmp43_;
		gint _symbol_index = 0;
#line 428 "../src/composer_library.vala"
		_tmp40_ = self->priv->symbols;
#line 428 "../src/composer_library.vala"
		_symbol_list = _tmp40_;
#line 428 "../src/composer_library.vala"
		_tmp41_ = _symbol_list;
#line 428 "../src/composer_library.vala"
		_tmp42_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp41_);
#line 428 "../src/composer_library.vala"
		_tmp43_ = _tmp42_;
#line 428 "../src/composer_library.vala"
		_symbol_size = _tmp43_;
#line 428 "../src/composer_library.vala"
		_symbol_index = -1;
#line 428 "../src/composer_library.vala"
		while (TRUE) {
#line 4220 "composer_library.c"
			gint _tmp44_;
			gint _tmp45_;
			PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
			GeeArrayList* _tmp46_;
			gpointer _tmp47_;
			PhpToValaComposerLibraryComposerSymbol* _tmp48_;
			const gchar* _tmp49_;
#line 428 "../src/composer_library.vala"
			_symbol_index = _symbol_index + 1;
#line 428 "../src/composer_library.vala"
			_tmp44_ = _symbol_index;
#line 428 "../src/composer_library.vala"
			_tmp45_ = _symbol_size;
#line 428 "../src/composer_library.vala"
			if (!(_tmp44_ < _tmp45_)) {
#line 428 "../src/composer_library.vala"
				break;
#line 4238 "composer_library.c"
			}
#line 428 "../src/composer_library.vala"
			_tmp46_ = _symbol_list;
#line 428 "../src/composer_library.vala"
			_tmp47_ = gee_abstract_list_get ((GeeAbstractList*) _tmp46_, _symbol_index);
#line 428 "../src/composer_library.vala"
			symbol = (PhpToValaComposerLibraryComposerSymbol*) _tmp47_;
#line 429 "../src/composer_library.vala"
			_tmp48_ = symbol;
#line 429 "../src/composer_library.vala"
			_tmp49_ = _tmp48_->kind;
#line 429 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp49_, "class") == 0) {
#line 4252 "composer_library.c"
				GString* _tmp50_;
				PhpToValaComposerLibraryComposerSymbol* _tmp51_;
#line 430 "../src/composer_library.vala"
				_tmp50_ = output;
#line 430 "../src/composer_library.vala"
				_tmp51_ = symbol;
#line 430 "../src/composer_library.vala"
				php_to_vala_composer_library_append_vala_class (self, _tmp50_, _tmp51_, 1);
#line 4261 "composer_library.c"
			}
#line 428 "../src/composer_library.vala"
			_g_object_unref0 (symbol);
#line 4265 "composer_library.c"
		}
	}
#line 434 "../src/composer_library.vala"
	_tmp52_ = namespace_name;
#line 434 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp52_, "") != 0) {
#line 4272 "composer_library.c"
		GString* _tmp53_;
#line 435 "../src/composer_library.vala"
		_tmp53_ = output;
#line 435 "../src/composer_library.vala"
		g_string_append (_tmp53_, "}\n");
#line 4278 "composer_library.c"
	}
#line 437 "../src/composer_library.vala"
	_tmp54_ = output;
#line 437 "../src/composer_library.vala"
	_tmp55_ = _tmp54_->str;
#line 437 "../src/composer_library.vala"
	_tmp56_ = g_strdup (_tmp55_);
#line 437 "../src/composer_library.vala"
	result = _tmp56_;
#line 437 "../src/composer_library.vala"
	_g_free0 (namespace_name);
#line 437 "../src/composer_library.vala"
	_g_string_free0 (output);
#line 437 "../src/composer_library.vala"
	return result;
#line 4294 "composer_library.c"
}

static void
php_to_vala_composer_library_append_vala_interface (PhpToValaComposerLibrary* self,
                                                    GString* output,
                                                    PhpToValaComposerLibraryComposerSymbol* symbol,
                                                    gint indent)
{
	const gchar* _tmp0_;
#line 440 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 440 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 440 "../src/composer_library.vala"
	g_return_if_fail (symbol != NULL);
#line 441 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 442 "../src/composer_library.vala"
	_tmp0_ = symbol->name;
#line 442 "../src/composer_library.vala"
	g_string_append_printf (output, "public interface %s : Object {\n", _tmp0_);
#line 4316 "composer_library.c"
	{
		GeeArrayList* _method_list = NULL;
		GeeArrayList* _tmp1_;
		gint _method_size = 0;
		GeeArrayList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _method_index = 0;
#line 443 "../src/composer_library.vala"
		_tmp1_ = symbol->methods;
#line 443 "../src/composer_library.vala"
		_method_list = _tmp1_;
#line 443 "../src/composer_library.vala"
		_tmp2_ = _method_list;
#line 443 "../src/composer_library.vala"
		_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
#line 443 "../src/composer_library.vala"
		_tmp4_ = _tmp3_;
#line 443 "../src/composer_library.vala"
		_method_size = _tmp4_;
#line 443 "../src/composer_library.vala"
		_method_index = -1;
#line 443 "../src/composer_library.vala"
		while (TRUE) {
#line 4341 "composer_library.c"
			gint _tmp5_;
			gint _tmp6_;
			PhpToValaComposerLibraryComposerMethod* method = NULL;
			GeeArrayList* _tmp7_;
			gpointer _tmp8_;
			PhpToValaComposerLibraryComposerMethod* _tmp9_;
			const gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			PhpToValaComposerLibraryComposerMethod* _tmp13_;
			const gchar* _tmp14_;
			PhpToValaComposerLibraryComposerMethod* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
#line 443 "../src/composer_library.vala"
			_method_index = _method_index + 1;
#line 443 "../src/composer_library.vala"
			_tmp5_ = _method_index;
#line 443 "../src/composer_library.vala"
			_tmp6_ = _method_size;
#line 443 "../src/composer_library.vala"
			if (!(_tmp5_ < _tmp6_)) {
#line 443 "../src/composer_library.vala"
				break;
#line 4366 "composer_library.c"
			}
#line 443 "../src/composer_library.vala"
			_tmp7_ = _method_list;
#line 443 "../src/composer_library.vala"
			_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _method_index);
#line 443 "../src/composer_library.vala"
			method = (PhpToValaComposerLibraryComposerMethod*) _tmp8_;
#line 444 "../src/composer_library.vala"
			php_to_vala_composer_library_append_indent (output, indent + 1);
#line 445 "../src/composer_library.vala"
			_tmp9_ = method;
#line 445 "../src/composer_library.vala"
			_tmp10_ = _tmp9_->return_type;
#line 445 "../src/composer_library.vala"
			_tmp11_ = php_to_vala_composer_library_vala_return_type (_tmp10_);
#line 445 "../src/composer_library.vala"
			_tmp12_ = _tmp11_;
#line 445 "../src/composer_library.vala"
			_tmp13_ = method;
#line 445 "../src/composer_library.vala"
			_tmp14_ = _tmp13_->name;
#line 445 "../src/composer_library.vala"
			_tmp15_ = method;
#line 445 "../src/composer_library.vala"
			_tmp16_ = php_to_vala_composer_library_vala_parameter_list (_tmp15_);
#line 445 "../src/composer_library.vala"
			_tmp17_ = _tmp16_;
#line 445 "../src/composer_library.vala"
			g_string_append_printf (output, "public abstract %s %s (%s) throws Error;\n", _tmp12_, _tmp14_, _tmp17_);
#line 445 "../src/composer_library.vala"
			_g_free0 (_tmp17_);
#line 445 "../src/composer_library.vala"
			_g_free0 (_tmp12_);
#line 443 "../src/composer_library.vala"
			_g_object_unref0 (method);
#line 4402 "composer_library.c"
		}
	}
#line 447 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 448 "../src/composer_library.vala"
	g_string_append (output, "}\n\n");
#line 4409 "composer_library.c"
}

static void
php_to_vala_composer_library_append_vala_trait_surrogate (PhpToValaComposerLibrary* self,
                                                          GString* output,
                                                          PhpToValaComposerLibraryComposerSymbol* symbol,
                                                          gint indent)
{
	const gchar* _tmp0_;
#line 451 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 451 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 451 "../src/composer_library.vala"
	g_return_if_fail (symbol != NULL);
#line 452 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 453 "../src/composer_library.vala"
	_tmp0_ = symbol->name;
#line 453 "../src/composer_library.vala"
	g_string_append_printf (output, "public abstract class %s : Object {\n", _tmp0_);
#line 4431 "composer_library.c"
	{
		GeeArrayList* _property_list = NULL;
		GeeArrayList* _tmp1_;
		gint _property_size = 0;
		GeeArrayList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _property_index = 0;
#line 454 "../src/composer_library.vala"
		_tmp1_ = symbol->properties;
#line 454 "../src/composer_library.vala"
		_property_list = _tmp1_;
#line 454 "../src/composer_library.vala"
		_tmp2_ = _property_list;
#line 454 "../src/composer_library.vala"
		_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
#line 454 "../src/composer_library.vala"
		_tmp4_ = _tmp3_;
#line 454 "../src/composer_library.vala"
		_property_size = _tmp4_;
#line 454 "../src/composer_library.vala"
		_property_index = -1;
#line 454 "../src/composer_library.vala"
		while (TRUE) {
#line 4456 "composer_library.c"
			gint _tmp5_;
			gint _tmp6_;
			PhpToValaComposerLibraryComposerProperty* property = NULL;
			GeeArrayList* _tmp7_;
			gpointer _tmp8_;
			const gchar* _tmp9_ = NULL;
			PhpToValaComposerLibraryComposerProperty* _tmp10_;
			PhpToValaComposerLibraryComposerProperty* _tmp11_;
			const gchar* _tmp12_;
			PhpToValaComposerLibraryComposerProperty* _tmp13_;
			const gchar* _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
			PhpToValaComposerLibraryComposerProperty* _tmp17_;
			const gchar* _tmp18_;
#line 454 "../src/composer_library.vala"
			_property_index = _property_index + 1;
#line 454 "../src/composer_library.vala"
			_tmp5_ = _property_index;
#line 454 "../src/composer_library.vala"
			_tmp6_ = _property_size;
#line 454 "../src/composer_library.vala"
			if (!(_tmp5_ < _tmp6_)) {
#line 454 "../src/composer_library.vala"
				break;
#line 4482 "composer_library.c"
			}
#line 454 "../src/composer_library.vala"
			_tmp7_ = _property_list;
#line 454 "../src/composer_library.vala"
			_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _property_index);
#line 454 "../src/composer_library.vala"
			property = (PhpToValaComposerLibraryComposerProperty*) _tmp8_;
#line 455 "../src/composer_library.vala"
			php_to_vala_composer_library_append_indent (output, indent + 1);
#line 456 "../src/composer_library.vala"
			_tmp10_ = property;
#line 456 "../src/composer_library.vala"
			if (_tmp10_->nullable) {
#line 456 "../src/composer_library.vala"
				_tmp9_ = "?";
#line 4498 "composer_library.c"
			} else {
#line 456 "../src/composer_library.vala"
				_tmp9_ = "";
#line 4502 "composer_library.c"
			}
#line 456 "../src/composer_library.vala"
			_tmp11_ = property;
#line 456 "../src/composer_library.vala"
			_tmp12_ = _tmp11_->visibility;
#line 456 "../src/composer_library.vala"
			_tmp13_ = property;
#line 456 "../src/composer_library.vala"
			_tmp14_ = _tmp13_->type_name;
#line 456 "../src/composer_library.vala"
			_tmp15_ = php_to_vala_composer_library_vala_type (_tmp14_);
#line 456 "../src/composer_library.vala"
			_tmp16_ = _tmp15_;
#line 456 "../src/composer_library.vala"
			_tmp17_ = property;
#line 456 "../src/composer_library.vala"
			_tmp18_ = _tmp17_->name;
#line 456 "../src/composer_library.vala"
			g_string_append_printf (output, "%s %s%s %s = null;\n", _tmp12_, _tmp16_, _tmp9_, _tmp18_);
#line 456 "../src/composer_library.vala"
			_g_free0 (_tmp16_);
#line 454 "../src/composer_library.vala"
			_g_object_unref0 (property);
#line 4526 "composer_library.c"
		}
	}
	{
		GeeArrayList* _method_list = NULL;
		GeeArrayList* _tmp19_;
		gint _method_size = 0;
		GeeArrayList* _tmp20_;
		gint _tmp21_;
		gint _tmp22_;
		gint _method_index = 0;
#line 458 "../src/composer_library.vala"
		_tmp19_ = symbol->methods;
#line 458 "../src/composer_library.vala"
		_method_list = _tmp19_;
#line 458 "../src/composer_library.vala"
		_tmp20_ = _method_list;
#line 458 "../src/composer_library.vala"
		_tmp21_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp20_);
#line 458 "../src/composer_library.vala"
		_tmp22_ = _tmp21_;
#line 458 "../src/composer_library.vala"
		_method_size = _tmp22_;
#line 458 "../src/composer_library.vala"
		_method_index = -1;
#line 458 "../src/composer_library.vala"
		while (TRUE) {
#line 4553 "composer_library.c"
			gint _tmp23_;
			gint _tmp24_;
			PhpToValaComposerLibraryComposerMethod* method = NULL;
			GeeArrayList* _tmp25_;
			gpointer _tmp26_;
			PhpToValaComposerLibraryComposerMethod* _tmp27_;
#line 458 "../src/composer_library.vala"
			_method_index = _method_index + 1;
#line 458 "../src/composer_library.vala"
			_tmp23_ = _method_index;
#line 458 "../src/composer_library.vala"
			_tmp24_ = _method_size;
#line 458 "../src/composer_library.vala"
			if (!(_tmp23_ < _tmp24_)) {
#line 458 "../src/composer_library.vala"
				break;
#line 4570 "composer_library.c"
			}
#line 458 "../src/composer_library.vala"
			_tmp25_ = _method_list;
#line 458 "../src/composer_library.vala"
			_tmp26_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _method_index);
#line 458 "../src/composer_library.vala"
			method = (PhpToValaComposerLibraryComposerMethod*) _tmp26_;
#line 459 "../src/composer_library.vala"
			_tmp27_ = method;
#line 459 "../src/composer_library.vala"
			php_to_vala_composer_library_append_vala_method (self, output, symbol, _tmp27_, indent + 1, FALSE, TRUE);
#line 458 "../src/composer_library.vala"
			_g_object_unref0 (method);
#line 4584 "composer_library.c"
		}
	}
#line 461 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 462 "../src/composer_library.vala"
	g_string_append (output, "}\n\n");
#line 4591 "composer_library.c"
}

static void
php_to_vala_composer_library_append_vala_class (PhpToValaComposerLibrary* self,
                                                GString* output,
                                                PhpToValaComposerLibraryComposerSymbol* symbol,
                                                gint indent)
{
	const gchar* _tmp0_;
	gchar* parent = NULL;
	gchar* _tmp1_;
	const gchar* _tmp2_;
#line 465 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 465 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 465 "../src/composer_library.vala"
	g_return_if_fail (symbol != NULL);
#line 466 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 467 "../src/composer_library.vala"
	g_string_append (output, "public ");
#line 468 "../src/composer_library.vala"
	if (symbol->is_abstract) {
#line 469 "../src/composer_library.vala"
		g_string_append (output, "abstract ");
#line 4618 "composer_library.c"
	}
#line 471 "../src/composer_library.vala"
	_tmp0_ = symbol->name;
#line 471 "../src/composer_library.vala"
	g_string_append_printf (output, "class %s", _tmp0_);
#line 472 "../src/composer_library.vala"
	_tmp1_ = php_to_vala_composer_library_vala_parent_for (self, symbol);
#line 472 "../src/composer_library.vala"
	parent = _tmp1_;
#line 473 "../src/composer_library.vala"
	_tmp2_ = parent;
#line 473 "../src/composer_library.vala"
	g_string_append_printf (output, " : %s", _tmp2_);
#line 4632 "composer_library.c"
	{
		GeeArrayList* _iface_list = NULL;
		const gchar* _tmp3_;
		GeeArrayList* _tmp4_;
		gint _iface_size = 0;
		GeeArrayList* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		gint _iface_index = 0;
#line 474 "../src/composer_library.vala"
		_tmp3_ = symbol->implements_name;
#line 474 "../src/composer_library.vala"
		_tmp4_ = php_to_vala_composer_library_split_implements (_tmp3_);
#line 474 "../src/composer_library.vala"
		_iface_list = _tmp4_;
#line 474 "../src/composer_library.vala"
		_tmp5_ = _iface_list;
#line 474 "../src/composer_library.vala"
		_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
#line 474 "../src/composer_library.vala"
		_tmp7_ = _tmp6_;
#line 474 "../src/composer_library.vala"
		_iface_size = _tmp7_;
#line 474 "../src/composer_library.vala"
		_iface_index = -1;
#line 474 "../src/composer_library.vala"
		while (TRUE) {
#line 4660 "composer_library.c"
			gint _tmp8_;
			gint _tmp9_;
			gchar* iface = NULL;
			GeeArrayList* _tmp10_;
			gpointer _tmp11_;
			const gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
#line 474 "../src/composer_library.vala"
			_iface_index = _iface_index + 1;
#line 474 "../src/composer_library.vala"
			_tmp8_ = _iface_index;
#line 474 "../src/composer_library.vala"
			_tmp9_ = _iface_size;
#line 474 "../src/composer_library.vala"
			if (!(_tmp8_ < _tmp9_)) {
#line 474 "../src/composer_library.vala"
				break;
#line 4679 "composer_library.c"
			}
#line 474 "../src/composer_library.vala"
			_tmp10_ = _iface_list;
#line 474 "../src/composer_library.vala"
			_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _iface_index);
#line 474 "../src/composer_library.vala"
			iface = (gchar*) _tmp11_;
#line 475 "../src/composer_library.vala"
			_tmp12_ = iface;
#line 475 "../src/composer_library.vala"
			_tmp13_ = php_to_vala_composer_library_short_php_name (_tmp12_);
#line 475 "../src/composer_library.vala"
			_tmp14_ = _tmp13_;
#line 475 "../src/composer_library.vala"
			g_string_append_printf (output, ", %s", _tmp14_);
#line 475 "../src/composer_library.vala"
			_g_free0 (_tmp14_);
#line 474 "../src/composer_library.vala"
			_g_free0 (iface);
#line 4699 "composer_library.c"
		}
#line 474 "../src/composer_library.vala"
		_g_object_unref0 (_iface_list);
#line 4703 "composer_library.c"
	}
#line 477 "../src/composer_library.vala"
	g_string_append (output, " {\n");
#line 4707 "composer_library.c"
	{
		GeeArrayList* _constant_list = NULL;
		GeeArrayList* _tmp15_;
		gint _constant_size = 0;
		GeeArrayList* _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
		gint _constant_index = 0;
#line 479 "../src/composer_library.vala"
		_tmp15_ = symbol->constants;
#line 479 "../src/composer_library.vala"
		_constant_list = _tmp15_;
#line 479 "../src/composer_library.vala"
		_tmp16_ = _constant_list;
#line 479 "../src/composer_library.vala"
		_tmp17_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp16_);
#line 479 "../src/composer_library.vala"
		_tmp18_ = _tmp17_;
#line 479 "../src/composer_library.vala"
		_constant_size = _tmp18_;
#line 479 "../src/composer_library.vala"
		_constant_index = -1;
#line 479 "../src/composer_library.vala"
		while (TRUE) {
#line 4732 "composer_library.c"
			gint _tmp19_;
			gint _tmp20_;
			PhpToValaComposerLibraryComposerConstant* constant = NULL;
			GeeArrayList* _tmp21_;
			gpointer _tmp22_;
			PhpToValaComposerLibraryComposerConstant* _tmp23_;
			const gchar* _tmp24_;
			PhpToValaComposerLibraryComposerConstant* _tmp25_;
			const gchar* _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
#line 479 "../src/composer_library.vala"
			_constant_index = _constant_index + 1;
#line 479 "../src/composer_library.vala"
			_tmp19_ = _constant_index;
#line 479 "../src/composer_library.vala"
			_tmp20_ = _constant_size;
#line 479 "../src/composer_library.vala"
			if (!(_tmp19_ < _tmp20_)) {
#line 479 "../src/composer_library.vala"
				break;
#line 4754 "composer_library.c"
			}
#line 479 "../src/composer_library.vala"
			_tmp21_ = _constant_list;
#line 479 "../src/composer_library.vala"
			_tmp22_ = gee_abstract_list_get ((GeeAbstractList*) _tmp21_, _constant_index);
#line 479 "../src/composer_library.vala"
			constant = (PhpToValaComposerLibraryComposerConstant*) _tmp22_;
#line 480 "../src/composer_library.vala"
			php_to_vala_composer_library_append_indent (output, indent + 1);
#line 481 "../src/composer_library.vala"
			_tmp23_ = constant;
#line 481 "../src/composer_library.vala"
			_tmp24_ = _tmp23_->name;
#line 481 "../src/composer_library.vala"
			_tmp25_ = constant;
#line 481 "../src/composer_library.vala"
			_tmp26_ = _tmp25_->value;
#line 481 "../src/composer_library.vala"
			_tmp27_ = php_to_vala_composer_library_php_string_to_vala_string (_tmp26_);
#line 481 "../src/composer_library.vala"
			_tmp28_ = _tmp27_;
#line 481 "../src/composer_library.vala"
			g_string_append_printf (output, "public const string %s = %s;\n", _tmp24_, _tmp28_);
#line 481 "../src/composer_library.vala"
			_g_free0 (_tmp28_);
#line 479 "../src/composer_library.vala"
			_g_object_unref0 (constant);
#line 4782 "composer_library.c"
		}
	}
	{
		GeeArrayList* _property_list = NULL;
		GeeArrayList* _tmp29_;
		gint _property_size = 0;
		GeeArrayList* _tmp30_;
		gint _tmp31_;
		gint _tmp32_;
		gint _property_index = 0;
#line 484 "../src/composer_library.vala"
		_tmp29_ = symbol->properties;
#line 484 "../src/composer_library.vala"
		_property_list = _tmp29_;
#line 484 "../src/composer_library.vala"
		_tmp30_ = _property_list;
#line 484 "../src/composer_library.vala"
		_tmp31_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp30_);
#line 484 "../src/composer_library.vala"
		_tmp32_ = _tmp31_;
#line 484 "../src/composer_library.vala"
		_property_size = _tmp32_;
#line 484 "../src/composer_library.vala"
		_property_index = -1;
#line 484 "../src/composer_library.vala"
		while (TRUE) {
#line 4809 "composer_library.c"
			gint _tmp33_;
			gint _tmp34_;
			PhpToValaComposerLibraryComposerProperty* property = NULL;
			GeeArrayList* _tmp35_;
			gpointer _tmp36_;
			const gchar* _tmp37_ = NULL;
			PhpToValaComposerLibraryComposerProperty* _tmp38_;
			PhpToValaComposerLibraryComposerProperty* _tmp39_;
			const gchar* _tmp40_;
			PhpToValaComposerLibraryComposerProperty* _tmp41_;
			const gchar* _tmp42_;
			gchar* _tmp43_;
			gchar* _tmp44_;
			PhpToValaComposerLibraryComposerProperty* _tmp45_;
			const gchar* _tmp46_;
#line 484 "../src/composer_library.vala"
			_property_index = _property_index + 1;
#line 484 "../src/composer_library.vala"
			_tmp33_ = _property_index;
#line 484 "../src/composer_library.vala"
			_tmp34_ = _property_size;
#line 484 "../src/composer_library.vala"
			if (!(_tmp33_ < _tmp34_)) {
#line 484 "../src/composer_library.vala"
				break;
#line 4835 "composer_library.c"
			}
#line 484 "../src/composer_library.vala"
			_tmp35_ = _property_list;
#line 484 "../src/composer_library.vala"
			_tmp36_ = gee_abstract_list_get ((GeeAbstractList*) _tmp35_, _property_index);
#line 484 "../src/composer_library.vala"
			property = (PhpToValaComposerLibraryComposerProperty*) _tmp36_;
#line 485 "../src/composer_library.vala"
			php_to_vala_composer_library_append_indent (output, indent + 1);
#line 486 "../src/composer_library.vala"
			_tmp38_ = property;
#line 486 "../src/composer_library.vala"
			if (_tmp38_->nullable) {
#line 486 "../src/composer_library.vala"
				_tmp37_ = "?";
#line 4851 "composer_library.c"
			} else {
#line 486 "../src/composer_library.vala"
				_tmp37_ = "";
#line 4855 "composer_library.c"
			}
#line 486 "../src/composer_library.vala"
			_tmp39_ = property;
#line 486 "../src/composer_library.vala"
			_tmp40_ = _tmp39_->visibility;
#line 486 "../src/composer_library.vala"
			_tmp41_ = property;
#line 486 "../src/composer_library.vala"
			_tmp42_ = _tmp41_->type_name;
#line 486 "../src/composer_library.vala"
			_tmp43_ = php_to_vala_composer_library_vala_type (_tmp42_);
#line 486 "../src/composer_library.vala"
			_tmp44_ = _tmp43_;
#line 486 "../src/composer_library.vala"
			_tmp45_ = property;
#line 486 "../src/composer_library.vala"
			_tmp46_ = _tmp45_->name;
#line 486 "../src/composer_library.vala"
			g_string_append_printf (output, "%s %s%s %s = null;\n", _tmp40_, _tmp44_, _tmp37_, _tmp46_);
#line 486 "../src/composer_library.vala"
			_g_free0 (_tmp44_);
#line 484 "../src/composer_library.vala"
			_g_object_unref0 (property);
#line 4879 "composer_library.c"
		}
	}
	{
		GeeArrayList* _trait_name_list = NULL;
		GeeArrayList* _tmp47_;
		gint _trait_name_size = 0;
		GeeArrayList* _tmp48_;
		gint _tmp49_;
		gint _tmp50_;
		gint _trait_name_index = 0;
#line 489 "../src/composer_library.vala"
		_tmp47_ = symbol->traits;
#line 489 "../src/composer_library.vala"
		_trait_name_list = _tmp47_;
#line 489 "../src/composer_library.vala"
		_tmp48_ = _trait_name_list;
#line 489 "../src/composer_library.vala"
		_tmp49_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp48_);
#line 489 "../src/composer_library.vala"
		_tmp50_ = _tmp49_;
#line 489 "../src/composer_library.vala"
		_trait_name_size = _tmp50_;
#line 489 "../src/composer_library.vala"
		_trait_name_index = -1;
#line 489 "../src/composer_library.vala"
		while (TRUE) {
#line 4906 "composer_library.c"
			gint _tmp51_;
			gint _tmp52_;
			gchar* trait_name = NULL;
			GeeArrayList* _tmp53_;
			gpointer _tmp54_;
			PhpToValaComposerLibraryComposerSymbol* _tmp55_ = NULL;
			GeeHashMap* _tmp56_;
			const gchar* _tmp57_;
			gpointer _tmp58_;
			PhpToValaComposerLibraryComposerSymbol* trait = NULL;
			PhpToValaComposerLibraryComposerSymbol* _tmp67_;
			PhpToValaComposerLibraryComposerSymbol* _tmp68_;
#line 489 "../src/composer_library.vala"
			_trait_name_index = _trait_name_index + 1;
#line 489 "../src/composer_library.vala"
			_tmp51_ = _trait_name_index;
#line 489 "../src/composer_library.vala"
			_tmp52_ = _trait_name_size;
#line 489 "../src/composer_library.vala"
			if (!(_tmp51_ < _tmp52_)) {
#line 489 "../src/composer_library.vala"
				break;
#line 4929 "composer_library.c"
			}
#line 489 "../src/composer_library.vala"
			_tmp53_ = _trait_name_list;
#line 489 "../src/composer_library.vala"
			_tmp54_ = gee_abstract_list_get ((GeeAbstractList*) _tmp53_, _trait_name_index);
#line 489 "../src/composer_library.vala"
			trait_name = (gchar*) _tmp54_;
#line 490 "../src/composer_library.vala"
			_tmp56_ = self->priv->symbol_by_name;
#line 490 "../src/composer_library.vala"
			_tmp57_ = trait_name;
#line 490 "../src/composer_library.vala"
			_tmp58_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp56_, _tmp57_);
#line 490 "../src/composer_library.vala"
			_tmp55_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp58_;
#line 490 "../src/composer_library.vala"
			if (_tmp55_ == NULL) {
#line 4947 "composer_library.c"
				GeeHashMap* _tmp59_;
				const gchar* _tmp60_;
				gchar* _tmp61_;
				gchar* _tmp62_;
				const gchar* _tmp63_;
				gchar* _tmp64_;
				gchar* _tmp65_;
				gpointer _tmp66_;
#line 490 "../src/composer_library.vala"
				_tmp59_ = self->priv->symbol_by_name;
#line 490 "../src/composer_library.vala"
				_tmp60_ = symbol->namespace_name;
#line 490 "../src/composer_library.vala"
				_tmp61_ = g_strconcat (_tmp60_, "\\", NULL);
#line 490 "../src/composer_library.vala"
				_tmp62_ = _tmp61_;
#line 490 "../src/composer_library.vala"
				_tmp63_ = trait_name;
#line 490 "../src/composer_library.vala"
				_tmp64_ = g_strconcat (_tmp62_, _tmp63_, NULL);
#line 490 "../src/composer_library.vala"
				_tmp65_ = _tmp64_;
#line 490 "../src/composer_library.vala"
				_tmp66_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp59_, _tmp65_);
#line 490 "../src/composer_library.vala"
				_g_object_unref0 (_tmp55_);
#line 490 "../src/composer_library.vala"
				_tmp55_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp66_;
#line 490 "../src/composer_library.vala"
				_g_free0 (_tmp65_);
#line 490 "../src/composer_library.vala"
				_g_free0 (_tmp62_);
#line 4980 "composer_library.c"
			}
#line 490 "../src/composer_library.vala"
			_tmp67_ = _tmp55_;
#line 490 "../src/composer_library.vala"
			_tmp55_ = NULL;
#line 490 "../src/composer_library.vala"
			trait = _tmp67_;
#line 491 "../src/composer_library.vala"
			_tmp68_ = trait;
#line 491 "../src/composer_library.vala"
			if (_tmp68_ == NULL) {
#line 492 "../src/composer_library.vala"
				_g_object_unref0 (trait);
#line 492 "../src/composer_library.vala"
				_g_object_unref0 (_tmp55_);
#line 492 "../src/composer_library.vala"
				_g_free0 (trait_name);
#line 492 "../src/composer_library.vala"
				continue;
#line 5000 "composer_library.c"
			}
			{
				GeeArrayList* _property_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp69_;
				GeeArrayList* _tmp70_;
				gint _property_size = 0;
				GeeArrayList* _tmp71_;
				gint _tmp72_;
				gint _tmp73_;
				gint _property_index = 0;
#line 494 "../src/composer_library.vala"
				_tmp69_ = trait;
#line 494 "../src/composer_library.vala"
				_tmp70_ = _tmp69_->properties;
#line 494 "../src/composer_library.vala"
				_property_list = _tmp70_;
#line 494 "../src/composer_library.vala"
				_tmp71_ = _property_list;
#line 494 "../src/composer_library.vala"
				_tmp72_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp71_);
#line 494 "../src/composer_library.vala"
				_tmp73_ = _tmp72_;
#line 494 "../src/composer_library.vala"
				_property_size = _tmp73_;
#line 494 "../src/composer_library.vala"
				_property_index = -1;
#line 494 "../src/composer_library.vala"
				while (TRUE) {
#line 5029 "composer_library.c"
					gint _tmp74_;
					gint _tmp75_;
					PhpToValaComposerLibraryComposerProperty* property = NULL;
					GeeArrayList* _tmp76_;
					gpointer _tmp77_;
					const gchar* _tmp78_ = NULL;
					PhpToValaComposerLibraryComposerProperty* _tmp79_;
					PhpToValaComposerLibraryComposerProperty* _tmp80_;
					const gchar* _tmp81_;
					PhpToValaComposerLibraryComposerProperty* _tmp82_;
					const gchar* _tmp83_;
					gchar* _tmp84_;
					gchar* _tmp85_;
					PhpToValaComposerLibraryComposerProperty* _tmp86_;
					const gchar* _tmp87_;
#line 494 "../src/composer_library.vala"
					_property_index = _property_index + 1;
#line 494 "../src/composer_library.vala"
					_tmp74_ = _property_index;
#line 494 "../src/composer_library.vala"
					_tmp75_ = _property_size;
#line 494 "../src/composer_library.vala"
					if (!(_tmp74_ < _tmp75_)) {
#line 494 "../src/composer_library.vala"
						break;
#line 5055 "composer_library.c"
					}
#line 494 "../src/composer_library.vala"
					_tmp76_ = _property_list;
#line 494 "../src/composer_library.vala"
					_tmp77_ = gee_abstract_list_get ((GeeAbstractList*) _tmp76_, _property_index);
#line 494 "../src/composer_library.vala"
					property = (PhpToValaComposerLibraryComposerProperty*) _tmp77_;
#line 495 "../src/composer_library.vala"
					php_to_vala_composer_library_append_indent (output, indent + 1);
#line 496 "../src/composer_library.vala"
					_tmp79_ = property;
#line 496 "../src/composer_library.vala"
					if (_tmp79_->nullable) {
#line 496 "../src/composer_library.vala"
						_tmp78_ = "?";
#line 5071 "composer_library.c"
					} else {
#line 496 "../src/composer_library.vala"
						_tmp78_ = "";
#line 5075 "composer_library.c"
					}
#line 496 "../src/composer_library.vala"
					_tmp80_ = property;
#line 496 "../src/composer_library.vala"
					_tmp81_ = _tmp80_->visibility;
#line 496 "../src/composer_library.vala"
					_tmp82_ = property;
#line 496 "../src/composer_library.vala"
					_tmp83_ = _tmp82_->type_name;
#line 496 "../src/composer_library.vala"
					_tmp84_ = php_to_vala_composer_library_vala_type (_tmp83_);
#line 496 "../src/composer_library.vala"
					_tmp85_ = _tmp84_;
#line 496 "../src/composer_library.vala"
					_tmp86_ = property;
#line 496 "../src/composer_library.vala"
					_tmp87_ = _tmp86_->name;
#line 496 "../src/composer_library.vala"
					g_string_append_printf (output, "%s %s%s %s = null;\n", _tmp81_, _tmp85_, _tmp78_, _tmp87_);
#line 496 "../src/composer_library.vala"
					_g_free0 (_tmp85_);
#line 494 "../src/composer_library.vala"
					_g_object_unref0 (property);
#line 5099 "composer_library.c"
				}
			}
			{
				GeeArrayList* _method_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp88_;
				GeeArrayList* _tmp89_;
				gint _method_size = 0;
				GeeArrayList* _tmp90_;
				gint _tmp91_;
				gint _tmp92_;
				gint _method_index = 0;
#line 498 "../src/composer_library.vala"
				_tmp88_ = trait;
#line 498 "../src/composer_library.vala"
				_tmp89_ = _tmp88_->methods;
#line 498 "../src/composer_library.vala"
				_method_list = _tmp89_;
#line 498 "../src/composer_library.vala"
				_tmp90_ = _method_list;
#line 498 "../src/composer_library.vala"
				_tmp91_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp90_);
#line 498 "../src/composer_library.vala"
				_tmp92_ = _tmp91_;
#line 498 "../src/composer_library.vala"
				_method_size = _tmp92_;
#line 498 "../src/composer_library.vala"
				_method_index = -1;
#line 498 "../src/composer_library.vala"
				while (TRUE) {
#line 5129 "composer_library.c"
					gint _tmp93_;
					gint _tmp94_;
					PhpToValaComposerLibraryComposerMethod* method = NULL;
					GeeArrayList* _tmp95_;
					gpointer _tmp96_;
					PhpToValaComposerLibraryComposerMethod* _tmp97_;
#line 498 "../src/composer_library.vala"
					_method_index = _method_index + 1;
#line 498 "../src/composer_library.vala"
					_tmp93_ = _method_index;
#line 498 "../src/composer_library.vala"
					_tmp94_ = _method_size;
#line 498 "../src/composer_library.vala"
					if (!(_tmp93_ < _tmp94_)) {
#line 498 "../src/composer_library.vala"
						break;
#line 5146 "composer_library.c"
					}
#line 498 "../src/composer_library.vala"
					_tmp95_ = _method_list;
#line 498 "../src/composer_library.vala"
					_tmp96_ = gee_abstract_list_get ((GeeAbstractList*) _tmp95_, _method_index);
#line 498 "../src/composer_library.vala"
					method = (PhpToValaComposerLibraryComposerMethod*) _tmp96_;
#line 499 "../src/composer_library.vala"
					_tmp97_ = method;
#line 499 "../src/composer_library.vala"
					php_to_vala_composer_library_append_vala_method (self, output, symbol, _tmp97_, indent + 1, TRUE, TRUE);
#line 498 "../src/composer_library.vala"
					_g_object_unref0 (method);
#line 5160 "composer_library.c"
				}
			}
#line 489 "../src/composer_library.vala"
			_g_object_unref0 (trait);
#line 489 "../src/composer_library.vala"
			_g_object_unref0 (_tmp55_);
#line 489 "../src/composer_library.vala"
			_g_free0 (trait_name);
#line 5169 "composer_library.c"
		}
	}
	{
		GeeArrayList* _method_list = NULL;
		GeeArrayList* _tmp98_;
		gint _method_size = 0;
		GeeArrayList* _tmp99_;
		gint _tmp100_;
		gint _tmp101_;
		gint _method_index = 0;
#line 503 "../src/composer_library.vala"
		_tmp98_ = symbol->methods;
#line 503 "../src/composer_library.vala"
		_method_list = _tmp98_;
#line 503 "../src/composer_library.vala"
		_tmp99_ = _method_list;
#line 503 "../src/composer_library.vala"
		_tmp100_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp99_);
#line 503 "../src/composer_library.vala"
		_tmp101_ = _tmp100_;
#line 503 "../src/composer_library.vala"
		_method_size = _tmp101_;
#line 503 "../src/composer_library.vala"
		_method_index = -1;
#line 503 "../src/composer_library.vala"
		while (TRUE) {
#line 5196 "composer_library.c"
			gint _tmp102_;
			gint _tmp103_;
			PhpToValaComposerLibraryComposerMethod* method = NULL;
			GeeArrayList* _tmp104_;
			gpointer _tmp105_;
			PhpToValaComposerLibraryComposerMethod* _tmp106_;
			const gchar* _tmp107_;
#line 503 "../src/composer_library.vala"
			_method_index = _method_index + 1;
#line 503 "../src/composer_library.vala"
			_tmp102_ = _method_index;
#line 503 "../src/composer_library.vala"
			_tmp103_ = _method_size;
#line 503 "../src/composer_library.vala"
			if (!(_tmp102_ < _tmp103_)) {
#line 503 "../src/composer_library.vala"
				break;
#line 5214 "composer_library.c"
			}
#line 503 "../src/composer_library.vala"
			_tmp104_ = _method_list;
#line 503 "../src/composer_library.vala"
			_tmp105_ = gee_abstract_list_get ((GeeAbstractList*) _tmp104_, _method_index);
#line 503 "../src/composer_library.vala"
			method = (PhpToValaComposerLibraryComposerMethod*) _tmp105_;
#line 504 "../src/composer_library.vala"
			_tmp106_ = method;
#line 504 "../src/composer_library.vala"
			_tmp107_ = symbol->extends_name;
#line 504 "../src/composer_library.vala"
			php_to_vala_composer_library_append_vala_method (self, output, symbol, _tmp106_, indent + 1, g_strcmp0 (_tmp107_, "") != 0, FALSE);
#line 503 "../src/composer_library.vala"
			_g_object_unref0 (method);
#line 5230 "composer_library.c"
		}
	}
#line 507 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 508 "../src/composer_library.vala"
	g_string_append (output, "}\n\n");
#line 465 "../src/composer_library.vala"
	_g_free0 (parent);
#line 5239 "composer_library.c"
}

static void
php_to_vala_composer_library_append_vala_method (PhpToValaComposerLibrary* self,
                                                 GString* output,
                                                 PhpToValaComposerLibraryComposerSymbol* owner,
                                                 PhpToValaComposerLibraryComposerMethod* method,
                                                 gint indent,
                                                 gboolean from_trait,
                                                 gboolean allow_abstract)
{
	gchar* return_type = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp7_ = FALSE;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* delegate_body = NULL;
	gchar* _tmp13_;
	const gchar* _tmp14_;
#line 511 "../src/composer_library.vala"
	g_return_if_fail (self != NULL);
#line 511 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 511 "../src/composer_library.vala"
	g_return_if_fail (owner != NULL);
#line 511 "../src/composer_library.vala"
	g_return_if_fail (method != NULL);
#line 512 "../src/composer_library.vala"
	php_to_vala_composer_library_append_indent (output, indent);
#line 513 "../src/composer_library.vala"
	_tmp0_ = method->return_type;
#line 513 "../src/composer_library.vala"
	_tmp1_ = php_to_vala_composer_library_vala_return_type (_tmp0_);
#line 513 "../src/composer_library.vala"
	return_type = _tmp1_;
#line 514 "../src/composer_library.vala"
	if (allow_abstract) {
#line 514 "../src/composer_library.vala"
		_tmp2_ = method->is_abstract;
#line 5283 "composer_library.c"
	} else {
#line 514 "../src/composer_library.vala"
		_tmp2_ = FALSE;
#line 5287 "composer_library.c"
	}
#line 514 "../src/composer_library.vala"
	if (_tmp2_) {
#line 5291 "composer_library.c"
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
#line 515 "../src/composer_library.vala"
		_tmp3_ = return_type;
#line 515 "../src/composer_library.vala"
		_tmp4_ = method->name;
#line 515 "../src/composer_library.vala"
		_tmp5_ = php_to_vala_composer_library_vala_parameter_list (method);
#line 515 "../src/composer_library.vala"
		_tmp6_ = _tmp5_;
#line 515 "../src/composer_library.vala"
		g_string_append_printf (output, "public abstract %s %s (%s) throws Error;\n", _tmp3_, _tmp4_, _tmp6_);
#line 515 "../src/composer_library.vala"
		_g_free0 (_tmp6_);
#line 516 "../src/composer_library.vala"
		_g_free0 (return_type);
#line 516 "../src/composer_library.vala"
		return;
#line 5312 "composer_library.c"
	}
#line 518 "../src/composer_library.vala"
	g_string_append (output, "public ");
#line 519 "../src/composer_library.vala"
	if (method->is_static) {
#line 520 "../src/composer_library.vala"
		g_string_append (output, "static ");
#line 5320 "composer_library.c"
	}
#line 522 "../src/composer_library.vala"
	if (!owner->is_abstract) {
#line 5324 "composer_library.c"
		const gchar* _tmp8_;
#line 522 "../src/composer_library.vala"
		_tmp8_ = method->name;
#line 522 "../src/composer_library.vala"
		_tmp7_ = php_to_vala_composer_library_overrides_parent_method (self, owner, _tmp8_);
#line 5330 "composer_library.c"
	} else {
#line 522 "../src/composer_library.vala"
		_tmp7_ = FALSE;
#line 5334 "composer_library.c"
	}
#line 522 "../src/composer_library.vala"
	if (_tmp7_) {
#line 523 "../src/composer_library.vala"
		g_string_append (output, "override ");
#line 5340 "composer_library.c"
	}
#line 525 "../src/composer_library.vala"
	_tmp9_ = return_type;
#line 525 "../src/composer_library.vala"
	_tmp10_ = method->name;
#line 525 "../src/composer_library.vala"
	_tmp11_ = php_to_vala_composer_library_vala_parameter_list (method);
#line 525 "../src/composer_library.vala"
	_tmp12_ = _tmp11_;
#line 525 "../src/composer_library.vala"
	g_string_append_printf (output, "%s %s (%s) throws Error {", _tmp9_, _tmp10_, _tmp12_);
#line 525 "../src/composer_library.vala"
	_g_free0 (_tmp12_);
#line 526 "../src/composer_library.vala"
	_tmp13_ = php_to_vala_composer_library_vala_delegate_body (self, method);
#line 526 "../src/composer_library.vala"
	delegate_body = _tmp13_;
#line 527 "../src/composer_library.vala"
	_tmp14_ = delegate_body;
#line 527 "../src/composer_library.vala"
	if (_tmp14_ != NULL) {
#line 5362 "composer_library.c"
		const gchar* _tmp15_;
#line 528 "../src/composer_library.vala"
		g_string_append (output, " ");
#line 529 "../src/composer_library.vala"
		_tmp15_ = delegate_body;
#line 529 "../src/composer_library.vala"
		g_string_append (output, _tmp15_);
#line 530 "../src/composer_library.vala"
		g_string_append (output, " ");
#line 5372 "composer_library.c"
	}
#line 532 "../src/composer_library.vala"
	g_string_append (output, "}\n");
#line 511 "../src/composer_library.vala"
	_g_free0 (delegate_body);
#line 511 "../src/composer_library.vala"
	_g_free0 (return_type);
#line 5380 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_vala_delegate_body (PhpToValaComposerLibrary* self,
                                                 PhpToValaComposerLibraryComposerMethod* method)
{
	const gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gchar* result;
#line 535 "../src/composer_library.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 535 "../src/composer_library.vala"
	g_return_val_if_fail (method != NULL, NULL);
#line 536 "../src/composer_library.vala"
	_tmp0_ = method->body;
#line 536 "../src/composer_library.vala"
	_tmp2_ = _tmp1_ = g_strsplit (_tmp0_, "\n", 0);
#line 5399 "composer_library.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 536 "../src/composer_library.vala"
		raw_line_collection = _tmp2_;
#line 536 "../src/composer_library.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp1_);
#line 536 "../src/composer_library.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 5411 "composer_library.c"
			gchar* _tmp3_;
			gchar* raw_line = NULL;
#line 536 "../src/composer_library.vala"
			_tmp3_ = g_strdup (raw_line_collection[raw_line_it]);
#line 536 "../src/composer_library.vala"
			raw_line = _tmp3_;
#line 5418 "composer_library.c"
			{
				gchar* line = NULL;
				const gchar* _tmp4_;
				gchar* _tmp5_;
				gboolean _tmp6_ = FALSE;
				const gchar* _tmp7_;
				const gchar* _tmp55_;
#line 537 "../src/composer_library.vala"
				_tmp4_ = raw_line;
#line 537 "../src/composer_library.vala"
				_tmp5_ = string_strip (_tmp4_);
#line 537 "../src/composer_library.vala"
				line = _tmp5_;
#line 538 "../src/composer_library.vala"
				_tmp7_ = line;
#line 538 "../src/composer_library.vala"
				if (g_str_has_prefix (_tmp7_, "$this->log(")) {
#line 5436 "composer_library.c"
					const gchar* _tmp8_;
#line 538 "../src/composer_library.vala"
					_tmp8_ = line;
#line 538 "../src/composer_library.vala"
					_tmp6_ = g_str_has_suffix (_tmp8_, ");");
#line 5442 "composer_library.c"
				} else {
#line 538 "../src/composer_library.vala"
					_tmp6_ = FALSE;
#line 5446 "composer_library.c"
				}
#line 538 "../src/composer_library.vala"
				if (_tmp6_) {
#line 5450 "composer_library.c"
					gchar* args = NULL;
					const gchar* _tmp9_;
					gint _tmp10_;
					gint _tmp11_;
					const gchar* _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
					gint _tmp15_;
					gint _tmp16_;
					gchar* _tmp17_;
					GeeArrayList* parts = NULL;
					const gchar* _tmp18_;
					GeeArrayList* _tmp19_;
					gboolean _tmp20_ = FALSE;
					GeeArrayList* _tmp21_;
					gint _tmp22_;
					gint _tmp23_;
#line 539 "../src/composer_library.vala"
					_tmp9_ = line;
#line 539 "../src/composer_library.vala"
					_tmp10_ = strlen ("$this->log(");
#line 539 "../src/composer_library.vala"
					_tmp11_ = _tmp10_;
#line 539 "../src/composer_library.vala"
					_tmp12_ = line;
#line 539 "../src/composer_library.vala"
					_tmp13_ = strlen (_tmp12_);
#line 539 "../src/composer_library.vala"
					_tmp14_ = _tmp13_;
#line 539 "../src/composer_library.vala"
					_tmp15_ = strlen ("$this->log(");
#line 539 "../src/composer_library.vala"
					_tmp16_ = _tmp15_;
#line 539 "../src/composer_library.vala"
					_tmp17_ = string_substring (_tmp9_, (glong) _tmp11_, (glong) ((_tmp14_ - _tmp16_) - 2));
#line 539 "../src/composer_library.vala"
					args = _tmp17_;
#line 540 "../src/composer_library.vala"
					_tmp18_ = args;
#line 540 "../src/composer_library.vala"
					_tmp19_ = php_to_vala_composer_library_split_top_level (_tmp18_, ',');
#line 540 "../src/composer_library.vala"
					parts = _tmp19_;
#line 541 "../src/composer_library.vala"
					_tmp21_ = parts;
#line 541 "../src/composer_library.vala"
					_tmp22_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp21_);
#line 541 "../src/composer_library.vala"
					_tmp23_ = _tmp22_;
#line 541 "../src/composer_library.vala"
					if (_tmp23_ == 3) {
#line 5502 "composer_library.c"
						GeeArrayList* _tmp24_;
						gpointer _tmp25_;
						gchar* _tmp26_;
						gchar* _tmp27_;
						gchar* _tmp28_;
#line 541 "../src/composer_library.vala"
						_tmp24_ = parts;
#line 541 "../src/composer_library.vala"
						_tmp25_ = gee_abstract_list_get ((GeeAbstractList*) _tmp24_, 0);
#line 541 "../src/composer_library.vala"
						_tmp26_ = (gchar*) _tmp25_;
#line 541 "../src/composer_library.vala"
						_tmp27_ = string_strip (_tmp26_);
#line 541 "../src/composer_library.vala"
						_tmp28_ = _tmp27_;
#line 541 "../src/composer_library.vala"
						_tmp20_ = g_str_has_prefix (_tmp28_, "LogLevel::");
#line 541 "../src/composer_library.vala"
						_g_free0 (_tmp28_);
#line 541 "../src/composer_library.vala"
						_g_free0 (_tmp26_);
#line 5524 "composer_library.c"
					} else {
#line 541 "../src/composer_library.vala"
						_tmp20_ = FALSE;
#line 5528 "composer_library.c"
					}
#line 541 "../src/composer_library.vala"
					if (_tmp20_) {
#line 5532 "composer_library.c"
						gchar* level = NULL;
						GeeArrayList* _tmp29_;
						gpointer _tmp30_;
						gchar* _tmp31_;
						gchar* _tmp32_;
						gchar* _tmp33_;
						gint _tmp34_;
						gint _tmp35_;
						gchar* _tmp36_;
						gchar* _tmp37_;
						const gchar* _tmp38_;
						GeeArrayList* _tmp39_;
						gpointer _tmp40_;
						gchar* _tmp41_;
						gchar* _tmp42_;
						gchar* _tmp43_;
						gchar* _tmp44_;
						gchar* _tmp45_;
						GeeArrayList* _tmp46_;
						gpointer _tmp47_;
						gchar* _tmp48_;
						gchar* _tmp49_;
						gchar* _tmp50_;
						gchar* _tmp51_;
						gchar* _tmp52_;
						gchar* _tmp53_;
						gchar* _tmp54_;
#line 542 "../src/composer_library.vala"
						_tmp29_ = parts;
#line 542 "../src/composer_library.vala"
						_tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, 0);
#line 542 "../src/composer_library.vala"
						_tmp31_ = (gchar*) _tmp30_;
#line 542 "../src/composer_library.vala"
						_tmp32_ = string_strip (_tmp31_);
#line 542 "../src/composer_library.vala"
						_tmp33_ = _tmp32_;
#line 542 "../src/composer_library.vala"
						_tmp34_ = strlen ("LogLevel::");
#line 542 "../src/composer_library.vala"
						_tmp35_ = _tmp34_;
#line 542 "../src/composer_library.vala"
						_tmp36_ = string_substring (_tmp33_, (glong) _tmp35_, (glong) -1);
#line 542 "../src/composer_library.vala"
						_tmp37_ = _tmp36_;
#line 542 "../src/composer_library.vala"
						_g_free0 (_tmp33_);
#line 542 "../src/composer_library.vala"
						_g_free0 (_tmp31_);
#line 542 "../src/composer_library.vala"
						level = _tmp37_;
#line 543 "../src/composer_library.vala"
						_tmp38_ = level;
#line 543 "../src/composer_library.vala"
						_tmp39_ = parts;
#line 543 "../src/composer_library.vala"
						_tmp40_ = gee_abstract_list_get ((GeeAbstractList*) _tmp39_, 1);
#line 543 "../src/composer_library.vala"
						_tmp41_ = (gchar*) _tmp40_;
#line 543 "../src/composer_library.vala"
						_tmp42_ = string_strip (_tmp41_);
#line 543 "../src/composer_library.vala"
						_tmp43_ = _tmp42_;
#line 543 "../src/composer_library.vala"
						_tmp44_ = php_to_vala_composer_library_php_variable_to_vala (_tmp43_);
#line 543 "../src/composer_library.vala"
						_tmp45_ = _tmp44_;
#line 543 "../src/composer_library.vala"
						_tmp46_ = parts;
#line 543 "../src/composer_library.vala"
						_tmp47_ = gee_abstract_list_get ((GeeAbstractList*) _tmp46_, 2);
#line 543 "../src/composer_library.vala"
						_tmp48_ = (gchar*) _tmp47_;
#line 543 "../src/composer_library.vala"
						_tmp49_ = string_strip (_tmp48_);
#line 543 "../src/composer_library.vala"
						_tmp50_ = _tmp49_;
#line 543 "../src/composer_library.vala"
						_tmp51_ = php_to_vala_composer_library_php_variable_to_vala (_tmp50_);
#line 543 "../src/composer_library.vala"
						_tmp52_ = _tmp51_;
#line 543 "../src/composer_library.vala"
						_tmp53_ = g_strdup_printf ("this.log (Php.zval.string_value (LogLevel.%s), %s, %s);", _tmp38_, _tmp45_, _tmp52_);
#line 543 "../src/composer_library.vala"
						_tmp54_ = _tmp53_;
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp52_);
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp50_);
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp48_);
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp45_);
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp43_);
#line 543 "../src/composer_library.vala"
						_g_free0 (_tmp41_);
#line 543 "../src/composer_library.vala"
						result = _tmp54_;
#line 543 "../src/composer_library.vala"
						_g_free0 (level);
#line 543 "../src/composer_library.vala"
						_g_object_unref0 (parts);
#line 543 "../src/composer_library.vala"
						_g_free0 (args);
#line 543 "../src/composer_library.vala"
						_g_free0 (line);
#line 543 "../src/composer_library.vala"
						_g_free0 (raw_line);
#line 543 "../src/composer_library.vala"
						raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 543 "../src/composer_library.vala"
						return result;
#line 5646 "composer_library.c"
					}
#line 538 "../src/composer_library.vala"
					_g_object_unref0 (parts);
#line 538 "../src/composer_library.vala"
					_g_free0 (args);
#line 5652 "composer_library.c"
				}
#line 546 "../src/composer_library.vala"
				_tmp55_ = line;
#line 546 "../src/composer_library.vala"
				if (string_index_of (_tmp55_, "$this->logger =", 0) >= 0) {
#line 5658 "composer_library.c"
					gchar* _tmp56_;
#line 547 "../src/composer_library.vala"
					_tmp56_ = g_strdup ("this.logger = logger;");
#line 547 "../src/composer_library.vala"
					result = _tmp56_;
#line 547 "../src/composer_library.vala"
					_g_free0 (line);
#line 547 "../src/composer_library.vala"
					_g_free0 (raw_line);
#line 547 "../src/composer_library.vala"
					raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 547 "../src/composer_library.vala"
					return result;
#line 5672 "composer_library.c"
				}
#line 536 "../src/composer_library.vala"
				_g_free0 (line);
#line 536 "../src/composer_library.vala"
				_g_free0 (raw_line);
#line 5678 "composer_library.c"
			}
		}
#line 536 "../src/composer_library.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 5683 "composer_library.c"
	}
#line 550 "../src/composer_library.vala"
	result = NULL;
#line 550 "../src/composer_library.vala"
	return result;
#line 5689 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_build_stub_source (PhpToValaComposerLibrary* self,
                                                const gchar* composer_json_path)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp1_;
	GString* _tmp2_;
	GString* _tmp3_;
	GString* _tmp4_;
	GString* _tmp5_;
	gchar* current_namespace = NULL;
	gchar* _tmp6_;
	GString* _tmp206_;
	const gchar* _tmp207_;
	gchar* _tmp208_;
	gchar* result;
#line 553 "../src/composer_library.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 553 "../src/composer_library.vala"
	g_return_val_if_fail (composer_json_path != NULL, NULL);
#line 554 "../src/composer_library.vala"
	_tmp0_ = g_string_new ("");
#line 554 "../src/composer_library.vala"
	output = _tmp0_;
#line 555 "../src/composer_library.vala"
	_tmp1_ = output;
#line 555 "../src/composer_library.vala"
	g_string_append (_tmp1_, "<?php\n");
#line 556 "../src/composer_library.vala"
	_tmp2_ = output;
#line 556 "../src/composer_library.vala"
	g_string_append (_tmp2_, "/*\n");
#line 557 "../src/composer_library.vala"
	_tmp3_ = output;
#line 557 "../src/composer_library.vala"
	g_string_append (_tmp3_, " * php2vala generated Composer PHP stub. Declarative only; do not exec" \
"ute as application code.\n");
#line 558 "../src/composer_library.vala"
	_tmp4_ = output;
#line 558 "../src/composer_library.vala"
	g_string_append_printf (_tmp4_, " * composer: %s\n", composer_json_path);
#line 559 "../src/composer_library.vala"
	_tmp5_ = output;
#line 559 "../src/composer_library.vala"
	g_string_append (_tmp5_, " */\n\n");
#line 560 "../src/composer_library.vala"
	_tmp6_ = g_strdup ("");
#line 560 "../src/composer_library.vala"
	current_namespace = _tmp6_;
#line 5741 "composer_library.c"
	{
		GeeArrayList* _symbol_list = NULL;
		GeeArrayList* _tmp7_;
		gint _symbol_size = 0;
		GeeArrayList* _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _symbol_index = 0;
#line 561 "../src/composer_library.vala"
		_tmp7_ = self->priv->symbols;
#line 561 "../src/composer_library.vala"
		_symbol_list = _tmp7_;
#line 561 "../src/composer_library.vala"
		_tmp8_ = _symbol_list;
#line 561 "../src/composer_library.vala"
		_tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
#line 561 "../src/composer_library.vala"
		_tmp10_ = _tmp9_;
#line 561 "../src/composer_library.vala"
		_symbol_size = _tmp10_;
#line 561 "../src/composer_library.vala"
		_symbol_index = -1;
#line 561 "../src/composer_library.vala"
		while (TRUE) {
#line 5766 "composer_library.c"
			gint _tmp11_;
			gint _tmp12_;
			PhpToValaComposerLibraryComposerSymbol* symbol = NULL;
			GeeArrayList* _tmp13_;
			gpointer _tmp14_;
			PhpToValaComposerLibraryComposerSymbol* _tmp15_;
			const gchar* _tmp16_;
			const gchar* _tmp17_;
			GString* _tmp23_;
			PhpToValaComposerLibraryComposerSymbol* _tmp24_;
			const gchar* _tmp25_;
			GString* _tmp26_;
			PhpToValaComposerLibraryComposerSymbol* _tmp27_;
			const gchar* _tmp28_;
			gboolean _tmp29_ = FALSE;
			PhpToValaComposerLibraryComposerSymbol* _tmp30_;
			const gchar* _tmp31_;
			GString* _tmp38_;
			PhpToValaComposerLibraryComposerSymbol* _tmp39_;
			const gchar* _tmp40_;
			PhpToValaComposerLibraryComposerSymbol* _tmp41_;
			const gchar* _tmp42_;
			PhpToValaComposerLibraryComposerSymbol* _tmp57_;
			const gchar* _tmp58_;
			GString* _tmp62_;
			GString* _tmp205_;
#line 561 "../src/composer_library.vala"
			_symbol_index = _symbol_index + 1;
#line 561 "../src/composer_library.vala"
			_tmp11_ = _symbol_index;
#line 561 "../src/composer_library.vala"
			_tmp12_ = _symbol_size;
#line 561 "../src/composer_library.vala"
			if (!(_tmp11_ < _tmp12_)) {
#line 561 "../src/composer_library.vala"
				break;
#line 5803 "composer_library.c"
			}
#line 561 "../src/composer_library.vala"
			_tmp13_ = _symbol_list;
#line 561 "../src/composer_library.vala"
			_tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _symbol_index);
#line 561 "../src/composer_library.vala"
			symbol = (PhpToValaComposerLibraryComposerSymbol*) _tmp14_;
#line 562 "../src/composer_library.vala"
			_tmp15_ = symbol;
#line 562 "../src/composer_library.vala"
			_tmp16_ = _tmp15_->namespace_name;
#line 562 "../src/composer_library.vala"
			_tmp17_ = current_namespace;
#line 562 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp16_, _tmp17_) != 0) {
#line 5819 "composer_library.c"
				PhpToValaComposerLibraryComposerSymbol* _tmp18_;
				const gchar* _tmp19_;
				gchar* _tmp20_;
				GString* _tmp21_;
				const gchar* _tmp22_;
#line 563 "../src/composer_library.vala"
				_tmp18_ = symbol;
#line 563 "../src/composer_library.vala"
				_tmp19_ = _tmp18_->namespace_name;
#line 563 "../src/composer_library.vala"
				_tmp20_ = g_strdup (_tmp19_);
#line 563 "../src/composer_library.vala"
				_g_free0 (current_namespace);
#line 563 "../src/composer_library.vala"
				current_namespace = _tmp20_;
#line 564 "../src/composer_library.vala"
				_tmp21_ = output;
#line 564 "../src/composer_library.vala"
				_tmp22_ = current_namespace;
#line 564 "../src/composer_library.vala"
				g_string_append_printf (_tmp21_, "namespace %s;\n\n", _tmp22_);
#line 5841 "composer_library.c"
			}
#line 566 "../src/composer_library.vala"
			_tmp23_ = output;
#line 566 "../src/composer_library.vala"
			_tmp24_ = symbol;
#line 566 "../src/composer_library.vala"
			_tmp25_ = _tmp24_->doc_comment;
#line 566 "../src/composer_library.vala"
			php_to_vala_composer_library_append_doc (_tmp23_, _tmp25_, "");
#line 567 "../src/composer_library.vala"
			_tmp26_ = output;
#line 567 "../src/composer_library.vala"
			_tmp27_ = symbol;
#line 567 "../src/composer_library.vala"
			_tmp28_ = _tmp27_->kind;
#line 567 "../src/composer_library.vala"
			g_string_append (_tmp26_, _tmp28_);
#line 568 "../src/composer_library.vala"
			_tmp30_ = symbol;
#line 568 "../src/composer_library.vala"
			_tmp31_ = _tmp30_->kind;
#line 568 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp31_, "class") == 0) {
#line 5865 "composer_library.c"
				PhpToValaComposerLibraryComposerSymbol* _tmp32_;
#line 568 "../src/composer_library.vala"
				_tmp32_ = symbol;
#line 568 "../src/composer_library.vala"
				_tmp29_ = _tmp32_->is_abstract;
#line 5871 "composer_library.c"
			} else {
#line 568 "../src/composer_library.vala"
				_tmp29_ = FALSE;
#line 5875 "composer_library.c"
			}
#line 568 "../src/composer_library.vala"
			if (_tmp29_) {
#line 5879 "composer_library.c"
				GString* _tmp33_;
				GString* _tmp34_;
				gint _tmp35_;
				gint _tmp36_;
				GString* _tmp37_;
#line 569 "../src/composer_library.vala"
				_tmp33_ = output;
#line 569 "../src/composer_library.vala"
				_tmp34_ = output;
#line 569 "../src/composer_library.vala"
				_tmp35_ = strlen ("class");
#line 569 "../src/composer_library.vala"
				_tmp36_ = _tmp35_;
#line 569 "../src/composer_library.vala"
				g_string_truncate (_tmp33_, (gsize) (_tmp34_->len - _tmp36_));
#line 570 "../src/composer_library.vala"
				_tmp37_ = output;
#line 570 "../src/composer_library.vala"
				g_string_append (_tmp37_, "abstract class");
#line 5899 "composer_library.c"
			}
#line 572 "../src/composer_library.vala"
			_tmp38_ = output;
#line 572 "../src/composer_library.vala"
			_tmp39_ = symbol;
#line 572 "../src/composer_library.vala"
			_tmp40_ = _tmp39_->name;
#line 572 "../src/composer_library.vala"
			g_string_append_printf (_tmp38_, " %s", _tmp40_);
#line 573 "../src/composer_library.vala"
			_tmp41_ = symbol;
#line 573 "../src/composer_library.vala"
			_tmp42_ = _tmp41_->extends_name;
#line 573 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp42_, "") != 0) {
#line 5915 "composer_library.c"
				gchar* _tmp43_ = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp44_;
				const gchar* _tmp45_;
				PhpToValaComposerLibraryComposerSymbol* _tmp46_;
				const gchar* _tmp47_;
				gchar* extends_name = NULL;
				gchar* _tmp54_;
				GString* _tmp55_;
				const gchar* _tmp56_;
#line 574 "../src/composer_library.vala"
				_tmp44_ = symbol;
#line 574 "../src/composer_library.vala"
				_tmp45_ = _tmp44_->extends_name;
#line 574 "../src/composer_library.vala"
				_tmp46_ = symbol;
#line 574 "../src/composer_library.vala"
				_tmp47_ = _tmp46_->name;
#line 574 "../src/composer_library.vala"
				if (g_strcmp0 (_tmp45_, _tmp47_) == 0) {
#line 5935 "composer_library.c"
					PhpToValaComposerLibraryComposerSymbol* _tmp48_;
					const gchar* _tmp49_;
					gchar* _tmp50_;
#line 574 "../src/composer_library.vala"
					_tmp48_ = symbol;
#line 574 "../src/composer_library.vala"
					_tmp49_ = _tmp48_->extends_name;
#line 574 "../src/composer_library.vala"
					_tmp50_ = g_strconcat ("\\", _tmp49_, NULL);
#line 574 "../src/composer_library.vala"
					_g_free0 (_tmp43_);
#line 574 "../src/composer_library.vala"
					_tmp43_ = _tmp50_;
#line 5949 "composer_library.c"
				} else {
					PhpToValaComposerLibraryComposerSymbol* _tmp51_;
					const gchar* _tmp52_;
					gchar* _tmp53_;
#line 574 "../src/composer_library.vala"
					_tmp51_ = symbol;
#line 574 "../src/composer_library.vala"
					_tmp52_ = _tmp51_->extends_name;
#line 574 "../src/composer_library.vala"
					_tmp53_ = g_strdup (_tmp52_);
#line 574 "../src/composer_library.vala"
					_g_free0 (_tmp43_);
#line 574 "../src/composer_library.vala"
					_tmp43_ = _tmp53_;
#line 5964 "composer_library.c"
				}
#line 574 "../src/composer_library.vala"
				_tmp54_ = _tmp43_;
#line 574 "../src/composer_library.vala"
				_tmp43_ = NULL;
#line 574 "../src/composer_library.vala"
				extends_name = _tmp54_;
#line 575 "../src/composer_library.vala"
				_tmp55_ = output;
#line 575 "../src/composer_library.vala"
				_tmp56_ = extends_name;
#line 575 "../src/composer_library.vala"
				g_string_append_printf (_tmp55_, " extends %s", _tmp56_);
#line 573 "../src/composer_library.vala"
				_g_free0 (extends_name);
#line 573 "../src/composer_library.vala"
				_g_free0 (_tmp43_);
#line 5982 "composer_library.c"
			}
#line 577 "../src/composer_library.vala"
			_tmp57_ = symbol;
#line 577 "../src/composer_library.vala"
			_tmp58_ = _tmp57_->implements_name;
#line 577 "../src/composer_library.vala"
			if (g_strcmp0 (_tmp58_, "") != 0) {
#line 5990 "composer_library.c"
				GString* _tmp59_;
				PhpToValaComposerLibraryComposerSymbol* _tmp60_;
				const gchar* _tmp61_;
#line 578 "../src/composer_library.vala"
				_tmp59_ = output;
#line 578 "../src/composer_library.vala"
				_tmp60_ = symbol;
#line 578 "../src/composer_library.vala"
				_tmp61_ = _tmp60_->implements_name;
#line 578 "../src/composer_library.vala"
				g_string_append_printf (_tmp59_, " implements %s", _tmp61_);
#line 6002 "composer_library.c"
			}
#line 580 "../src/composer_library.vala"
			_tmp62_ = output;
#line 580 "../src/composer_library.vala"
			g_string_append (_tmp62_, " {\n");
#line 6008 "composer_library.c"
			{
				GeeArrayList* _constant_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp63_;
				GeeArrayList* _tmp64_;
				gint _constant_size = 0;
				GeeArrayList* _tmp65_;
				gint _tmp66_;
				gint _tmp67_;
				gint _constant_index = 0;
#line 581 "../src/composer_library.vala"
				_tmp63_ = symbol;
#line 581 "../src/composer_library.vala"
				_tmp64_ = _tmp63_->constants;
#line 581 "../src/composer_library.vala"
				_constant_list = _tmp64_;
#line 581 "../src/composer_library.vala"
				_tmp65_ = _constant_list;
#line 581 "../src/composer_library.vala"
				_tmp66_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp65_);
#line 581 "../src/composer_library.vala"
				_tmp67_ = _tmp66_;
#line 581 "../src/composer_library.vala"
				_constant_size = _tmp67_;
#line 581 "../src/composer_library.vala"
				_constant_index = -1;
#line 581 "../src/composer_library.vala"
				while (TRUE) {
#line 6036 "composer_library.c"
					gint _tmp68_;
					gint _tmp69_;
					PhpToValaComposerLibraryComposerConstant* constant = NULL;
					GeeArrayList* _tmp70_;
					gpointer _tmp71_;
					GString* _tmp72_;
					PhpToValaComposerLibraryComposerConstant* _tmp73_;
					const gchar* _tmp74_;
					PhpToValaComposerLibraryComposerConstant* _tmp75_;
					const gchar* _tmp76_;
#line 581 "../src/composer_library.vala"
					_constant_index = _constant_index + 1;
#line 581 "../src/composer_library.vala"
					_tmp68_ = _constant_index;
#line 581 "../src/composer_library.vala"
					_tmp69_ = _constant_size;
#line 581 "../src/composer_library.vala"
					if (!(_tmp68_ < _tmp69_)) {
#line 581 "../src/composer_library.vala"
						break;
#line 6057 "composer_library.c"
					}
#line 581 "../src/composer_library.vala"
					_tmp70_ = _constant_list;
#line 581 "../src/composer_library.vala"
					_tmp71_ = gee_abstract_list_get ((GeeAbstractList*) _tmp70_, _constant_index);
#line 581 "../src/composer_library.vala"
					constant = (PhpToValaComposerLibraryComposerConstant*) _tmp71_;
#line 582 "../src/composer_library.vala"
					_tmp72_ = output;
#line 582 "../src/composer_library.vala"
					_tmp73_ = constant;
#line 582 "../src/composer_library.vala"
					_tmp74_ = _tmp73_->name;
#line 582 "../src/composer_library.vala"
					_tmp75_ = constant;
#line 582 "../src/composer_library.vala"
					_tmp76_ = _tmp75_->value;
#line 582 "../src/composer_library.vala"
					g_string_append_printf (_tmp72_, "    const %s = %s;\n", _tmp74_, _tmp76_);
#line 581 "../src/composer_library.vala"
					_g_object_unref0 (constant);
#line 6079 "composer_library.c"
				}
			}
			{
				GeeArrayList* _property_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp77_;
				GeeArrayList* _tmp78_;
				gint _property_size = 0;
				GeeArrayList* _tmp79_;
				gint _tmp80_;
				gint _tmp81_;
				gint _property_index = 0;
#line 584 "../src/composer_library.vala"
				_tmp77_ = symbol;
#line 584 "../src/composer_library.vala"
				_tmp78_ = _tmp77_->properties;
#line 584 "../src/composer_library.vala"
				_property_list = _tmp78_;
#line 584 "../src/composer_library.vala"
				_tmp79_ = _property_list;
#line 584 "../src/composer_library.vala"
				_tmp80_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp79_);
#line 584 "../src/composer_library.vala"
				_tmp81_ = _tmp80_;
#line 584 "../src/composer_library.vala"
				_property_size = _tmp81_;
#line 584 "../src/composer_library.vala"
				_property_index = -1;
#line 584 "../src/composer_library.vala"
				while (TRUE) {
#line 6109 "composer_library.c"
					gint _tmp82_;
					gint _tmp83_;
					PhpToValaComposerLibraryComposerProperty* property = NULL;
					GeeArrayList* _tmp84_;
					gpointer _tmp85_;
					gchar* _tmp86_ = NULL;
					PhpToValaComposerLibraryComposerProperty* _tmp87_;
					GString* _tmp101_;
					PhpToValaComposerLibraryComposerProperty* _tmp102_;
					const gchar* _tmp103_;
					PhpToValaComposerLibraryComposerProperty* _tmp104_;
					const gchar* _tmp105_;
#line 584 "../src/composer_library.vala"
					_property_index = _property_index + 1;
#line 584 "../src/composer_library.vala"
					_tmp82_ = _property_index;
#line 584 "../src/composer_library.vala"
					_tmp83_ = _property_size;
#line 584 "../src/composer_library.vala"
					if (!(_tmp82_ < _tmp83_)) {
#line 584 "../src/composer_library.vala"
						break;
#line 6132 "composer_library.c"
					}
#line 584 "../src/composer_library.vala"
					_tmp84_ = _property_list;
#line 584 "../src/composer_library.vala"
					_tmp85_ = gee_abstract_list_get ((GeeAbstractList*) _tmp84_, _property_index);
#line 584 "../src/composer_library.vala"
					property = (PhpToValaComposerLibraryComposerProperty*) _tmp85_;
#line 585 "../src/composer_library.vala"
					_tmp87_ = property;
#line 585 "../src/composer_library.vala"
					if (_tmp87_->nullable) {
#line 6144 "composer_library.c"
						PhpToValaComposerLibraryComposerProperty* _tmp88_;
						const gchar* _tmp89_;
						gchar* _tmp90_;
						gchar* _tmp91_;
						gchar* _tmp92_;
#line 585 "../src/composer_library.vala"
						_tmp88_ = property;
#line 585 "../src/composer_library.vala"
						_tmp89_ = _tmp88_->type_name;
#line 585 "../src/composer_library.vala"
						_tmp90_ = g_strconcat ("?", _tmp89_, NULL);
#line 585 "../src/composer_library.vala"
						_tmp91_ = _tmp90_;
#line 585 "../src/composer_library.vala"
						_tmp92_ = g_strconcat (_tmp91_, " ", NULL);
#line 585 "../src/composer_library.vala"
						_g_free0 (_tmp86_);
#line 585 "../src/composer_library.vala"
						_tmp86_ = _tmp92_;
#line 585 "../src/composer_library.vala"
						_g_free0 (_tmp91_);
#line 6166 "composer_library.c"
					} else {
						gchar* _tmp93_ = NULL;
						PhpToValaComposerLibraryComposerProperty* _tmp94_;
						const gchar* _tmp95_;
						gchar* _tmp100_;
#line 585 "../src/composer_library.vala"
						_tmp94_ = property;
#line 585 "../src/composer_library.vala"
						_tmp95_ = _tmp94_->type_name;
#line 585 "../src/composer_library.vala"
						if (g_strcmp0 (_tmp95_, "") == 0) {
#line 6178 "composer_library.c"
							gchar* _tmp96_;
#line 585 "../src/composer_library.vala"
							_tmp96_ = g_strdup ("");
#line 585 "../src/composer_library.vala"
							_g_free0 (_tmp93_);
#line 585 "../src/composer_library.vala"
							_tmp93_ = _tmp96_;
#line 6186 "composer_library.c"
						} else {
							PhpToValaComposerLibraryComposerProperty* _tmp97_;
							const gchar* _tmp98_;
							gchar* _tmp99_;
#line 585 "../src/composer_library.vala"
							_tmp97_ = property;
#line 585 "../src/composer_library.vala"
							_tmp98_ = _tmp97_->type_name;
#line 585 "../src/composer_library.vala"
							_tmp99_ = g_strconcat (_tmp98_, " ", NULL);
#line 585 "../src/composer_library.vala"
							_g_free0 (_tmp93_);
#line 585 "../src/composer_library.vala"
							_tmp93_ = _tmp99_;
#line 6201 "composer_library.c"
						}
#line 585 "../src/composer_library.vala"
						_tmp100_ = _tmp93_;
#line 585 "../src/composer_library.vala"
						_tmp93_ = NULL;
#line 585 "../src/composer_library.vala"
						_g_free0 (_tmp86_);
#line 585 "../src/composer_library.vala"
						_tmp86_ = _tmp100_;
#line 585 "../src/composer_library.vala"
						_g_free0 (_tmp93_);
#line 6213 "composer_library.c"
					}
#line 585 "../src/composer_library.vala"
					_tmp101_ = output;
#line 585 "../src/composer_library.vala"
					_tmp102_ = property;
#line 585 "../src/composer_library.vala"
					_tmp103_ = _tmp102_->visibility;
#line 585 "../src/composer_library.vala"
					_tmp104_ = property;
#line 585 "../src/composer_library.vala"
					_tmp105_ = _tmp104_->name;
#line 585 "../src/composer_library.vala"
					g_string_append_printf (_tmp101_, "    %s %s$%s = null;\n", _tmp103_, _tmp86_, _tmp105_);
#line 584 "../src/composer_library.vala"
					_g_free0 (_tmp86_);
#line 584 "../src/composer_library.vala"
					_g_object_unref0 (property);
#line 6231 "composer_library.c"
				}
			}
			{
				GeeArrayList* _trait_name_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp106_;
				GeeArrayList* _tmp107_;
				gint _trait_name_size = 0;
				GeeArrayList* _tmp108_;
				gint _tmp109_;
				gint _tmp110_;
				gint _trait_name_index = 0;
#line 587 "../src/composer_library.vala"
				_tmp106_ = symbol;
#line 587 "../src/composer_library.vala"
				_tmp107_ = _tmp106_->traits;
#line 587 "../src/composer_library.vala"
				_trait_name_list = _tmp107_;
#line 587 "../src/composer_library.vala"
				_tmp108_ = _trait_name_list;
#line 587 "../src/composer_library.vala"
				_tmp109_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp108_);
#line 587 "../src/composer_library.vala"
				_tmp110_ = _tmp109_;
#line 587 "../src/composer_library.vala"
				_trait_name_size = _tmp110_;
#line 587 "../src/composer_library.vala"
				_trait_name_index = -1;
#line 587 "../src/composer_library.vala"
				while (TRUE) {
#line 6261 "composer_library.c"
					gint _tmp111_;
					gint _tmp112_;
					gchar* trait_name = NULL;
					GeeArrayList* _tmp113_;
					gpointer _tmp114_;
					GString* _tmp115_;
					const gchar* _tmp116_;
					PhpToValaComposerLibraryComposerSymbol* _tmp117_ = NULL;
					GeeHashMap* _tmp118_;
					const gchar* _tmp119_;
					gpointer _tmp120_;
					PhpToValaComposerLibraryComposerSymbol* trait = NULL;
					PhpToValaComposerLibraryComposerSymbol* _tmp130_;
					PhpToValaComposerLibraryComposerSymbol* _tmp131_;
#line 587 "../src/composer_library.vala"
					_trait_name_index = _trait_name_index + 1;
#line 587 "../src/composer_library.vala"
					_tmp111_ = _trait_name_index;
#line 587 "../src/composer_library.vala"
					_tmp112_ = _trait_name_size;
#line 587 "../src/composer_library.vala"
					if (!(_tmp111_ < _tmp112_)) {
#line 587 "../src/composer_library.vala"
						break;
#line 6286 "composer_library.c"
					}
#line 587 "../src/composer_library.vala"
					_tmp113_ = _trait_name_list;
#line 587 "../src/composer_library.vala"
					_tmp114_ = gee_abstract_list_get ((GeeAbstractList*) _tmp113_, _trait_name_index);
#line 587 "../src/composer_library.vala"
					trait_name = (gchar*) _tmp114_;
#line 588 "../src/composer_library.vala"
					_tmp115_ = output;
#line 588 "../src/composer_library.vala"
					_tmp116_ = trait_name;
#line 588 "../src/composer_library.vala"
					g_string_append_printf (_tmp115_, "    use %s;\n", _tmp116_);
#line 589 "../src/composer_library.vala"
					_tmp118_ = self->priv->symbol_by_name;
#line 589 "../src/composer_library.vala"
					_tmp119_ = trait_name;
#line 589 "../src/composer_library.vala"
					_tmp120_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp118_, _tmp119_);
#line 589 "../src/composer_library.vala"
					_tmp117_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp120_;
#line 589 "../src/composer_library.vala"
					if (_tmp117_ == NULL) {
#line 6310 "composer_library.c"
						GeeHashMap* _tmp121_;
						PhpToValaComposerLibraryComposerSymbol* _tmp122_;
						const gchar* _tmp123_;
						gchar* _tmp124_;
						gchar* _tmp125_;
						const gchar* _tmp126_;
						gchar* _tmp127_;
						gchar* _tmp128_;
						gpointer _tmp129_;
#line 589 "../src/composer_library.vala"
						_tmp121_ = self->priv->symbol_by_name;
#line 589 "../src/composer_library.vala"
						_tmp122_ = symbol;
#line 589 "../src/composer_library.vala"
						_tmp123_ = _tmp122_->namespace_name;
#line 589 "../src/composer_library.vala"
						_tmp124_ = g_strconcat (_tmp123_, "\\", NULL);
#line 589 "../src/composer_library.vala"
						_tmp125_ = _tmp124_;
#line 589 "../src/composer_library.vala"
						_tmp126_ = trait_name;
#line 589 "../src/composer_library.vala"
						_tmp127_ = g_strconcat (_tmp125_, _tmp126_, NULL);
#line 589 "../src/composer_library.vala"
						_tmp128_ = _tmp127_;
#line 589 "../src/composer_library.vala"
						_tmp129_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp121_, _tmp128_);
#line 589 "../src/composer_library.vala"
						_g_object_unref0 (_tmp117_);
#line 589 "../src/composer_library.vala"
						_tmp117_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp129_;
#line 589 "../src/composer_library.vala"
						_g_free0 (_tmp128_);
#line 589 "../src/composer_library.vala"
						_g_free0 (_tmp125_);
#line 6346 "composer_library.c"
					}
#line 589 "../src/composer_library.vala"
					_tmp130_ = _tmp117_;
#line 589 "../src/composer_library.vala"
					_tmp117_ = NULL;
#line 589 "../src/composer_library.vala"
					trait = _tmp130_;
#line 590 "../src/composer_library.vala"
					_tmp131_ = trait;
#line 590 "../src/composer_library.vala"
					if (_tmp131_ != NULL) {
#line 6358 "composer_library.c"
						{
							GeeArrayList* _method_list = NULL;
							PhpToValaComposerLibraryComposerSymbol* _tmp132_;
							GeeArrayList* _tmp133_;
							gint _method_size = 0;
							GeeArrayList* _tmp134_;
							gint _tmp135_;
							gint _tmp136_;
							gint _method_index = 0;
#line 591 "../src/composer_library.vala"
							_tmp132_ = trait;
#line 591 "../src/composer_library.vala"
							_tmp133_ = _tmp132_->methods;
#line 591 "../src/composer_library.vala"
							_method_list = _tmp133_;
#line 591 "../src/composer_library.vala"
							_tmp134_ = _method_list;
#line 591 "../src/composer_library.vala"
							_tmp135_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp134_);
#line 591 "../src/composer_library.vala"
							_tmp136_ = _tmp135_;
#line 591 "../src/composer_library.vala"
							_method_size = _tmp136_;
#line 591 "../src/composer_library.vala"
							_method_index = -1;
#line 591 "../src/composer_library.vala"
							while (TRUE) {
#line 6386 "composer_library.c"
								gint _tmp137_;
								gint _tmp138_;
								PhpToValaComposerLibraryComposerMethod* method = NULL;
								GeeArrayList* _tmp139_;
								gpointer _tmp140_;
								GString* _tmp141_;
								PhpToValaComposerLibraryComposerMethod* _tmp142_;
								const gchar* _tmp143_;
								const gchar* _tmp144_ = NULL;
								PhpToValaComposerLibraryComposerMethod* _tmp145_;
								gchar* prefix = NULL;
								gchar* _tmp146_;
								const gchar* _tmp147_ = NULL;
								PhpToValaComposerLibraryComposerMethod* _tmp148_;
								gchar* suffix = NULL;
								gchar* _tmp149_;
								const gchar* _tmp150_ = NULL;
								PhpToValaComposerLibraryComposerMethod* _tmp151_;
								const gchar* _tmp152_ = NULL;
								PhpToValaComposerLibraryComposerMethod* _tmp153_;
								const gchar* _tmp154_;
								GString* _tmp157_;
								const gchar* _tmp158_;
								PhpToValaComposerLibraryComposerMethod* _tmp159_;
								const gchar* _tmp160_;
								PhpToValaComposerLibraryComposerMethod* _tmp161_;
								const gchar* _tmp162_;
								PhpToValaComposerLibraryComposerMethod* _tmp163_;
								gchar* _tmp164_;
								gchar* _tmp165_;
								const gchar* _tmp166_;
#line 591 "../src/composer_library.vala"
								_method_index = _method_index + 1;
#line 591 "../src/composer_library.vala"
								_tmp137_ = _method_index;
#line 591 "../src/composer_library.vala"
								_tmp138_ = _method_size;
#line 591 "../src/composer_library.vala"
								if (!(_tmp137_ < _tmp138_)) {
#line 591 "../src/composer_library.vala"
									break;
#line 6428 "composer_library.c"
								}
#line 591 "../src/composer_library.vala"
								_tmp139_ = _method_list;
#line 591 "../src/composer_library.vala"
								_tmp140_ = gee_abstract_list_get ((GeeAbstractList*) _tmp139_, _method_index);
#line 591 "../src/composer_library.vala"
								method = (PhpToValaComposerLibraryComposerMethod*) _tmp140_;
#line 592 "../src/composer_library.vala"
								_tmp141_ = output;
#line 592 "../src/composer_library.vala"
								_tmp142_ = method;
#line 592 "../src/composer_library.vala"
								_tmp143_ = _tmp142_->doc_comment;
#line 592 "../src/composer_library.vala"
								php_to_vala_composer_library_append_doc (_tmp141_, _tmp143_, "    ");
#line 593 "../src/composer_library.vala"
								_tmp145_ = method;
#line 593 "../src/composer_library.vala"
								if (_tmp145_->is_abstract) {
#line 593 "../src/composer_library.vala"
									_tmp144_ = "abstract ";
#line 6450 "composer_library.c"
								} else {
#line 593 "../src/composer_library.vala"
									_tmp144_ = "";
#line 6454 "composer_library.c"
								}
#line 593 "../src/composer_library.vala"
								_tmp146_ = g_strdup (_tmp144_);
#line 593 "../src/composer_library.vala"
								prefix = _tmp146_;
#line 594 "../src/composer_library.vala"
								_tmp148_ = method;
#line 594 "../src/composer_library.vala"
								if (_tmp148_->is_abstract) {
#line 594 "../src/composer_library.vala"
									_tmp147_ = ";";
#line 6466 "composer_library.c"
								} else {
#line 594 "../src/composer_library.vala"
									_tmp147_ = " {}";
#line 6470 "composer_library.c"
								}
#line 594 "../src/composer_library.vala"
								_tmp149_ = g_strdup (_tmp147_);
#line 594 "../src/composer_library.vala"
								suffix = _tmp149_;
#line 595 "../src/composer_library.vala"
								_tmp151_ = method;
#line 595 "../src/composer_library.vala"
								if (_tmp151_->is_static) {
#line 595 "../src/composer_library.vala"
									_tmp150_ = " static ";
#line 6482 "composer_library.c"
								} else {
#line 595 "../src/composer_library.vala"
									_tmp150_ = " ";
#line 6486 "composer_library.c"
								}
#line 595 "../src/composer_library.vala"
								_tmp153_ = method;
#line 595 "../src/composer_library.vala"
								_tmp154_ = _tmp153_->return_type;
#line 595 "../src/composer_library.vala"
								if (g_strcmp0 (_tmp154_, "") == 0) {
#line 595 "../src/composer_library.vala"
									_tmp152_ = "mixed";
#line 6496 "composer_library.c"
								} else {
									PhpToValaComposerLibraryComposerMethod* _tmp155_;
									const gchar* _tmp156_;
#line 595 "../src/composer_library.vala"
									_tmp155_ = method;
#line 595 "../src/composer_library.vala"
									_tmp156_ = _tmp155_->return_type;
#line 595 "../src/composer_library.vala"
									_tmp152_ = _tmp156_;
#line 6506 "composer_library.c"
								}
#line 595 "../src/composer_library.vala"
								_tmp157_ = output;
#line 595 "../src/composer_library.vala"
								_tmp158_ = prefix;
#line 595 "../src/composer_library.vala"
								_tmp159_ = method;
#line 595 "../src/composer_library.vala"
								_tmp160_ = _tmp159_->visibility;
#line 595 "../src/composer_library.vala"
								_tmp161_ = method;
#line 595 "../src/composer_library.vala"
								_tmp162_ = _tmp161_->name;
#line 595 "../src/composer_library.vala"
								_tmp163_ = method;
#line 595 "../src/composer_library.vala"
								_tmp164_ = php_to_vala_composer_library_php_parameter_list (_tmp163_);
#line 595 "../src/composer_library.vala"
								_tmp165_ = _tmp164_;
#line 595 "../src/composer_library.vala"
								_tmp166_ = suffix;
#line 595 "../src/composer_library.vala"
								g_string_append_printf (_tmp157_, "    %s%s%sfunction %s(%s): %s%s\n", _tmp158_, _tmp160_, _tmp150_, _tmp162_, _tmp165_, _tmp152_, _tmp166_);
#line 595 "../src/composer_library.vala"
								_g_free0 (_tmp165_);
#line 591 "../src/composer_library.vala"
								_g_free0 (suffix);
#line 591 "../src/composer_library.vala"
								_g_free0 (prefix);
#line 591 "../src/composer_library.vala"
								_g_object_unref0 (method);
#line 6538 "composer_library.c"
							}
						}
					}
#line 587 "../src/composer_library.vala"
					_g_object_unref0 (trait);
#line 587 "../src/composer_library.vala"
					_g_object_unref0 (_tmp117_);
#line 587 "../src/composer_library.vala"
					_g_free0 (trait_name);
#line 6548 "composer_library.c"
				}
			}
			{
				GeeArrayList* _method_list = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp167_;
				GeeArrayList* _tmp168_;
				gint _method_size = 0;
				GeeArrayList* _tmp169_;
				gint _tmp170_;
				gint _tmp171_;
				gint _method_index = 0;
#line 599 "../src/composer_library.vala"
				_tmp167_ = symbol;
#line 599 "../src/composer_library.vala"
				_tmp168_ = _tmp167_->methods;
#line 599 "../src/composer_library.vala"
				_method_list = _tmp168_;
#line 599 "../src/composer_library.vala"
				_tmp169_ = _method_list;
#line 599 "../src/composer_library.vala"
				_tmp170_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp169_);
#line 599 "../src/composer_library.vala"
				_tmp171_ = _tmp170_;
#line 599 "../src/composer_library.vala"
				_method_size = _tmp171_;
#line 599 "../src/composer_library.vala"
				_method_index = -1;
#line 599 "../src/composer_library.vala"
				while (TRUE) {
#line 6578 "composer_library.c"
					gint _tmp172_;
					gint _tmp173_;
					PhpToValaComposerLibraryComposerMethod* method = NULL;
					GeeArrayList* _tmp174_;
					gpointer _tmp175_;
					GString* _tmp176_;
					PhpToValaComposerLibraryComposerMethod* _tmp177_;
					const gchar* _tmp178_;
					const gchar* _tmp179_ = NULL;
					PhpToValaComposerLibraryComposerMethod* _tmp180_;
					gchar* prefix = NULL;
					gchar* _tmp181_;
					const gchar* _tmp182_ = NULL;
					gboolean _tmp183_ = FALSE;
					PhpToValaComposerLibraryComposerSymbol* _tmp184_;
					const gchar* _tmp185_;
					gchar* suffix = NULL;
					gchar* _tmp187_;
					const gchar* _tmp188_ = NULL;
					PhpToValaComposerLibraryComposerMethod* _tmp189_;
					const gchar* _tmp190_ = NULL;
					PhpToValaComposerLibraryComposerMethod* _tmp191_;
					const gchar* _tmp192_;
					GString* _tmp195_;
					const gchar* _tmp196_;
					PhpToValaComposerLibraryComposerMethod* _tmp197_;
					const gchar* _tmp198_;
					PhpToValaComposerLibraryComposerMethod* _tmp199_;
					const gchar* _tmp200_;
					PhpToValaComposerLibraryComposerMethod* _tmp201_;
					gchar* _tmp202_;
					gchar* _tmp203_;
					const gchar* _tmp204_;
#line 599 "../src/composer_library.vala"
					_method_index = _method_index + 1;
#line 599 "../src/composer_library.vala"
					_tmp172_ = _method_index;
#line 599 "../src/composer_library.vala"
					_tmp173_ = _method_size;
#line 599 "../src/composer_library.vala"
					if (!(_tmp172_ < _tmp173_)) {
#line 599 "../src/composer_library.vala"
						break;
#line 6622 "composer_library.c"
					}
#line 599 "../src/composer_library.vala"
					_tmp174_ = _method_list;
#line 599 "../src/composer_library.vala"
					_tmp175_ = gee_abstract_list_get ((GeeAbstractList*) _tmp174_, _method_index);
#line 599 "../src/composer_library.vala"
					method = (PhpToValaComposerLibraryComposerMethod*) _tmp175_;
#line 600 "../src/composer_library.vala"
					_tmp176_ = output;
#line 600 "../src/composer_library.vala"
					_tmp177_ = method;
#line 600 "../src/composer_library.vala"
					_tmp178_ = _tmp177_->doc_comment;
#line 600 "../src/composer_library.vala"
					php_to_vala_composer_library_append_doc (_tmp176_, _tmp178_, "    ");
#line 601 "../src/composer_library.vala"
					_tmp180_ = method;
#line 601 "../src/composer_library.vala"
					if (_tmp180_->is_abstract) {
#line 601 "../src/composer_library.vala"
						_tmp179_ = "abstract ";
#line 6644 "composer_library.c"
					} else {
#line 601 "../src/composer_library.vala"
						_tmp179_ = "";
#line 6648 "composer_library.c"
					}
#line 601 "../src/composer_library.vala"
					_tmp181_ = g_strdup (_tmp179_);
#line 601 "../src/composer_library.vala"
					prefix = _tmp181_;
#line 602 "../src/composer_library.vala"
					_tmp184_ = symbol;
#line 602 "../src/composer_library.vala"
					_tmp185_ = _tmp184_->kind;
#line 602 "../src/composer_library.vala"
					if (g_strcmp0 (_tmp185_, "interface") == 0) {
#line 602 "../src/composer_library.vala"
						_tmp183_ = TRUE;
#line 6662 "composer_library.c"
					} else {
						PhpToValaComposerLibraryComposerMethod* _tmp186_;
#line 602 "../src/composer_library.vala"
						_tmp186_ = method;
#line 602 "../src/composer_library.vala"
						_tmp183_ = _tmp186_->is_abstract;
#line 6669 "composer_library.c"
					}
#line 602 "../src/composer_library.vala"
					if (_tmp183_) {
#line 602 "../src/composer_library.vala"
						_tmp182_ = ";";
#line 6675 "composer_library.c"
					} else {
#line 602 "../src/composer_library.vala"
						_tmp182_ = " {}";
#line 6679 "composer_library.c"
					}
#line 602 "../src/composer_library.vala"
					_tmp187_ = g_strdup (_tmp182_);
#line 602 "../src/composer_library.vala"
					suffix = _tmp187_;
#line 603 "../src/composer_library.vala"
					_tmp189_ = method;
#line 603 "../src/composer_library.vala"
					if (_tmp189_->is_static) {
#line 603 "../src/composer_library.vala"
						_tmp188_ = " static ";
#line 6691 "composer_library.c"
					} else {
#line 603 "../src/composer_library.vala"
						_tmp188_ = " ";
#line 6695 "composer_library.c"
					}
#line 603 "../src/composer_library.vala"
					_tmp191_ = method;
#line 603 "../src/composer_library.vala"
					_tmp192_ = _tmp191_->return_type;
#line 603 "../src/composer_library.vala"
					if (g_strcmp0 (_tmp192_, "") == 0) {
#line 603 "../src/composer_library.vala"
						_tmp190_ = "mixed";
#line 6705 "composer_library.c"
					} else {
						PhpToValaComposerLibraryComposerMethod* _tmp193_;
						const gchar* _tmp194_;
#line 603 "../src/composer_library.vala"
						_tmp193_ = method;
#line 603 "../src/composer_library.vala"
						_tmp194_ = _tmp193_->return_type;
#line 603 "../src/composer_library.vala"
						_tmp190_ = _tmp194_;
#line 6715 "composer_library.c"
					}
#line 603 "../src/composer_library.vala"
					_tmp195_ = output;
#line 603 "../src/composer_library.vala"
					_tmp196_ = prefix;
#line 603 "../src/composer_library.vala"
					_tmp197_ = method;
#line 603 "../src/composer_library.vala"
					_tmp198_ = _tmp197_->visibility;
#line 603 "../src/composer_library.vala"
					_tmp199_ = method;
#line 603 "../src/composer_library.vala"
					_tmp200_ = _tmp199_->name;
#line 603 "../src/composer_library.vala"
					_tmp201_ = method;
#line 603 "../src/composer_library.vala"
					_tmp202_ = php_to_vala_composer_library_php_parameter_list (_tmp201_);
#line 603 "../src/composer_library.vala"
					_tmp203_ = _tmp202_;
#line 603 "../src/composer_library.vala"
					_tmp204_ = suffix;
#line 603 "../src/composer_library.vala"
					g_string_append_printf (_tmp195_, "    %s%s%sfunction %s(%s): %s%s\n", _tmp196_, _tmp198_, _tmp188_, _tmp200_, _tmp203_, _tmp190_, _tmp204_);
#line 603 "../src/composer_library.vala"
					_g_free0 (_tmp203_);
#line 599 "../src/composer_library.vala"
					_g_free0 (suffix);
#line 599 "../src/composer_library.vala"
					_g_free0 (prefix);
#line 599 "../src/composer_library.vala"
					_g_object_unref0 (method);
#line 6747 "composer_library.c"
				}
			}
#line 605 "../src/composer_library.vala"
			_tmp205_ = output;
#line 605 "../src/composer_library.vala"
			g_string_append (_tmp205_, "}\n\n");
#line 561 "../src/composer_library.vala"
			_g_object_unref0 (symbol);
#line 6756 "composer_library.c"
		}
	}
#line 607 "../src/composer_library.vala"
	_tmp206_ = output;
#line 607 "../src/composer_library.vala"
	_tmp207_ = _tmp206_->str;
#line 607 "../src/composer_library.vala"
	_tmp208_ = g_strdup (_tmp207_);
#line 607 "../src/composer_library.vala"
	result = _tmp208_;
#line 607 "../src/composer_library.vala"
	_g_free0 (current_namespace);
#line 607 "../src/composer_library.vala"
	_g_string_free0 (output);
#line 607 "../src/composer_library.vala"
	return result;
#line 6773 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_vala_parent_for (PhpToValaComposerLibrary* self,
                                              PhpToValaComposerLibraryComposerSymbol* symbol)
{
	const gchar* _tmp0_;
	gchar* parent = NULL;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* result;
#line 610 "../src/composer_library.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 610 "../src/composer_library.vala"
	g_return_val_if_fail (symbol != NULL, NULL);
#line 611 "../src/composer_library.vala"
	_tmp0_ = symbol->extends_name;
#line 611 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp0_, "") == 0) {
#line 6794 "composer_library.c"
		gchar* _tmp1_;
#line 612 "../src/composer_library.vala"
		_tmp1_ = g_strdup ("Object");
#line 612 "../src/composer_library.vala"
		result = _tmp1_;
#line 612 "../src/composer_library.vala"
		return result;
#line 6802 "composer_library.c"
	}
#line 614 "../src/composer_library.vala"
	_tmp2_ = symbol->extends_name;
#line 614 "../src/composer_library.vala"
	_tmp3_ = php_to_vala_composer_library_short_php_name (_tmp2_);
#line 614 "../src/composer_library.vala"
	parent = _tmp3_;
#line 615 "../src/composer_library.vala"
	_tmp4_ = parent;
#line 615 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp4_, "InvalidArgumentException") == 0) {
#line 6814 "composer_library.c"
		gchar* _tmp5_;
#line 616 "../src/composer_library.vala"
		_tmp5_ = g_strdup ("Object");
#line 616 "../src/composer_library.vala"
		result = _tmp5_;
#line 616 "../src/composer_library.vala"
		_g_free0 (parent);
#line 616 "../src/composer_library.vala"
		return result;
#line 6824 "composer_library.c"
	}
#line 618 "../src/composer_library.vala"
	result = parent;
#line 618 "../src/composer_library.vala"
	return result;
#line 6830 "composer_library.c"
}

static gboolean
php_to_vala_composer_library_overrides_parent_method (PhpToValaComposerLibrary* self,
                                                      PhpToValaComposerLibraryComposerSymbol* owner,
                                                      const gchar* method_name)
{
	const gchar* _tmp0_;
	PhpToValaComposerLibraryComposerSymbol* _tmp1_ = NULL;
	GeeHashMap* _tmp2_;
	const gchar* _tmp3_;
	gpointer _tmp4_;
	PhpToValaComposerLibraryComposerSymbol* parent = NULL;
	PhpToValaComposerLibraryComposerSymbol* _tmp13_;
	gboolean result;
#line 621 "../src/composer_library.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 621 "../src/composer_library.vala"
	g_return_val_if_fail (owner != NULL, FALSE);
#line 621 "../src/composer_library.vala"
	g_return_val_if_fail (method_name != NULL, FALSE);
#line 622 "../src/composer_library.vala"
	_tmp0_ = owner->extends_name;
#line 622 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp0_, "") == 0) {
#line 623 "../src/composer_library.vala"
		result = FALSE;
#line 623 "../src/composer_library.vala"
		return result;
#line 6860 "composer_library.c"
	}
#line 625 "../src/composer_library.vala"
	_tmp2_ = self->priv->symbol_by_name;
#line 625 "../src/composer_library.vala"
	_tmp3_ = owner->extends_name;
#line 625 "../src/composer_library.vala"
	_tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp2_, _tmp3_);
#line 625 "../src/composer_library.vala"
	_tmp1_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp4_;
#line 625 "../src/composer_library.vala"
	if (_tmp1_ == NULL) {
#line 6872 "composer_library.c"
		GeeHashMap* _tmp5_;
		const gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gpointer _tmp12_;
#line 625 "../src/composer_library.vala"
		_tmp5_ = self->priv->symbol_by_name;
#line 625 "../src/composer_library.vala"
		_tmp6_ = owner->namespace_name;
#line 625 "../src/composer_library.vala"
		_tmp7_ = g_strconcat (_tmp6_, "\\", NULL);
#line 625 "../src/composer_library.vala"
		_tmp8_ = _tmp7_;
#line 625 "../src/composer_library.vala"
		_tmp9_ = owner->extends_name;
#line 625 "../src/composer_library.vala"
		_tmp10_ = g_strconcat (_tmp8_, _tmp9_, NULL);
#line 625 "../src/composer_library.vala"
		_tmp11_ = _tmp10_;
#line 625 "../src/composer_library.vala"
		_tmp12_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp5_, _tmp11_);
#line 625 "../src/composer_library.vala"
		_g_object_unref0 (_tmp1_);
#line 625 "../src/composer_library.vala"
		_tmp1_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp12_;
#line 625 "../src/composer_library.vala"
		_g_free0 (_tmp11_);
#line 625 "../src/composer_library.vala"
		_g_free0 (_tmp8_);
#line 6905 "composer_library.c"
	}
#line 625 "../src/composer_library.vala"
	_tmp13_ = _tmp1_;
#line 625 "../src/composer_library.vala"
	_tmp1_ = NULL;
#line 625 "../src/composer_library.vala"
	parent = _tmp13_;
#line 626 "../src/composer_library.vala"
	while (TRUE) {
#line 6915 "composer_library.c"
		PhpToValaComposerLibraryComposerSymbol* _tmp14_;
		PhpToValaComposerLibraryComposerSymbol* _tmp61_;
		const gchar* _tmp62_;
		PhpToValaComposerLibraryComposerSymbol* _tmp63_ = NULL;
		GeeHashMap* _tmp64_;
		PhpToValaComposerLibraryComposerSymbol* _tmp65_;
		const gchar* _tmp66_;
		gpointer _tmp67_;
		PhpToValaComposerLibraryComposerSymbol* _tmp78_;
#line 626 "../src/composer_library.vala"
		_tmp14_ = parent;
#line 626 "../src/composer_library.vala"
		if (!(_tmp14_ != NULL)) {
#line 626 "../src/composer_library.vala"
			break;
#line 6931 "composer_library.c"
		}
		{
			GeeArrayList* _method_list = NULL;
			PhpToValaComposerLibraryComposerSymbol* _tmp15_;
			GeeArrayList* _tmp16_;
			gint _method_size = 0;
			GeeArrayList* _tmp17_;
			gint _tmp18_;
			gint _tmp19_;
			gint _method_index = 0;
#line 627 "../src/composer_library.vala"
			_tmp15_ = parent;
#line 627 "../src/composer_library.vala"
			_tmp16_ = _tmp15_->methods;
#line 627 "../src/composer_library.vala"
			_method_list = _tmp16_;
#line 627 "../src/composer_library.vala"
			_tmp17_ = _method_list;
#line 627 "../src/composer_library.vala"
			_tmp18_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp17_);
#line 627 "../src/composer_library.vala"
			_tmp19_ = _tmp18_;
#line 627 "../src/composer_library.vala"
			_method_size = _tmp19_;
#line 627 "../src/composer_library.vala"
			_method_index = -1;
#line 627 "../src/composer_library.vala"
			while (TRUE) {
#line 6960 "composer_library.c"
				gint _tmp20_;
				gint _tmp21_;
				PhpToValaComposerLibraryComposerMethod* method = NULL;
				GeeArrayList* _tmp22_;
				gpointer _tmp23_;
				PhpToValaComposerLibraryComposerMethod* _tmp24_;
				const gchar* _tmp25_;
#line 627 "../src/composer_library.vala"
				_method_index = _method_index + 1;
#line 627 "../src/composer_library.vala"
				_tmp20_ = _method_index;
#line 627 "../src/composer_library.vala"
				_tmp21_ = _method_size;
#line 627 "../src/composer_library.vala"
				if (!(_tmp20_ < _tmp21_)) {
#line 627 "../src/composer_library.vala"
					break;
#line 6978 "composer_library.c"
				}
#line 627 "../src/composer_library.vala"
				_tmp22_ = _method_list;
#line 627 "../src/composer_library.vala"
				_tmp23_ = gee_abstract_list_get ((GeeAbstractList*) _tmp22_, _method_index);
#line 627 "../src/composer_library.vala"
				method = (PhpToValaComposerLibraryComposerMethod*) _tmp23_;
#line 628 "../src/composer_library.vala"
				_tmp24_ = method;
#line 628 "../src/composer_library.vala"
				_tmp25_ = _tmp24_->name;
#line 628 "../src/composer_library.vala"
				if (g_strcmp0 (_tmp25_, method_name) == 0) {
#line 629 "../src/composer_library.vala"
					result = TRUE;
#line 629 "../src/composer_library.vala"
					_g_object_unref0 (method);
#line 629 "../src/composer_library.vala"
					_g_object_unref0 (parent);
#line 629 "../src/composer_library.vala"
					_g_object_unref0 (_tmp1_);
#line 629 "../src/composer_library.vala"
					return result;
#line 7002 "composer_library.c"
				}
#line 627 "../src/composer_library.vala"
				_g_object_unref0 (method);
#line 7006 "composer_library.c"
			}
		}
		{
			GeeArrayList* _trait_name_list = NULL;
			PhpToValaComposerLibraryComposerSymbol* _tmp26_;
			GeeArrayList* _tmp27_;
			gint _trait_name_size = 0;
			GeeArrayList* _tmp28_;
			gint _tmp29_;
			gint _tmp30_;
			gint _trait_name_index = 0;
#line 632 "../src/composer_library.vala"
			_tmp26_ = parent;
#line 632 "../src/composer_library.vala"
			_tmp27_ = _tmp26_->traits;
#line 632 "../src/composer_library.vala"
			_trait_name_list = _tmp27_;
#line 632 "../src/composer_library.vala"
			_tmp28_ = _trait_name_list;
#line 632 "../src/composer_library.vala"
			_tmp29_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp28_);
#line 632 "../src/composer_library.vala"
			_tmp30_ = _tmp29_;
#line 632 "../src/composer_library.vala"
			_trait_name_size = _tmp30_;
#line 632 "../src/composer_library.vala"
			_trait_name_index = -1;
#line 632 "../src/composer_library.vala"
			while (TRUE) {
#line 7036 "composer_library.c"
				gint _tmp31_;
				gint _tmp32_;
				gchar* trait_name = NULL;
				GeeArrayList* _tmp33_;
				gpointer _tmp34_;
				PhpToValaComposerLibraryComposerSymbol* _tmp35_ = NULL;
				GeeHashMap* _tmp36_;
				const gchar* _tmp37_;
				gpointer _tmp38_;
				PhpToValaComposerLibraryComposerSymbol* trait = NULL;
				PhpToValaComposerLibraryComposerSymbol* _tmp48_;
				PhpToValaComposerLibraryComposerSymbol* _tmp49_;
#line 632 "../src/composer_library.vala"
				_trait_name_index = _trait_name_index + 1;
#line 632 "../src/composer_library.vala"
				_tmp31_ = _trait_name_index;
#line 632 "../src/composer_library.vala"
				_tmp32_ = _trait_name_size;
#line 632 "../src/composer_library.vala"
				if (!(_tmp31_ < _tmp32_)) {
#line 632 "../src/composer_library.vala"
					break;
#line 7059 "composer_library.c"
				}
#line 632 "../src/composer_library.vala"
				_tmp33_ = _trait_name_list;
#line 632 "../src/composer_library.vala"
				_tmp34_ = gee_abstract_list_get ((GeeAbstractList*) _tmp33_, _trait_name_index);
#line 632 "../src/composer_library.vala"
				trait_name = (gchar*) _tmp34_;
#line 633 "../src/composer_library.vala"
				_tmp36_ = self->priv->symbol_by_name;
#line 633 "../src/composer_library.vala"
				_tmp37_ = trait_name;
#line 633 "../src/composer_library.vala"
				_tmp38_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp36_, _tmp37_);
#line 633 "../src/composer_library.vala"
				_tmp35_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp38_;
#line 633 "../src/composer_library.vala"
				if (_tmp35_ == NULL) {
#line 7077 "composer_library.c"
					GeeHashMap* _tmp39_;
					PhpToValaComposerLibraryComposerSymbol* _tmp40_;
					const gchar* _tmp41_;
					gchar* _tmp42_;
					gchar* _tmp43_;
					const gchar* _tmp44_;
					gchar* _tmp45_;
					gchar* _tmp46_;
					gpointer _tmp47_;
#line 633 "../src/composer_library.vala"
					_tmp39_ = self->priv->symbol_by_name;
#line 633 "../src/composer_library.vala"
					_tmp40_ = parent;
#line 633 "../src/composer_library.vala"
					_tmp41_ = _tmp40_->namespace_name;
#line 633 "../src/composer_library.vala"
					_tmp42_ = g_strconcat (_tmp41_, "\\", NULL);
#line 633 "../src/composer_library.vala"
					_tmp43_ = _tmp42_;
#line 633 "../src/composer_library.vala"
					_tmp44_ = trait_name;
#line 633 "../src/composer_library.vala"
					_tmp45_ = g_strconcat (_tmp43_, _tmp44_, NULL);
#line 633 "../src/composer_library.vala"
					_tmp46_ = _tmp45_;
#line 633 "../src/composer_library.vala"
					_tmp47_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp39_, _tmp46_);
#line 633 "../src/composer_library.vala"
					_g_object_unref0 (_tmp35_);
#line 633 "../src/composer_library.vala"
					_tmp35_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp47_;
#line 633 "../src/composer_library.vala"
					_g_free0 (_tmp46_);
#line 633 "../src/composer_library.vala"
					_g_free0 (_tmp43_);
#line 7113 "composer_library.c"
				}
#line 633 "../src/composer_library.vala"
				_tmp48_ = _tmp35_;
#line 633 "../src/composer_library.vala"
				_tmp35_ = NULL;
#line 633 "../src/composer_library.vala"
				trait = _tmp48_;
#line 634 "../src/composer_library.vala"
				_tmp49_ = trait;
#line 634 "../src/composer_library.vala"
				if (_tmp49_ == NULL) {
#line 635 "../src/composer_library.vala"
					_g_object_unref0 (trait);
#line 635 "../src/composer_library.vala"
					_g_object_unref0 (_tmp35_);
#line 635 "../src/composer_library.vala"
					_g_free0 (trait_name);
#line 635 "../src/composer_library.vala"
					continue;
#line 7133 "composer_library.c"
				}
				{
					GeeArrayList* _method_list = NULL;
					PhpToValaComposerLibraryComposerSymbol* _tmp50_;
					GeeArrayList* _tmp51_;
					gint _method_size = 0;
					GeeArrayList* _tmp52_;
					gint _tmp53_;
					gint _tmp54_;
					gint _method_index = 0;
#line 637 "../src/composer_library.vala"
					_tmp50_ = trait;
#line 637 "../src/composer_library.vala"
					_tmp51_ = _tmp50_->methods;
#line 637 "../src/composer_library.vala"
					_method_list = _tmp51_;
#line 637 "../src/composer_library.vala"
					_tmp52_ = _method_list;
#line 637 "../src/composer_library.vala"
					_tmp53_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp52_);
#line 637 "../src/composer_library.vala"
					_tmp54_ = _tmp53_;
#line 637 "../src/composer_library.vala"
					_method_size = _tmp54_;
#line 637 "../src/composer_library.vala"
					_method_index = -1;
#line 637 "../src/composer_library.vala"
					while (TRUE) {
#line 7162 "composer_library.c"
						gint _tmp55_;
						gint _tmp56_;
						PhpToValaComposerLibraryComposerMethod* method = NULL;
						GeeArrayList* _tmp57_;
						gpointer _tmp58_;
						PhpToValaComposerLibraryComposerMethod* _tmp59_;
						const gchar* _tmp60_;
#line 637 "../src/composer_library.vala"
						_method_index = _method_index + 1;
#line 637 "../src/composer_library.vala"
						_tmp55_ = _method_index;
#line 637 "../src/composer_library.vala"
						_tmp56_ = _method_size;
#line 637 "../src/composer_library.vala"
						if (!(_tmp55_ < _tmp56_)) {
#line 637 "../src/composer_library.vala"
							break;
#line 7180 "composer_library.c"
						}
#line 637 "../src/composer_library.vala"
						_tmp57_ = _method_list;
#line 637 "../src/composer_library.vala"
						_tmp58_ = gee_abstract_list_get ((GeeAbstractList*) _tmp57_, _method_index);
#line 637 "../src/composer_library.vala"
						method = (PhpToValaComposerLibraryComposerMethod*) _tmp58_;
#line 638 "../src/composer_library.vala"
						_tmp59_ = method;
#line 638 "../src/composer_library.vala"
						_tmp60_ = _tmp59_->name;
#line 638 "../src/composer_library.vala"
						if (g_strcmp0 (_tmp60_, method_name) == 0) {
#line 639 "../src/composer_library.vala"
							result = TRUE;
#line 639 "../src/composer_library.vala"
							_g_object_unref0 (method);
#line 639 "../src/composer_library.vala"
							_g_object_unref0 (trait);
#line 639 "../src/composer_library.vala"
							_g_object_unref0 (_tmp35_);
#line 639 "../src/composer_library.vala"
							_g_free0 (trait_name);
#line 639 "../src/composer_library.vala"
							_g_object_unref0 (parent);
#line 639 "../src/composer_library.vala"
							_g_object_unref0 (_tmp1_);
#line 639 "../src/composer_library.vala"
							return result;
#line 7210 "composer_library.c"
						}
#line 637 "../src/composer_library.vala"
						_g_object_unref0 (method);
#line 7214 "composer_library.c"
					}
				}
#line 632 "../src/composer_library.vala"
				_g_object_unref0 (trait);
#line 632 "../src/composer_library.vala"
				_g_object_unref0 (_tmp35_);
#line 632 "../src/composer_library.vala"
				_g_free0 (trait_name);
#line 7223 "composer_library.c"
			}
		}
#line 643 "../src/composer_library.vala"
		_tmp61_ = parent;
#line 643 "../src/composer_library.vala"
		_tmp62_ = _tmp61_->extends_name;
#line 643 "../src/composer_library.vala"
		if (g_strcmp0 (_tmp62_, "") == 0) {
#line 644 "../src/composer_library.vala"
			break;
#line 7234 "composer_library.c"
		}
#line 646 "../src/composer_library.vala"
		_tmp64_ = self->priv->symbol_by_name;
#line 646 "../src/composer_library.vala"
		_tmp65_ = parent;
#line 646 "../src/composer_library.vala"
		_tmp66_ = _tmp65_->extends_name;
#line 646 "../src/composer_library.vala"
		_tmp67_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp64_, _tmp66_);
#line 646 "../src/composer_library.vala"
		_tmp63_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp67_;
#line 646 "../src/composer_library.vala"
		if (_tmp63_ == NULL) {
#line 7248 "composer_library.c"
			GeeHashMap* _tmp68_;
			PhpToValaComposerLibraryComposerSymbol* _tmp69_;
			const gchar* _tmp70_;
			gchar* _tmp71_;
			gchar* _tmp72_;
			PhpToValaComposerLibraryComposerSymbol* _tmp73_;
			const gchar* _tmp74_;
			gchar* _tmp75_;
			gchar* _tmp76_;
			gpointer _tmp77_;
#line 646 "../src/composer_library.vala"
			_tmp68_ = self->priv->symbol_by_name;
#line 646 "../src/composer_library.vala"
			_tmp69_ = parent;
#line 646 "../src/composer_library.vala"
			_tmp70_ = _tmp69_->namespace_name;
#line 646 "../src/composer_library.vala"
			_tmp71_ = g_strconcat (_tmp70_, "\\", NULL);
#line 646 "../src/composer_library.vala"
			_tmp72_ = _tmp71_;
#line 646 "../src/composer_library.vala"
			_tmp73_ = parent;
#line 646 "../src/composer_library.vala"
			_tmp74_ = _tmp73_->extends_name;
#line 646 "../src/composer_library.vala"
			_tmp75_ = g_strconcat (_tmp72_, _tmp74_, NULL);
#line 646 "../src/composer_library.vala"
			_tmp76_ = _tmp75_;
#line 646 "../src/composer_library.vala"
			_tmp77_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp68_, _tmp76_);
#line 646 "../src/composer_library.vala"
			_g_object_unref0 (_tmp63_);
#line 646 "../src/composer_library.vala"
			_tmp63_ = (PhpToValaComposerLibraryComposerSymbol*) _tmp77_;
#line 646 "../src/composer_library.vala"
			_g_free0 (_tmp76_);
#line 646 "../src/composer_library.vala"
			_g_free0 (_tmp72_);
#line 7287 "composer_library.c"
		}
#line 646 "../src/composer_library.vala"
		_tmp78_ = _tmp63_;
#line 646 "../src/composer_library.vala"
		_tmp63_ = NULL;
#line 646 "../src/composer_library.vala"
		_g_object_unref0 (parent);
#line 646 "../src/composer_library.vala"
		parent = _tmp78_;
#line 626 "../src/composer_library.vala"
		_g_object_unref0 (_tmp63_);
#line 7299 "composer_library.c"
	}
#line 648 "../src/composer_library.vala"
	result = FALSE;
#line 648 "../src/composer_library.vala"
	_g_object_unref0 (parent);
#line 648 "../src/composer_library.vala"
	_g_object_unref0 (_tmp1_);
#line 648 "../src/composer_library.vala"
	return result;
#line 7309 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_vala_parameter_list (PhpToValaComposerLibraryComposerMethod* method)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* result;
#line 651 "../src/composer_library.vala"
	g_return_val_if_fail (method != NULL, NULL);
#line 652 "../src/composer_library.vala"
	_tmp0_ = g_string_new ("");
#line 652 "../src/composer_library.vala"
	output = _tmp0_;
#line 7327 "composer_library.c"
	{
		gint i = 0;
#line 653 "../src/composer_library.vala"
		i = 0;
#line 7332 "composer_library.c"
		{
			gboolean _tmp1_ = FALSE;
#line 653 "../src/composer_library.vala"
			_tmp1_ = TRUE;
#line 653 "../src/composer_library.vala"
			while (TRUE) {
#line 7339 "composer_library.c"
				GeeArrayList* _tmp3_;
				gint _tmp4_;
				gint _tmp5_;
				LocalParameter* parameter = NULL;
				GeeArrayList* _tmp6_;
				gpointer _tmp7_;
				const gchar* _tmp9_ = NULL;
				LocalParameter* _tmp10_;
				const gchar* _tmp11_;
				GString* _tmp12_;
				gchar* _tmp13_;
				gchar* _tmp14_;
				LocalParameter* _tmp15_;
				const gchar* _tmp16_;
#line 653 "../src/composer_library.vala"
				if (!_tmp1_) {
#line 7356 "composer_library.c"
					gint _tmp2_;
#line 653 "../src/composer_library.vala"
					_tmp2_ = i;
#line 653 "../src/composer_library.vala"
					i = _tmp2_ + 1;
#line 7362 "composer_library.c"
				}
#line 653 "../src/composer_library.vala"
				_tmp1_ = FALSE;
#line 653 "../src/composer_library.vala"
				_tmp3_ = method->parameters;
#line 653 "../src/composer_library.vala"
				_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
#line 653 "../src/composer_library.vala"
				_tmp5_ = _tmp4_;
#line 653 "../src/composer_library.vala"
				if (!(i < _tmp5_)) {
#line 653 "../src/composer_library.vala"
					break;
#line 7376 "composer_library.c"
				}
#line 654 "../src/composer_library.vala"
				_tmp6_ = method->parameters;
#line 654 "../src/composer_library.vala"
				_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, i);
#line 654 "../src/composer_library.vala"
				parameter = (LocalParameter*) _tmp7_;
#line 655 "../src/composer_library.vala"
				if (i > 0) {
#line 7386 "composer_library.c"
					GString* _tmp8_;
#line 656 "../src/composer_library.vala"
					_tmp8_ = output;
#line 656 "../src/composer_library.vala"
					g_string_append (_tmp8_, ", ");
#line 7392 "composer_library.c"
				}
#line 658 "../src/composer_library.vala"
				_tmp10_ = parameter;
#line 658 "../src/composer_library.vala"
				_tmp11_ = _tmp10_->type_name;
#line 658 "../src/composer_library.vala"
				_tmp9_ = _tmp11_;
#line 658 "../src/composer_library.vala"
				if (_tmp9_ == NULL) {
#line 658 "../src/composer_library.vala"
					_tmp9_ = "";
#line 7404 "composer_library.c"
				}
#line 658 "../src/composer_library.vala"
				_tmp12_ = output;
#line 658 "../src/composer_library.vala"
				_tmp13_ = php_to_vala_composer_library_vala_type (_tmp9_);
#line 658 "../src/composer_library.vala"
				_tmp14_ = _tmp13_;
#line 658 "../src/composer_library.vala"
				_tmp15_ = parameter;
#line 658 "../src/composer_library.vala"
				_tmp16_ = _tmp15_->name;
#line 658 "../src/composer_library.vala"
				g_string_append_printf (_tmp12_, "%s %s", _tmp14_, _tmp16_);
#line 658 "../src/composer_library.vala"
				_g_free0 (_tmp14_);
#line 653 "../src/composer_library.vala"
				_g_object_unref0 (parameter);
#line 7422 "composer_library.c"
			}
		}
	}
#line 660 "../src/composer_library.vala"
	_tmp17_ = output;
#line 660 "../src/composer_library.vala"
	_tmp18_ = _tmp17_->str;
#line 660 "../src/composer_library.vala"
	_tmp19_ = g_strdup (_tmp18_);
#line 660 "../src/composer_library.vala"
	result = _tmp19_;
#line 660 "../src/composer_library.vala"
	_g_string_free0 (output);
#line 660 "../src/composer_library.vala"
	return result;
#line 7438 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_php_parameter_list (PhpToValaComposerLibraryComposerMethod* method)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp28_;
	const gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* result;
#line 663 "../src/composer_library.vala"
	g_return_val_if_fail (method != NULL, NULL);
#line 664 "../src/composer_library.vala"
	_tmp0_ = g_string_new ("");
#line 664 "../src/composer_library.vala"
	output = _tmp0_;
#line 7456 "composer_library.c"
	{
		gint i = 0;
#line 665 "../src/composer_library.vala"
		i = 0;
#line 7461 "composer_library.c"
		{
			gboolean _tmp1_ = FALSE;
#line 665 "../src/composer_library.vala"
			_tmp1_ = TRUE;
#line 665 "../src/composer_library.vala"
			while (TRUE) {
#line 7468 "composer_library.c"
				GeeArrayList* _tmp3_;
				gint _tmp4_;
				gint _tmp5_;
				LocalParameter* parameter = NULL;
				GeeArrayList* _tmp6_;
				gpointer _tmp7_;
				gboolean _tmp9_ = FALSE;
				LocalParameter* _tmp10_;
				const gchar* _tmp11_;
				GString* _tmp18_;
				GString* _tmp19_;
				LocalParameter* _tmp20_;
				const gchar* _tmp21_;
				LocalParameter* _tmp22_;
				const gchar* _tmp23_;
#line 665 "../src/composer_library.vala"
				if (!_tmp1_) {
#line 7486 "composer_library.c"
					gint _tmp2_;
#line 665 "../src/composer_library.vala"
					_tmp2_ = i;
#line 665 "../src/composer_library.vala"
					i = _tmp2_ + 1;
#line 7492 "composer_library.c"
				}
#line 665 "../src/composer_library.vala"
				_tmp1_ = FALSE;
#line 665 "../src/composer_library.vala"
				_tmp3_ = method->parameters;
#line 665 "../src/composer_library.vala"
				_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
#line 665 "../src/composer_library.vala"
				_tmp5_ = _tmp4_;
#line 665 "../src/composer_library.vala"
				if (!(i < _tmp5_)) {
#line 665 "../src/composer_library.vala"
					break;
#line 7506 "composer_library.c"
				}
#line 666 "../src/composer_library.vala"
				_tmp6_ = method->parameters;
#line 666 "../src/composer_library.vala"
				_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, i);
#line 666 "../src/composer_library.vala"
				parameter = (LocalParameter*) _tmp7_;
#line 667 "../src/composer_library.vala"
				if (i > 0) {
#line 7516 "composer_library.c"
					GString* _tmp8_;
#line 668 "../src/composer_library.vala"
					_tmp8_ = output;
#line 668 "../src/composer_library.vala"
					g_string_append (_tmp8_, ", ");
#line 7522 "composer_library.c"
				}
#line 670 "../src/composer_library.vala"
				_tmp10_ = parameter;
#line 670 "../src/composer_library.vala"
				_tmp11_ = _tmp10_->type_name;
#line 670 "../src/composer_library.vala"
				if (_tmp11_ != NULL) {
#line 7530 "composer_library.c"
					LocalParameter* _tmp12_;
					const gchar* _tmp13_;
#line 670 "../src/composer_library.vala"
					_tmp12_ = parameter;
#line 670 "../src/composer_library.vala"
					_tmp13_ = _tmp12_->type_name;
#line 670 "../src/composer_library.vala"
					_tmp9_ = g_strcmp0 (_tmp13_, "") != 0;
#line 7539 "composer_library.c"
				} else {
#line 670 "../src/composer_library.vala"
					_tmp9_ = FALSE;
#line 7543 "composer_library.c"
				}
#line 670 "../src/composer_library.vala"
				if (_tmp9_) {
#line 7547 "composer_library.c"
					GString* _tmp14_;
					LocalParameter* _tmp15_;
					const gchar* _tmp16_;
					GString* _tmp17_;
#line 671 "../src/composer_library.vala"
					_tmp14_ = output;
#line 671 "../src/composer_library.vala"
					_tmp15_ = parameter;
#line 671 "../src/composer_library.vala"
					_tmp16_ = _tmp15_->type_name;
#line 671 "../src/composer_library.vala"
					g_string_append (_tmp14_, _tmp16_);
#line 672 "../src/composer_library.vala"
					_tmp17_ = output;
#line 672 "../src/composer_library.vala"
					g_string_append (_tmp17_, " ");
#line 7564 "composer_library.c"
				}
#line 674 "../src/composer_library.vala"
				_tmp18_ = output;
#line 674 "../src/composer_library.vala"
				g_string_append (_tmp18_, "$");
#line 675 "../src/composer_library.vala"
				_tmp19_ = output;
#line 675 "../src/composer_library.vala"
				_tmp20_ = parameter;
#line 675 "../src/composer_library.vala"
				_tmp21_ = _tmp20_->name;
#line 675 "../src/composer_library.vala"
				g_string_append (_tmp19_, _tmp21_);
#line 676 "../src/composer_library.vala"
				_tmp22_ = parameter;
#line 676 "../src/composer_library.vala"
				_tmp23_ = _tmp22_->default_value;
#line 676 "../src/composer_library.vala"
				if (_tmp23_ != NULL) {
#line 7584 "composer_library.c"
					GString* _tmp24_;
					GString* _tmp25_;
					LocalParameter* _tmp26_;
					const gchar* _tmp27_;
#line 677 "../src/composer_library.vala"
					_tmp24_ = output;
#line 677 "../src/composer_library.vala"
					g_string_append (_tmp24_, " = ");
#line 678 "../src/composer_library.vala"
					_tmp25_ = output;
#line 678 "../src/composer_library.vala"
					_tmp26_ = parameter;
#line 678 "../src/composer_library.vala"
					_tmp27_ = _tmp26_->default_value;
#line 678 "../src/composer_library.vala"
					g_string_append (_tmp25_, _tmp27_);
#line 7601 "composer_library.c"
				}
#line 665 "../src/composer_library.vala"
				_g_object_unref0 (parameter);
#line 7605 "composer_library.c"
			}
		}
	}
#line 681 "../src/composer_library.vala"
	_tmp28_ = output;
#line 681 "../src/composer_library.vala"
	_tmp29_ = _tmp28_->str;
#line 681 "../src/composer_library.vala"
	_tmp30_ = g_strdup (_tmp29_);
#line 681 "../src/composer_library.vala"
	result = _tmp30_;
#line 681 "../src/composer_library.vala"
	_g_string_free0 (output);
#line 681 "../src/composer_library.vala"
	return result;
#line 7621 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_vala_type (const gchar* php_type)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean nullable = FALSE;
	const gchar* _tmp4_;
	const gchar* _tmp9_;
	const gchar* _tmp11_;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_ = FALSE;
	gboolean _tmp16_ = FALSE;
	gboolean _tmp17_ = FALSE;
	const gchar* _tmp18_;
	gchar* _tmp24_ = NULL;
	gchar* _tmp29_;
	gchar* result;
#line 684 "../src/composer_library.vala"
	g_return_val_if_fail (php_type != NULL, NULL);
#line 685 "../src/composer_library.vala"
	_tmp0_ = string_strip (php_type);
#line 685 "../src/composer_library.vala"
	_tmp1_ = _tmp0_;
#line 685 "../src/composer_library.vala"
	_tmp2_ = php_to_vala_composer_library_strip_global_prefix (_tmp1_);
#line 685 "../src/composer_library.vala"
	_tmp3_ = _tmp2_;
#line 685 "../src/composer_library.vala"
	_g_free0 (_tmp1_);
#line 685 "../src/composer_library.vala"
	clean = _tmp3_;
#line 686 "../src/composer_library.vala"
	nullable = FALSE;
#line 687 "../src/composer_library.vala"
	_tmp4_ = clean;
#line 687 "../src/composer_library.vala"
	if (g_str_has_prefix (_tmp4_, "?")) {
#line 7664 "composer_library.c"
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
#line 688 "../src/composer_library.vala"
		nullable = TRUE;
#line 689 "../src/composer_library.vala"
		_tmp5_ = clean;
#line 689 "../src/composer_library.vala"
		_tmp6_ = string_substring (_tmp5_, (glong) 1, (glong) -1);
#line 689 "../src/composer_library.vala"
		_tmp7_ = _tmp6_;
#line 689 "../src/composer_library.vala"
		_tmp8_ = string_strip (_tmp7_);
#line 689 "../src/composer_library.vala"
		_g_free0 (clean);
#line 689 "../src/composer_library.vala"
		clean = _tmp8_;
#line 689 "../src/composer_library.vala"
		_g_free0 (_tmp7_);
#line 7685 "composer_library.c"
	}
#line 691 "../src/composer_library.vala"
	_tmp9_ = clean;
#line 691 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp9_, "void") == 0) {
#line 7691 "composer_library.c"
		gchar* _tmp10_;
#line 692 "../src/composer_library.vala"
		_tmp10_ = g_strdup ("void");
#line 692 "../src/composer_library.vala"
		result = _tmp10_;
#line 692 "../src/composer_library.vala"
		_g_free0 (clean);
#line 692 "../src/composer_library.vala"
		return result;
#line 7701 "composer_library.c"
	}
#line 694 "../src/composer_library.vala"
	_tmp11_ = clean;
#line 694 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp11_, "LoggerInterface") == 0) {
#line 7707 "composer_library.c"
		const gchar* _tmp12_ = NULL;
		gchar* _tmp13_;
#line 695 "../src/composer_library.vala"
		if (nullable) {
#line 695 "../src/composer_library.vala"
			_tmp12_ = "LoggerInterface?";
#line 7714 "composer_library.c"
		} else {
#line 695 "../src/composer_library.vala"
			_tmp12_ = "LoggerInterface";
#line 7718 "composer_library.c"
		}
#line 695 "../src/composer_library.vala"
		_tmp13_ = g_strdup (_tmp12_);
#line 695 "../src/composer_library.vala"
		result = _tmp13_;
#line 695 "../src/composer_library.vala"
		_g_free0 (clean);
#line 695 "../src/composer_library.vala"
		return result;
#line 7728 "composer_library.c"
	}
#line 697 "../src/composer_library.vala"
	_tmp18_ = clean;
#line 697 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp18_, "") == 0) {
#line 697 "../src/composer_library.vala"
		_tmp17_ = TRUE;
#line 7736 "composer_library.c"
	} else {
		const gchar* _tmp19_;
#line 697 "../src/composer_library.vala"
		_tmp19_ = clean;
#line 697 "../src/composer_library.vala"
		_tmp17_ = g_strcmp0 (_tmp19_, "mixed") == 0;
#line 7743 "composer_library.c"
	}
#line 697 "../src/composer_library.vala"
	if (_tmp17_) {
#line 697 "../src/composer_library.vala"
		_tmp16_ = TRUE;
#line 7749 "composer_library.c"
	} else {
		const gchar* _tmp20_;
#line 697 "../src/composer_library.vala"
		_tmp20_ = clean;
#line 697 "../src/composer_library.vala"
		_tmp16_ = g_strcmp0 (_tmp20_, "array") == 0;
#line 7756 "composer_library.c"
	}
#line 697 "../src/composer_library.vala"
	if (_tmp16_) {
#line 697 "../src/composer_library.vala"
		_tmp15_ = TRUE;
#line 7762 "composer_library.c"
	} else {
		const gchar* _tmp21_;
#line 697 "../src/composer_library.vala"
		_tmp21_ = clean;
#line 697 "../src/composer_library.vala"
		_tmp15_ = string_index_of (_tmp21_, "|", 0) >= 0;
#line 7769 "composer_library.c"
	}
#line 697 "../src/composer_library.vala"
	if (_tmp15_) {
#line 697 "../src/composer_library.vala"
		_tmp14_ = TRUE;
#line 7775 "composer_library.c"
	} else {
		const gchar* _tmp22_;
#line 697 "../src/composer_library.vala"
		_tmp22_ = clean;
#line 697 "../src/composer_library.vala"
		_tmp14_ = g_strcmp0 (_tmp22_, "string") == 0;
#line 7782 "composer_library.c"
	}
#line 697 "../src/composer_library.vala"
	if (_tmp14_) {
#line 7786 "composer_library.c"
		gchar* _tmp23_;
#line 698 "../src/composer_library.vala"
		_tmp23_ = g_strdup ("Php.zval");
#line 698 "../src/composer_library.vala"
		result = _tmp23_;
#line 698 "../src/composer_library.vala"
		_g_free0 (clean);
#line 698 "../src/composer_library.vala"
		return result;
#line 7796 "composer_library.c"
	}
#line 700 "../src/composer_library.vala"
	if (nullable) {
#line 7800 "composer_library.c"
		const gchar* _tmp25_;
		gchar* _tmp26_;
#line 700 "../src/composer_library.vala"
		_tmp25_ = clean;
#line 700 "../src/composer_library.vala"
		_tmp26_ = g_strconcat (_tmp25_, "?", NULL);
#line 700 "../src/composer_library.vala"
		_g_free0 (_tmp24_);
#line 700 "../src/composer_library.vala"
		_tmp24_ = _tmp26_;
#line 7811 "composer_library.c"
	} else {
		const gchar* _tmp27_;
		gchar* _tmp28_;
#line 700 "../src/composer_library.vala"
		_tmp27_ = clean;
#line 700 "../src/composer_library.vala"
		_tmp28_ = g_strdup (_tmp27_);
#line 700 "../src/composer_library.vala"
		_g_free0 (_tmp24_);
#line 700 "../src/composer_library.vala"
		_tmp24_ = _tmp28_;
#line 7823 "composer_library.c"
	}
#line 700 "../src/composer_library.vala"
	_tmp29_ = _tmp24_;
#line 700 "../src/composer_library.vala"
	_tmp24_ = NULL;
#line 700 "../src/composer_library.vala"
	result = _tmp29_;
#line 700 "../src/composer_library.vala"
	_g_free0 (_tmp24_);
#line 700 "../src/composer_library.vala"
	_g_free0 (clean);
#line 700 "../src/composer_library.vala"
	return result;
#line 7837 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_vala_return_type (const gchar* php_type)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
#line 703 "../src/composer_library.vala"
	g_return_val_if_fail (php_type != NULL, NULL);
#line 704 "../src/composer_library.vala"
	_tmp0_ = string_strip (php_type);
#line 704 "../src/composer_library.vala"
	clean = _tmp0_;
#line 705 "../src/composer_library.vala"
	_tmp1_ = clean;
#line 705 "../src/composer_library.vala"
	if (g_strcmp0 (_tmp1_, "void") == 0) {
#line 7859 "composer_library.c"
		gchar* _tmp2_;
#line 706 "../src/composer_library.vala"
		_tmp2_ = g_strdup ("void");
#line 706 "../src/composer_library.vala"
		result = _tmp2_;
#line 706 "../src/composer_library.vala"
		_g_free0 (clean);
#line 706 "../src/composer_library.vala"
		return result;
#line 7869 "composer_library.c"
	}
#line 708 "../src/composer_library.vala"
	_tmp3_ = clean;
#line 708 "../src/composer_library.vala"
	_tmp4_ = php_to_vala_composer_library_vala_type (_tmp3_);
#line 708 "../src/composer_library.vala"
	result = _tmp4_;
#line 708 "../src/composer_library.vala"
	_g_free0 (clean);
#line 708 "../src/composer_library.vala"
	return result;
#line 7881 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_php_namespace_to_vala (const gchar* namespace_name)
{
	gchar* _tmp0_;
	gchar* result;
#line 711 "../src/composer_library.vala"
	g_return_val_if_fail (namespace_name != NULL, NULL);
#line 712 "../src/composer_library.vala"
	_tmp0_ = string_replace (namespace_name, "\\", ".");
#line 712 "../src/composer_library.vala"
	result = _tmp0_;
#line 712 "../src/composer_library.vala"
	return result;
#line 7897 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_short_php_name (const gchar* name)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gint slash = 0;
	const gchar* _tmp4_;
	gchar* _tmp5_ = NULL;
	gchar* _tmp10_;
	gchar* result;
#line 715 "../src/composer_library.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 716 "../src/composer_library.vala"
	_tmp0_ = string_strip (name);
#line 716 "../src/composer_library.vala"
	_tmp1_ = _tmp0_;
#line 716 "../src/composer_library.vala"
	_tmp2_ = php_to_vala_composer_library_strip_global_prefix (_tmp1_);
#line 716 "../src/composer_library.vala"
	_tmp3_ = _tmp2_;
#line 716 "../src/composer_library.vala"
	_g_free0 (_tmp1_);
#line 716 "../src/composer_library.vala"
	clean = _tmp3_;
#line 717 "../src/composer_library.vala"
	_tmp4_ = clean;
#line 717 "../src/composer_library.vala"
	slash = string_last_index_of (_tmp4_, "\\", 0);
#line 718 "../src/composer_library.vala"
	if (slash >= 0) {
#line 7933 "composer_library.c"
		const gchar* _tmp6_;
		gchar* _tmp7_;
#line 718 "../src/composer_library.vala"
		_tmp6_ = clean;
#line 718 "../src/composer_library.vala"
		_tmp7_ = string_substring (_tmp6_, (glong) (slash + 1), (glong) -1);
#line 718 "../src/composer_library.vala"
		_g_free0 (_tmp5_);
#line 718 "../src/composer_library.vala"
		_tmp5_ = _tmp7_;
#line 7944 "composer_library.c"
	} else {
		const gchar* _tmp8_;
		gchar* _tmp9_;
#line 718 "../src/composer_library.vala"
		_tmp8_ = clean;
#line 718 "../src/composer_library.vala"
		_tmp9_ = g_strdup (_tmp8_);
#line 718 "../src/composer_library.vala"
		_g_free0 (_tmp5_);
#line 718 "../src/composer_library.vala"
		_tmp5_ = _tmp9_;
#line 7956 "composer_library.c"
	}
#line 718 "../src/composer_library.vala"
	_tmp10_ = _tmp5_;
#line 718 "../src/composer_library.vala"
	_tmp5_ = NULL;
#line 718 "../src/composer_library.vala"
	result = _tmp10_;
#line 718 "../src/composer_library.vala"
	_g_free0 (_tmp5_);
#line 718 "../src/composer_library.vala"
	_g_free0 (clean);
#line 718 "../src/composer_library.vala"
	return result;
#line 7970 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_strip_global_prefix (const gchar* name)
{
	gchar* _tmp0_ = NULL;
	gchar* _tmp3_;
	gchar* result;
#line 721 "../src/composer_library.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 722 "../src/composer_library.vala"
	if (g_str_has_prefix (name, "\\")) {
#line 7983 "composer_library.c"
		gchar* _tmp1_;
#line 722 "../src/composer_library.vala"
		_tmp1_ = string_substring (name, (glong) 1, (glong) -1);
#line 722 "../src/composer_library.vala"
		_g_free0 (_tmp0_);
#line 722 "../src/composer_library.vala"
		_tmp0_ = _tmp1_;
#line 7991 "composer_library.c"
	} else {
		gchar* _tmp2_;
#line 722 "../src/composer_library.vala"
		_tmp2_ = g_strdup (name);
#line 722 "../src/composer_library.vala"
		_g_free0 (_tmp0_);
#line 722 "../src/composer_library.vala"
		_tmp0_ = _tmp2_;
#line 8000 "composer_library.c"
	}
#line 722 "../src/composer_library.vala"
	_tmp3_ = _tmp0_;
#line 722 "../src/composer_library.vala"
	_tmp0_ = NULL;
#line 722 "../src/composer_library.vala"
	result = _tmp3_;
#line 722 "../src/composer_library.vala"
	_g_free0 (_tmp0_);
#line 722 "../src/composer_library.vala"
	return result;
#line 8012 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_php_variable_to_vala (const gchar* value)
{
	gchar* _tmp0_ = NULL;
	gchar* _tmp3_;
	gchar* result;
#line 725 "../src/composer_library.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 726 "../src/composer_library.vala"
	if (g_str_has_prefix (value, "$")) {
#line 8025 "composer_library.c"
		gchar* _tmp1_;
#line 726 "../src/composer_library.vala"
		_tmp1_ = string_substring (value, (glong) 1, (glong) -1);
#line 726 "../src/composer_library.vala"
		_g_free0 (_tmp0_);
#line 726 "../src/composer_library.vala"
		_tmp0_ = _tmp1_;
#line 8033 "composer_library.c"
	} else {
		gchar* _tmp2_;
#line 726 "../src/composer_library.vala"
		_tmp2_ = g_strdup (value);
#line 726 "../src/composer_library.vala"
		_g_free0 (_tmp0_);
#line 726 "../src/composer_library.vala"
		_tmp0_ = _tmp2_;
#line 8042 "composer_library.c"
	}
#line 726 "../src/composer_library.vala"
	_tmp3_ = _tmp0_;
#line 726 "../src/composer_library.vala"
	_tmp0_ = NULL;
#line 726 "../src/composer_library.vala"
	result = _tmp3_;
#line 726 "../src/composer_library.vala"
	_g_free0 (_tmp0_);
#line 726 "../src/composer_library.vala"
	return result;
#line 8054 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_php_string_to_vala_string (const gchar* value)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	gboolean _tmp1_ = FALSE;
	const gchar* _tmp2_;
	gchar* result;
#line 729 "../src/composer_library.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 730 "../src/composer_library.vala"
	_tmp0_ = string_strip (value);
#line 730 "../src/composer_library.vala"
	clean = _tmp0_;
#line 731 "../src/composer_library.vala"
	_tmp2_ = clean;
#line 731 "../src/composer_library.vala"
	if (g_str_has_prefix (_tmp2_, "'")) {
#line 8075 "composer_library.c"
		const gchar* _tmp3_;
#line 731 "../src/composer_library.vala"
		_tmp3_ = clean;
#line 731 "../src/composer_library.vala"
		_tmp1_ = g_str_has_suffix (_tmp3_, "'");
#line 8081 "composer_library.c"
	} else {
#line 731 "../src/composer_library.vala"
		_tmp1_ = FALSE;
#line 8085 "composer_library.c"
	}
#line 731 "../src/composer_library.vala"
	if (_tmp1_) {
#line 8089 "composer_library.c"
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
#line 732 "../src/composer_library.vala"
		_tmp4_ = clean;
#line 732 "../src/composer_library.vala"
		_tmp5_ = clean;
#line 732 "../src/composer_library.vala"
		_tmp6_ = strlen (_tmp5_);
#line 732 "../src/composer_library.vala"
		_tmp7_ = _tmp6_;
#line 732 "../src/composer_library.vala"
		_tmp8_ = string_substring (_tmp4_, (glong) 1, (glong) (_tmp7_ - 2));
#line 732 "../src/composer_library.vala"
		_g_free0 (clean);
#line 732 "../src/composer_library.vala"
		clean = _tmp8_;
#line 733 "../src/composer_library.vala"
		_tmp9_ = clean;
#line 733 "../src/composer_library.vala"
		_tmp10_ = string_replace (_tmp9_, "\\", "\\\\");
#line 733 "../src/composer_library.vala"
		_tmp11_ = _tmp10_;
#line 733 "../src/composer_library.vala"
		_tmp12_ = string_replace (_tmp11_, "\"", "\\\"");
#line 733 "../src/composer_library.vala"
		_tmp13_ = _tmp12_;
#line 733 "../src/composer_library.vala"
		_tmp14_ = g_strdup_printf ("\"%s\"", _tmp13_);
#line 733 "../src/composer_library.vala"
		_tmp15_ = _tmp14_;
#line 733 "../src/composer_library.vala"
		_g_free0 (_tmp13_);
#line 733 "../src/composer_library.vala"
		_g_free0 (_tmp11_);
#line 733 "../src/composer_library.vala"
		result = _tmp15_;
#line 733 "../src/composer_library.vala"
		_g_free0 (clean);
#line 733 "../src/composer_library.vala"
		return result;
#line 8140 "composer_library.c"
	}
#line 735 "../src/composer_library.vala"
	result = clean;
#line 735 "../src/composer_library.vala"
	return result;
#line 8146 "composer_library.c"
}

static gchar*
php_to_vala_composer_library_consume_doc (GString* pending_doc)
{
	gchar* doc = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* result;
#line 738 "../src/composer_library.vala"
	g_return_val_if_fail (pending_doc != NULL, NULL);
#line 739 "../src/composer_library.vala"
	_tmp0_ = pending_doc->str;
#line 739 "../src/composer_library.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 739 "../src/composer_library.vala"
	doc = _tmp1_;
#line 740 "../src/composer_library.vala"
	g_string_truncate (pending_doc, (gsize) 0);
#line 741 "../src/composer_library.vala"
	result = doc;
#line 741 "../src/composer_library.vala"
	return result;
#line 8170 "composer_library.c"
}

static void
php_to_vala_composer_library_append_doc (GString* output,
                                         const gchar* doc,
                                         const gchar* indent)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
#line 744 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 744 "../src/composer_library.vala"
	g_return_if_fail (doc != NULL);
#line 744 "../src/composer_library.vala"
	g_return_if_fail (indent != NULL);
#line 745 "../src/composer_library.vala"
	_tmp0_ = string_strip (doc);
#line 745 "../src/composer_library.vala"
	_tmp1_ = _tmp0_;
#line 745 "../src/composer_library.vala"
	_tmp2_ = g_strcmp0 (_tmp1_, "") == 0;
#line 745 "../src/composer_library.vala"
	_g_free0 (_tmp1_);
#line 745 "../src/composer_library.vala"
	if (_tmp2_) {
#line 746 "../src/composer_library.vala"
		return;
#line 8201 "composer_library.c"
	}
#line 748 "../src/composer_library.vala"
	_tmp4_ = _tmp3_ = g_strsplit (doc, "\n", 0);
#line 8205 "composer_library.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 748 "../src/composer_library.vala"
		raw_line_collection = _tmp4_;
#line 748 "../src/composer_library.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp3_);
#line 748 "../src/composer_library.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 8217 "composer_library.c"
			gchar* _tmp5_;
			gchar* raw_line = NULL;
#line 748 "../src/composer_library.vala"
			_tmp5_ = g_strdup (raw_line_collection[raw_line_it]);
#line 748 "../src/composer_library.vala"
			raw_line = _tmp5_;
#line 8224 "composer_library.c"
			{
				const gchar* _tmp6_;
				gchar* _tmp7_;
				gchar* _tmp8_;
#line 749 "../src/composer_library.vala"
				g_string_append (output, indent);
#line 750 "../src/composer_library.vala"
				_tmp6_ = raw_line;
#line 750 "../src/composer_library.vala"
				_tmp7_ = string_strip (_tmp6_);
#line 750 "../src/composer_library.vala"
				_tmp8_ = _tmp7_;
#line 750 "../src/composer_library.vala"
				g_string_append (output, _tmp8_);
#line 750 "../src/composer_library.vala"
				_g_free0 (_tmp8_);
#line 751 "../src/composer_library.vala"
				g_string_append (output, "\n");
#line 748 "../src/composer_library.vala"
				_g_free0 (raw_line);
#line 8245 "composer_library.c"
			}
		}
#line 748 "../src/composer_library.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 8250 "composer_library.c"
	}
}

static void
php_to_vala_composer_library_append_indent (GString* output,
                                            gint indent)
{
#line 755 "../src/composer_library.vala"
	g_return_if_fail (output != NULL);
#line 8260 "composer_library.c"
	{
		gint i = 0;
#line 756 "../src/composer_library.vala"
		i = 0;
#line 8265 "composer_library.c"
		{
			gboolean _tmp0_ = FALSE;
#line 756 "../src/composer_library.vala"
			_tmp0_ = TRUE;
#line 756 "../src/composer_library.vala"
			while (TRUE) {
#line 756 "../src/composer_library.vala"
				if (!_tmp0_) {
#line 8274 "composer_library.c"
					gint _tmp1_;
#line 756 "../src/composer_library.vala"
					_tmp1_ = i;
#line 756 "../src/composer_library.vala"
					i = _tmp1_ + 1;
#line 8280 "composer_library.c"
				}
#line 756 "../src/composer_library.vala"
				_tmp0_ = FALSE;
#line 756 "../src/composer_library.vala"
				if (!(i < indent)) {
#line 756 "../src/composer_library.vala"
					break;
#line 8288 "composer_library.c"
				}
#line 757 "../src/composer_library.vala"
				g_string_append (output, "    ");
#line 8292 "composer_library.c"
			}
		}
	}
}

static GeeArrayList*
php_to_vala_composer_library_split_implements (const gchar* implements_name)
{
	GeeArrayList* _result_ = NULL;
	GeeArrayList* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	gchar** _tmp4_;
	gchar** _tmp5_;
	GeeArrayList* result;
#line 761 "../src/composer_library.vala"
	g_return_val_if_fail (implements_name != NULL, NULL);
#line 762 "../src/composer_library.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 762 "../src/composer_library.vala"
	_result_ = _tmp0_;
#line 763 "../src/composer_library.vala"
	_tmp1_ = string_strip (implements_name);
#line 763 "../src/composer_library.vala"
	_tmp2_ = _tmp1_;
#line 763 "../src/composer_library.vala"
	_tmp3_ = g_strcmp0 (_tmp2_, "") == 0;
#line 763 "../src/composer_library.vala"
	_g_free0 (_tmp2_);
#line 763 "../src/composer_library.vala"
	if (_tmp3_) {
#line 764 "../src/composer_library.vala"
		result = _result_;
#line 764 "../src/composer_library.vala"
		return result;
#line 8329 "composer_library.c"
	}
#line 766 "../src/composer_library.vala"
	_tmp5_ = _tmp4_ = g_strsplit (implements_name, ",", 0);
#line 8333 "composer_library.c"
	{
		gchar** item_collection = NULL;
		gint item_collection_length1 = 0;
		gint _item_collection_size_ = 0;
		gint item_it = 0;
#line 766 "../src/composer_library.vala"
		item_collection = _tmp5_;
#line 766 "../src/composer_library.vala"
		item_collection_length1 = _vala_array_length (_tmp4_);
#line 766 "../src/composer_library.vala"
		for (item_it = 0; item_it < item_collection_length1; item_it = item_it + 1) {
#line 8345 "composer_library.c"
			gchar* _tmp6_;
			gchar* item = NULL;
#line 766 "../src/composer_library.vala"
			_tmp6_ = g_strdup (item_collection[item_it]);
#line 766 "../src/composer_library.vala"
			item = _tmp6_;
#line 8352 "composer_library.c"
			{
				GeeArrayList* _tmp7_;
				const gchar* _tmp8_;
				gchar* _tmp9_;
				gchar* _tmp10_;
#line 767 "../src/composer_library.vala"
				_tmp7_ = _result_;
#line 767 "../src/composer_library.vala"
				_tmp8_ = item;
#line 767 "../src/composer_library.vala"
				_tmp9_ = string_strip (_tmp8_);
#line 767 "../src/composer_library.vala"
				_tmp10_ = _tmp9_;
#line 767 "../src/composer_library.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp10_);
#line 767 "../src/composer_library.vala"
				_g_free0 (_tmp10_);
#line 766 "../src/composer_library.vala"
				_g_free0 (item);
#line 8372 "composer_library.c"
			}
		}
#line 766 "../src/composer_library.vala"
		item_collection = (_vala_array_free (item_collection, item_collection_length1, (GDestroyNotify) g_free), NULL);
#line 8377 "composer_library.c"
	}
#line 769 "../src/composer_library.vala"
	result = _result_;
#line 769 "../src/composer_library.vala"
	return result;
#line 8383 "composer_library.c"
}

static GeeArrayList*
php_to_vala_composer_library_split_top_level (const gchar* value,
                                              gchar delimiter)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GString* current = NULL;
	GString* _tmp1_;
	gint depth = 0;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	GeeArrayList* _tmp21_;
	GString* _tmp22_;
	const gchar* _tmp23_;
	GeeArrayList* result;
#line 772 "../src/composer_library.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 773 "../src/composer_library.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 773 "../src/composer_library.vala"
	parts = _tmp0_;
#line 774 "../src/composer_library.vala"
	_tmp1_ = g_string_new ("");
#line 774 "../src/composer_library.vala"
	current = _tmp1_;
#line 775 "../src/composer_library.vala"
	depth = 0;
#line 776 "../src/composer_library.vala"
	in_single_quote = FALSE;
#line 777 "../src/composer_library.vala"
	in_double_quote = FALSE;
#line 8417 "composer_library.c"
	{
		gint i = 0;
#line 778 "../src/composer_library.vala"
		i = 0;
#line 8422 "composer_library.c"
		{
			gboolean _tmp2_ = FALSE;
#line 778 "../src/composer_library.vala"
			_tmp2_ = TRUE;
#line 778 "../src/composer_library.vala"
			while (TRUE) {
#line 8429 "composer_library.c"
				gint _tmp4_;
				gint _tmp5_;
				gchar c = '\0';
				gboolean _tmp6_ = FALSE;
				GString* _tmp20_;
#line 778 "../src/composer_library.vala"
				if (!_tmp2_) {
#line 8437 "composer_library.c"
					gint _tmp3_;
#line 778 "../src/composer_library.vala"
					_tmp3_ = i;
#line 778 "../src/composer_library.vala"
					i = _tmp3_ + 1;
#line 8443 "composer_library.c"
				}
#line 778 "../src/composer_library.vala"
				_tmp2_ = FALSE;
#line 778 "../src/composer_library.vala"
				_tmp4_ = strlen (value);
#line 778 "../src/composer_library.vala"
				_tmp5_ = _tmp4_;
#line 778 "../src/composer_library.vala"
				if (!(i < _tmp5_)) {
#line 778 "../src/composer_library.vala"
					break;
#line 8455 "composer_library.c"
				}
#line 779 "../src/composer_library.vala"
				c = string_get (value, (glong) i);
#line 780 "../src/composer_library.vala"
				if (c == '\'') {
#line 780 "../src/composer_library.vala"
					_tmp6_ = !in_double_quote;
#line 8463 "composer_library.c"
				} else {
#line 780 "../src/composer_library.vala"
					_tmp6_ = FALSE;
#line 8467 "composer_library.c"
				}
#line 780 "../src/composer_library.vala"
				if (_tmp6_) {
#line 781 "../src/composer_library.vala"
					in_single_quote = !in_single_quote;
#line 8473 "composer_library.c"
				} else {
					gboolean _tmp7_ = FALSE;
#line 782 "../src/composer_library.vala"
					if (c == '"') {
#line 782 "../src/composer_library.vala"
						_tmp7_ = !in_single_quote;
#line 8480 "composer_library.c"
					} else {
#line 782 "../src/composer_library.vala"
						_tmp7_ = FALSE;
#line 8484 "composer_library.c"
					}
#line 782 "../src/composer_library.vala"
					if (_tmp7_) {
#line 783 "../src/composer_library.vala"
						in_double_quote = !in_double_quote;
#line 8490 "composer_library.c"
					} else {
						gboolean _tmp8_ = FALSE;
#line 784 "../src/composer_library.vala"
						if (!in_single_quote) {
#line 784 "../src/composer_library.vala"
							_tmp8_ = !in_double_quote;
#line 8497 "composer_library.c"
						} else {
#line 784 "../src/composer_library.vala"
							_tmp8_ = FALSE;
#line 8501 "composer_library.c"
						}
#line 784 "../src/composer_library.vala"
						if (_tmp8_) {
#line 8505 "composer_library.c"
							gboolean _tmp9_ = FALSE;
							gboolean _tmp10_ = FALSE;
#line 785 "../src/composer_library.vala"
							if (c == '(') {
#line 785 "../src/composer_library.vala"
								_tmp10_ = TRUE;
#line 8512 "composer_library.c"
							} else {
#line 785 "../src/composer_library.vala"
								_tmp10_ = c == '[';
#line 8516 "composer_library.c"
							}
#line 785 "../src/composer_library.vala"
							if (_tmp10_) {
#line 785 "../src/composer_library.vala"
								_tmp9_ = TRUE;
#line 8522 "composer_library.c"
							} else {
#line 785 "../src/composer_library.vala"
								_tmp9_ = c == '{';
#line 8526 "composer_library.c"
							}
#line 785 "../src/composer_library.vala"
							if (_tmp9_) {
#line 8530 "composer_library.c"
								gint _tmp11_;
#line 786 "../src/composer_library.vala"
								_tmp11_ = depth;
#line 786 "../src/composer_library.vala"
								depth = _tmp11_ + 1;
#line 8536 "composer_library.c"
							} else {
								gboolean _tmp12_ = FALSE;
								gboolean _tmp13_ = FALSE;
#line 787 "../src/composer_library.vala"
								if (c == ')') {
#line 787 "../src/composer_library.vala"
									_tmp13_ = TRUE;
#line 8544 "composer_library.c"
								} else {
#line 787 "../src/composer_library.vala"
									_tmp13_ = c == ']';
#line 8548 "composer_library.c"
								}
#line 787 "../src/composer_library.vala"
								if (_tmp13_) {
#line 787 "../src/composer_library.vala"
									_tmp12_ = TRUE;
#line 8554 "composer_library.c"
								} else {
#line 787 "../src/composer_library.vala"
									_tmp12_ = c == '}';
#line 8558 "composer_library.c"
								}
#line 787 "../src/composer_library.vala"
								if (_tmp12_) {
#line 8562 "composer_library.c"
									gint _tmp14_;
#line 788 "../src/composer_library.vala"
									_tmp14_ = depth;
#line 788 "../src/composer_library.vala"
									depth = _tmp14_ - 1;
#line 8568 "composer_library.c"
								} else {
									gboolean _tmp15_ = FALSE;
#line 789 "../src/composer_library.vala"
									if (c == delimiter) {
#line 789 "../src/composer_library.vala"
										_tmp15_ = depth == 0;
#line 8575 "composer_library.c"
									} else {
#line 789 "../src/composer_library.vala"
										_tmp15_ = FALSE;
#line 8579 "composer_library.c"
									}
#line 789 "../src/composer_library.vala"
									if (_tmp15_) {
#line 8583 "composer_library.c"
										GeeArrayList* _tmp16_;
										GString* _tmp17_;
										const gchar* _tmp18_;
										GString* _tmp19_;
#line 790 "../src/composer_library.vala"
										_tmp16_ = parts;
#line 790 "../src/composer_library.vala"
										_tmp17_ = current;
#line 790 "../src/composer_library.vala"
										_tmp18_ = _tmp17_->str;
#line 790 "../src/composer_library.vala"
										gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp18_);
#line 791 "../src/composer_library.vala"
										_tmp19_ = current;
#line 791 "../src/composer_library.vala"
										g_string_truncate (_tmp19_, (gsize) 0);
#line 792 "../src/composer_library.vala"
										continue;
#line 8602 "composer_library.c"
									}
								}
							}
						}
					}
				}
#line 795 "../src/composer_library.vala"
				_tmp20_ = current;
#line 795 "../src/composer_library.vala"
				g_string_append_c (_tmp20_, c);
#line 8613 "composer_library.c"
			}
		}
	}
#line 797 "../src/composer_library.vala"
	_tmp21_ = parts;
#line 797 "../src/composer_library.vala"
	_tmp22_ = current;
#line 797 "../src/composer_library.vala"
	_tmp23_ = _tmp22_->str;
#line 797 "../src/composer_library.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, _tmp23_);
#line 798 "../src/composer_library.vala"
	result = parts;
#line 798 "../src/composer_library.vala"
	_g_string_free0 (current);
#line 798 "../src/composer_library.vala"
	return result;
#line 8631 "composer_library.c"
}

static gchar*
string_to_utf8 (const gchar* self,
                gint* result_length1)
{
	gint string_length = 0;
	gint _tmp0_;
	gint _tmp1_;
	gchar* _result_ = NULL;
	gchar* _tmp2_;
	gint _result__length1;
	gint __result__size_;
	gint _tmp3_;
	gchar* _tmp4_;
	gint _tmp4__length1;
	gchar* result;
#line 1616 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1617 "glib-2.0.vapi"
	_tmp0_ = strlen (self);
#line 1617 "glib-2.0.vapi"
	_tmp1_ = _tmp0_;
#line 1617 "glib-2.0.vapi"
	string_length = _tmp1_;
#line 1618 "glib-2.0.vapi"
	_tmp2_ = g_new0 (gchar, string_length + 1);
#line 1618 "glib-2.0.vapi"
	_result_ = _tmp2_;
#line 1618 "glib-2.0.vapi"
	_result__length1 = string_length + 1;
#line 1618 "glib-2.0.vapi"
	__result__size_ = _result__length1;
#line 1619 "glib-2.0.vapi"
	_tmp3_ = _result__length1;
#line 1619 "glib-2.0.vapi"
	_result__length1 = _tmp3_ - 1;
#line 1620 "glib-2.0.vapi"
	memcpy (_result_, self, (gsize) string_length);
#line 1621 "glib-2.0.vapi"
	_tmp4_ = _result_;
#line 1621 "glib-2.0.vapi"
	_tmp4__length1 = _result__length1;
#line 1621 "glib-2.0.vapi"
	if (result_length1) {
#line 1621 "glib-2.0.vapi"
		*result_length1 = _tmp4__length1;
#line 8679 "composer_library.c"
	}
#line 1621 "glib-2.0.vapi"
	result = _tmp4_;
#line 1621 "glib-2.0.vapi"
	return result;
#line 8685 "composer_library.c"
}

static gint
php_to_vala_composer_library_count_braces (const gchar* line)
{
	gint count = 0;
	gint _tmp0_ = 0;
	gchar* _tmp1_;
	gint result;
#line 801 "../src/composer_library.vala"
	g_return_val_if_fail (line != NULL, -1);
#line 802 "../src/composer_library.vala"
	count = 0;
#line 803 "../src/composer_library.vala"
	_tmp1_ = string_to_utf8 (line, &_tmp0_);
#line 8701 "composer_library.c"
	{
		gchar* c_collection = NULL;
		gint c_collection_length1 = 0;
		gint _c_collection_size_ = 0;
		gint c_it = 0;
#line 803 "../src/composer_library.vala"
		c_collection = _tmp1_;
#line 803 "../src/composer_library.vala"
		c_collection_length1 = _tmp0_;
#line 803 "../src/composer_library.vala"
		for (c_it = 0; c_it < c_collection_length1; c_it = c_it + 1) {
#line 8713 "composer_library.c"
			gchar c = '\0';
#line 803 "../src/composer_library.vala"
			c = c_collection[c_it];
#line 8717 "composer_library.c"
			{
#line 804 "../src/composer_library.vala"
				if (c == '{') {
#line 8721 "composer_library.c"
					gint _tmp2_;
#line 804 "../src/composer_library.vala"
					_tmp2_ = count;
#line 804 "../src/composer_library.vala"
					count = _tmp2_ + 1;
#line 8727 "composer_library.c"
				}
#line 805 "../src/composer_library.vala"
				if (c == '}') {
#line 8731 "composer_library.c"
					gint _tmp3_;
#line 805 "../src/composer_library.vala"
					_tmp3_ = count;
#line 805 "../src/composer_library.vala"
					count = _tmp3_ - 1;
#line 8737 "composer_library.c"
				}
			}
		}
#line 803 "../src/composer_library.vala"
		c_collection = (g_free (c_collection), NULL);
#line 8743 "composer_library.c"
	}
#line 807 "../src/composer_library.vala"
	result = count;
#line 807 "../src/composer_library.vala"
	return result;
#line 8749 "composer_library.c"
}

PhpToValaComposerLibrary*
php_to_vala_composer_library_construct (GType object_type)
{
	PhpToValaComposerLibrary * self = NULL;
#line 3 "../src/composer_library.vala"
	self = (PhpToValaComposerLibrary*) g_object_new (object_type, NULL);
#line 3 "../src/composer_library.vala"
	return self;
#line 8760 "composer_library.c"
}

PhpToValaComposerLibrary*
php_to_vala_composer_library_new (void)
{
#line 3 "../src/composer_library.vala"
	return php_to_vala_composer_library_construct (TYPE_PHP_TO_VALA_COMPOSER_LIBRARY);
#line 8768 "composer_library.c"
}

static PhpToValaComposerLibraryComposerMethod*
php_to_vala_composer_library_composer_method_construct (GType object_type)
{
	PhpToValaComposerLibraryComposerMethod * self = NULL;
#line 4 "../src/composer_library.vala"
	self = (PhpToValaComposerLibraryComposerMethod*) g_object_new (object_type, NULL);
#line 4 "../src/composer_library.vala"
	return self;
#line 8779 "composer_library.c"
}

static PhpToValaComposerLibraryComposerMethod*
php_to_vala_composer_library_composer_method_new (void)
{
#line 4 "../src/composer_library.vala"
	return php_to_vala_composer_library_composer_method_construct (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD);
#line 8787 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_method_class_init (PhpToValaComposerLibraryComposerMethodClass * klass,
                                                         gpointer klass_data)
{
#line 4 "../src/composer_library.vala"
	php_to_vala_composer_library_composer_method_parent_class = g_type_class_peek_parent (klass);
#line 4 "../src/composer_library.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_composer_library_composer_method_finalize;
#line 8798 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_method_instance_init (PhpToValaComposerLibraryComposerMethod * self,
                                                            gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GeeArrayList* _tmp5_;
#line 5 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 5 "../src/composer_library.vala"
	self->name = _tmp0_;
#line 6 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 6 "../src/composer_library.vala"
	self->doc_comment = _tmp1_;
#line 7 "../src/composer_library.vala"
	_tmp2_ = g_strdup ("");
#line 7 "../src/composer_library.vala"
	self->return_type = _tmp2_;
#line 8 "../src/composer_library.vala"
	_tmp3_ = g_strdup ("public");
#line 8 "../src/composer_library.vala"
	self->visibility = _tmp3_;
#line 9 "../src/composer_library.vala"
	self->is_static = FALSE;
#line 10 "../src/composer_library.vala"
	self->is_abstract = FALSE;
#line 11 "../src/composer_library.vala"
	_tmp4_ = g_strdup ("");
#line 11 "../src/composer_library.vala"
	self->body = _tmp4_;
#line 12 "../src/composer_library.vala"
	_tmp5_ = gee_array_list_new (TYPE_LOCAL_PARAMETER, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 12 "../src/composer_library.vala"
	self->parameters = _tmp5_;
#line 8839 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_method_finalize (GObject * obj)
{
	PhpToValaComposerLibraryComposerMethod * self;
#line 4 "../src/composer_library.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD, PhpToValaComposerLibraryComposerMethod);
#line 5 "../src/composer_library.vala"
	_g_free0 (self->name);
#line 6 "../src/composer_library.vala"
	_g_free0 (self->doc_comment);
#line 7 "../src/composer_library.vala"
	_g_free0 (self->return_type);
#line 8 "../src/composer_library.vala"
	_g_free0 (self->visibility);
#line 11 "../src/composer_library.vala"
	_g_free0 (self->body);
#line 12 "../src/composer_library.vala"
	_g_object_unref0 (self->parameters);
#line 4 "../src/composer_library.vala"
	G_OBJECT_CLASS (php_to_vala_composer_library_composer_method_parent_class)->finalize (obj);
#line 8862 "composer_library.c"
}

static GType
php_to_vala_composer_library_composer_method_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaComposerLibraryComposerMethodClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_composer_library_composer_method_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaComposerLibraryComposerMethod), 0, (GInstanceInitFunc) php_to_vala_composer_library_composer_method_instance_init, NULL };
	GType php_to_vala_composer_library_composer_method_type_id;
	php_to_vala_composer_library_composer_method_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaComposerLibraryComposerMethod", &g_define_type_info, 0);
	return php_to_vala_composer_library_composer_method_type_id;
}

static GType
php_to_vala_composer_library_composer_method_get_type (void)
{
	static volatile gsize php_to_vala_composer_library_composer_method_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_composer_library_composer_method_type_id__once)) {
		GType php_to_vala_composer_library_composer_method_type_id;
		php_to_vala_composer_library_composer_method_type_id = php_to_vala_composer_library_composer_method_get_type_once ();
		g_once_init_leave (&php_to_vala_composer_library_composer_method_type_id__once, php_to_vala_composer_library_composer_method_type_id);
	}
	return php_to_vala_composer_library_composer_method_type_id__once;
}

static PhpToValaComposerLibraryComposerConstant*
php_to_vala_composer_library_composer_constant_construct (GType object_type)
{
	PhpToValaComposerLibraryComposerConstant * self = NULL;
#line 15 "../src/composer_library.vala"
	self = (PhpToValaComposerLibraryComposerConstant*) g_object_new (object_type, NULL);
#line 15 "../src/composer_library.vala"
	return self;
#line 8894 "composer_library.c"
}

static PhpToValaComposerLibraryComposerConstant*
php_to_vala_composer_library_composer_constant_new (void)
{
#line 15 "../src/composer_library.vala"
	return php_to_vala_composer_library_composer_constant_construct (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT);
#line 8902 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_constant_class_init (PhpToValaComposerLibraryComposerConstantClass * klass,
                                                           gpointer klass_data)
{
#line 15 "../src/composer_library.vala"
	php_to_vala_composer_library_composer_constant_parent_class = g_type_class_peek_parent (klass);
#line 15 "../src/composer_library.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_composer_library_composer_constant_finalize;
#line 8913 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_constant_instance_init (PhpToValaComposerLibraryComposerConstant * self,
                                                              gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
#line 16 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 16 "../src/composer_library.vala"
	self->name = _tmp0_;
#line 17 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 17 "../src/composer_library.vala"
	self->value = _tmp1_;
#line 8930 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_constant_finalize (GObject * obj)
{
	PhpToValaComposerLibraryComposerConstant * self;
#line 15 "../src/composer_library.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT, PhpToValaComposerLibraryComposerConstant);
#line 16 "../src/composer_library.vala"
	_g_free0 (self->name);
#line 17 "../src/composer_library.vala"
	_g_free0 (self->value);
#line 15 "../src/composer_library.vala"
	G_OBJECT_CLASS (php_to_vala_composer_library_composer_constant_parent_class)->finalize (obj);
#line 8945 "composer_library.c"
}

static GType
php_to_vala_composer_library_composer_constant_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaComposerLibraryComposerConstantClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_composer_library_composer_constant_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaComposerLibraryComposerConstant), 0, (GInstanceInitFunc) php_to_vala_composer_library_composer_constant_instance_init, NULL };
	GType php_to_vala_composer_library_composer_constant_type_id;
	php_to_vala_composer_library_composer_constant_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaComposerLibraryComposerConstant", &g_define_type_info, 0);
	return php_to_vala_composer_library_composer_constant_type_id;
}

static GType
php_to_vala_composer_library_composer_constant_get_type (void)
{
	static volatile gsize php_to_vala_composer_library_composer_constant_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_composer_library_composer_constant_type_id__once)) {
		GType php_to_vala_composer_library_composer_constant_type_id;
		php_to_vala_composer_library_composer_constant_type_id = php_to_vala_composer_library_composer_constant_get_type_once ();
		g_once_init_leave (&php_to_vala_composer_library_composer_constant_type_id__once, php_to_vala_composer_library_composer_constant_type_id);
	}
	return php_to_vala_composer_library_composer_constant_type_id__once;
}

static PhpToValaComposerLibraryComposerProperty*
php_to_vala_composer_library_composer_property_construct (GType object_type)
{
	PhpToValaComposerLibraryComposerProperty * self = NULL;
#line 20 "../src/composer_library.vala"
	self = (PhpToValaComposerLibraryComposerProperty*) g_object_new (object_type, NULL);
#line 20 "../src/composer_library.vala"
	return self;
#line 8977 "composer_library.c"
}

static PhpToValaComposerLibraryComposerProperty*
php_to_vala_composer_library_composer_property_new (void)
{
#line 20 "../src/composer_library.vala"
	return php_to_vala_composer_library_composer_property_construct (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY);
#line 8985 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_property_class_init (PhpToValaComposerLibraryComposerPropertyClass * klass,
                                                           gpointer klass_data)
{
#line 20 "../src/composer_library.vala"
	php_to_vala_composer_library_composer_property_parent_class = g_type_class_peek_parent (klass);
#line 20 "../src/composer_library.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_composer_library_composer_property_finalize;
#line 8996 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_property_instance_init (PhpToValaComposerLibraryComposerProperty * self,
                                                              gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
#line 21 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 21 "../src/composer_library.vala"
	self->name = _tmp0_;
#line 22 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 22 "../src/composer_library.vala"
	self->type_name = _tmp1_;
#line 23 "../src/composer_library.vala"
	_tmp2_ = g_strdup ("public");
#line 23 "../src/composer_library.vala"
	self->visibility = _tmp2_;
#line 24 "../src/composer_library.vala"
	self->nullable = FALSE;
#line 9020 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_property_finalize (GObject * obj)
{
	PhpToValaComposerLibraryComposerProperty * self;
#line 20 "../src/composer_library.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY, PhpToValaComposerLibraryComposerProperty);
#line 21 "../src/composer_library.vala"
	_g_free0 (self->name);
#line 22 "../src/composer_library.vala"
	_g_free0 (self->type_name);
#line 23 "../src/composer_library.vala"
	_g_free0 (self->visibility);
#line 20 "../src/composer_library.vala"
	G_OBJECT_CLASS (php_to_vala_composer_library_composer_property_parent_class)->finalize (obj);
#line 9037 "composer_library.c"
}

static GType
php_to_vala_composer_library_composer_property_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaComposerLibraryComposerPropertyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_composer_library_composer_property_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaComposerLibraryComposerProperty), 0, (GInstanceInitFunc) php_to_vala_composer_library_composer_property_instance_init, NULL };
	GType php_to_vala_composer_library_composer_property_type_id;
	php_to_vala_composer_library_composer_property_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaComposerLibraryComposerProperty", &g_define_type_info, 0);
	return php_to_vala_composer_library_composer_property_type_id;
}

static GType
php_to_vala_composer_library_composer_property_get_type (void)
{
	static volatile gsize php_to_vala_composer_library_composer_property_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_composer_library_composer_property_type_id__once)) {
		GType php_to_vala_composer_library_composer_property_type_id;
		php_to_vala_composer_library_composer_property_type_id = php_to_vala_composer_library_composer_property_get_type_once ();
		g_once_init_leave (&php_to_vala_composer_library_composer_property_type_id__once, php_to_vala_composer_library_composer_property_type_id);
	}
	return php_to_vala_composer_library_composer_property_type_id__once;
}

static PhpToValaComposerLibraryComposerSymbol*
php_to_vala_composer_library_composer_symbol_construct (GType object_type)
{
	PhpToValaComposerLibraryComposerSymbol * self = NULL;
#line 27 "../src/composer_library.vala"
	self = (PhpToValaComposerLibraryComposerSymbol*) g_object_new (object_type, NULL);
#line 27 "../src/composer_library.vala"
	return self;
#line 9069 "composer_library.c"
}

static PhpToValaComposerLibraryComposerSymbol*
php_to_vala_composer_library_composer_symbol_new (void)
{
#line 27 "../src/composer_library.vala"
	return php_to_vala_composer_library_composer_symbol_construct (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL);
#line 9077 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_symbol_class_init (PhpToValaComposerLibraryComposerSymbolClass * klass,
                                                         gpointer klass_data)
{
#line 27 "../src/composer_library.vala"
	php_to_vala_composer_library_composer_symbol_parent_class = g_type_class_peek_parent (klass);
#line 27 "../src/composer_library.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_composer_library_composer_symbol_finalize;
#line 9088 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_symbol_instance_init (PhpToValaComposerLibraryComposerSymbol * self,
                                                            gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GeeArrayList* _tmp6_;
	GeeArrayList* _tmp7_;
	GeeArrayList* _tmp8_;
	GeeArrayList* _tmp9_;
#line 28 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 28 "../src/composer_library.vala"
	self->kind = _tmp0_;
#line 29 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 29 "../src/composer_library.vala"
	self->namespace_name = _tmp1_;
#line 30 "../src/composer_library.vala"
	_tmp2_ = g_strdup ("");
#line 30 "../src/composer_library.vala"
	self->name = _tmp2_;
#line 31 "../src/composer_library.vala"
	_tmp3_ = g_strdup ("");
#line 31 "../src/composer_library.vala"
	self->doc_comment = _tmp3_;
#line 32 "../src/composer_library.vala"
	_tmp4_ = g_strdup ("");
#line 32 "../src/composer_library.vala"
	self->extends_name = _tmp4_;
#line 33 "../src/composer_library.vala"
	_tmp5_ = g_strdup ("");
#line 33 "../src/composer_library.vala"
	self->implements_name = _tmp5_;
#line 34 "../src/composer_library.vala"
	self->is_abstract = FALSE;
#line 35 "../src/composer_library.vala"
	_tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 35 "../src/composer_library.vala"
	self->traits = _tmp6_;
#line 36 "../src/composer_library.vala"
	_tmp7_ = gee_array_list_new (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_METHOD, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 36 "../src/composer_library.vala"
	self->methods = _tmp7_;
#line 37 "../src/composer_library.vala"
	_tmp8_ = gee_array_list_new (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_CONSTANT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 37 "../src/composer_library.vala"
	self->constants = _tmp8_;
#line 38 "../src/composer_library.vala"
	_tmp9_ = gee_array_list_new (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_PROPERTY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 38 "../src/composer_library.vala"
	self->properties = _tmp9_;
#line 9147 "composer_library.c"
}

static void
php_to_vala_composer_library_composer_symbol_finalize (GObject * obj)
{
	PhpToValaComposerLibraryComposerSymbol * self;
#line 27 "../src/composer_library.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, PhpToValaComposerLibraryComposerSymbol);
#line 28 "../src/composer_library.vala"
	_g_free0 (self->kind);
#line 29 "../src/composer_library.vala"
	_g_free0 (self->namespace_name);
#line 30 "../src/composer_library.vala"
	_g_free0 (self->name);
#line 31 "../src/composer_library.vala"
	_g_free0 (self->doc_comment);
#line 32 "../src/composer_library.vala"
	_g_free0 (self->extends_name);
#line 33 "../src/composer_library.vala"
	_g_free0 (self->implements_name);
#line 35 "../src/composer_library.vala"
	_g_object_unref0 (self->traits);
#line 36 "../src/composer_library.vala"
	_g_object_unref0 (self->methods);
#line 37 "../src/composer_library.vala"
	_g_object_unref0 (self->constants);
#line 38 "../src/composer_library.vala"
	_g_object_unref0 (self->properties);
#line 27 "../src/composer_library.vala"
	G_OBJECT_CLASS (php_to_vala_composer_library_composer_symbol_parent_class)->finalize (obj);
#line 9178 "composer_library.c"
}

static GType
php_to_vala_composer_library_composer_symbol_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaComposerLibraryComposerSymbolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_composer_library_composer_symbol_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaComposerLibraryComposerSymbol), 0, (GInstanceInitFunc) php_to_vala_composer_library_composer_symbol_instance_init, NULL };
	GType php_to_vala_composer_library_composer_symbol_type_id;
	php_to_vala_composer_library_composer_symbol_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaComposerLibraryComposerSymbol", &g_define_type_info, 0);
	return php_to_vala_composer_library_composer_symbol_type_id;
}

static GType
php_to_vala_composer_library_composer_symbol_get_type (void)
{
	static volatile gsize php_to_vala_composer_library_composer_symbol_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_composer_library_composer_symbol_type_id__once)) {
		GType php_to_vala_composer_library_composer_symbol_type_id;
		php_to_vala_composer_library_composer_symbol_type_id = php_to_vala_composer_library_composer_symbol_get_type_once ();
		g_once_init_leave (&php_to_vala_composer_library_composer_symbol_type_id__once, php_to_vala_composer_library_composer_symbol_type_id);
	}
	return php_to_vala_composer_library_composer_symbol_type_id__once;
}

static void
php_to_vala_composer_library_class_init (PhpToValaComposerLibraryClass * klass,
                                         gpointer klass_data)
{
#line 3 "../src/composer_library.vala"
	php_to_vala_composer_library_parent_class = g_type_class_peek_parent (klass);
#line 3 "../src/composer_library.vala"
	g_type_class_adjust_private_offset (klass, &PhpToValaComposerLibrary_private_offset);
#line 3 "../src/composer_library.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_composer_library_finalize;
#line 9212 "composer_library.c"
}

static void
php_to_vala_composer_library_instance_init (PhpToValaComposerLibrary * self,
                                            gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeHashMap* _tmp3_;
#line 3 "../src/composer_library.vala"
	self->priv = php_to_vala_composer_library_get_instance_private (self);
#line 41 "../src/composer_library.vala"
	_tmp0_ = g_strdup ("");
#line 41 "../src/composer_library.vala"
	self->vala_source = _tmp0_;
#line 42 "../src/composer_library.vala"
	_tmp1_ = g_strdup ("");
#line 42 "../src/composer_library.vala"
	self->stub_source = _tmp1_;
#line 44 "../src/composer_library.vala"
	_tmp2_ = gee_array_list_new (PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 44 "../src/composer_library.vala"
	self->priv->symbols = _tmp2_;
#line 45 "../src/composer_library.vala"
	_tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, PHP_TO_VALA_COMPOSER_LIBRARY_TYPE_COMPOSER_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 45 "../src/composer_library.vala"
	self->priv->symbol_by_name = _tmp3_;
#line 9241 "composer_library.c"
}

static void
php_to_vala_composer_library_finalize (GObject * obj)
{
	PhpToValaComposerLibrary * self;
#line 3 "../src/composer_library.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHP_TO_VALA_COMPOSER_LIBRARY, PhpToValaComposerLibrary);
#line 41 "../src/composer_library.vala"
	_g_free0 (self->vala_source);
#line 42 "../src/composer_library.vala"
	_g_free0 (self->stub_source);
#line 44 "../src/composer_library.vala"
	_g_object_unref0 (self->priv->symbols);
#line 45 "../src/composer_library.vala"
	_g_object_unref0 (self->priv->symbol_by_name);
#line 3 "../src/composer_library.vala"
	G_OBJECT_CLASS (php_to_vala_composer_library_parent_class)->finalize (obj);
#line 9260 "composer_library.c"
}

static GType
php_to_vala_composer_library_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaComposerLibraryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_composer_library_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaComposerLibrary), 0, (GInstanceInitFunc) php_to_vala_composer_library_instance_init, NULL };
	GType php_to_vala_composer_library_type_id;
	php_to_vala_composer_library_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaComposerLibrary", &g_define_type_info, 0);
	PhpToValaComposerLibrary_private_offset = g_type_add_instance_private (php_to_vala_composer_library_type_id, sizeof (PhpToValaComposerLibraryPrivate));
	return php_to_vala_composer_library_type_id;
}

GType
php_to_vala_composer_library_get_type (void)
{
	static volatile gsize php_to_vala_composer_library_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_composer_library_type_id__once)) {
		GType php_to_vala_composer_library_type_id;
		php_to_vala_composer_library_type_id = php_to_vala_composer_library_get_type_once ();
		g_once_init_leave (&php_to_vala_composer_library_type_id__once, php_to_vala_composer_library_type_id);
	}
	return php_to_vala_composer_library_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize 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,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

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

