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

#include <glib-object.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib/gstdio.h>
#include <stdio.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_TRANSPILER (php_to_vala_transpiler_get_type ())
#define PHP_TO_VALA_TRANSPILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHP_TO_VALA_TRANSPILER, PhpToValaTranspiler))
#define PHP_TO_VALA_TRANSPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHP_TO_VALA_TRANSPILER, PhpToValaTranspilerClass))
#define IS_PHP_TO_VALA_TRANSPILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHP_TO_VALA_TRANSPILER))
#define IS_PHP_TO_VALA_TRANSPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHP_TO_VALA_TRANSPILER))
#define PHP_TO_VALA_TRANSPILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHP_TO_VALA_TRANSPILER, PhpToValaTranspilerClass))

typedef struct _PhpToValaTranspiler PhpToValaTranspiler;
typedef struct _PhpToValaTranspilerClass PhpToValaTranspilerClass;
typedef struct _PhpToValaTranspilerPrivate PhpToValaTranspilerPrivate;

#define TYPE_LOCAL_FUNCTION (local_function_get_type ())
#define LOCAL_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LOCAL_FUNCTION, LocalFunction))
#define LOCAL_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LOCAL_FUNCTION, LocalFunctionClass))
#define IS_LOCAL_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LOCAL_FUNCTION))
#define IS_LOCAL_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LOCAL_FUNCTION))
#define LOCAL_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LOCAL_FUNCTION, LocalFunctionClass))

typedef struct _LocalFunction LocalFunction;
typedef struct _LocalFunctionClass LocalFunctionClass;

#define TYPE_FUNCTION_BINDING (function_binding_get_type ())
#define FUNCTION_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FUNCTION_BINDING, FunctionBinding))
#define FUNCTION_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FUNCTION_BINDING, FunctionBindingClass))
#define IS_FUNCTION_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FUNCTION_BINDING))
#define IS_FUNCTION_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FUNCTION_BINDING))
#define FUNCTION_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FUNCTION_BINDING, FunctionBindingClass))

typedef struct _FunctionBinding FunctionBinding;
typedef struct _FunctionBindingClass FunctionBindingClass;

#define TYPE_PHPCLASS (phpclass_get_type ())
#define PHPCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHPCLASS, PhpClass))
#define PHPCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHPCLASS, PhpClassClass))
#define IS_PHPCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHPCLASS))
#define IS_PHPCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHPCLASS))
#define PHPCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHPCLASS, PhpClassClass))

typedef struct _PhpClass PhpClass;
typedef struct _PhpClassClass PhpClassClass;

#define TYPE_SOURCE_PARTS (source_parts_get_type ())
#define SOURCE_PARTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_PARTS, SourceParts))
#define SOURCE_PARTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_PARTS, SourcePartsClass))
#define IS_SOURCE_PARTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_PARTS))
#define IS_SOURCE_PARTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_PARTS))
#define SOURCE_PARTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_PARTS, SourcePartsClass))

typedef struct _SourceParts SourceParts;
typedef struct _SourcePartsClass SourcePartsClass;

#define TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER (php_to_vala_local_vars_optimizer_get_type ())
#define PHP_TO_VALA_LOCAL_VARS_OPTIMIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER, PhpToValaLocalVarsOptimizer))
#define PHP_TO_VALA_LOCAL_VARS_OPTIMIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER, PhpToValaLocalVarsOptimizerClass))
#define IS_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER))
#define IS_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER))
#define PHP_TO_VALA_LOCAL_VARS_OPTIMIZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHP_TO_VALA_LOCAL_VARS_OPTIMIZER, PhpToValaLocalVarsOptimizerClass))

typedef struct _PhpToValaLocalVarsOptimizer PhpToValaLocalVarsOptimizer;
typedef struct _PhpToValaLocalVarsOptimizerClass PhpToValaLocalVarsOptimizerClass;

#define TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER (php_to_vala_file_func_vars_optimizer_get_type ())
#define PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER, PhpToValaFileFuncVarsOptimizer))
#define PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER, PhpToValaFileFuncVarsOptimizerClass))
#define IS_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER))
#define IS_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER))
#define PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHP_TO_VALA_FILE_FUNC_VARS_OPTIMIZER, PhpToValaFileFuncVarsOptimizerClass))

typedef struct _PhpToValaFileFuncVarsOptimizer PhpToValaFileFuncVarsOptimizer;
typedef struct _PhpToValaFileFuncVarsOptimizerClass PhpToValaFileFuncVarsOptimizerClass;
enum  {
	PHP_TO_VALA_TRANSPILER_0_PROPERTY,
	PHP_TO_VALA_TRANSPILER_NUM_PROPERTIES
};
static GParamSpec* php_to_vala_transpiler_properties[PHP_TO_VALA_TRANSPILER_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)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))

#define TYPE_RESOLVED_SOURCE (resolved_source_get_type ())
#define RESOLVED_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RESOLVED_SOURCE, ResolvedSource))
#define RESOLVED_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RESOLVED_SOURCE, ResolvedSourceClass))
#define IS_RESOLVED_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RESOLVED_SOURCE))
#define IS_RESOLVED_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RESOLVED_SOURCE))
#define RESOLVED_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RESOLVED_SOURCE, ResolvedSourceClass))

typedef struct _ResolvedSource ResolvedSource;
typedef struct _ResolvedSourceClass ResolvedSourceClass;
typedef struct _ResolvedSourcePrivate ResolvedSourcePrivate;
typedef struct _SourcePartsPrivate SourcePartsPrivate;
typedef struct _LocalFunctionPrivate LocalFunctionPrivate;

#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 _PhpClassPrivate PhpClassPrivate;

#define TYPE_STATEMENTS (statements_get_type ())
#define STATEMENTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STATEMENTS, Statements))
#define STATEMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STATEMENTS, StatementsClass))
#define IS_STATEMENTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STATEMENTS))
#define IS_STATEMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STATEMENTS))
#define STATEMENTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STATEMENTS, StatementsClass))

typedef struct _Statements Statements;
typedef struct _StatementsClass StatementsClass;

#define TYPE_PHP_TO_VALA_ERROR (php_to_vala_error_get_type ())
typedef struct _StatementsPrivate StatementsPrivate;
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
typedef struct _LocalParameterPrivate LocalParameterPrivate;
#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
typedef struct _FunctionBindingPrivate FunctionBindingPrivate;

struct _PhpToValaTranspiler {
	GObject parent_instance;
	PhpToValaTranspilerPrivate * priv;
	gboolean transpiling_local_function;
	gchar* current_local_function_name;
	GeeHashMap* variable_types;
	GeeHashMap* variable_aliases;
	GeeHashMap* local_functions;
};

struct _PhpToValaTranspilerClass {
	GObjectClass parent_class;
};

struct _PhpToValaTranspilerPrivate {
	gchar* source_path;
	gchar* runtime_name;
	gchar* output_mode;
	gboolean optimize_local_vars;
	gboolean optimize_file_func_vars;
	GeeHashMap* object_class_names;
	GeeHashMap* function_bindings;
	GeeHashMap* native_function_bindings;
	GeeHashMap* embed_function_bindings;
	GeeHashMap* php_classes;
	GeeHashMap* external_php_classes;
	GeeHashMap* external_functions;
	GeeHashMap* used_function_lookup;
	GeeArrayList* used_function_names;
	GeeHashMap* warned_missing_embed_static;
	GeeHashMap* informed_missing_native_runtime;
	GeeArrayList* source_line_files;
	GeeArrayList* source_line_numbers;
	gchar* last_resolved_source;
	SourceParts* last_source_parts;
	gchar* last_runtime_metadata;
	gchar* last_optimizer_status;
	gchar* output_indent_unit;
	gint temp_variable_counter;
	GRegex* assignment_regex;
	GRegex* function_call_regex;
	GRegex* function_expression_regex;
	GRegex* int_regex;
	GRegex* double_regex;
	PhpToValaLocalVarsOptimizer* local_vars_optimizer;
	PhpToValaFileFuncVarsOptimizer* file_func_vars_optimizer;
};

struct _ResolvedSource {
	GObject parent_instance;
	ResolvedSourcePrivate * priv;
	gchar* source;
	GeeArrayList* files;
	GeeArrayList* lines;
};

struct _ResolvedSourceClass {
	GObjectClass parent_class;
};

struct _SourceParts {
	GObject parent_instance;
	SourcePartsPrivate * priv;
	gchar* main_source;
	GeeArrayList* functions;
	GeeArrayList* classes;
};

struct _SourcePartsClass {
	GObjectClass parent_class;
};

struct _LocalFunction {
	GObject parent_instance;
	LocalFunctionPrivate * priv;
	gchar* name;
	GeeArrayList* parameters;
	gchar* return_type;
	gchar* body;
	gint line;
	gboolean is_static;
	gchar* doc_comment;
};

struct _LocalFunctionClass {
	GObjectClass parent_class;
};

struct _PhpClass {
	GObject parent_instance;
	PhpClassPrivate * priv;
	gchar* name;
	gint line;
	gchar* doc_comment;
	gchar* extends_name;
	GeeArrayList* methods;
};

struct _PhpClassClass {
	GObjectClass parent_class;
};

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

struct _Statements {
	GObject parent_instance;
	StatementsPrivate * priv;
	GeeArrayList* texts;
	GeeArrayList* lines;
	GeeArrayList* columns;
};

struct _StatementsClass {
	GObjectClass parent_class;
};

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

struct _LocalParameterClass {
	GObjectClass parent_class;
};

struct _FunctionBinding {
	GObject parent_instance;
	FunctionBindingPrivate * priv;
	gchar* namespace_name;
	gchar* package_name;
	gchar* return_type;
	gboolean source_location_args;
	gchar* mapped_function_name;
};

struct _FunctionBindingClass {
	GObjectClass parent_class;
};

static gint PhpToValaTranspiler_private_offset;
static gpointer php_to_vala_transpiler_parent_class = NULL;

VALA_EXTERN GType php_to_vala_transpiler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaTranspiler, g_object_unref)
VALA_EXTERN GType local_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LocalFunction, g_object_unref)
VALA_EXTERN GType function_binding_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FunctionBinding, g_object_unref)
VALA_EXTERN GType phpclass_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpClass, g_object_unref)
VALA_EXTERN GType source_parts_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SourceParts, g_object_unref)
VALA_EXTERN GType php_to_vala_local_vars_optimizer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaLocalVarsOptimizer, g_object_unref)
VALA_EXTERN GType php_to_vala_file_func_vars_optimizer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PhpToValaFileFuncVarsOptimizer, g_object_unref)
VALA_EXTERN PhpToValaTranspiler* php_to_vala_transpiler_new (const gchar* source_path,
                                                 gboolean optimize_local_vars,
                                                 gboolean optimize_file_func_vars,
                                                 const gchar* runtime_name,
                                                 const gchar* output_mode,
                                                 GError** error);
VALA_EXTERN PhpToValaTranspiler* php_to_vala_transpiler_construct (GType object_type,
                                                       const gchar* source_path,
                                                       gboolean optimize_local_vars,
                                                       gboolean optimize_file_func_vars,
                                                       const gchar* runtime_name,
                                                       const gchar* output_mode,
                                                       GError** error);
VALA_EXTERN GeeHashMap* php_to_vala_runtime_bindings_load (const gchar* runtime_name);
VALA_EXTERN PhpToValaLocalVarsOptimizer* php_to_vala_local_vars_optimizer_new (PhpToValaTranspiler* transpiler);
VALA_EXTERN PhpToValaLocalVarsOptimizer* php_to_vala_local_vars_optimizer_construct (GType object_type,
                                                                         PhpToValaTranspiler* transpiler);
VALA_EXTERN PhpToValaFileFuncVarsOptimizer* php_to_vala_file_func_vars_optimizer_new (PhpToValaTranspiler* transpiler);
VALA_EXTERN PhpToValaFileFuncVarsOptimizer* php_to_vala_file_func_vars_optimizer_construct (GType object_type,
                                                                                PhpToValaTranspiler* transpiler);
VALA_EXTERN void php_to_vala_transpiler_load_php_stub_file (PhpToValaTranspiler* self,
                                                const gchar* stub_path,
                                                GError** error);
VALA_EXTERN GType resolved_source_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ResolvedSource, g_object_unref)
VALA_EXTERN ResolvedSource* php_to_vala_source_parser_resolve_compile_time_includes (const gchar* source_path,
                                                                         const gchar* source,
                                                                         GError** error);
VALA_EXTERN SourceParts* php_to_vala_source_parser_extract_local_functions (const gchar* source_path,
                                                                const gchar* source,
                                                                GError** error);
VALA_EXTERN gchar* php_to_vala_source_parser_strip_php_tags (const gchar* source);
VALA_EXTERN GType local_parameter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LocalParameter, g_object_unref)
static gchar* php_to_vala_transpiler_extract_php_namespace (const gchar* source);
VALA_EXTERN gchar* php_to_vala_transpiler_transpile (PhpToValaTranspiler* self,
                                         const gchar* php_source,
                                         GError** error);
static gchar* php_to_vala_transpiler_detect_indent_unit (const gchar* source);
static gchar* php_to_vala_transpiler_transpile_zval_first (PhpToValaTranspiler* self,
                                                    SourceParts* source_parts,
                                                    GError** error);
VALA_EXTERN GType statements_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Statements, g_object_unref)
VALA_EXTERN Statements* php_to_vala_source_parser_collect_statements (const gchar* body,
                                                          gint first_line_number);
static gboolean php_to_vala_transpiler_has_executable_statements (PhpToValaTranspiler* self,
                                                           Statements* statements);
VALA_EXTERN GQuark php_to_vala_error_quark (void);
VALA_EXTERN GType php_to_vala_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void php_to_vala_transpiler_append_indented_line (PhpToValaTranspiler* self,
                                                  GString* output,
                                                  gint level,
                                                  const gchar* line);
static gchar* php_to_vala_transpiler_transpile_zval_line (PhpToValaTranspiler* self,
                                                   gchar* line,
                                                   gint php_line_number,
                                                   GError** error);
VALA_EXTERN void php_to_vala_transpiler_validate_no_untranslated_php (PhpToValaTranspiler* self,
                                                          const gchar* php_statement,
                                                          gint php_line,
                                                          gint php_column,
                                                          const gchar* vala_line,
                                                          GError** error);
VALA_EXTERN gint php_to_vala_transpiler_append_generated_block (PhpToValaTranspiler* self,
                                                    GString* output,
                                                    gint base_level,
                                                    const gchar* generated_block,
                                                    gint initial_relative_level);
static void php_to_vala_transpiler_append_zval_classes (PhpToValaTranspiler* self,
                                                 GString* output,
                                                 GeeArrayList* classes,
                                                 GError** error);
static void php_to_vala_transpiler_append_zval_local_functions (PhpToValaTranspiler* self,
                                                         GString* output,
                                                         GeeArrayList* functions,
                                                         GError** error);
VALA_EXTERN gchar* php_to_vala_runtime_metadata_build (const gchar* runtime_name,
                                           gboolean optimize_local_vars,
                                           GeeHashMap* function_bindings,
                                           GeeArrayList* used_function_names);
VALA_EXTERN void php_to_vala_runtime_metadata_append_comment (GString* output,
                                                  const gchar* metadata);
VALA_EXTERN void php_to_vala_runtime_metadata_append_debug_constant (GString* output,
                                                         const gchar* metadata);
VALA_EXTERN gchar* php_to_vala_transpiler_build_php_stub (PhpToValaTranspiler* self,
                                              GError** error);
static void php_to_vala_transpiler_append_php_stub_function (PhpToValaTranspiler* self,
                                                      GString* output,
                                                      LocalFunction* local_function,
                                                      const gchar* indent);
static void php_to_vala_transpiler_append_php_stub_doc_comment (PhpToValaTranspiler* self,
                                                         GString* output,
                                                         const gchar* doc_comment,
                                                         const gchar* indent);
static gchar* php_to_vala_transpiler_php_stub_parameter_list (PhpToValaTranspiler* self,
                                                       LocalFunction* local_function);
static gboolean php_to_vala_transpiler_is_executable_statement (PhpToValaTranspiler* self,
                                                         const gchar* statement);
VALA_EXTERN gboolean php_to_vala_file_func_vars_optimizer_can_emit (PhpToValaFileFuncVarsOptimizer* self,
                                                        LocalFunction* local_function);
VALA_EXTERN void php_to_vala_file_func_vars_optimizer_append_native_function_with_zval_wrapper (PhpToValaFileFuncVarsOptimizer* self,
                                                                                    GString* output,
                                                                                    LocalFunction* local_function,
                                                                                    GError** error);
VALA_EXTERN gboolean php_to_vala_local_vars_optimizer_can_emit (PhpToValaLocalVarsOptimizer* self,
                                                    LocalFunction* local_function);
VALA_EXTERN void php_to_vala_local_vars_optimizer_append_zval_local_function (PhpToValaLocalVarsOptimizer* self,
                                                                  GString* output,
                                                                  LocalFunction* local_function,
                                                                  GError** error);
VALA_EXTERN gchar* php_to_vala_transpiler_build_zval_local_function_parameter_list (PhpToValaTranspiler* self,
                                                                        LocalFunction* local_function);
VALA_EXTERN gboolean php_to_vala_transpiler_zval_statement_terminates_function (const gchar* vala_line);
static gchar* php_to_vala_transpiler_strip_vala_line_strings_and_comments (const gchar* line);
static gboolean php_to_vala_transpiler_has_bare_function_call (const gchar* code,
                                                        const gchar* name);
static gboolean php_to_vala_transpiler_has_bare_keyword (const gchar* code,
                                                  const gchar* name);
VALA_EXTERN gboolean php_to_vala_transpiler_is_identifier_char (gchar c);
static gchar* php_to_vala_transpiler_indent_string (PhpToValaTranspiler* self,
                                             gint level);
static gint php_to_vala_transpiler_count_char (const gchar* value,
                                        gchar needle);
static gchar* php_to_vala_transpiler_convert_zval_expression_no_throw (PhpToValaTranspiler* self,
                                                                const gchar* expression,
                                                                gint php_line_number);
static void php_to_vala_transpiler_mark_function_used (PhpToValaTranspiler* self,
                                                const gchar* function_name);
VALA_EXTERN gchar* php_to_vala_transpiler_map_php_runtime_function_name (PhpToValaTranspiler* self,
                                                             const gchar* php_function_name,
                                                             const gchar* runtime_function_name,
                                                             gint php_line_number,
                                                             GError** error);
VALA_EXTERN gchar* php_to_vala_transpiler_source_location_args (PhpToValaTranspiler* self,
                                                    gint php_line_number);
static gchar* php_to_vala_transpiler_transpile_zval_echo (PhpToValaTranspiler* self,
                                                   const gchar* expression,
                                                   gint php_line_number,
                                                   GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_inline_condition (PhpToValaTranspiler* self,
                                                               const gchar* line,
                                                               const gchar* vala_keyword,
                                                               gint php_line_number,
                                                               GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_foreach (PhpToValaTranspiler* self,
                                                      const gchar* line,
                                                      gint php_line_number,
                                                      GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_for (PhpToValaTranspiler* self,
                                                  const gchar* line,
                                                  gint php_line_number,
                                                  GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_while (PhpToValaTranspiler* self,
                                                    const gchar* line,
                                                    gint php_line_number,
                                                    GError** error);
VALA_EXTERN gchar* php_to_vala_transpiler_trim_trailing_semicolon (const gchar* value);
static gchar* php_to_vala_transpiler_convert_zval_return_expression (PhpToValaTranspiler* self,
                                                              const gchar* expression,
                                                              gint php_line_number,
                                                              GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_exit (PhpToValaTranspiler* self,
                                                   const gchar* expression,
                                                   gint php_line_number,
                                                   const gchar* construct_name,
                                                   GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_dynamic_this_call (PhpToValaTranspiler* self,
                                                                const gchar* line,
                                                                gint php_line_number,
                                                                GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_variable_function_call (PhpToValaTranspiler* self,
                                                                     const gchar* line,
                                                                     gint php_line_number,
                                                                     GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_increment (PhpToValaTranspiler* self,
                                                        const gchar* line,
                                                        gint php_line_number,
                                                        GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_list_assignment (PhpToValaTranspiler* self,
                                                              const gchar* line,
                                                              gint php_line_number,
                                                              GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_compound_assignment (PhpToValaTranspiler* self,
                                                                  const gchar* line,
                                                                  gint php_line_number,
                                                                  GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_array_assignment (PhpToValaTranspiler* self,
                                                               const gchar* line,
                                                               gint php_line_number,
                                                               GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_new_object_assignment (PhpToValaTranspiler* self,
                                                                    const gchar* line,
                                                                    gint php_line_number,
                                                                    GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_object_method_call (PhpToValaTranspiler* self,
                                                                 const gchar* line,
                                                                 gint php_line_number,
                                                                 GError** error);
static gchar* php_to_vala_transpiler_transpile_zval_static_method_call (PhpToValaTranspiler* self,
                                                                 const gchar* line,
                                                                 gint php_line_number,
                                                                 GError** error);
static gchar* php_to_vala_transpiler_parse_assignment_name (const gchar* line);
static gchar* php_to_vala_transpiler_parse_assignment_expression (const gchar* line);
static gboolean php_to_vala_transpiler_is_identifier (const gchar* name);
static gchar* php_to_vala_transpiler_transpile_zval_chained_assignment (PhpToValaTranspiler* self,
                                                                 const gchar* first_name,
                                                                 const gchar* raw_expression,
                                                                 gint php_line_number,
                                                                 GError** error);
static gchar* php_to_vala_transpiler_convert_zval_expression (PhpToValaTranspiler* self,
                                                       const gchar* expression,
                                                       gint php_line_number,
                                                       GError** error);
static void php_to_vala_transpiler_validate_php_stub_argument_count (PhpToValaTranspiler* self,
                                                              LocalFunction* callable,
                                                              const gchar* args,
                                                              gint php_line_number,
                                                              const gchar* callable_name,
                                                              GError** error);
static gchar* php_to_vala_transpiler_convert_zval_argument_list (PhpToValaTranspiler* self,
                                                          const gchar* args,
                                                          gint php_line_number,
                                                          GError** error);
static gchar* php_to_vala_transpiler_replace_php_variables (const gchar* expression);
static GError* php_to_vala_transpiler_unsupported_syntax (PhpToValaTranspiler* self,
                                                   gint php_line_number,
                                                   const gchar* line);
static gint php_to_vala_transpiler_find_top_level_assignment_index (const gchar* expression);
VALA_EXTERN GeeArrayList* php_to_vala_transpiler_split_top_level (PhpToValaTranspiler* self,
                                                      const gchar* expression,
                                                      gchar separator);
static gchar* php_to_vala_transpiler_convert_zval_binary_expression (PhpToValaTranspiler* self,
                                                              const gchar* expression,
                                                              gchar op,
                                                              const gchar* helper_name,
                                                              gint php_line_number,
                                                              GError** error);
VALA_EXTERN gint php_to_vala_transpiler_find_matching_paren (const gchar* value,
                                                 gint start_index);
static gchar* php_to_vala_transpiler_convert_zval_condition (PhpToValaTranspiler* self,
                                                      const gchar* expression,
                                                      gint php_line_number,
                                                      GError** error);
static gchar* php_to_vala_transpiler_convert_zval_for_init (PhpToValaTranspiler* self,
                                                     const gchar* expression,
                                                     gint php_line_number,
                                                     GError** error);
static gchar* php_to_vala_transpiler_convert_zval_for_increment (PhpToValaTranspiler* self,
                                                          const gchar* expression,
                                                          gint php_line_number,
                                                          GError** error);
static gchar* php_to_vala_transpiler_build_zval_dynamic_function_dispatch (PhpToValaTranspiler* self,
                                                                    const gchar* variable_name,
                                                                    gint php_line_number,
                                                                    const gchar* source_line,
                                                                    GError** error);
static gboolean php_to_vala_transpiler_is_php_class_name (const gchar* class_name);
static gboolean php_to_vala_transpiler_class_exists_for_php2vala (PhpToValaTranspiler* self,
                                                           const gchar* class_name);
static GError* php_to_vala_transpiler_unsupported_function (PhpToValaTranspiler* self,
                                                     gint php_line_number,
                                                     const gchar* function_name);
static gchar* php_to_vala_transpiler_php_class_name_to_vala (const gchar* class_name);
static LocalFunction* php_to_vala_transpiler_find_class_method (PhpToValaTranspiler* self,
                                                         const gchar* class_name,
                                                         const gchar* method_name);
static LocalFunction* php_to_vala_transpiler_find_class_method_in_class (PhpToValaTranspiler* self,
                                                                  PhpClass* php_class,
                                                                  const gchar* method_name);
static gchar* php_to_vala_transpiler_resolve_relative_php_class_name (PhpToValaTranspiler* self,
                                                               PhpClass* php_class,
                                                               const gchar* relative_name);
static gchar* php_to_vala_transpiler_source_file_for_line (PhpToValaTranspiler* self,
                                                    gint php_line_number);
static gint php_to_vala_transpiler_source_original_line_for_line (PhpToValaTranspiler* self,
                                                           gint php_line_number);
static GeeArrayList* php_to_vala_transpiler_parse_zval_array_keys (PhpToValaTranspiler* self,
                                                            const gchar* access,
                                                            gint php_line_number,
                                                            GError** error);
static gint php_to_vala_transpiler_find_matching_bracket (const gchar* value,
                                                   gint start_index);
VALA_EXTERN gchar* php_to_vala_transpiler_map_php_function_name (PhpToValaTranspiler* self,
                                                     const gchar* function_name,
                                                     gint php_line_number,
                                                     GError** error);
static gboolean php_to_vala_transpiler_is_string_literal (const gchar* expression);
static gchar* php_to_vala_transpiler_convert_zval_short_array_expression (PhpToValaTranspiler* self,
                                                                   const gchar* expression,
                                                                   gint php_line_number,
                                                                   GError** error);
static gchar* php_to_vala_transpiler_convert_zval_cast_expression (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            gint php_line_number,
                                                            GError** error);
static gchar* php_to_vala_transpiler_convert_string_literal (const gchar* expression);
static gchar* php_to_vala_transpiler_convert_zval_division_expression (PhpToValaTranspiler* self,
                                                                const gchar* expression,
                                                                gint php_line_number,
                                                                GError** error);
static gchar* php_to_vala_transpiler_convert_zval_variable_or_access (PhpToValaTranspiler* self,
                                                               const gchar* expression,
                                                               gint php_line_number,
                                                               GError** error);
static gchar* php_to_vala_transpiler_convert_zval_class_constant (PhpToValaTranspiler* self,
                                                           const gchar* expression);
static gchar* php_to_vala_transpiler_convert_zval_function_call (PhpToValaTranspiler* self,
                                                          const gchar* function_name,
                                                          const gchar* args,
                                                          gint php_line_number,
                                                          GError** error);
static gboolean php_to_vala_transpiler_is_decimal_concat_false_positive (const gchar* left,
                                                                  const gchar* right);
static gchar* php_to_vala_transpiler_join_strings (GeeArrayList* values,
                                            const gchar* separator);
static GeeArrayList* php_to_vala_transpiler_split_division (const gchar* expression);
static gchar* php_to_vala_transpiler_replace_identifier_token (const gchar* expression,
                                                        const gchar* name,
                                                        const gchar* replacement);
static gchar* php_to_vala_transpiler_convert_zval_function_call_via_static_embed (PhpToValaTranspiler* self,
                                                                           const gchar* function_name,
                                                                           const gchar* args,
                                                                           gint php_line_number,
                                                                           GError** error);
static gchar* php_to_vala_transpiler_convert_zval_array_function_expression (PhpToValaTranspiler* self,
                                                                      const gchar* args,
                                                                      gint php_line_number,
                                                                      GError** error);
static gchar* php_to_vala_transpiler_embed_generated_zval_call (PhpToValaTranspiler* self,
                                                         const gchar* function_name,
                                                         const gchar* converted_args,
                                                         gint php_line_number,
                                                         GError** error);
static FunctionBinding* php_to_vala_transpiler_resolve_zval_runtime_binding (PhpToValaTranspiler* self,
                                                                      const gchar* function_name,
                                                                      const gchar* runtime_function_name);
VALA_EXTERN gchar* function_binding_call_name (FunctionBinding* self,
                                   const gchar* function_name);
static gchar* php_to_vala_transpiler_resolve_static_call_name (PhpToValaTranspiler* self,
                                                        const gchar* function_name);
static void php_to_vala_transpiler_note_embed_zval_fallback (PhpToValaTranspiler* self,
                                                      const gchar* function_name,
                                                      const gchar* runtime_function_name);
VALA_EXTERN gchar* php_to_vala_transpiler_enum_prefix_for_function (PhpToValaTranspiler* self,
                                                        const gchar* function_name);
static GeeArrayList* php_to_vala_transpiler_split_top_level_operator (PhpToValaTranspiler* self,
                                                               const gchar* expression,
                                                               const gchar* op);
static gchar* php_to_vala_transpiler_join_zval_conditions (PhpToValaTranspiler* self,
                                                    GeeArrayList* parts,
                                                    const gchar* op,
                                                    gint php_line_number,
                                                    GError** error);
static gint php_to_vala_transpiler_find_top_level_operator_index (PhpToValaTranspiler* self,
                                                           const gchar* expression,
                                                           const gchar* op);
VALA_EXTERN gchar* php_to_vala_transpiler_transpile_line (PhpToValaTranspiler* self,
                                              const gchar* line,
                                              gint php_line_number,
                                              GError** error);
static gchar* php_to_vala_transpiler_transpile_echo (PhpToValaTranspiler* self,
                                              const gchar* expression,
                                              gint php_line_number,
                                              GError** error);
static gchar* php_to_vala_transpiler_transpile_inline_condition (PhpToValaTranspiler* self,
                                                          const gchar* line,
                                                          const gchar* vala_keyword,
                                                          gint php_line_number,
                                                          GError** error);
static gchar* php_to_vala_transpiler_transpile_foreach (PhpToValaTranspiler* self,
                                                 const gchar* line,
                                                 gint php_line_number,
                                                 GError** error);
static gchar* php_to_vala_transpiler_transpile_for (PhpToValaTranspiler* self,
                                             const gchar* line,
                                             gint php_line_number,
                                             GError** error);
static gchar* php_to_vala_transpiler_transpile_return (PhpToValaTranspiler* self,
                                                const gchar* line,
                                                gint php_line_number,
                                                GError** error);
static gchar* php_to_vala_transpiler_transpile_exit (PhpToValaTranspiler* self,
                                              const gchar* expression,
                                              gint php_line_number,
                                              GError** error);
static gchar* php_to_vala_transpiler_transpile_compound_assignment (PhpToValaTranspiler* self,
                                                             const gchar* line,
                                                             gint php_line_number,
                                                             GError** error);
static gchar* php_to_vala_transpiler_transpile_array_assignment (PhpToValaTranspiler* self,
                                                          const gchar* line,
                                                          gint php_line_number,
                                                          GError** error);
static gchar* php_to_vala_transpiler_build_array_initialization (PhpToValaTranspiler* self,
                                                          const gchar* name);
VALA_EXTERN gchar* php_to_vala_transpiler_convert_expression (PhpToValaTranspiler* self,
                                                  const gchar* expression,
                                                  gint php_line_number,
                                                  GError** error);
static gchar* php_to_vala_transpiler_infer_type (PhpToValaTranspiler* self,
                                          const gchar* expression);
static gchar* php_to_vala_transpiler_unique_alias_name (PhpToValaTranspiler* self,
                                                 const gchar* name,
                                                 const gchar* type_name);
static gchar* php_to_vala_transpiler_convert_function_argument_list (PhpToValaTranspiler* self,
                                                              const gchar* args,
                                                              gint php_line_number,
                                                              GError** error);
static gchar* php_to_vala_transpiler_convert_function_args (PhpToValaTranspiler* self,
                                                     const gchar* function_name,
                                                     const gchar* args,
                                                     gint php_line_number,
                                                     GError** error);
static GeeArrayList* php_to_vala_transpiler_parse_array_keys (PhpToValaTranspiler* self,
                                                       const gchar* access,
                                                       gint php_line_number,
                                                       GError** error);
static gchar* php_to_vala_transpiler_numeric_expression (PhpToValaTranspiler* self,
                                                  const gchar* expression);
static GeeArrayList* php_to_vala_transpiler_split_concat (PhpToValaTranspiler* self,
                                                   const gchar* expression);
static gchar* php_to_vala_transpiler_format_for_expression (PhpToValaTranspiler* self,
                                                     const gchar* expression);
static gchar* php_to_vala_transpiler_value_for_format (PhpToValaTranspiler* self,
                                                const gchar* expression);
static gchar* php_to_vala_transpiler_infer_expression_type (PhpToValaTranspiler* self,
                                                     const gchar* expression);
static gchar* php_to_vala_transpiler_hash_key_type (const gchar* type_name);
static gchar* php_to_vala_transpiler_hash_value_type (const gchar* type_name);
static gchar* php_to_vala_transpiler_convert_for_part (PhpToValaTranspiler* self,
                                                const gchar* expression,
                                                gboolean is_init,
                                                gint php_line_number,
                                                GError** error);
static gboolean php_to_vala_transpiler_is_string_exit_expression (PhpToValaTranspiler* self,
                                                           const gchar* expression);
static gchar* php_to_vala_transpiler_normalize_php_boolean_comparisons (const gchar* expression);
static gchar* php_to_vala_transpiler_replace_php_variables_with_aliases (PhpToValaTranspiler* self,
                                                                  const gchar* expression);
static gchar* php_to_vala_transpiler_replace_division_operator (PhpToValaTranspiler* self,
                                                         const gchar* expression,
                                                         gint php_line_number,
                                                         GError** error);
static gchar* php_to_vala_transpiler_replace_concat_operator (const gchar* expression);
static gchar* php_to_vala_transpiler_replace_known_function_names (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            gint php_line_number,
                                                            GError** error);
static gchar* php_to_vala_transpiler_replace_inline_known_function_names (PhpToValaTranspiler* self,
                                                                   const gchar* expression,
                                                                   gint php_line_number);
static gchar* php_to_vala_transpiler_convert_array_accesses (PhpToValaTranspiler* self,
                                                      const gchar* expression);
static gchar* php_to_vala_transpiler_escape_vala_string (const gchar* value);
static gchar* php_to_vala_transpiler_decode_php_double_quoted_string (const gchar* value);
static gchar* php_to_vala_transpiler_convert_special_function_expression (PhpToValaTranspiler* self,
                                                                   const gchar* expression,
                                                                   gint php_line_number,
                                                                   GError** error);
VALA_EXTERN gchar* php_to_vala_file_func_vars_optimizer_local_function_call_as_native_value (PhpToValaFileFuncVarsOptimizer* self,
                                                                                 LocalFunction* local_function,
                                                                                 const gchar* args,
                                                                                 gint php_line_number,
                                                                                 GError** error);
VALA_EXTERN gchar* php_to_vala_local_vars_optimizer_local_function_call_as_native_value (PhpToValaLocalVarsOptimizer* self,
                                                                             LocalFunction* local_function,
                                                                             const gchar* args,
                                                                             gint php_line_number,
                                                                             GError** error);
static gboolean php_to_vala_transpiler_is_embed_runtime_binding (PhpToValaTranspiler* self,
                                                          FunctionBinding* binding);
static void php_to_vala_transpiler_info_missing_native_runtime_once (PhpToValaTranspiler* self,
                                                              const gchar* function_name,
                                                              const gchar* runtime_function_name);
static void php_to_vala_transpiler_warn_missing_embed_static_once (PhpToValaTranspiler* self,
                                                            const gchar* function_name);
static gboolean php_to_vala_transpiler_has_native_runtime_candidate (PhpToValaTranspiler* self,
                                                              const gchar* function_name);
static FunctionBinding* php_to_vala_transpiler_find_native_runtime_binding (PhpToValaTranspiler* self,
                                                                     const gchar* runtime_function_name);
static void php_to_vala_transpiler_info_resolver_step_once (PhpToValaTranspiler* self,
                                                     const gchar* function_name,
                                                     const gchar* step_name,
                                                     const gchar* message);
static FunctionBinding* php_to_vala_transpiler_find_embed_runtime_binding (PhpToValaTranspiler* self,
                                                                    const gchar* runtime_function_name);
static gboolean php_to_vala_transpiler_has_embed_static_binding (PhpToValaTranspiler* self,
                                                          const gchar* function_name);
static gboolean php_to_vala_transpiler_has_native_runtime_binding (PhpToValaTranspiler* self,
                                                            const gchar* runtime_function_name);
static gchar* php_to_vala_transpiler_replace_inline_core_construct_call (PhpToValaTranspiler* self,
                                                                  const gchar* expression,
                                                                  const gchar* function_name,
                                                                  const gchar* mapped_function_name,
                                                                  gint php_line_number);
static gchar* php_to_vala_transpiler_replace_inline_function_call (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            const gchar* function_name,
                                                            gint php_line_number);
VALA_EXTERN gchar* php_to_vala_file_func_vars_optimizer_replace_inline_local_function_call (PhpToValaFileFuncVarsOptimizer* self,
                                                                                const gchar* expression,
                                                                                LocalFunction* local_function,
                                                                                gint php_line_number);
VALA_EXTERN gchar* php_to_vala_local_vars_optimizer_replace_inline_local_function_call (PhpToValaLocalVarsOptimizer* self,
                                                                            const gchar* expression,
                                                                            LocalFunction* local_function,
                                                                            gint php_line_number);
static gchar* php_to_vala_transpiler_replace_function_token (const gchar* expression,
                                                      const gchar* function_name,
                                                      const gchar* replacement_name);
static gchar* php_to_vala_transpiler_array_access_expression (PhpToValaTranspiler* self,
                                                       const gchar* name,
                                                       const gchar* type_name,
                                                       const gchar* key);
static gchar* php_to_vala_transpiler_convert_get_bracket_accesses (const gchar* expression);
static gboolean php_to_vala_transpiler_is_decimal_point (const gchar* expression,
                                                  gint index);
static gboolean php_to_vala_transpiler_is_qualified_name_dot (const gchar* expression,
                                                       gint index);
VALA_EXTERN gboolean php_to_vala_runtime_bindings_has_embed_runtime_binding (const gchar* function_name);
VALA_EXTERN gchar* php_to_vala_source_parser_debug_tokens_for_source_line (const gchar* source_path,
                                                               const gchar* source,
                                                               gint php_line_number,
                                                               gint context_lines);
static gboolean php_to_vala_transpiler_is_unary_sign_position (const gchar* expression,
                                                        gint index);
static gboolean php_to_vala_transpiler_is_function_call_expression (PhpToValaTranspiler* self,
                                                             const gchar* expression,
                                                             const gchar* function_name);
static gchar* php_to_vala_transpiler_generic_inner (const gchar* type_name,
                                             const gchar* prefix);
static gchar** php_to_vala_transpiler_split_generic_pair (const gchar* inner,
                                                   gint* result_length1);
static void php_to_vala_transpiler_finalize (GObject * obj);
static GType php_to_vala_transpiler_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_transpiler_get_instance_private (PhpToValaTranspiler* self)
{
	return G_STRUCT_MEMBER_P (self, PhpToValaTranspiler_private_offset);
}

PhpToValaTranspiler*
php_to_vala_transpiler_construct (GType object_type,
                                  const gchar* source_path,
                                  gboolean optimize_local_vars,
                                  gboolean optimize_file_func_vars,
                                  const gchar* runtime_name,
                                  const gchar* output_mode,
                                  GError** error)
{
	PhpToValaTranspiler * self = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_ = FALSE;
	GRegex* _tmp4_ = NULL;
	GRegex* _tmp5_;
	GRegex* _tmp6_;
	GRegex* _tmp7_ = NULL;
	GRegex* _tmp8_;
	GRegex* _tmp9_;
	GRegex* _tmp10_ = NULL;
	GRegex* _tmp11_;
	GRegex* _tmp12_;
	GRegex* _tmp13_ = NULL;
	GRegex* _tmp14_;
	GRegex* _tmp15_;
	GRegex* _tmp16_ = NULL;
	GRegex* _tmp17_;
	GRegex* _tmp18_;
	GeeHashMap* _tmp19_;
	GeeHashMap* _tmp20_;
	GeeHashMap* _tmp21_;
	PhpToValaLocalVarsOptimizer* _tmp22_;
	PhpToValaFileFuncVarsOptimizer* _tmp23_;
	GError* _inner_error0_ = NULL;
#line 42 "../src/main.vala"
	g_return_val_if_fail (source_path != NULL, NULL);
#line 42 "../src/main.vala"
	g_return_val_if_fail (runtime_name != NULL, NULL);
#line 42 "../src/main.vala"
	g_return_val_if_fail (output_mode != NULL, NULL);
#line 42 "../src/main.vala"
	self = (PhpToValaTranspiler*) g_object_new (object_type, NULL);
#line 43 "../src/main.vala"
	_tmp0_ = g_strdup (source_path);
#line 43 "../src/main.vala"
	_g_free0 (self->priv->source_path);
#line 43 "../src/main.vala"
	self->priv->source_path = _tmp0_;
#line 44 "../src/main.vala"
	_tmp1_ = g_strdup (runtime_name);
#line 44 "../src/main.vala"
	_g_free0 (self->priv->runtime_name);
#line 44 "../src/main.vala"
	self->priv->runtime_name = _tmp1_;
#line 45 "../src/main.vala"
	_tmp2_ = g_strdup (output_mode);
#line 45 "../src/main.vala"
	_g_free0 (self->priv->output_mode);
#line 45 "../src/main.vala"
	self->priv->output_mode = _tmp2_;
#line 46 "../src/main.vala"
	self->priv->optimize_file_func_vars = optimize_file_func_vars;
#line 50 "../src/main.vala"
	if (optimize_local_vars) {
#line 50 "../src/main.vala"
		_tmp3_ = TRUE;
#line 931 "main.c"
	} else {
#line 50 "../src/main.vala"
		_tmp3_ = optimize_file_func_vars;
#line 935 "main.c"
	}
#line 50 "../src/main.vala"
	self->priv->optimize_local_vars = _tmp3_;
#line 51 "../src/main.vala"
	_tmp5_ = g_regex_new ("^\\$([A-Za-z_][A-Za-z0-9_]*)\\s*=\\s*(.*);$", 0, 0, &_inner_error0_);
#line 51 "../src/main.vala"
	_tmp4_ = _tmp5_;
#line 51 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 51 "../src/main.vala"
		if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 51 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 51 "../src/main.vala"
			_g_object_unref0 (self);
#line 51 "../src/main.vala"
			return NULL;
#line 953 "main.c"
		} else {
#line 51 "../src/main.vala"
			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 51 "../src/main.vala"
			g_clear_error (&_inner_error0_);
#line 51 "../src/main.vala"
			return NULL;
#line 961 "main.c"
		}
	}
#line 51 "../src/main.vala"
	_tmp6_ = _tmp4_;
#line 51 "../src/main.vala"
	_tmp4_ = NULL;
#line 51 "../src/main.vala"
	_g_regex_unref0 (self->priv->assignment_regex);
#line 51 "../src/main.vala"
	self->priv->assignment_regex = _tmp6_;
#line 52 "../src/main.vala"
	_tmp8_ = g_regex_new ("^([A-Za-z_][A-Za-z0-9_]*)\\s*\\((.*)\\);$", 0, 0, &_inner_error0_);
#line 52 "../src/main.vala"
	_tmp7_ = _tmp8_;
#line 52 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 52 "../src/main.vala"
		if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 52 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 52 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 52 "../src/main.vala"
			_g_object_unref0 (self);
#line 52 "../src/main.vala"
			return NULL;
#line 988 "main.c"
		} else {
#line 52 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 52 "../src/main.vala"
			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 52 "../src/main.vala"
			g_clear_error (&_inner_error0_);
#line 52 "../src/main.vala"
			return NULL;
#line 998 "main.c"
		}
	}
#line 52 "../src/main.vala"
	_tmp9_ = _tmp7_;
#line 52 "../src/main.vala"
	_tmp7_ = NULL;
#line 52 "../src/main.vala"
	_g_regex_unref0 (self->priv->function_call_regex);
#line 52 "../src/main.vala"
	self->priv->function_call_regex = _tmp9_;
#line 53 "../src/main.vala"
	_tmp11_ = g_regex_new ("^([A-Za-z_][A-Za-z0-9_]*)\\s*\\((.*)\\)$", 0, 0, &_inner_error0_);
#line 53 "../src/main.vala"
	_tmp10_ = _tmp11_;
#line 53 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 53 "../src/main.vala"
		if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 53 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 53 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 53 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 53 "../src/main.vala"
			_g_object_unref0 (self);
#line 53 "../src/main.vala"
			return NULL;
#line 1027 "main.c"
		} else {
#line 53 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 53 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 53 "../src/main.vala"
			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 53 "../src/main.vala"
			g_clear_error (&_inner_error0_);
#line 53 "../src/main.vala"
			return NULL;
#line 1039 "main.c"
		}
	}
#line 53 "../src/main.vala"
	_tmp12_ = _tmp10_;
#line 53 "../src/main.vala"
	_tmp10_ = NULL;
#line 53 "../src/main.vala"
	_g_regex_unref0 (self->priv->function_expression_regex);
#line 53 "../src/main.vala"
	self->priv->function_expression_regex = _tmp12_;
#line 54 "../src/main.vala"
	_tmp14_ = g_regex_new ("^-?[0-9]+$", 0, 0, &_inner_error0_);
#line 54 "../src/main.vala"
	_tmp13_ = _tmp14_;
#line 54 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 54 "../src/main.vala"
		if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 54 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp10_);
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 54 "../src/main.vala"
			_g_object_unref0 (self);
#line 54 "../src/main.vala"
			return NULL;
#line 1070 "main.c"
		} else {
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp10_);
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 54 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 54 "../src/main.vala"
			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 54 "../src/main.vala"
			g_clear_error (&_inner_error0_);
#line 54 "../src/main.vala"
			return NULL;
#line 1084 "main.c"
		}
	}
#line 54 "../src/main.vala"
	_tmp15_ = _tmp13_;
#line 54 "../src/main.vala"
	_tmp13_ = NULL;
#line 54 "../src/main.vala"
	_g_regex_unref0 (self->priv->int_regex);
#line 54 "../src/main.vala"
	self->priv->int_regex = _tmp15_;
#line 55 "../src/main.vala"
	_tmp17_ = g_regex_new ("^-?[0-9]+\\.[0-9]+$", 0, 0, &_inner_error0_);
#line 55 "../src/main.vala"
	_tmp16_ = _tmp17_;
#line 55 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 55 "../src/main.vala"
		if (_inner_error0_->domain == G_REGEX_ERROR) {
#line 55 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp13_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp10_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 55 "../src/main.vala"
			_g_object_unref0 (self);
#line 55 "../src/main.vala"
			return NULL;
#line 1117 "main.c"
		} else {
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp13_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp10_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp7_);
#line 55 "../src/main.vala"
			_g_regex_unref0 (_tmp4_);
#line 55 "../src/main.vala"
			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 55 "../src/main.vala"
			g_clear_error (&_inner_error0_);
#line 55 "../src/main.vala"
			return NULL;
#line 1133 "main.c"
		}
	}
#line 55 "../src/main.vala"
	_tmp18_ = _tmp16_;
#line 55 "../src/main.vala"
	_tmp16_ = NULL;
#line 55 "../src/main.vala"
	_g_regex_unref0 (self->priv->double_regex);
#line 55 "../src/main.vala"
	self->priv->double_regex = _tmp18_;
#line 56 "../src/main.vala"
	_tmp19_ = php_to_vala_runtime_bindings_load (runtime_name);
#line 56 "../src/main.vala"
	_g_object_unref0 (self->priv->function_bindings);
#line 56 "../src/main.vala"
	self->priv->function_bindings = _tmp19_;
#line 57 "../src/main.vala"
	_tmp20_ = php_to_vala_runtime_bindings_load ("native-runtime");
#line 57 "../src/main.vala"
	_g_object_unref0 (self->priv->native_function_bindings);
#line 57 "../src/main.vala"
	self->priv->native_function_bindings = _tmp20_;
#line 58 "../src/main.vala"
	_tmp21_ = php_to_vala_runtime_bindings_load ("embed-runtime");
#line 58 "../src/main.vala"
	_g_object_unref0 (self->priv->embed_function_bindings);
#line 58 "../src/main.vala"
	self->priv->embed_function_bindings = _tmp21_;
#line 59 "../src/main.vala"
	_tmp22_ = php_to_vala_local_vars_optimizer_new (self);
#line 59 "../src/main.vala"
	_g_object_unref0 (self->priv->local_vars_optimizer);
#line 59 "../src/main.vala"
	self->priv->local_vars_optimizer = _tmp22_;
#line 60 "../src/main.vala"
	_tmp23_ = php_to_vala_file_func_vars_optimizer_new (self);
#line 60 "../src/main.vala"
	_g_object_unref0 (self->priv->file_func_vars_optimizer);
#line 60 "../src/main.vala"
	self->priv->file_func_vars_optimizer = _tmp23_;
#line 42 "../src/main.vala"
	_g_regex_unref0 (_tmp16_);
#line 42 "../src/main.vala"
	_g_regex_unref0 (_tmp13_);
#line 42 "../src/main.vala"
	_g_regex_unref0 (_tmp10_);
#line 42 "../src/main.vala"
	_g_regex_unref0 (_tmp7_);
#line 42 "../src/main.vala"
	_g_regex_unref0 (_tmp4_);
#line 42 "../src/main.vala"
	return self;
#line 1186 "main.c"
}

PhpToValaTranspiler*
php_to_vala_transpiler_new (const gchar* source_path,
                            gboolean optimize_local_vars,
                            gboolean optimize_file_func_vars,
                            const gchar* runtime_name,
                            const gchar* output_mode,
                            GError** error)
{
#line 42 "../src/main.vala"
	return php_to_vala_transpiler_construct (TYPE_PHP_TO_VALA_TRANSPILER, source_path, optimize_local_vars, optimize_file_func_vars, runtime_name, output_mode, error);
#line 1199 "main.c"
}

void
php_to_vala_transpiler_load_php_stub_file (PhpToValaTranspiler* self,
                                           const gchar* stub_path,
                                           GError** error)
{
	gchar* stub_source = NULL;
	gchar* _tmp0_ = NULL;
	ResolvedSource* resolved = NULL;
	const gchar* _tmp1_;
	ResolvedSource* _tmp2_;
	SourceParts* stub_parts = NULL;
	ResolvedSource* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	SourceParts* _tmp7_;
	SourceParts* _tmp8_;
	gchar* stub_namespace = NULL;
	const gchar* _tmp35_;
	gchar* _tmp36_;
	const gchar* _tmp37_;
	GError* _inner_error0_ = NULL;
#line 63 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 63 "../src/main.vala"
	g_return_if_fail (stub_path != NULL);
#line 65 "../src/main.vala"
	g_file_get_contents (stub_path, &_tmp0_, NULL, &_inner_error0_);
#line 65 "../src/main.vala"
	_g_free0 (stub_source);
#line 65 "../src/main.vala"
	stub_source = _tmp0_;
#line 65 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 65 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 65 "../src/main.vala"
		_g_free0 (stub_source);
#line 65 "../src/main.vala"
		return;
#line 1242 "main.c"
	}
#line 66 "../src/main.vala"
	_tmp1_ = stub_source;
#line 66 "../src/main.vala"
	_tmp2_ = php_to_vala_source_parser_resolve_compile_time_includes (stub_path, _tmp1_, &_inner_error0_);
#line 66 "../src/main.vala"
	resolved = _tmp2_;
#line 66 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 66 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 66 "../src/main.vala"
		_g_free0 (stub_source);
#line 66 "../src/main.vala"
		return;
#line 1258 "main.c"
	}
#line 67 "../src/main.vala"
	_tmp3_ = resolved;
#line 67 "../src/main.vala"
	_tmp4_ = _tmp3_->source;
#line 67 "../src/main.vala"
	_tmp5_ = php_to_vala_source_parser_strip_php_tags (_tmp4_);
#line 67 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 67 "../src/main.vala"
	_tmp7_ = php_to_vala_source_parser_extract_local_functions (stub_path, _tmp6_, &_inner_error0_);
#line 67 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 67 "../src/main.vala"
	_g_free0 (_tmp6_);
#line 67 "../src/main.vala"
	stub_parts = _tmp8_;
#line 67 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 67 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 67 "../src/main.vala"
		_g_object_unref0 (resolved);
#line 67 "../src/main.vala"
		_g_free0 (stub_source);
#line 67 "../src/main.vala"
		return;
#line 1286 "main.c"
	}
	{
		GeeArrayList* _local_function_list = NULL;
		SourceParts* _tmp9_;
		GeeArrayList* _tmp10_;
		gint _local_function_size = 0;
		GeeArrayList* _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
		gint _local_function_index = 0;
#line 68 "../src/main.vala"
		_tmp9_ = stub_parts;
#line 68 "../src/main.vala"
		_tmp10_ = _tmp9_->functions;
#line 68 "../src/main.vala"
		_local_function_list = _tmp10_;
#line 68 "../src/main.vala"
		_tmp11_ = _local_function_list;
#line 68 "../src/main.vala"
		_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
#line 68 "../src/main.vala"
		_tmp13_ = _tmp12_;
#line 68 "../src/main.vala"
		_local_function_size = _tmp13_;
#line 68 "../src/main.vala"
		_local_function_index = -1;
#line 68 "../src/main.vala"
		while (TRUE) {
#line 1315 "main.c"
			gint _tmp14_;
			gint _tmp15_;
			LocalFunction* local_function = NULL;
			GeeArrayList* _tmp16_;
			gpointer _tmp17_;
			GeeHashMap* _tmp18_;
			LocalFunction* _tmp19_;
			const gchar* _tmp20_;
			LocalFunction* _tmp21_;
#line 68 "../src/main.vala"
			_local_function_index = _local_function_index + 1;
#line 68 "../src/main.vala"
			_tmp14_ = _local_function_index;
#line 68 "../src/main.vala"
			_tmp15_ = _local_function_size;
#line 68 "../src/main.vala"
			if (!(_tmp14_ < _tmp15_)) {
#line 68 "../src/main.vala"
				break;
#line 1335 "main.c"
			}
#line 68 "../src/main.vala"
			_tmp16_ = _local_function_list;
#line 68 "../src/main.vala"
			_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _local_function_index);
#line 68 "../src/main.vala"
			local_function = (LocalFunction*) _tmp17_;
#line 69 "../src/main.vala"
			_tmp18_ = self->priv->external_functions;
#line 69 "../src/main.vala"
			_tmp19_ = local_function;
#line 69 "../src/main.vala"
			_tmp20_ = _tmp19_->name;
#line 69 "../src/main.vala"
			_tmp21_ = local_function;
#line 69 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp18_, _tmp20_, _tmp21_);
#line 68 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 1355 "main.c"
		}
	}
	{
		GeeArrayList* _php_class_list = NULL;
		SourceParts* _tmp22_;
		GeeArrayList* _tmp23_;
		gint _php_class_size = 0;
		GeeArrayList* _tmp24_;
		gint _tmp25_;
		gint _tmp26_;
		gint _php_class_index = 0;
#line 71 "../src/main.vala"
		_tmp22_ = stub_parts;
#line 71 "../src/main.vala"
		_tmp23_ = _tmp22_->classes;
#line 71 "../src/main.vala"
		_php_class_list = _tmp23_;
#line 71 "../src/main.vala"
		_tmp24_ = _php_class_list;
#line 71 "../src/main.vala"
		_tmp25_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp24_);
#line 71 "../src/main.vala"
		_tmp26_ = _tmp25_;
#line 71 "../src/main.vala"
		_php_class_size = _tmp26_;
#line 71 "../src/main.vala"
		_php_class_index = -1;
#line 71 "../src/main.vala"
		while (TRUE) {
#line 1385 "main.c"
			gint _tmp27_;
			gint _tmp28_;
			PhpClass* php_class = NULL;
			GeeArrayList* _tmp29_;
			gpointer _tmp30_;
			GeeHashMap* _tmp31_;
			PhpClass* _tmp32_;
			const gchar* _tmp33_;
			PhpClass* _tmp34_;
#line 71 "../src/main.vala"
			_php_class_index = _php_class_index + 1;
#line 71 "../src/main.vala"
			_tmp27_ = _php_class_index;
#line 71 "../src/main.vala"
			_tmp28_ = _php_class_size;
#line 71 "../src/main.vala"
			if (!(_tmp27_ < _tmp28_)) {
#line 71 "../src/main.vala"
				break;
#line 1405 "main.c"
			}
#line 71 "../src/main.vala"
			_tmp29_ = _php_class_list;
#line 71 "../src/main.vala"
			_tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, _php_class_index);
#line 71 "../src/main.vala"
			php_class = (PhpClass*) _tmp30_;
#line 72 "../src/main.vala"
			_tmp31_ = self->priv->external_php_classes;
#line 72 "../src/main.vala"
			_tmp32_ = php_class;
#line 72 "../src/main.vala"
			_tmp33_ = _tmp32_->name;
#line 72 "../src/main.vala"
			_tmp34_ = php_class;
#line 72 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp31_, _tmp33_, _tmp34_);
#line 71 "../src/main.vala"
			_g_object_unref0 (php_class);
#line 1425 "main.c"
		}
	}
#line 74 "../src/main.vala"
	_tmp35_ = stub_source;
#line 74 "../src/main.vala"
	_tmp36_ = php_to_vala_transpiler_extract_php_namespace (_tmp35_);
#line 74 "../src/main.vala"
	stub_namespace = _tmp36_;
#line 75 "../src/main.vala"
	_tmp37_ = stub_namespace;
#line 75 "../src/main.vala"
	if (g_strcmp0 (_tmp37_, "") != 0) {
#line 1438 "main.c"
		{
			GeeArrayList* _php_class_list = NULL;
			SourceParts* _tmp38_;
			GeeArrayList* _tmp39_;
			gint _php_class_size = 0;
			GeeArrayList* _tmp40_;
			gint _tmp41_;
			gint _tmp42_;
			gint _php_class_index = 0;
#line 76 "../src/main.vala"
			_tmp38_ = stub_parts;
#line 76 "../src/main.vala"
			_tmp39_ = _tmp38_->classes;
#line 76 "../src/main.vala"
			_php_class_list = _tmp39_;
#line 76 "../src/main.vala"
			_tmp40_ = _php_class_list;
#line 76 "../src/main.vala"
			_tmp41_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp40_);
#line 76 "../src/main.vala"
			_tmp42_ = _tmp41_;
#line 76 "../src/main.vala"
			_php_class_size = _tmp42_;
#line 76 "../src/main.vala"
			_php_class_index = -1;
#line 76 "../src/main.vala"
			while (TRUE) {
#line 1466 "main.c"
				gint _tmp43_;
				gint _tmp44_;
				PhpClass* php_class = NULL;
				GeeArrayList* _tmp45_;
				gpointer _tmp46_;
				GeeHashMap* _tmp47_;
				const gchar* _tmp48_;
				gchar* _tmp49_;
				gchar* _tmp50_;
				PhpClass* _tmp51_;
				const gchar* _tmp52_;
				gchar* _tmp53_;
				gchar* _tmp54_;
				PhpClass* _tmp55_;
#line 76 "../src/main.vala"
				_php_class_index = _php_class_index + 1;
#line 76 "../src/main.vala"
				_tmp43_ = _php_class_index;
#line 76 "../src/main.vala"
				_tmp44_ = _php_class_size;
#line 76 "../src/main.vala"
				if (!(_tmp43_ < _tmp44_)) {
#line 76 "../src/main.vala"
					break;
#line 1491 "main.c"
				}
#line 76 "../src/main.vala"
				_tmp45_ = _php_class_list;
#line 76 "../src/main.vala"
				_tmp46_ = gee_abstract_list_get ((GeeAbstractList*) _tmp45_, _php_class_index);
#line 76 "../src/main.vala"
				php_class = (PhpClass*) _tmp46_;
#line 77 "../src/main.vala"
				_tmp47_ = self->priv->external_php_classes;
#line 77 "../src/main.vala"
				_tmp48_ = stub_namespace;
#line 77 "../src/main.vala"
				_tmp49_ = g_strconcat (_tmp48_, "\\", NULL);
#line 77 "../src/main.vala"
				_tmp50_ = _tmp49_;
#line 77 "../src/main.vala"
				_tmp51_ = php_class;
#line 77 "../src/main.vala"
				_tmp52_ = _tmp51_->name;
#line 77 "../src/main.vala"
				_tmp53_ = g_strconcat (_tmp50_, _tmp52_, NULL);
#line 77 "../src/main.vala"
				_tmp54_ = _tmp53_;
#line 77 "../src/main.vala"
				_tmp55_ = php_class;
#line 77 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp47_, _tmp54_, _tmp55_);
#line 77 "../src/main.vala"
				_g_free0 (_tmp54_);
#line 77 "../src/main.vala"
				_g_free0 (_tmp50_);
#line 76 "../src/main.vala"
				_g_object_unref0 (php_class);
#line 1525 "main.c"
			}
		}
	}
#line 63 "../src/main.vala"
	_g_free0 (stub_namespace);
#line 63 "../src/main.vala"
	_g_object_unref0 (stub_parts);
#line 63 "../src/main.vala"
	_g_object_unref0 (resolved);
#line 63 "../src/main.vala"
	_g_free0 (stub_source);
#line 1537 "main.c"
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 93 "../src/main.vala"
	return self ? g_object_ref (self) : NULL;
#line 1545 "main.c"
}

gchar*
php_to_vala_transpiler_transpile (PhpToValaTranspiler* self,
                                  const gchar* php_source,
                                  GError** error)
{
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	GeeHashMap* _tmp3_;
	GeeHashMap* _tmp4_;
	GeeArrayList* _tmp5_;
	GeeHashMap* _tmp6_;
	GeeHashMap* _tmp7_;
	ResolvedSource* resolved = NULL;
	const gchar* _tmp8_;
	ResolvedSource* _tmp9_;
	ResolvedSource* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	ResolvedSource* _tmp13_;
	GeeArrayList* _tmp14_;
	GeeArrayList* _tmp15_;
	ResolvedSource* _tmp16_;
	GeeArrayList* _tmp17_;
	GeeArrayList* _tmp18_;
	ResolvedSource* _tmp19_;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	SourceParts* source_parts = NULL;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	SourceParts* _tmp24_;
	gchar* _tmp51_ = NULL;
	SourceParts* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 82 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 82 "../src/main.vala"
	g_return_val_if_fail (php_source != NULL, NULL);
#line 83 "../src/main.vala"
	_tmp0_ = self->variable_types;
#line 83 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp0_);
#line 84 "../src/main.vala"
	_tmp1_ = self->priv->object_class_names;
#line 84 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp1_);
#line 85 "../src/main.vala"
	_tmp2_ = self->local_functions;
#line 85 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp2_);
#line 86 "../src/main.vala"
	_tmp3_ = self->priv->php_classes;
#line 86 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp3_);
#line 87 "../src/main.vala"
	_tmp4_ = self->priv->used_function_lookup;
#line 87 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp4_);
#line 88 "../src/main.vala"
	_tmp5_ = self->priv->used_function_names;
#line 88 "../src/main.vala"
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp5_);
#line 89 "../src/main.vala"
	_tmp6_ = self->priv->warned_missing_embed_static;
#line 89 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp6_);
#line 90 "../src/main.vala"
	_tmp7_ = self->priv->informed_missing_native_runtime;
#line 90 "../src/main.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp7_);
#line 91 "../src/main.vala"
	_tmp8_ = self->priv->source_path;
#line 91 "../src/main.vala"
	_tmp9_ = php_to_vala_source_parser_resolve_compile_time_includes (_tmp8_, php_source, &_inner_error0_);
#line 91 "../src/main.vala"
	resolved = _tmp9_;
#line 91 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 91 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 91 "../src/main.vala"
		return NULL;
#line 1634 "main.c"
	}
#line 92 "../src/main.vala"
	_tmp10_ = resolved;
#line 92 "../src/main.vala"
	_tmp11_ = _tmp10_->source;
#line 92 "../src/main.vala"
	_tmp12_ = php_to_vala_source_parser_strip_php_tags (_tmp11_);
#line 92 "../src/main.vala"
	_g_free0 (self->priv->last_resolved_source);
#line 92 "../src/main.vala"
	self->priv->last_resolved_source = _tmp12_;
#line 93 "../src/main.vala"
	_tmp13_ = resolved;
#line 93 "../src/main.vala"
	_tmp14_ = _tmp13_->files;
#line 93 "../src/main.vala"
	_tmp15_ = _g_object_ref0 (_tmp14_);
#line 93 "../src/main.vala"
	_g_object_unref0 (self->priv->source_line_files);
#line 93 "../src/main.vala"
	self->priv->source_line_files = _tmp15_;
#line 94 "../src/main.vala"
	_tmp16_ = resolved;
#line 94 "../src/main.vala"
	_tmp17_ = _tmp16_->lines;
#line 94 "../src/main.vala"
	_tmp18_ = _g_object_ref0 (_tmp17_);
#line 94 "../src/main.vala"
	_g_object_unref0 (self->priv->source_line_numbers);
#line 94 "../src/main.vala"
	self->priv->source_line_numbers = _tmp18_;
#line 95 "../src/main.vala"
	_tmp19_ = resolved;
#line 95 "../src/main.vala"
	_tmp20_ = _tmp19_->source;
#line 95 "../src/main.vala"
	_tmp21_ = php_to_vala_transpiler_detect_indent_unit (_tmp20_);
#line 95 "../src/main.vala"
	_g_free0 (self->priv->output_indent_unit);
#line 95 "../src/main.vala"
	self->priv->output_indent_unit = _tmp21_;
#line 96 "../src/main.vala"
	self->priv->temp_variable_counter = 0;
#line 98 "../src/main.vala"
	_tmp22_ = self->priv->source_path;
#line 98 "../src/main.vala"
	_tmp23_ = self->priv->last_resolved_source;
#line 98 "../src/main.vala"
	_tmp24_ = php_to_vala_source_parser_extract_local_functions (_tmp22_, _tmp23_, &_inner_error0_);
#line 98 "../src/main.vala"
	source_parts = _tmp24_;
#line 98 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 98 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 98 "../src/main.vala"
		_g_object_unref0 (resolved);
#line 98 "../src/main.vala"
		return NULL;
#line 1694 "main.c"
	}
	{
		GeeArrayList* _local_function_list = NULL;
		SourceParts* _tmp25_;
		GeeArrayList* _tmp26_;
		gint _local_function_size = 0;
		GeeArrayList* _tmp27_;
		gint _tmp28_;
		gint _tmp29_;
		gint _local_function_index = 0;
#line 99 "../src/main.vala"
		_tmp25_ = source_parts;
#line 99 "../src/main.vala"
		_tmp26_ = _tmp25_->functions;
#line 99 "../src/main.vala"
		_local_function_list = _tmp26_;
#line 99 "../src/main.vala"
		_tmp27_ = _local_function_list;
#line 99 "../src/main.vala"
		_tmp28_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp27_);
#line 99 "../src/main.vala"
		_tmp29_ = _tmp28_;
#line 99 "../src/main.vala"
		_local_function_size = _tmp29_;
#line 99 "../src/main.vala"
		_local_function_index = -1;
#line 99 "../src/main.vala"
		while (TRUE) {
#line 1723 "main.c"
			gint _tmp30_;
			gint _tmp31_;
			LocalFunction* local_function = NULL;
			GeeArrayList* _tmp32_;
			gpointer _tmp33_;
			GeeHashMap* _tmp34_;
			LocalFunction* _tmp35_;
			const gchar* _tmp36_;
			LocalFunction* _tmp37_;
#line 99 "../src/main.vala"
			_local_function_index = _local_function_index + 1;
#line 99 "../src/main.vala"
			_tmp30_ = _local_function_index;
#line 99 "../src/main.vala"
			_tmp31_ = _local_function_size;
#line 99 "../src/main.vala"
			if (!(_tmp30_ < _tmp31_)) {
#line 99 "../src/main.vala"
				break;
#line 1743 "main.c"
			}
#line 99 "../src/main.vala"
			_tmp32_ = _local_function_list;
#line 99 "../src/main.vala"
			_tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp32_, _local_function_index);
#line 99 "../src/main.vala"
			local_function = (LocalFunction*) _tmp33_;
#line 100 "../src/main.vala"
			_tmp34_ = self->local_functions;
#line 100 "../src/main.vala"
			_tmp35_ = local_function;
#line 100 "../src/main.vala"
			_tmp36_ = _tmp35_->name;
#line 100 "../src/main.vala"
			_tmp37_ = local_function;
#line 100 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp34_, _tmp36_, _tmp37_);
#line 99 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 1763 "main.c"
		}
	}
	{
		GeeArrayList* _php_class_list = NULL;
		SourceParts* _tmp38_;
		GeeArrayList* _tmp39_;
		gint _php_class_size = 0;
		GeeArrayList* _tmp40_;
		gint _tmp41_;
		gint _tmp42_;
		gint _php_class_index = 0;
#line 102 "../src/main.vala"
		_tmp38_ = source_parts;
#line 102 "../src/main.vala"
		_tmp39_ = _tmp38_->classes;
#line 102 "../src/main.vala"
		_php_class_list = _tmp39_;
#line 102 "../src/main.vala"
		_tmp40_ = _php_class_list;
#line 102 "../src/main.vala"
		_tmp41_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp40_);
#line 102 "../src/main.vala"
		_tmp42_ = _tmp41_;
#line 102 "../src/main.vala"
		_php_class_size = _tmp42_;
#line 102 "../src/main.vala"
		_php_class_index = -1;
#line 102 "../src/main.vala"
		while (TRUE) {
#line 1793 "main.c"
			gint _tmp43_;
			gint _tmp44_;
			PhpClass* php_class = NULL;
			GeeArrayList* _tmp45_;
			gpointer _tmp46_;
			GeeHashMap* _tmp47_;
			PhpClass* _tmp48_;
			const gchar* _tmp49_;
			PhpClass* _tmp50_;
#line 102 "../src/main.vala"
			_php_class_index = _php_class_index + 1;
#line 102 "../src/main.vala"
			_tmp43_ = _php_class_index;
#line 102 "../src/main.vala"
			_tmp44_ = _php_class_size;
#line 102 "../src/main.vala"
			if (!(_tmp43_ < _tmp44_)) {
#line 102 "../src/main.vala"
				break;
#line 1813 "main.c"
			}
#line 102 "../src/main.vala"
			_tmp45_ = _php_class_list;
#line 102 "../src/main.vala"
			_tmp46_ = gee_abstract_list_get ((GeeAbstractList*) _tmp45_, _php_class_index);
#line 102 "../src/main.vala"
			php_class = (PhpClass*) _tmp46_;
#line 103 "../src/main.vala"
			_tmp47_ = self->priv->php_classes;
#line 103 "../src/main.vala"
			_tmp48_ = php_class;
#line 103 "../src/main.vala"
			_tmp49_ = _tmp48_->name;
#line 103 "../src/main.vala"
			_tmp50_ = php_class;
#line 103 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp47_, _tmp49_, _tmp50_);
#line 102 "../src/main.vala"
			_g_object_unref0 (php_class);
#line 1833 "main.c"
		}
	}
#line 106 "../src/main.vala"
	_tmp52_ = source_parts;
#line 106 "../src/main.vala"
	_tmp53_ = php_to_vala_transpiler_transpile_zval_first (self, _tmp52_, &_inner_error0_);
#line 106 "../src/main.vala"
	_tmp51_ = _tmp53_;
#line 106 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 106 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 106 "../src/main.vala"
		_g_object_unref0 (source_parts);
#line 106 "../src/main.vala"
		_g_object_unref0 (resolved);
#line 106 "../src/main.vala"
		return NULL;
#line 1852 "main.c"
	}
#line 106 "../src/main.vala"
	_tmp54_ = _tmp51_;
#line 106 "../src/main.vala"
	_tmp51_ = NULL;
#line 106 "../src/main.vala"
	result = _tmp54_;
#line 106 "../src/main.vala"
	_g_free0 (_tmp51_);
#line 106 "../src/main.vala"
	_g_object_unref0 (source_parts);
#line 106 "../src/main.vala"
	_g_object_unref0 (resolved);
#line 106 "../src/main.vala"
	return result;
#line 1868 "main.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 1889 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_first (PhpToValaTranspiler* self,
                                             SourceParts* source_parts,
                                             GError** error)
{
	Statements* statements = NULL;
	const gchar* _tmp0_;
	Statements* _tmp1_;
	gboolean has_main_commands = FALSE;
	Statements* _tmp2_;
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp4_;
	gboolean _tmp6_ = FALSE;
	const gchar* _tmp7_;
	GString* body = NULL;
	GString* _tmp9_;
	const gchar* _tmp10_;
	gboolean body_ends_with_return = FALSE;
	gint body_block_level = 0;
	const gchar* _tmp23_;
	GString* local_function_output = NULL;
	GString* _tmp60_;
	GString* _tmp61_;
	GeeArrayList* _tmp62_;
	GString* _tmp63_;
	GeeArrayList* _tmp64_;
	GString* output = NULL;
	GString* _tmp65_;
	gboolean _tmp66_ = FALSE;
	gchar* runtime_metadata = NULL;
	const gchar* _tmp67_;
	GeeHashMap* _tmp68_;
	GeeArrayList* _tmp69_;
	gchar* _tmp70_;
	const gchar* _tmp71_ = NULL;
	gchar* optimizer_status = NULL;
	gchar* _tmp73_;
	SourceParts* _tmp74_;
	const gchar* _tmp75_;
	gchar* _tmp76_;
	const gchar* _tmp77_;
	gchar* _tmp78_;
	GString* _tmp79_;
	GString* _tmp80_;
	const gchar* _tmp81_;
	GString* _tmp82_;
	const gchar* _tmp83_;
	const gchar* _tmp84_;
	GString* _tmp99_;
	GString* _tmp100_;
	const gchar* _tmp101_;
	GString* _tmp102_;
	GString* _tmp103_;
	const gchar* _tmp104_;
	GString* _tmp105_;
	const gchar* _tmp106_;
	gchar* _tmp107_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 109 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 109 "../src/main.vala"
	g_return_val_if_fail (source_parts != NULL, NULL);
#line 110 "../src/main.vala"
	_tmp0_ = source_parts->main_source;
#line 110 "../src/main.vala"
	_tmp1_ = php_to_vala_source_parser_collect_statements (_tmp0_, 1);
#line 110 "../src/main.vala"
	statements = _tmp1_;
#line 111 "../src/main.vala"
	_tmp2_ = statements;
#line 111 "../src/main.vala"
	has_main_commands = php_to_vala_transpiler_has_executable_statements (self, _tmp2_);
#line 113 "../src/main.vala"
	_tmp4_ = self->priv->output_mode;
#line 113 "../src/main.vala"
	if (g_strcmp0 (_tmp4_, "executable") == 0) {
#line 113 "../src/main.vala"
		_tmp3_ = !has_main_commands;
#line 1971 "main.c"
	} else {
#line 113 "../src/main.vala"
		_tmp3_ = FALSE;
#line 1975 "main.c"
	}
#line 113 "../src/main.vala"
	if (_tmp3_) {
#line 1979 "main.c"
		GError* _tmp5_;
#line 114 "../src/main.vala"
		_tmp5_ = g_error_new_literal (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Cannot build executable output: PHP source has no top-level main comma" \
"nds after compile-time include/function/class extraction");
#line 114 "../src/main.vala"
		_inner_error0_ = _tmp5_;
#line 114 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 114 "../src/main.vala"
		_g_object_unref0 (statements);
#line 114 "../src/main.vala"
		return NULL;
#line 1991 "main.c"
	}
#line 118 "../src/main.vala"
	_tmp7_ = self->priv->output_mode;
#line 118 "../src/main.vala"
	if (g_strcmp0 (_tmp7_, "library") == 0) {
#line 118 "../src/main.vala"
		_tmp6_ = has_main_commands;
#line 1999 "main.c"
	} else {
#line 118 "../src/main.vala"
		_tmp6_ = FALSE;
#line 2003 "main.c"
	}
#line 118 "../src/main.vala"
	if (_tmp6_) {
#line 2007 "main.c"
		GError* _tmp8_;
#line 119 "../src/main.vala"
		_tmp8_ = g_error_new_literal (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Cannot build library output: PHP source has top-level main commands; m" \
"ove them to functions/classes or build with --executable");
#line 119 "../src/main.vala"
		_inner_error0_ = _tmp8_;
#line 119 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 119 "../src/main.vala"
		_g_object_unref0 (statements);
#line 119 "../src/main.vala"
		return NULL;
#line 2019 "main.c"
	}
#line 124 "../src/main.vala"
	_tmp9_ = g_string_new ("");
#line 124 "../src/main.vala"
	body = _tmp9_;
#line 125 "../src/main.vala"
	_tmp10_ = self->priv->output_mode;
#line 125 "../src/main.vala"
	if (g_strcmp0 (_tmp10_, "executable") == 0) {
#line 2029 "main.c"
		GString* _tmp11_;
		GString* _tmp12_;
		GString* _tmp13_;
		GString* _tmp14_;
		GString* _tmp15_;
		GString* _tmp16_;
		GString* _tmp17_;
		GString* _tmp18_;
		GString* _tmp19_;
		GeeHashMap* _tmp20_;
		GeeHashMap* _tmp21_;
		GeeHashMap* _tmp22_;
#line 126 "../src/main.vala"
		_tmp11_ = body;
#line 126 "../src/main.vala"
		g_string_append (_tmp11_, "public int main (string[] args) {\n");
#line 127 "../src/main.vala"
		_tmp12_ = body;
#line 127 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp12_, 1, "for (int i = 1; i < args.length; i++) {");
#line 128 "../src/main.vala"
		_tmp13_ = body;
#line 128 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp13_, 2, "if (args[i] == \"--debug--php2vala\") {");
#line 129 "../src/main.vala"
		_tmp14_ = body;
#line 129 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp14_, 3, "stdout.printf (\"%s\", PHP2VALA_DEBUG_INFO);");
#line 130 "../src/main.vala"
		_tmp15_ = body;
#line 130 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp15_, 3, "return 0;");
#line 131 "../src/main.vala"
		_tmp16_ = body;
#line 131 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp16_, 2, "}");
#line 132 "../src/main.vala"
		_tmp17_ = body;
#line 132 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp17_, 1, "}");
#line 133 "../src/main.vala"
		_tmp18_ = body;
#line 133 "../src/main.vala"
		g_string_append (_tmp18_, "\n");
#line 134 "../src/main.vala"
		_tmp19_ = body;
#line 134 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp19_, 1, "try {");
#line 136 "../src/main.vala"
		_tmp20_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 136 "../src/main.vala"
		_g_object_unref0 (self->variable_types);
#line 136 "../src/main.vala"
		self->variable_types = _tmp20_;
#line 137 "../src/main.vala"
		_tmp21_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 137 "../src/main.vala"
		_g_object_unref0 (self->variable_aliases);
#line 137 "../src/main.vala"
		self->variable_aliases = _tmp21_;
#line 138 "../src/main.vala"
		_tmp22_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 138 "../src/main.vala"
		_g_object_unref0 (self->priv->object_class_names);
#line 138 "../src/main.vala"
		self->priv->object_class_names = _tmp22_;
#line 2096 "main.c"
	}
#line 140 "../src/main.vala"
	body_ends_with_return = FALSE;
#line 141 "../src/main.vala"
	body_block_level = 0;
#line 142 "../src/main.vala"
	_tmp23_ = self->priv->output_mode;
#line 142 "../src/main.vala"
	if (g_strcmp0 (_tmp23_, "executable") == 0) {
#line 2106 "main.c"
		GString* _tmp55_;
		GString* _tmp56_;
		GString* _tmp57_;
		GString* _tmp58_;
		GString* _tmp59_;
		{
			gint i = 0;
#line 143 "../src/main.vala"
			i = 0;
#line 2116 "main.c"
			{
				gboolean _tmp24_ = FALSE;
#line 143 "../src/main.vala"
				_tmp24_ = TRUE;
#line 143 "../src/main.vala"
				while (TRUE) {
#line 2123 "main.c"
					Statements* _tmp26_;
					GeeArrayList* _tmp27_;
					gint _tmp28_;
					gint _tmp29_;
					gchar* vala_line = NULL;
					Statements* _tmp30_;
					GeeArrayList* _tmp31_;
					gpointer _tmp32_;
					Statements* _tmp33_;
					GeeArrayList* _tmp34_;
					gpointer _tmp35_;
					gchar* _tmp36_;
					const gchar* _tmp37_;
					Statements* _tmp38_;
					GeeArrayList* _tmp39_;
					gpointer _tmp40_;
					gchar* _tmp41_;
					Statements* _tmp42_;
					GeeArrayList* _tmp43_;
					gpointer _tmp44_;
					Statements* _tmp45_;
					GeeArrayList* _tmp46_;
					gpointer _tmp47_;
					const gchar* _tmp48_;
					GString* _tmp49_;
					const gchar* _tmp50_;
					const gchar* _tmp51_;
					gchar* _tmp52_;
					gchar* _tmp53_;
#line 143 "../src/main.vala"
					if (!_tmp24_) {
#line 2155 "main.c"
						gint _tmp25_;
#line 143 "../src/main.vala"
						_tmp25_ = i;
#line 143 "../src/main.vala"
						i = _tmp25_ + 1;
#line 2161 "main.c"
					}
#line 143 "../src/main.vala"
					_tmp24_ = FALSE;
#line 143 "../src/main.vala"
					_tmp26_ = statements;
#line 143 "../src/main.vala"
					_tmp27_ = _tmp26_->texts;
#line 143 "../src/main.vala"
					_tmp28_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp27_);
#line 143 "../src/main.vala"
					_tmp29_ = _tmp28_;
#line 143 "../src/main.vala"
					if (!(i < _tmp29_)) {
#line 143 "../src/main.vala"
						break;
#line 2177 "main.c"
					}
#line 144 "../src/main.vala"
					_tmp30_ = statements;
#line 144 "../src/main.vala"
					_tmp31_ = _tmp30_->texts;
#line 144 "../src/main.vala"
					_tmp32_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, i);
#line 144 "../src/main.vala"
					_tmp33_ = statements;
#line 144 "../src/main.vala"
					_tmp34_ = _tmp33_->lines;
#line 144 "../src/main.vala"
					_tmp35_ = gee_abstract_list_get ((GeeAbstractList*) _tmp34_, i);
#line 144 "../src/main.vala"
					_tmp36_ = php_to_vala_transpiler_transpile_zval_line (self, (gchar*) _tmp32_, (gint) ((gintptr) _tmp35_), &_inner_error0_);
#line 144 "../src/main.vala"
					vala_line = _tmp36_;
#line 144 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 144 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 144 "../src/main.vala"
						_g_string_free0 (body);
#line 144 "../src/main.vala"
						_g_object_unref0 (statements);
#line 144 "../src/main.vala"
						return NULL;
#line 2205 "main.c"
					}
#line 145 "../src/main.vala"
					_tmp37_ = vala_line;
#line 145 "../src/main.vala"
					if (_tmp37_ == NULL) {
#line 146 "../src/main.vala"
						_g_free0 (vala_line);
#line 146 "../src/main.vala"
						continue;
#line 2215 "main.c"
					}
#line 148 "../src/main.vala"
					_tmp38_ = statements;
#line 148 "../src/main.vala"
					_tmp39_ = _tmp38_->texts;
#line 148 "../src/main.vala"
					_tmp40_ = gee_abstract_list_get ((GeeAbstractList*) _tmp39_, i);
#line 148 "../src/main.vala"
					_tmp41_ = (gchar*) _tmp40_;
#line 148 "../src/main.vala"
					_tmp42_ = statements;
#line 148 "../src/main.vala"
					_tmp43_ = _tmp42_->lines;
#line 148 "../src/main.vala"
					_tmp44_ = gee_abstract_list_get ((GeeAbstractList*) _tmp43_, i);
#line 148 "../src/main.vala"
					_tmp45_ = statements;
#line 148 "../src/main.vala"
					_tmp46_ = _tmp45_->columns;
#line 148 "../src/main.vala"
					_tmp47_ = gee_abstract_list_get ((GeeAbstractList*) _tmp46_, i);
#line 148 "../src/main.vala"
					_tmp48_ = vala_line;
#line 148 "../src/main.vala"
					php_to_vala_transpiler_validate_no_untranslated_php (self, _tmp41_, (gint) ((gintptr) _tmp44_), (gint) ((gintptr) _tmp47_), _tmp48_, &_inner_error0_);
#line 148 "../src/main.vala"
					_g_free0 (_tmp41_);
#line 148 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 148 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 148 "../src/main.vala"
						_g_free0 (vala_line);
#line 148 "../src/main.vala"
						_g_string_free0 (body);
#line 148 "../src/main.vala"
						_g_object_unref0 (statements);
#line 148 "../src/main.vala"
						return NULL;
#line 2255 "main.c"
					}
#line 149 "../src/main.vala"
					_tmp49_ = body;
#line 149 "../src/main.vala"
					_tmp50_ = vala_line;
#line 149 "../src/main.vala"
					body_block_level = php_to_vala_transpiler_append_generated_block (self, _tmp49_, 2, _tmp50_, body_block_level);
#line 150 "../src/main.vala"
					_tmp51_ = vala_line;
#line 150 "../src/main.vala"
					_tmp52_ = string_strip (_tmp51_);
#line 150 "../src/main.vala"
					_tmp53_ = _tmp52_;
#line 150 "../src/main.vala"
					body_ends_with_return = g_str_has_prefix (_tmp53_, "return ");
#line 150 "../src/main.vala"
					_g_free0 (_tmp53_);
#line 143 "../src/main.vala"
					_g_free0 (vala_line);
#line 2275 "main.c"
				}
			}
		}
#line 152 "../src/main.vala"
		if (!body_ends_with_return) {
#line 2281 "main.c"
			GString* _tmp54_;
#line 153 "../src/main.vala"
			_tmp54_ = body;
#line 153 "../src/main.vala"
			php_to_vala_transpiler_append_indented_line (self, _tmp54_, 2, "return 0;");
#line 2287 "main.c"
		}
#line 155 "../src/main.vala"
		_tmp55_ = body;
#line 155 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp55_, 1, "} catch (Error e) {");
#line 156 "../src/main.vala"
		_tmp56_ = body;
#line 156 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp56_, 2, "stderr.printf (\"%s\\n\", e.message);");
#line 157 "../src/main.vala"
		_tmp57_ = body;
#line 157 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp57_, 2, "return 1;");
#line 158 "../src/main.vala"
		_tmp58_ = body;
#line 158 "../src/main.vala"
		php_to_vala_transpiler_append_indented_line (self, _tmp58_, 1, "}");
#line 159 "../src/main.vala"
		_tmp59_ = body;
#line 159 "../src/main.vala"
		g_string_append (_tmp59_, "}\n");
#line 2309 "main.c"
	}
#line 162 "../src/main.vala"
	_tmp60_ = g_string_new ("");
#line 162 "../src/main.vala"
	local_function_output = _tmp60_;
#line 163 "../src/main.vala"
	_tmp61_ = local_function_output;
#line 163 "../src/main.vala"
	_tmp62_ = source_parts->classes;
#line 163 "../src/main.vala"
	php_to_vala_transpiler_append_zval_classes (self, _tmp61_, _tmp62_, &_inner_error0_);
#line 163 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 163 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 163 "../src/main.vala"
		_g_string_free0 (local_function_output);
#line 163 "../src/main.vala"
		_g_string_free0 (body);
#line 163 "../src/main.vala"
		_g_object_unref0 (statements);
#line 163 "../src/main.vala"
		return NULL;
#line 2333 "main.c"
	}
#line 164 "../src/main.vala"
	_tmp63_ = local_function_output;
#line 164 "../src/main.vala"
	_tmp64_ = source_parts->functions;
#line 164 "../src/main.vala"
	php_to_vala_transpiler_append_zval_local_functions (self, _tmp63_, _tmp64_, &_inner_error0_);
#line 164 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 164 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 164 "../src/main.vala"
		_g_string_free0 (local_function_output);
#line 164 "../src/main.vala"
		_g_string_free0 (body);
#line 164 "../src/main.vala"
		_g_object_unref0 (statements);
#line 164 "../src/main.vala"
		return NULL;
#line 2353 "main.c"
	}
#line 166 "../src/main.vala"
	_tmp65_ = g_string_new ("");
#line 166 "../src/main.vala"
	output = _tmp65_;
#line 167 "../src/main.vala"
	if (self->priv->optimize_local_vars) {
#line 167 "../src/main.vala"
		_tmp66_ = TRUE;
#line 2363 "main.c"
	} else {
#line 167 "../src/main.vala"
		_tmp66_ = self->priv->optimize_file_func_vars;
#line 2367 "main.c"
	}
#line 167 "../src/main.vala"
	_tmp67_ = self->priv->runtime_name;
#line 167 "../src/main.vala"
	_tmp68_ = self->priv->function_bindings;
#line 167 "../src/main.vala"
	_tmp69_ = self->priv->used_function_names;
#line 167 "../src/main.vala"
	_tmp70_ = php_to_vala_runtime_metadata_build (_tmp67_, _tmp66_, _tmp68_, _tmp69_);
#line 167 "../src/main.vala"
	runtime_metadata = _tmp70_;
#line 168 "../src/main.vala"
	if (self->priv->optimize_file_func_vars) {
#line 168 "../src/main.vala"
		_tmp71_ = "file-func-vars enabled";
#line 2383 "main.c"
	} else {
		const gchar* _tmp72_ = NULL;
#line 168 "../src/main.vala"
		if (self->priv->optimize_local_vars) {
#line 168 "../src/main.vala"
			_tmp72_ = "local-vars enabled";
#line 2390 "main.c"
		} else {
#line 168 "../src/main.vala"
			_tmp72_ = "local-vars disabled";
#line 2394 "main.c"
		}
#line 168 "../src/main.vala"
		_tmp71_ = _tmp72_;
#line 2398 "main.c"
	}
#line 168 "../src/main.vala"
	_tmp73_ = g_strdup (_tmp71_);
#line 168 "../src/main.vala"
	optimizer_status = _tmp73_;
#line 169 "../src/main.vala"
	_tmp74_ = _g_object_ref0 (source_parts);
#line 169 "../src/main.vala"
	_g_object_unref0 (self->priv->last_source_parts);
#line 169 "../src/main.vala"
	self->priv->last_source_parts = _tmp74_;
#line 170 "../src/main.vala"
	_tmp75_ = runtime_metadata;
#line 170 "../src/main.vala"
	_tmp76_ = g_strdup (_tmp75_);
#line 170 "../src/main.vala"
	_g_free0 (self->priv->last_runtime_metadata);
#line 170 "../src/main.vala"
	self->priv->last_runtime_metadata = _tmp76_;
#line 171 "../src/main.vala"
	_tmp77_ = optimizer_status;
#line 171 "../src/main.vala"
	_tmp78_ = g_strdup (_tmp77_);
#line 171 "../src/main.vala"
	_g_free0 (self->priv->last_optimizer_status);
#line 171 "../src/main.vala"
	self->priv->last_optimizer_status = _tmp78_;
#line 172 "../src/main.vala"
	_tmp79_ = output;
#line 172 "../src/main.vala"
	g_string_append (_tmp79_, "using Gee;\n\n");
#line 173 "../src/main.vala"
	_tmp80_ = output;
#line 173 "../src/main.vala"
	_tmp81_ = runtime_metadata;
#line 173 "../src/main.vala"
	php_to_vala_runtime_metadata_append_comment (_tmp80_, _tmp81_);
#line 174 "../src/main.vala"
	_tmp82_ = output;
#line 174 "../src/main.vala"
	_tmp83_ = optimizer_status;
#line 174 "../src/main.vala"
	g_string_append_printf (_tmp82_, "/* php2vala optimizer: %s */\n", _tmp83_);
#line 175 "../src/main.vala"
	_tmp84_ = self->priv->output_mode;
#line 175 "../src/main.vala"
	if (g_strcmp0 (_tmp84_, "executable") == 0) {
#line 2446 "main.c"
		GString* _tmp85_;
		const gchar* _tmp86_;
		gchar* _tmp87_;
		gchar* _tmp88_;
		const gchar* _tmp89_;
		gchar* _tmp90_;
		gchar* _tmp91_;
		gchar* _tmp92_;
		gchar* _tmp93_;
		const gchar* _tmp94_;
		gchar* _tmp95_;
		gchar* _tmp96_;
		gchar* _tmp97_;
		gchar* _tmp98_;
#line 176 "../src/main.vala"
		_tmp85_ = output;
#line 176 "../src/main.vala"
		_tmp86_ = runtime_metadata;
#line 176 "../src/main.vala"
		_tmp87_ = g_strconcat (_tmp86_, "\nphp2vala runtime: ", NULL);
#line 176 "../src/main.vala"
		_tmp88_ = _tmp87_;
#line 176 "../src/main.vala"
		_tmp89_ = self->priv->runtime_name;
#line 176 "../src/main.vala"
		_tmp90_ = g_strconcat (_tmp88_, _tmp89_, NULL);
#line 176 "../src/main.vala"
		_tmp91_ = _tmp90_;
#line 176 "../src/main.vala"
		_tmp92_ = g_strconcat (_tmp91_, "\nphp2vala optimizer: ", NULL);
#line 176 "../src/main.vala"
		_tmp93_ = _tmp92_;
#line 176 "../src/main.vala"
		_tmp94_ = optimizer_status;
#line 176 "../src/main.vala"
		_tmp95_ = g_strconcat (_tmp93_, _tmp94_, NULL);
#line 176 "../src/main.vala"
		_tmp96_ = _tmp95_;
#line 176 "../src/main.vala"
		_tmp97_ = g_strconcat (_tmp96_, "\n", NULL);
#line 176 "../src/main.vala"
		_tmp98_ = _tmp97_;
#line 176 "../src/main.vala"
		php_to_vala_runtime_metadata_append_debug_constant (_tmp85_, _tmp98_);
#line 176 "../src/main.vala"
		_g_free0 (_tmp98_);
#line 176 "../src/main.vala"
		_g_free0 (_tmp96_);
#line 176 "../src/main.vala"
		_g_free0 (_tmp93_);
#line 176 "../src/main.vala"
		_g_free0 (_tmp91_);
#line 176 "../src/main.vala"
		_g_free0 (_tmp88_);
#line 2501 "main.c"
	}
#line 178 "../src/main.vala"
	_tmp99_ = output;
#line 178 "../src/main.vala"
	_tmp100_ = local_function_output;
#line 178 "../src/main.vala"
	_tmp101_ = _tmp100_->str;
#line 178 "../src/main.vala"
	g_string_append (_tmp99_, _tmp101_);
#line 179 "../src/main.vala"
	_tmp102_ = output;
#line 179 "../src/main.vala"
	_tmp103_ = body;
#line 179 "../src/main.vala"
	_tmp104_ = _tmp103_->str;
#line 179 "../src/main.vala"
	g_string_append (_tmp102_, _tmp104_);
#line 180 "../src/main.vala"
	_tmp105_ = output;
#line 180 "../src/main.vala"
	_tmp106_ = _tmp105_->str;
#line 180 "../src/main.vala"
	_tmp107_ = g_strdup (_tmp106_);
#line 180 "../src/main.vala"
	result = _tmp107_;
#line 180 "../src/main.vala"
	_g_free0 (optimizer_status);
#line 180 "../src/main.vala"
	_g_free0 (runtime_metadata);
#line 180 "../src/main.vala"
	_g_string_free0 (output);
#line 180 "../src/main.vala"
	_g_string_free0 (local_function_output);
#line 180 "../src/main.vala"
	_g_string_free0 (body);
#line 180 "../src/main.vala"
	_g_object_unref0 (statements);
#line 180 "../src/main.vala"
	return result;
#line 2541 "main.c"
}

gchar*
php_to_vala_transpiler_build_php_stub (PhpToValaTranspiler* self,
                                       GError** error)
{
	SourceParts* _tmp0_;
	SourceParts* source_parts = NULL;
	SourceParts* _tmp2_;
	SourceParts* _tmp3_;
	GString* output = NULL;
	GString* _tmp4_;
	GString* _tmp5_;
	GString* _tmp6_;
	GString* _tmp7_;
	const gchar* _tmp8_;
	gchar** _tmp9_;
	gchar** _tmp10_;
	GString* _tmp16_;
	const gchar* _tmp17_;
	GString* _tmp18_;
	GString* _tmp58_;
	const gchar* _tmp59_;
	gchar* _tmp60_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 183 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 184 "../src/main.vala"
	_tmp0_ = self->priv->last_source_parts;
#line 184 "../src/main.vala"
	if (_tmp0_ == NULL) {
#line 2574 "main.c"
		GError* _tmp1_;
#line 185 "../src/main.vala"
		_tmp1_ = g_error_new_literal (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Cannot emit PHP stub before transpile()");
#line 185 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 185 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 185 "../src/main.vala"
		return NULL;
#line 2584 "main.c"
	}
#line 188 "../src/main.vala"
	_tmp2_ = self->priv->last_source_parts;
#line 188 "../src/main.vala"
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_PARTS, SourceParts));
#line 188 "../src/main.vala"
	source_parts = _tmp3_;
#line 189 "../src/main.vala"
	_tmp4_ = g_string_new ("");
#line 189 "../src/main.vala"
	output = _tmp4_;
#line 190 "../src/main.vala"
	_tmp5_ = output;
#line 190 "../src/main.vala"
	g_string_append (_tmp5_, "<?php\n");
#line 191 "../src/main.vala"
	_tmp6_ = output;
#line 191 "../src/main.vala"
	g_string_append (_tmp6_, "/*\n");
#line 192 "../src/main.vala"
	_tmp7_ = output;
#line 192 "../src/main.vala"
	g_string_append (_tmp7_, " * php2vala generated PHP stub. Declarative only; do not execute as ap" \
"plication code.\n");
#line 193 "../src/main.vala"
	_tmp8_ = self->priv->last_runtime_metadata;
#line 193 "../src/main.vala"
	_tmp10_ = _tmp9_ = g_strsplit (_tmp8_, "\n", 0);
#line 2612 "main.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 193 "../src/main.vala"
		raw_line_collection = _tmp10_;
#line 193 "../src/main.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp9_);
#line 193 "../src/main.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 2624 "main.c"
			gchar* _tmp11_;
			gchar* raw_line = NULL;
#line 193 "../src/main.vala"
			_tmp11_ = g_strdup (raw_line_collection[raw_line_it]);
#line 193 "../src/main.vala"
			raw_line = _tmp11_;
#line 2631 "main.c"
			{
				GString* _tmp12_;
				GString* _tmp13_;
				const gchar* _tmp14_;
				GString* _tmp15_;
#line 194 "../src/main.vala"
				_tmp12_ = output;
#line 194 "../src/main.vala"
				g_string_append (_tmp12_, " * ");
#line 195 "../src/main.vala"
				_tmp13_ = output;
#line 195 "../src/main.vala"
				_tmp14_ = raw_line;
#line 195 "../src/main.vala"
				g_string_append (_tmp13_, _tmp14_);
#line 196 "../src/main.vala"
				_tmp15_ = output;
#line 196 "../src/main.vala"
				g_string_append (_tmp15_, "\n");
#line 193 "../src/main.vala"
				_g_free0 (raw_line);
#line 2653 "main.c"
			}
		}
#line 193 "../src/main.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 2658 "main.c"
	}
#line 198 "../src/main.vala"
	_tmp16_ = output;
#line 198 "../src/main.vala"
	_tmp17_ = self->priv->last_optimizer_status;
#line 198 "../src/main.vala"
	g_string_append_printf (_tmp16_, " * php2vala optimizer: %s\n", _tmp17_);
#line 199 "../src/main.vala"
	_tmp18_ = output;
#line 199 "../src/main.vala"
	g_string_append (_tmp18_, " */\n\n");
#line 2670 "main.c"
	{
		GeeArrayList* _local_function_list = NULL;
		SourceParts* _tmp19_;
		GeeArrayList* _tmp20_;
		gint _local_function_size = 0;
		GeeArrayList* _tmp21_;
		gint _tmp22_;
		gint _tmp23_;
		gint _local_function_index = 0;
#line 201 "../src/main.vala"
		_tmp19_ = source_parts;
#line 201 "../src/main.vala"
		_tmp20_ = _tmp19_->functions;
#line 201 "../src/main.vala"
		_local_function_list = _tmp20_;
#line 201 "../src/main.vala"
		_tmp21_ = _local_function_list;
#line 201 "../src/main.vala"
		_tmp22_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp21_);
#line 201 "../src/main.vala"
		_tmp23_ = _tmp22_;
#line 201 "../src/main.vala"
		_local_function_size = _tmp23_;
#line 201 "../src/main.vala"
		_local_function_index = -1;
#line 201 "../src/main.vala"
		while (TRUE) {
#line 2698 "main.c"
			gint _tmp24_;
			gint _tmp25_;
			LocalFunction* local_function = NULL;
			GeeArrayList* _tmp26_;
			gpointer _tmp27_;
			GString* _tmp28_;
			LocalFunction* _tmp29_;
			GString* _tmp30_;
#line 201 "../src/main.vala"
			_local_function_index = _local_function_index + 1;
#line 201 "../src/main.vala"
			_tmp24_ = _local_function_index;
#line 201 "../src/main.vala"
			_tmp25_ = _local_function_size;
#line 201 "../src/main.vala"
			if (!(_tmp24_ < _tmp25_)) {
#line 201 "../src/main.vala"
				break;
#line 2717 "main.c"
			}
#line 201 "../src/main.vala"
			_tmp26_ = _local_function_list;
#line 201 "../src/main.vala"
			_tmp27_ = gee_abstract_list_get ((GeeAbstractList*) _tmp26_, _local_function_index);
#line 201 "../src/main.vala"
			local_function = (LocalFunction*) _tmp27_;
#line 202 "../src/main.vala"
			_tmp28_ = output;
#line 202 "../src/main.vala"
			_tmp29_ = local_function;
#line 202 "../src/main.vala"
			php_to_vala_transpiler_append_php_stub_function (self, _tmp28_, _tmp29_, "");
#line 203 "../src/main.vala"
			_tmp30_ = output;
#line 203 "../src/main.vala"
			g_string_append (_tmp30_, "\n");
#line 201 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 2737 "main.c"
		}
	}
	{
		GeeArrayList* _php_class_list = NULL;
		SourceParts* _tmp31_;
		GeeArrayList* _tmp32_;
		gint _php_class_size = 0;
		GeeArrayList* _tmp33_;
		gint _tmp34_;
		gint _tmp35_;
		gint _php_class_index = 0;
#line 205 "../src/main.vala"
		_tmp31_ = source_parts;
#line 205 "../src/main.vala"
		_tmp32_ = _tmp31_->classes;
#line 205 "../src/main.vala"
		_php_class_list = _tmp32_;
#line 205 "../src/main.vala"
		_tmp33_ = _php_class_list;
#line 205 "../src/main.vala"
		_tmp34_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp33_);
#line 205 "../src/main.vala"
		_tmp35_ = _tmp34_;
#line 205 "../src/main.vala"
		_php_class_size = _tmp35_;
#line 205 "../src/main.vala"
		_php_class_index = -1;
#line 205 "../src/main.vala"
		while (TRUE) {
#line 2767 "main.c"
			gint _tmp36_;
			gint _tmp37_;
			PhpClass* php_class = NULL;
			GeeArrayList* _tmp38_;
			gpointer _tmp39_;
			GString* _tmp40_;
			PhpClass* _tmp41_;
			const gchar* _tmp42_;
			GString* _tmp43_;
			PhpClass* _tmp44_;
			const gchar* _tmp45_;
			GString* _tmp57_;
#line 205 "../src/main.vala"
			_php_class_index = _php_class_index + 1;
#line 205 "../src/main.vala"
			_tmp36_ = _php_class_index;
#line 205 "../src/main.vala"
			_tmp37_ = _php_class_size;
#line 205 "../src/main.vala"
			if (!(_tmp36_ < _tmp37_)) {
#line 205 "../src/main.vala"
				break;
#line 2790 "main.c"
			}
#line 205 "../src/main.vala"
			_tmp38_ = _php_class_list;
#line 205 "../src/main.vala"
			_tmp39_ = gee_abstract_list_get ((GeeAbstractList*) _tmp38_, _php_class_index);
#line 205 "../src/main.vala"
			php_class = (PhpClass*) _tmp39_;
#line 206 "../src/main.vala"
			_tmp40_ = output;
#line 206 "../src/main.vala"
			_tmp41_ = php_class;
#line 206 "../src/main.vala"
			_tmp42_ = _tmp41_->doc_comment;
#line 206 "../src/main.vala"
			php_to_vala_transpiler_append_php_stub_doc_comment (self, _tmp40_, _tmp42_, "");
#line 207 "../src/main.vala"
			_tmp43_ = output;
#line 207 "../src/main.vala"
			_tmp44_ = php_class;
#line 207 "../src/main.vala"
			_tmp45_ = _tmp44_->name;
#line 207 "../src/main.vala"
			g_string_append_printf (_tmp43_, "class %s {\n", _tmp45_);
#line 2814 "main.c"
			{
				GeeArrayList* _method_list = NULL;
				PhpClass* _tmp46_;
				GeeArrayList* _tmp47_;
				gint _method_size = 0;
				GeeArrayList* _tmp48_;
				gint _tmp49_;
				gint _tmp50_;
				gint _method_index = 0;
#line 208 "../src/main.vala"
				_tmp46_ = php_class;
#line 208 "../src/main.vala"
				_tmp47_ = _tmp46_->methods;
#line 208 "../src/main.vala"
				_method_list = _tmp47_;
#line 208 "../src/main.vala"
				_tmp48_ = _method_list;
#line 208 "../src/main.vala"
				_tmp49_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp48_);
#line 208 "../src/main.vala"
				_tmp50_ = _tmp49_;
#line 208 "../src/main.vala"
				_method_size = _tmp50_;
#line 208 "../src/main.vala"
				_method_index = -1;
#line 208 "../src/main.vala"
				while (TRUE) {
#line 2842 "main.c"
					gint _tmp51_;
					gint _tmp52_;
					LocalFunction* method = NULL;
					GeeArrayList* _tmp53_;
					gpointer _tmp54_;
					GString* _tmp55_;
					LocalFunction* _tmp56_;
#line 208 "../src/main.vala"
					_method_index = _method_index + 1;
#line 208 "../src/main.vala"
					_tmp51_ = _method_index;
#line 208 "../src/main.vala"
					_tmp52_ = _method_size;
#line 208 "../src/main.vala"
					if (!(_tmp51_ < _tmp52_)) {
#line 208 "../src/main.vala"
						break;
#line 2860 "main.c"
					}
#line 208 "../src/main.vala"
					_tmp53_ = _method_list;
#line 208 "../src/main.vala"
					_tmp54_ = gee_abstract_list_get ((GeeAbstractList*) _tmp53_, _method_index);
#line 208 "../src/main.vala"
					method = (LocalFunction*) _tmp54_;
#line 209 "../src/main.vala"
					_tmp55_ = output;
#line 209 "../src/main.vala"
					_tmp56_ = method;
#line 209 "../src/main.vala"
					php_to_vala_transpiler_append_php_stub_function (self, _tmp55_, _tmp56_, "    ");
#line 208 "../src/main.vala"
					_g_object_unref0 (method);
#line 2876 "main.c"
				}
			}
#line 211 "../src/main.vala"
			_tmp57_ = output;
#line 211 "../src/main.vala"
			g_string_append (_tmp57_, "}\n\n");
#line 205 "../src/main.vala"
			_g_object_unref0 (php_class);
#line 2885 "main.c"
		}
	}
#line 214 "../src/main.vala"
	_tmp58_ = output;
#line 214 "../src/main.vala"
	_tmp59_ = _tmp58_->str;
#line 214 "../src/main.vala"
	_tmp60_ = g_strdup (_tmp59_);
#line 214 "../src/main.vala"
	result = _tmp60_;
#line 214 "../src/main.vala"
	_g_string_free0 (output);
#line 214 "../src/main.vala"
	_g_object_unref0 (source_parts);
#line 214 "../src/main.vala"
	return result;
#line 2902 "main.c"
}

static void
php_to_vala_transpiler_append_php_stub_function (PhpToValaTranspiler* self,
                                                 GString* output,
                                                 LocalFunction* local_function,
                                                 const gchar* indent)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_;
#line 217 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 217 "../src/main.vala"
	g_return_if_fail (output != NULL);
#line 217 "../src/main.vala"
	g_return_if_fail (local_function != NULL);
#line 217 "../src/main.vala"
	g_return_if_fail (indent != NULL);
#line 218 "../src/main.vala"
	_tmp0_ = local_function->doc_comment;
#line 218 "../src/main.vala"
	php_to_vala_transpiler_append_php_stub_doc_comment (self, output, _tmp0_, indent);
#line 219 "../src/main.vala"
	g_string_append (output, indent);
#line 220 "../src/main.vala"
	if (g_strcmp0 (indent, "") != 0) {
#line 221 "../src/main.vala"
		g_string_append (output, "public ");
#line 222 "../src/main.vala"
		if (local_function->is_static) {
#line 223 "../src/main.vala"
			g_string_append (output, "static ");
#line 2939 "main.c"
		}
	}
#line 226 "../src/main.vala"
	g_string_append (output, "function ");
#line 227 "../src/main.vala"
	_tmp1_ = local_function->name;
#line 227 "../src/main.vala"
	g_string_append (output, _tmp1_);
#line 228 "../src/main.vala"
	g_string_append (output, " (");
#line 229 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_php_stub_parameter_list (self, local_function);
#line 229 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 229 "../src/main.vala"
	g_string_append (output, _tmp3_);
#line 229 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 230 "../src/main.vala"
	g_string_append (output, ")");
#line 231 "../src/main.vala"
	g_string_append (output, ": ");
#line 232 "../src/main.vala"
	_tmp5_ = local_function->return_type;
#line 232 "../src/main.vala"
	_tmp4_ = _tmp5_;
#line 232 "../src/main.vala"
	if (_tmp4_ == NULL) {
#line 232 "../src/main.vala"
		_tmp4_ = "mixed";
#line 2970 "main.c"
	}
#line 232 "../src/main.vala"
	g_string_append (output, _tmp4_);
#line 233 "../src/main.vala"
	g_string_append (output, " {}\n");
#line 2976 "main.c"
}

static void
php_to_vala_transpiler_append_php_stub_doc_comment (PhpToValaTranspiler* self,
                                                    GString* output,
                                                    const gchar* doc_comment,
                                                    const gchar* indent)
{
	gchar* clean_doc_comment = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
#line 236 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 236 "../src/main.vala"
	g_return_if_fail (output != NULL);
#line 236 "../src/main.vala"
	g_return_if_fail (doc_comment != NULL);
#line 236 "../src/main.vala"
	g_return_if_fail (indent != NULL);
#line 237 "../src/main.vala"
	_tmp0_ = string_strip (doc_comment);
#line 237 "../src/main.vala"
	clean_doc_comment = _tmp0_;
#line 238 "../src/main.vala"
	_tmp1_ = clean_doc_comment;
#line 238 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "") == 0) {
#line 239 "../src/main.vala"
		_g_free0 (clean_doc_comment);
#line 239 "../src/main.vala"
		return;
#line 3011 "main.c"
	}
#line 241 "../src/main.vala"
	_tmp2_ = clean_doc_comment;
#line 241 "../src/main.vala"
	_tmp4_ = _tmp3_ = g_strsplit (_tmp2_, "\n", 0);
#line 3017 "main.c"
	{
		gchar** line_collection = NULL;
		gint line_collection_length1 = 0;
		gint _line_collection_size_ = 0;
		gint line_it = 0;
#line 241 "../src/main.vala"
		line_collection = _tmp4_;
#line 241 "../src/main.vala"
		line_collection_length1 = _vala_array_length (_tmp3_);
#line 241 "../src/main.vala"
		for (line_it = 0; line_it < line_collection_length1; line_it = line_it + 1) {
#line 3029 "main.c"
			gchar* _tmp5_;
			gchar* line = NULL;
#line 241 "../src/main.vala"
			_tmp5_ = g_strdup (line_collection[line_it]);
#line 241 "../src/main.vala"
			line = _tmp5_;
#line 3036 "main.c"
			{
				gchar* clean_line = NULL;
				const gchar* _tmp6_;
				gchar* _tmp7_;
				const gchar* _tmp8_;
				const gchar* _tmp9_;
#line 242 "../src/main.vala"
				_tmp6_ = line;
#line 242 "../src/main.vala"
				_tmp7_ = string_strip (_tmp6_);
#line 242 "../src/main.vala"
				clean_line = _tmp7_;
#line 243 "../src/main.vala"
				g_string_append (output, indent);
#line 244 "../src/main.vala"
				_tmp8_ = clean_line;
#line 244 "../src/main.vala"
				if (g_str_has_prefix (_tmp8_, "*")) {
#line 245 "../src/main.vala"
					g_string_append (output, " ");
#line 3057 "main.c"
				}
#line 247 "../src/main.vala"
				_tmp9_ = clean_line;
#line 247 "../src/main.vala"
				g_string_append (output, _tmp9_);
#line 248 "../src/main.vala"
				g_string_append (output, "\n");
#line 241 "../src/main.vala"
				_g_free0 (clean_line);
#line 241 "../src/main.vala"
				_g_free0 (line);
#line 3069 "main.c"
			}
		}
#line 241 "../src/main.vala"
		line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 3074 "main.c"
	}
#line 236 "../src/main.vala"
	_g_free0 (clean_doc_comment);
#line 3078 "main.c"
}

static gchar*
php_to_vala_transpiler_php_stub_parameter_list (PhpToValaTranspiler* self,
                                                LocalFunction* local_function)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp28_;
	const gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* result;
#line 252 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 252 "../src/main.vala"
	g_return_val_if_fail (local_function != NULL, NULL);
#line 253 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 253 "../src/main.vala"
	output = _tmp0_;
#line 3099 "main.c"
	{
		gint i = 0;
#line 254 "../src/main.vala"
		i = 0;
#line 3104 "main.c"
		{
			gboolean _tmp1_ = FALSE;
#line 254 "../src/main.vala"
			_tmp1_ = TRUE;
#line 254 "../src/main.vala"
			while (TRUE) {
#line 3111 "main.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 254 "../src/main.vala"
				if (!_tmp1_) {
#line 3129 "main.c"
					gint _tmp2_;
#line 254 "../src/main.vala"
					_tmp2_ = i;
#line 254 "../src/main.vala"
					i = _tmp2_ + 1;
#line 3135 "main.c"
				}
#line 254 "../src/main.vala"
				_tmp1_ = FALSE;
#line 254 "../src/main.vala"
				_tmp3_ = local_function->parameters;
#line 254 "../src/main.vala"
				_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
#line 254 "../src/main.vala"
				_tmp5_ = _tmp4_;
#line 254 "../src/main.vala"
				if (!(i < _tmp5_)) {
#line 254 "../src/main.vala"
					break;
#line 3149 "main.c"
				}
#line 255 "../src/main.vala"
				_tmp6_ = local_function->parameters;
#line 255 "../src/main.vala"
				_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, i);
#line 255 "../src/main.vala"
				parameter = (LocalParameter*) _tmp7_;
#line 256 "../src/main.vala"
				if (i > 0) {
#line 3159 "main.c"
					GString* _tmp8_;
#line 257 "../src/main.vala"
					_tmp8_ = output;
#line 257 "../src/main.vala"
					g_string_append (_tmp8_, ", ");
#line 3165 "main.c"
				}
#line 259 "../src/main.vala"
				_tmp10_ = parameter;
#line 259 "../src/main.vala"
				_tmp11_ = _tmp10_->type_name;
#line 259 "../src/main.vala"
				if (_tmp11_ != NULL) {
#line 3173 "main.c"
					LocalParameter* _tmp12_;
					const gchar* _tmp13_;
#line 259 "../src/main.vala"
					_tmp12_ = parameter;
#line 259 "../src/main.vala"
					_tmp13_ = _tmp12_->type_name;
#line 259 "../src/main.vala"
					_tmp9_ = g_strcmp0 (_tmp13_, "") != 0;
#line 3182 "main.c"
				} else {
#line 259 "../src/main.vala"
					_tmp9_ = FALSE;
#line 3186 "main.c"
				}
#line 259 "../src/main.vala"
				if (_tmp9_) {
#line 3190 "main.c"
					GString* _tmp14_;
					LocalParameter* _tmp15_;
					const gchar* _tmp16_;
					GString* _tmp17_;
#line 260 "../src/main.vala"
					_tmp14_ = output;
#line 260 "../src/main.vala"
					_tmp15_ = parameter;
#line 260 "../src/main.vala"
					_tmp16_ = _tmp15_->type_name;
#line 260 "../src/main.vala"
					g_string_append (_tmp14_, _tmp16_);
#line 261 "../src/main.vala"
					_tmp17_ = output;
#line 261 "../src/main.vala"
					g_string_append (_tmp17_, " ");
#line 3207 "main.c"
				}
#line 263 "../src/main.vala"
				_tmp18_ = output;
#line 263 "../src/main.vala"
				g_string_append (_tmp18_, "$");
#line 264 "../src/main.vala"
				_tmp19_ = output;
#line 264 "../src/main.vala"
				_tmp20_ = parameter;
#line 264 "../src/main.vala"
				_tmp21_ = _tmp20_->name;
#line 264 "../src/main.vala"
				g_string_append (_tmp19_, _tmp21_);
#line 265 "../src/main.vala"
				_tmp22_ = parameter;
#line 265 "../src/main.vala"
				_tmp23_ = _tmp22_->default_value;
#line 265 "../src/main.vala"
				if (_tmp23_ != NULL) {
#line 3227 "main.c"
					GString* _tmp24_;
					GString* _tmp25_;
					LocalParameter* _tmp26_;
					const gchar* _tmp27_;
#line 266 "../src/main.vala"
					_tmp24_ = output;
#line 266 "../src/main.vala"
					g_string_append (_tmp24_, " = ");
#line 267 "../src/main.vala"
					_tmp25_ = output;
#line 267 "../src/main.vala"
					_tmp26_ = parameter;
#line 267 "../src/main.vala"
					_tmp27_ = _tmp26_->default_value;
#line 267 "../src/main.vala"
					g_string_append (_tmp25_, _tmp27_);
#line 3244 "main.c"
				}
#line 254 "../src/main.vala"
				_g_object_unref0 (parameter);
#line 3248 "main.c"
			}
		}
	}
#line 270 "../src/main.vala"
	_tmp28_ = output;
#line 270 "../src/main.vala"
	_tmp29_ = _tmp28_->str;
#line 270 "../src/main.vala"
	_tmp30_ = g_strdup (_tmp29_);
#line 270 "../src/main.vala"
	result = _tmp30_;
#line 270 "../src/main.vala"
	_g_string_free0 (output);
#line 270 "../src/main.vala"
	return result;
#line 3264 "main.c"
}

static gboolean
php_to_vala_transpiler_has_executable_statements (PhpToValaTranspiler* self,
                                                  Statements* statements)
{
	gboolean result;
#line 273 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 273 "../src/main.vala"
	g_return_val_if_fail (statements != NULL, FALSE);
#line 3276 "main.c"
	{
		gint i = 0;
#line 274 "../src/main.vala"
		i = 0;
#line 3281 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 274 "../src/main.vala"
			_tmp0_ = TRUE;
#line 274 "../src/main.vala"
			while (TRUE) {
#line 3288 "main.c"
				GeeArrayList* _tmp2_;
				gint _tmp3_;
				gint _tmp4_;
				GeeArrayList* _tmp5_;
				gpointer _tmp6_;
				gchar* _tmp7_;
				gboolean _tmp8_;
#line 274 "../src/main.vala"
				if (!_tmp0_) {
#line 3298 "main.c"
					gint _tmp1_;
#line 274 "../src/main.vala"
					_tmp1_ = i;
#line 274 "../src/main.vala"
					i = _tmp1_ + 1;
#line 3304 "main.c"
				}
#line 274 "../src/main.vala"
				_tmp0_ = FALSE;
#line 274 "../src/main.vala"
				_tmp2_ = statements->texts;
#line 274 "../src/main.vala"
				_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
#line 274 "../src/main.vala"
				_tmp4_ = _tmp3_;
#line 274 "../src/main.vala"
				if (!(i < _tmp4_)) {
#line 274 "../src/main.vala"
					break;
#line 3318 "main.c"
				}
#line 275 "../src/main.vala"
				_tmp5_ = statements->texts;
#line 275 "../src/main.vala"
				_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, i);
#line 275 "../src/main.vala"
				_tmp7_ = (gchar*) _tmp6_;
#line 275 "../src/main.vala"
				_tmp8_ = php_to_vala_transpiler_is_executable_statement (self, _tmp7_);
#line 275 "../src/main.vala"
				_g_free0 (_tmp7_);
#line 275 "../src/main.vala"
				if (_tmp8_) {
#line 276 "../src/main.vala"
					result = TRUE;
#line 276 "../src/main.vala"
					return result;
#line 3336 "main.c"
				}
			}
		}
	}
#line 279 "../src/main.vala"
	result = FALSE;
#line 279 "../src/main.vala"
	return result;
#line 3345 "main.c"
}

static gboolean
php_to_vala_transpiler_is_executable_statement (PhpToValaTranspiler* self,
                                                const gchar* statement)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp4_;
	gboolean result;
#line 282 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 282 "../src/main.vala"
	g_return_val_if_fail (statement != NULL, FALSE);
#line 283 "../src/main.vala"
	_tmp0_ = string_strip (statement);
#line 283 "../src/main.vala"
	clean = _tmp0_;
#line 284 "../src/main.vala"
	_tmp1_ = clean;
#line 284 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "") == 0) {
#line 285 "../src/main.vala"
		result = FALSE;
#line 285 "../src/main.vala"
		_g_free0 (clean);
#line 285 "../src/main.vala"
		return result;
#line 3377 "main.c"
	}
#line 287 "../src/main.vala"
	_tmp4_ = clean;
#line 287 "../src/main.vala"
	if (g_str_has_prefix (_tmp4_, "/*")) {
#line 287 "../src/main.vala"
		_tmp3_ = TRUE;
#line 3385 "main.c"
	} else {
		const gchar* _tmp5_;
#line 287 "../src/main.vala"
		_tmp5_ = clean;
#line 287 "../src/main.vala"
		_tmp3_ = g_str_has_prefix (_tmp5_, "//");
#line 3392 "main.c"
	}
#line 287 "../src/main.vala"
	if (_tmp3_) {
#line 287 "../src/main.vala"
		_tmp2_ = TRUE;
#line 3398 "main.c"
	} else {
		const gchar* _tmp6_;
#line 287 "../src/main.vala"
		_tmp6_ = clean;
#line 287 "../src/main.vala"
		_tmp2_ = g_str_has_prefix (_tmp6_, "#");
#line 3405 "main.c"
	}
#line 287 "../src/main.vala"
	if (_tmp2_) {
#line 288 "../src/main.vala"
		result = FALSE;
#line 288 "../src/main.vala"
		_g_free0 (clean);
#line 288 "../src/main.vala"
		return result;
#line 3415 "main.c"
	}
#line 290 "../src/main.vala"
	result = TRUE;
#line 290 "../src/main.vala"
	_g_free0 (clean);
#line 290 "../src/main.vala"
	return result;
#line 3423 "main.c"
}

static void
php_to_vala_transpiler_append_zval_local_functions (PhpToValaTranspiler* self,
                                                    GString* output,
                                                    GeeArrayList* functions,
                                                    GError** error)
{
	GError* _inner_error0_ = NULL;
#line 293 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 293 "../src/main.vala"
	g_return_if_fail (output != NULL);
#line 293 "../src/main.vala"
	g_return_if_fail (functions != NULL);
#line 3439 "main.c"
	{
		GeeArrayList* _local_function_list = NULL;
		gint _local_function_size = 0;
		GeeArrayList* _tmp0_;
		gint _tmp1_;
		gint _tmp2_;
		gint _local_function_index = 0;
#line 294 "../src/main.vala"
		_local_function_list = functions;
#line 294 "../src/main.vala"
		_tmp0_ = _local_function_list;
#line 294 "../src/main.vala"
		_tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
#line 294 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 294 "../src/main.vala"
		_local_function_size = _tmp2_;
#line 294 "../src/main.vala"
		_local_function_index = -1;
#line 294 "../src/main.vala"
		while (TRUE) {
#line 3461 "main.c"
			gint _tmp3_;
			gint _tmp4_;
			LocalFunction* local_function = NULL;
			GeeArrayList* _tmp5_;
			gpointer _tmp6_;
			GeeHashMap* previous_variable_types = NULL;
			GeeHashMap* _tmp7_;
			GeeHashMap* _tmp8_;
			GeeHashMap* previous_object_class_names = NULL;
			GeeHashMap* _tmp9_;
			GeeHashMap* _tmp10_;
			gboolean previous_transpiling_local_function = FALSE;
			gchar* previous_local_function_name = NULL;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			GeeHashMap* _tmp13_;
			GeeHashMap* _tmp14_;
			LocalFunction* _tmp15_;
			const gchar* _tmp16_;
			gchar* _tmp17_;
			gboolean _tmp30_ = FALSE;
			gboolean _tmp41_ = FALSE;
			LocalFunction* _tmp52_;
			const gchar* _tmp53_;
			LocalFunction* _tmp54_;
			gchar* _tmp55_;
			gchar* _tmp56_;
			Statements* statements = NULL;
			LocalFunction* _tmp57_;
			const gchar* _tmp58_;
			LocalFunction* _tmp59_;
			Statements* _tmp60_;
			gboolean last_statement_terminates = FALSE;
			gint function_block_level = 0;
			GeeHashMap* _tmp88_;
			GeeHashMap* _tmp89_;
			GeeHashMap* _tmp90_;
			GeeHashMap* _tmp91_;
			const gchar* _tmp92_;
			gchar* _tmp93_;
#line 294 "../src/main.vala"
			_local_function_index = _local_function_index + 1;
#line 294 "../src/main.vala"
			_tmp3_ = _local_function_index;
#line 294 "../src/main.vala"
			_tmp4_ = _local_function_size;
#line 294 "../src/main.vala"
			if (!(_tmp3_ < _tmp4_)) {
#line 294 "../src/main.vala"
				break;
#line 3512 "main.c"
			}
#line 294 "../src/main.vala"
			_tmp5_ = _local_function_list;
#line 294 "../src/main.vala"
			_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, _local_function_index);
#line 294 "../src/main.vala"
			local_function = (LocalFunction*) _tmp6_;
#line 295 "../src/main.vala"
			_tmp7_ = self->variable_types;
#line 295 "../src/main.vala"
			_tmp8_ = _g_object_ref0 (_tmp7_);
#line 295 "../src/main.vala"
			previous_variable_types = _tmp8_;
#line 296 "../src/main.vala"
			_tmp9_ = self->priv->object_class_names;
#line 296 "../src/main.vala"
			_tmp10_ = _g_object_ref0 (_tmp9_);
#line 296 "../src/main.vala"
			previous_object_class_names = _tmp10_;
#line 297 "../src/main.vala"
			previous_transpiling_local_function = self->transpiling_local_function;
#line 298 "../src/main.vala"
			_tmp11_ = self->current_local_function_name;
#line 298 "../src/main.vala"
			_tmp12_ = g_strdup (_tmp11_);
#line 298 "../src/main.vala"
			previous_local_function_name = _tmp12_;
#line 299 "../src/main.vala"
			_tmp13_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 299 "../src/main.vala"
			_g_object_unref0 (self->variable_types);
#line 299 "../src/main.vala"
			self->variable_types = _tmp13_;
#line 300 "../src/main.vala"
			_tmp14_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 300 "../src/main.vala"
			_g_object_unref0 (self->priv->object_class_names);
#line 300 "../src/main.vala"
			self->priv->object_class_names = _tmp14_;
#line 301 "../src/main.vala"
			self->transpiling_local_function = TRUE;
#line 302 "../src/main.vala"
			_tmp15_ = local_function;
#line 302 "../src/main.vala"
			_tmp16_ = _tmp15_->name;
#line 302 "../src/main.vala"
			_tmp17_ = g_strdup (_tmp16_);
#line 302 "../src/main.vala"
			_g_free0 (self->current_local_function_name);
#line 302 "../src/main.vala"
			self->current_local_function_name = _tmp17_;
#line 3564 "main.c"
			{
				GeeArrayList* _parameter_list = NULL;
				LocalFunction* _tmp18_;
				GeeArrayList* _tmp19_;
				gint _parameter_size = 0;
				GeeArrayList* _tmp20_;
				gint _tmp21_;
				gint _tmp22_;
				gint _parameter_index = 0;
#line 303 "../src/main.vala"
				_tmp18_ = local_function;
#line 303 "../src/main.vala"
				_tmp19_ = _tmp18_->parameters;
#line 303 "../src/main.vala"
				_parameter_list = _tmp19_;
#line 303 "../src/main.vala"
				_tmp20_ = _parameter_list;
#line 303 "../src/main.vala"
				_tmp21_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp20_);
#line 303 "../src/main.vala"
				_tmp22_ = _tmp21_;
#line 303 "../src/main.vala"
				_parameter_size = _tmp22_;
#line 303 "../src/main.vala"
				_parameter_index = -1;
#line 303 "../src/main.vala"
				while (TRUE) {
#line 3592 "main.c"
					gint _tmp23_;
					gint _tmp24_;
					LocalParameter* parameter = NULL;
					GeeArrayList* _tmp25_;
					gpointer _tmp26_;
					GeeHashMap* _tmp27_;
					LocalParameter* _tmp28_;
					const gchar* _tmp29_;
#line 303 "../src/main.vala"
					_parameter_index = _parameter_index + 1;
#line 303 "../src/main.vala"
					_tmp23_ = _parameter_index;
#line 303 "../src/main.vala"
					_tmp24_ = _parameter_size;
#line 303 "../src/main.vala"
					if (!(_tmp23_ < _tmp24_)) {
#line 303 "../src/main.vala"
						break;
#line 3611 "main.c"
					}
#line 303 "../src/main.vala"
					_tmp25_ = _parameter_list;
#line 303 "../src/main.vala"
					_tmp26_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _parameter_index);
#line 303 "../src/main.vala"
					parameter = (LocalParameter*) _tmp26_;
#line 304 "../src/main.vala"
					_tmp27_ = self->variable_types;
#line 304 "../src/main.vala"
					_tmp28_ = parameter;
#line 304 "../src/main.vala"
					_tmp29_ = _tmp28_->name;
#line 304 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp27_, _tmp29_, "Php.zval");
#line 303 "../src/main.vala"
					_g_object_unref0 (parameter);
#line 3629 "main.c"
				}
			}
#line 307 "../src/main.vala"
			if (self->priv->optimize_file_func_vars) {
#line 3634 "main.c"
				PhpToValaFileFuncVarsOptimizer* _tmp31_;
				LocalFunction* _tmp32_;
#line 307 "../src/main.vala"
				_tmp31_ = self->priv->file_func_vars_optimizer;
#line 307 "../src/main.vala"
				_tmp32_ = local_function;
#line 307 "../src/main.vala"
				_tmp30_ = php_to_vala_file_func_vars_optimizer_can_emit (_tmp31_, _tmp32_);
#line 3643 "main.c"
			} else {
#line 307 "../src/main.vala"
				_tmp30_ = FALSE;
#line 3647 "main.c"
			}
#line 307 "../src/main.vala"
			if (_tmp30_) {
#line 3651 "main.c"
				PhpToValaFileFuncVarsOptimizer* _tmp33_;
				LocalFunction* _tmp34_;
				GeeHashMap* _tmp35_;
				GeeHashMap* _tmp36_;
				GeeHashMap* _tmp37_;
				GeeHashMap* _tmp38_;
				const gchar* _tmp39_;
				gchar* _tmp40_;
#line 308 "../src/main.vala"
				_tmp33_ = self->priv->file_func_vars_optimizer;
#line 308 "../src/main.vala"
				_tmp34_ = local_function;
#line 308 "../src/main.vala"
				php_to_vala_file_func_vars_optimizer_append_native_function_with_zval_wrapper (_tmp33_, output, _tmp34_, &_inner_error0_);
#line 308 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 308 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 308 "../src/main.vala"
					_g_free0 (previous_local_function_name);
#line 308 "../src/main.vala"
					_g_object_unref0 (previous_object_class_names);
#line 308 "../src/main.vala"
					_g_object_unref0 (previous_variable_types);
#line 308 "../src/main.vala"
					_g_object_unref0 (local_function);
#line 308 "../src/main.vala"
					return;
#line 3680 "main.c"
				}
#line 309 "../src/main.vala"
				_tmp35_ = previous_variable_types;
#line 309 "../src/main.vala"
				_tmp36_ = _g_object_ref0 (_tmp35_);
#line 309 "../src/main.vala"
				_g_object_unref0 (self->variable_types);
#line 309 "../src/main.vala"
				self->variable_types = _tmp36_;
#line 310 "../src/main.vala"
				_tmp37_ = previous_object_class_names;
#line 310 "../src/main.vala"
				_tmp38_ = _g_object_ref0 (_tmp37_);
#line 310 "../src/main.vala"
				_g_object_unref0 (self->priv->object_class_names);
#line 310 "../src/main.vala"
				self->priv->object_class_names = _tmp38_;
#line 311 "../src/main.vala"
				self->transpiling_local_function = previous_transpiling_local_function;
#line 312 "../src/main.vala"
				_tmp39_ = previous_local_function_name;
#line 312 "../src/main.vala"
				_tmp40_ = g_strdup (_tmp39_);
#line 312 "../src/main.vala"
				_g_free0 (self->current_local_function_name);
#line 312 "../src/main.vala"
				self->current_local_function_name = _tmp40_;
#line 313 "../src/main.vala"
				_g_free0 (previous_local_function_name);
#line 313 "../src/main.vala"
				_g_object_unref0 (previous_object_class_names);
#line 313 "../src/main.vala"
				_g_object_unref0 (previous_variable_types);
#line 313 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 313 "../src/main.vala"
				continue;
#line 3718 "main.c"
			}
#line 316 "../src/main.vala"
			if (self->priv->optimize_local_vars) {
#line 3722 "main.c"
				PhpToValaLocalVarsOptimizer* _tmp42_;
				LocalFunction* _tmp43_;
#line 316 "../src/main.vala"
				_tmp42_ = self->priv->local_vars_optimizer;
#line 316 "../src/main.vala"
				_tmp43_ = local_function;
#line 316 "../src/main.vala"
				_tmp41_ = php_to_vala_local_vars_optimizer_can_emit (_tmp42_, _tmp43_);
#line 3731 "main.c"
			} else {
#line 316 "../src/main.vala"
				_tmp41_ = FALSE;
#line 3735 "main.c"
			}
#line 316 "../src/main.vala"
			if (_tmp41_) {
#line 3739 "main.c"
				PhpToValaLocalVarsOptimizer* _tmp44_;
				LocalFunction* _tmp45_;
				GeeHashMap* _tmp46_;
				GeeHashMap* _tmp47_;
				GeeHashMap* _tmp48_;
				GeeHashMap* _tmp49_;
				const gchar* _tmp50_;
				gchar* _tmp51_;
#line 317 "../src/main.vala"
				_tmp44_ = self->priv->local_vars_optimizer;
#line 317 "../src/main.vala"
				_tmp45_ = local_function;
#line 317 "../src/main.vala"
				php_to_vala_local_vars_optimizer_append_zval_local_function (_tmp44_, output, _tmp45_, &_inner_error0_);
#line 317 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 317 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 317 "../src/main.vala"
					_g_free0 (previous_local_function_name);
#line 317 "../src/main.vala"
					_g_object_unref0 (previous_object_class_names);
#line 317 "../src/main.vala"
					_g_object_unref0 (previous_variable_types);
#line 317 "../src/main.vala"
					_g_object_unref0 (local_function);
#line 317 "../src/main.vala"
					return;
#line 3768 "main.c"
				}
#line 318 "../src/main.vala"
				_tmp46_ = previous_variable_types;
#line 318 "../src/main.vala"
				_tmp47_ = _g_object_ref0 (_tmp46_);
#line 318 "../src/main.vala"
				_g_object_unref0 (self->variable_types);
#line 318 "../src/main.vala"
				self->variable_types = _tmp47_;
#line 319 "../src/main.vala"
				_tmp48_ = previous_object_class_names;
#line 319 "../src/main.vala"
				_tmp49_ = _g_object_ref0 (_tmp48_);
#line 319 "../src/main.vala"
				_g_object_unref0 (self->priv->object_class_names);
#line 319 "../src/main.vala"
				self->priv->object_class_names = _tmp49_;
#line 320 "../src/main.vala"
				self->transpiling_local_function = previous_transpiling_local_function;
#line 321 "../src/main.vala"
				_tmp50_ = previous_local_function_name;
#line 321 "../src/main.vala"
				_tmp51_ = g_strdup (_tmp50_);
#line 321 "../src/main.vala"
				_g_free0 (self->current_local_function_name);
#line 321 "../src/main.vala"
				self->current_local_function_name = _tmp51_;
#line 322 "../src/main.vala"
				_g_free0 (previous_local_function_name);
#line 322 "../src/main.vala"
				_g_object_unref0 (previous_object_class_names);
#line 322 "../src/main.vala"
				_g_object_unref0 (previous_variable_types);
#line 322 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 322 "../src/main.vala"
				continue;
#line 3806 "main.c"
			}
#line 325 "../src/main.vala"
			_tmp52_ = local_function;
#line 325 "../src/main.vala"
			_tmp53_ = _tmp52_->name;
#line 325 "../src/main.vala"
			_tmp54_ = local_function;
#line 325 "../src/main.vala"
			_tmp55_ = php_to_vala_transpiler_build_zval_local_function_parameter_list (self, _tmp54_);
#line 325 "../src/main.vala"
			_tmp56_ = _tmp55_;
#line 325 "../src/main.vala"
			g_string_append_printf (output, "public static Php.zval %s (%s) throws Error {\n", _tmp53_, _tmp56_);
#line 325 "../src/main.vala"
			_g_free0 (_tmp56_);
#line 326 "../src/main.vala"
			_tmp57_ = local_function;
#line 326 "../src/main.vala"
			_tmp58_ = _tmp57_->body;
#line 326 "../src/main.vala"
			_tmp59_ = local_function;
#line 326 "../src/main.vala"
			_tmp60_ = php_to_vala_source_parser_collect_statements (_tmp58_, _tmp59_->line + 1);
#line 326 "../src/main.vala"
			statements = _tmp60_;
#line 327 "../src/main.vala"
			last_statement_terminates = FALSE;
#line 328 "../src/main.vala"
			function_block_level = 0;
#line 3836 "main.c"
			{
				gint i = 0;
#line 329 "../src/main.vala"
				i = 0;
#line 3841 "main.c"
				{
					gboolean _tmp61_ = FALSE;
#line 329 "../src/main.vala"
					_tmp61_ = TRUE;
#line 329 "../src/main.vala"
					while (TRUE) {
#line 3848 "main.c"
						Statements* _tmp63_;
						GeeArrayList* _tmp64_;
						gint _tmp65_;
						gint _tmp66_;
						gchar* vala_line = NULL;
						Statements* _tmp67_;
						GeeArrayList* _tmp68_;
						gpointer _tmp69_;
						Statements* _tmp70_;
						GeeArrayList* _tmp71_;
						gpointer _tmp72_;
						gchar* _tmp73_;
						const gchar* _tmp74_;
						Statements* _tmp75_;
						GeeArrayList* _tmp76_;
						gpointer _tmp77_;
						gchar* _tmp78_;
						Statements* _tmp79_;
						GeeArrayList* _tmp80_;
						gpointer _tmp81_;
						Statements* _tmp82_;
						GeeArrayList* _tmp83_;
						gpointer _tmp84_;
						const gchar* _tmp85_;
						const gchar* _tmp86_;
						const gchar* _tmp87_;
#line 329 "../src/main.vala"
						if (!_tmp61_) {
#line 3877 "main.c"
							gint _tmp62_;
#line 329 "../src/main.vala"
							_tmp62_ = i;
#line 329 "../src/main.vala"
							i = _tmp62_ + 1;
#line 3883 "main.c"
						}
#line 329 "../src/main.vala"
						_tmp61_ = FALSE;
#line 329 "../src/main.vala"
						_tmp63_ = statements;
#line 329 "../src/main.vala"
						_tmp64_ = _tmp63_->texts;
#line 329 "../src/main.vala"
						_tmp65_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp64_);
#line 329 "../src/main.vala"
						_tmp66_ = _tmp65_;
#line 329 "../src/main.vala"
						if (!(i < _tmp66_)) {
#line 329 "../src/main.vala"
							break;
#line 3899 "main.c"
						}
#line 330 "../src/main.vala"
						_tmp67_ = statements;
#line 330 "../src/main.vala"
						_tmp68_ = _tmp67_->texts;
#line 330 "../src/main.vala"
						_tmp69_ = gee_abstract_list_get ((GeeAbstractList*) _tmp68_, i);
#line 330 "../src/main.vala"
						_tmp70_ = statements;
#line 330 "../src/main.vala"
						_tmp71_ = _tmp70_->lines;
#line 330 "../src/main.vala"
						_tmp72_ = gee_abstract_list_get ((GeeAbstractList*) _tmp71_, i);
#line 330 "../src/main.vala"
						_tmp73_ = php_to_vala_transpiler_transpile_zval_line (self, (gchar*) _tmp69_, (gint) ((gintptr) _tmp72_), &_inner_error0_);
#line 330 "../src/main.vala"
						vala_line = _tmp73_;
#line 330 "../src/main.vala"
						if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 330 "../src/main.vala"
							g_propagate_error (error, _inner_error0_);
#line 330 "../src/main.vala"
							_g_object_unref0 (statements);
#line 330 "../src/main.vala"
							_g_free0 (previous_local_function_name);
#line 330 "../src/main.vala"
							_g_object_unref0 (previous_object_class_names);
#line 330 "../src/main.vala"
							_g_object_unref0 (previous_variable_types);
#line 330 "../src/main.vala"
							_g_object_unref0 (local_function);
#line 330 "../src/main.vala"
							return;
#line 3933 "main.c"
						}
#line 331 "../src/main.vala"
						_tmp74_ = vala_line;
#line 331 "../src/main.vala"
						if (_tmp74_ == NULL) {
#line 332 "../src/main.vala"
							_g_free0 (vala_line);
#line 332 "../src/main.vala"
							continue;
#line 3943 "main.c"
						}
#line 334 "../src/main.vala"
						_tmp75_ = statements;
#line 334 "../src/main.vala"
						_tmp76_ = _tmp75_->texts;
#line 334 "../src/main.vala"
						_tmp77_ = gee_abstract_list_get ((GeeAbstractList*) _tmp76_, i);
#line 334 "../src/main.vala"
						_tmp78_ = (gchar*) _tmp77_;
#line 334 "../src/main.vala"
						_tmp79_ = statements;
#line 334 "../src/main.vala"
						_tmp80_ = _tmp79_->lines;
#line 334 "../src/main.vala"
						_tmp81_ = gee_abstract_list_get ((GeeAbstractList*) _tmp80_, i);
#line 334 "../src/main.vala"
						_tmp82_ = statements;
#line 334 "../src/main.vala"
						_tmp83_ = _tmp82_->columns;
#line 334 "../src/main.vala"
						_tmp84_ = gee_abstract_list_get ((GeeAbstractList*) _tmp83_, i);
#line 334 "../src/main.vala"
						_tmp85_ = vala_line;
#line 334 "../src/main.vala"
						php_to_vala_transpiler_validate_no_untranslated_php (self, _tmp78_, (gint) ((gintptr) _tmp81_), (gint) ((gintptr) _tmp84_), _tmp85_, &_inner_error0_);
#line 334 "../src/main.vala"
						_g_free0 (_tmp78_);
#line 334 "../src/main.vala"
						if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 334 "../src/main.vala"
							g_propagate_error (error, _inner_error0_);
#line 334 "../src/main.vala"
							_g_free0 (vala_line);
#line 334 "../src/main.vala"
							_g_object_unref0 (statements);
#line 334 "../src/main.vala"
							_g_free0 (previous_local_function_name);
#line 334 "../src/main.vala"
							_g_object_unref0 (previous_object_class_names);
#line 334 "../src/main.vala"
							_g_object_unref0 (previous_variable_types);
#line 334 "../src/main.vala"
							_g_object_unref0 (local_function);
#line 334 "../src/main.vala"
							return;
#line 3989 "main.c"
						}
#line 335 "../src/main.vala"
						_tmp86_ = vala_line;
#line 335 "../src/main.vala"
						function_block_level = php_to_vala_transpiler_append_generated_block (self, output, 1, _tmp86_, function_block_level);
#line 336 "../src/main.vala"
						_tmp87_ = vala_line;
#line 336 "../src/main.vala"
						last_statement_terminates = php_to_vala_transpiler_zval_statement_terminates_function (_tmp87_);
#line 329 "../src/main.vala"
						_g_free0 (vala_line);
#line 4001 "main.c"
					}
				}
			}
#line 338 "../src/main.vala"
			if (!last_statement_terminates) {
#line 339 "../src/main.vala"
				php_to_vala_transpiler_append_indented_line (self, output, 1, "return Php.zval.null_value ();");
#line 4009 "main.c"
			}
#line 341 "../src/main.vala"
			g_string_append (output, "}\n\n");
#line 343 "../src/main.vala"
			_tmp88_ = previous_variable_types;
#line 343 "../src/main.vala"
			_tmp89_ = _g_object_ref0 (_tmp88_);
#line 343 "../src/main.vala"
			_g_object_unref0 (self->variable_types);
#line 343 "../src/main.vala"
			self->variable_types = _tmp89_;
#line 344 "../src/main.vala"
			_tmp90_ = previous_object_class_names;
#line 344 "../src/main.vala"
			_tmp91_ = _g_object_ref0 (_tmp90_);
#line 344 "../src/main.vala"
			_g_object_unref0 (self->priv->object_class_names);
#line 344 "../src/main.vala"
			self->priv->object_class_names = _tmp91_;
#line 345 "../src/main.vala"
			self->transpiling_local_function = previous_transpiling_local_function;
#line 346 "../src/main.vala"
			_tmp92_ = previous_local_function_name;
#line 346 "../src/main.vala"
			_tmp93_ = g_strdup (_tmp92_);
#line 346 "../src/main.vala"
			_g_free0 (self->current_local_function_name);
#line 346 "../src/main.vala"
			self->current_local_function_name = _tmp93_;
#line 294 "../src/main.vala"
			_g_object_unref0 (statements);
#line 294 "../src/main.vala"
			_g_free0 (previous_local_function_name);
#line 294 "../src/main.vala"
			_g_object_unref0 (previous_object_class_names);
#line 294 "../src/main.vala"
			_g_object_unref0 (previous_variable_types);
#line 294 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 4049 "main.c"
		}
	}
}

static void
php_to_vala_transpiler_append_zval_classes (PhpToValaTranspiler* self,
                                            GString* output,
                                            GeeArrayList* classes,
                                            GError** error)
{
	GError* _inner_error0_ = NULL;
#line 350 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 350 "../src/main.vala"
	g_return_if_fail (output != NULL);
#line 350 "../src/main.vala"
	g_return_if_fail (classes != NULL);
#line 4067 "main.c"
	{
		GeeArrayList* _php_class_list = NULL;
		gint _php_class_size = 0;
		GeeArrayList* _tmp0_;
		gint _tmp1_;
		gint _tmp2_;
		gint _php_class_index = 0;
#line 351 "../src/main.vala"
		_php_class_list = classes;
#line 351 "../src/main.vala"
		_tmp0_ = _php_class_list;
#line 351 "../src/main.vala"
		_tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
#line 351 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 351 "../src/main.vala"
		_php_class_size = _tmp2_;
#line 351 "../src/main.vala"
		_php_class_index = -1;
#line 351 "../src/main.vala"
		while (TRUE) {
#line 4089 "main.c"
			gint _tmp3_;
			gint _tmp4_;
			PhpClass* php_class = NULL;
			GeeArrayList* _tmp5_;
			gpointer _tmp6_;
			PhpClass* _tmp7_;
			const gchar* _tmp8_;
#line 351 "../src/main.vala"
			_php_class_index = _php_class_index + 1;
#line 351 "../src/main.vala"
			_tmp3_ = _php_class_index;
#line 351 "../src/main.vala"
			_tmp4_ = _php_class_size;
#line 351 "../src/main.vala"
			if (!(_tmp3_ < _tmp4_)) {
#line 351 "../src/main.vala"
				break;
#line 4107 "main.c"
			}
#line 351 "../src/main.vala"
			_tmp5_ = _php_class_list;
#line 351 "../src/main.vala"
			_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, _php_class_index);
#line 351 "../src/main.vala"
			php_class = (PhpClass*) _tmp6_;
#line 352 "../src/main.vala"
			_tmp7_ = php_class;
#line 352 "../src/main.vala"
			_tmp8_ = _tmp7_->name;
#line 352 "../src/main.vala"
			g_string_append_printf (output, "public class %s : Object {\n", _tmp8_);
#line 4121 "main.c"
			{
				GeeArrayList* _method_list = NULL;
				PhpClass* _tmp9_;
				GeeArrayList* _tmp10_;
				gint _method_size = 0;
				GeeArrayList* _tmp11_;
				gint _tmp12_;
				gint _tmp13_;
				gint _method_index = 0;
#line 354 "../src/main.vala"
				_tmp9_ = php_class;
#line 354 "../src/main.vala"
				_tmp10_ = _tmp9_->methods;
#line 354 "../src/main.vala"
				_method_list = _tmp10_;
#line 354 "../src/main.vala"
				_tmp11_ = _method_list;
#line 354 "../src/main.vala"
				_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
#line 354 "../src/main.vala"
				_tmp13_ = _tmp12_;
#line 354 "../src/main.vala"
				_method_size = _tmp13_;
#line 354 "../src/main.vala"
				_method_index = -1;
#line 354 "../src/main.vala"
				while (TRUE) {
#line 4149 "main.c"
					gint _tmp14_;
					gint _tmp15_;
					LocalFunction* method = NULL;
					GeeArrayList* _tmp16_;
					gpointer _tmp17_;
					GeeHashMap* previous_variable_types = NULL;
					GeeHashMap* _tmp18_;
					GeeHashMap* _tmp19_;
					GeeHashMap* previous_object_class_names = NULL;
					GeeHashMap* _tmp20_;
					GeeHashMap* _tmp21_;
					gboolean previous_transpiling_local_function = FALSE;
					gchar* previous_local_function_name = NULL;
					const gchar* _tmp22_;
					gchar* _tmp23_;
					GeeHashMap* _tmp24_;
					GeeHashMap* _tmp25_;
					PhpClass* _tmp26_;
					const gchar* _tmp27_;
					gchar* _tmp28_;
					gchar* _tmp29_;
					LocalFunction* _tmp30_;
					const gchar* _tmp31_;
					gchar* _tmp32_;
					const gchar* _tmp45_ = NULL;
					LocalFunction* _tmp46_;
					LocalFunction* _tmp47_;
					const gchar* _tmp48_;
					LocalFunction* _tmp49_;
					gchar* _tmp50_;
					gchar* _tmp51_;
					Statements* statements = NULL;
					LocalFunction* _tmp52_;
					const gchar* _tmp53_;
					LocalFunction* _tmp54_;
					Statements* _tmp55_;
					gboolean last_statement_terminates = FALSE;
					gint method_block_level = 0;
					GeeHashMap* _tmp83_;
					GeeHashMap* _tmp84_;
					GeeHashMap* _tmp85_;
					GeeHashMap* _tmp86_;
					const gchar* _tmp87_;
					gchar* _tmp88_;
#line 354 "../src/main.vala"
					_method_index = _method_index + 1;
#line 354 "../src/main.vala"
					_tmp14_ = _method_index;
#line 354 "../src/main.vala"
					_tmp15_ = _method_size;
#line 354 "../src/main.vala"
					if (!(_tmp14_ < _tmp15_)) {
#line 354 "../src/main.vala"
						break;
#line 4204 "main.c"
					}
#line 354 "../src/main.vala"
					_tmp16_ = _method_list;
#line 354 "../src/main.vala"
					_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _method_index);
#line 354 "../src/main.vala"
					method = (LocalFunction*) _tmp17_;
#line 355 "../src/main.vala"
					_tmp18_ = self->variable_types;
#line 355 "../src/main.vala"
					_tmp19_ = _g_object_ref0 (_tmp18_);
#line 355 "../src/main.vala"
					previous_variable_types = _tmp19_;
#line 356 "../src/main.vala"
					_tmp20_ = self->priv->object_class_names;
#line 356 "../src/main.vala"
					_tmp21_ = _g_object_ref0 (_tmp20_);
#line 356 "../src/main.vala"
					previous_object_class_names = _tmp21_;
#line 357 "../src/main.vala"
					previous_transpiling_local_function = self->transpiling_local_function;
#line 358 "../src/main.vala"
					_tmp22_ = self->current_local_function_name;
#line 358 "../src/main.vala"
					_tmp23_ = g_strdup (_tmp22_);
#line 358 "../src/main.vala"
					previous_local_function_name = _tmp23_;
#line 360 "../src/main.vala"
					_tmp24_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 360 "../src/main.vala"
					_g_object_unref0 (self->variable_types);
#line 360 "../src/main.vala"
					self->variable_types = _tmp24_;
#line 361 "../src/main.vala"
					_tmp25_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 361 "../src/main.vala"
					_g_object_unref0 (self->priv->object_class_names);
#line 361 "../src/main.vala"
					self->priv->object_class_names = _tmp25_;
#line 362 "../src/main.vala"
					self->transpiling_local_function = TRUE;
#line 363 "../src/main.vala"
					_tmp26_ = php_class;
#line 363 "../src/main.vala"
					_tmp27_ = _tmp26_->name;
#line 363 "../src/main.vala"
					_tmp28_ = g_strconcat (_tmp27_, "::", NULL);
#line 363 "../src/main.vala"
					_tmp29_ = _tmp28_;
#line 363 "../src/main.vala"
					_tmp30_ = method;
#line 363 "../src/main.vala"
					_tmp31_ = _tmp30_->name;
#line 363 "../src/main.vala"
					_tmp32_ = g_strconcat (_tmp29_, _tmp31_, NULL);
#line 363 "../src/main.vala"
					_g_free0 (self->current_local_function_name);
#line 363 "../src/main.vala"
					self->current_local_function_name = _tmp32_;
#line 363 "../src/main.vala"
					_g_free0 (_tmp29_);
#line 4266 "main.c"
					{
						GeeArrayList* _parameter_list = NULL;
						LocalFunction* _tmp33_;
						GeeArrayList* _tmp34_;
						gint _parameter_size = 0;
						GeeArrayList* _tmp35_;
						gint _tmp36_;
						gint _tmp37_;
						gint _parameter_index = 0;
#line 364 "../src/main.vala"
						_tmp33_ = method;
#line 364 "../src/main.vala"
						_tmp34_ = _tmp33_->parameters;
#line 364 "../src/main.vala"
						_parameter_list = _tmp34_;
#line 364 "../src/main.vala"
						_tmp35_ = _parameter_list;
#line 364 "../src/main.vala"
						_tmp36_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp35_);
#line 364 "../src/main.vala"
						_tmp37_ = _tmp36_;
#line 364 "../src/main.vala"
						_parameter_size = _tmp37_;
#line 364 "../src/main.vala"
						_parameter_index = -1;
#line 364 "../src/main.vala"
						while (TRUE) {
#line 4294 "main.c"
							gint _tmp38_;
							gint _tmp39_;
							LocalParameter* parameter = NULL;
							GeeArrayList* _tmp40_;
							gpointer _tmp41_;
							GeeHashMap* _tmp42_;
							LocalParameter* _tmp43_;
							const gchar* _tmp44_;
#line 364 "../src/main.vala"
							_parameter_index = _parameter_index + 1;
#line 364 "../src/main.vala"
							_tmp38_ = _parameter_index;
#line 364 "../src/main.vala"
							_tmp39_ = _parameter_size;
#line 364 "../src/main.vala"
							if (!(_tmp38_ < _tmp39_)) {
#line 364 "../src/main.vala"
								break;
#line 4313 "main.c"
							}
#line 364 "../src/main.vala"
							_tmp40_ = _parameter_list;
#line 364 "../src/main.vala"
							_tmp41_ = gee_abstract_list_get ((GeeAbstractList*) _tmp40_, _parameter_index);
#line 364 "../src/main.vala"
							parameter = (LocalParameter*) _tmp41_;
#line 365 "../src/main.vala"
							_tmp42_ = self->variable_types;
#line 365 "../src/main.vala"
							_tmp43_ = parameter;
#line 365 "../src/main.vala"
							_tmp44_ = _tmp43_->name;
#line 365 "../src/main.vala"
							gee_abstract_map_set ((GeeAbstractMap*) _tmp42_, _tmp44_, "Php.zval");
#line 364 "../src/main.vala"
							_g_object_unref0 (parameter);
#line 4331 "main.c"
						}
					}
#line 370 "../src/main.vala"
					_tmp46_ = method;
#line 370 "../src/main.vala"
					if (_tmp46_->is_static) {
#line 370 "../src/main.vala"
						_tmp45_ = "static ";
#line 4340 "main.c"
					} else {
#line 370 "../src/main.vala"
						_tmp45_ = "";
#line 4344 "main.c"
					}
#line 368 "../src/main.vala"
					_tmp47_ = method;
#line 368 "../src/main.vala"
					_tmp48_ = _tmp47_->name;
#line 368 "../src/main.vala"
					_tmp49_ = method;
#line 368 "../src/main.vala"
					_tmp50_ = php_to_vala_transpiler_build_zval_local_function_parameter_list (self, _tmp49_);
#line 368 "../src/main.vala"
					_tmp51_ = _tmp50_;
#line 368 "../src/main.vala"
					g_string_append_printf (output, "    public %sPhp.zval %s (%s) throws Error {\n", _tmp45_, _tmp48_, _tmp51_);
#line 368 "../src/main.vala"
					_g_free0 (_tmp51_);
#line 375 "../src/main.vala"
					_tmp52_ = method;
#line 375 "../src/main.vala"
					_tmp53_ = _tmp52_->body;
#line 375 "../src/main.vala"
					_tmp54_ = method;
#line 375 "../src/main.vala"
					_tmp55_ = php_to_vala_source_parser_collect_statements (_tmp53_, _tmp54_->line + 1);
#line 375 "../src/main.vala"
					statements = _tmp55_;
#line 376 "../src/main.vala"
					last_statement_terminates = FALSE;
#line 377 "../src/main.vala"
					method_block_level = 0;
#line 4374 "main.c"
					{
						gint i = 0;
#line 378 "../src/main.vala"
						i = 0;
#line 4379 "main.c"
						{
							gboolean _tmp56_ = FALSE;
#line 378 "../src/main.vala"
							_tmp56_ = TRUE;
#line 378 "../src/main.vala"
							while (TRUE) {
#line 4386 "main.c"
								Statements* _tmp58_;
								GeeArrayList* _tmp59_;
								gint _tmp60_;
								gint _tmp61_;
								gchar* vala_line = NULL;
								Statements* _tmp62_;
								GeeArrayList* _tmp63_;
								gpointer _tmp64_;
								Statements* _tmp65_;
								GeeArrayList* _tmp66_;
								gpointer _tmp67_;
								gchar* _tmp68_;
								const gchar* _tmp69_;
								Statements* _tmp70_;
								GeeArrayList* _tmp71_;
								gpointer _tmp72_;
								gchar* _tmp73_;
								Statements* _tmp74_;
								GeeArrayList* _tmp75_;
								gpointer _tmp76_;
								Statements* _tmp77_;
								GeeArrayList* _tmp78_;
								gpointer _tmp79_;
								const gchar* _tmp80_;
								const gchar* _tmp81_;
								const gchar* _tmp82_;
#line 378 "../src/main.vala"
								if (!_tmp56_) {
#line 4415 "main.c"
									gint _tmp57_;
#line 378 "../src/main.vala"
									_tmp57_ = i;
#line 378 "../src/main.vala"
									i = _tmp57_ + 1;
#line 4421 "main.c"
								}
#line 378 "../src/main.vala"
								_tmp56_ = FALSE;
#line 378 "../src/main.vala"
								_tmp58_ = statements;
#line 378 "../src/main.vala"
								_tmp59_ = _tmp58_->texts;
#line 378 "../src/main.vala"
								_tmp60_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp59_);
#line 378 "../src/main.vala"
								_tmp61_ = _tmp60_;
#line 378 "../src/main.vala"
								if (!(i < _tmp61_)) {
#line 378 "../src/main.vala"
									break;
#line 4437 "main.c"
								}
#line 379 "../src/main.vala"
								_tmp62_ = statements;
#line 379 "../src/main.vala"
								_tmp63_ = _tmp62_->texts;
#line 379 "../src/main.vala"
								_tmp64_ = gee_abstract_list_get ((GeeAbstractList*) _tmp63_, i);
#line 379 "../src/main.vala"
								_tmp65_ = statements;
#line 379 "../src/main.vala"
								_tmp66_ = _tmp65_->lines;
#line 379 "../src/main.vala"
								_tmp67_ = gee_abstract_list_get ((GeeAbstractList*) _tmp66_, i);
#line 379 "../src/main.vala"
								_tmp68_ = php_to_vala_transpiler_transpile_zval_line (self, (gchar*) _tmp64_, (gint) ((gintptr) _tmp67_), &_inner_error0_);
#line 379 "../src/main.vala"
								vala_line = _tmp68_;
#line 379 "../src/main.vala"
								if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 379 "../src/main.vala"
									g_propagate_error (error, _inner_error0_);
#line 379 "../src/main.vala"
									_g_object_unref0 (statements);
#line 379 "../src/main.vala"
									_g_free0 (previous_local_function_name);
#line 379 "../src/main.vala"
									_g_object_unref0 (previous_object_class_names);
#line 379 "../src/main.vala"
									_g_object_unref0 (previous_variable_types);
#line 379 "../src/main.vala"
									_g_object_unref0 (method);
#line 379 "../src/main.vala"
									_g_object_unref0 (php_class);
#line 379 "../src/main.vala"
									return;
#line 4473 "main.c"
								}
#line 380 "../src/main.vala"
								_tmp69_ = vala_line;
#line 380 "../src/main.vala"
								if (_tmp69_ == NULL) {
#line 381 "../src/main.vala"
									_g_free0 (vala_line);
#line 381 "../src/main.vala"
									continue;
#line 4483 "main.c"
								}
#line 383 "../src/main.vala"
								_tmp70_ = statements;
#line 383 "../src/main.vala"
								_tmp71_ = _tmp70_->texts;
#line 383 "../src/main.vala"
								_tmp72_ = gee_abstract_list_get ((GeeAbstractList*) _tmp71_, i);
#line 383 "../src/main.vala"
								_tmp73_ = (gchar*) _tmp72_;
#line 383 "../src/main.vala"
								_tmp74_ = statements;
#line 383 "../src/main.vala"
								_tmp75_ = _tmp74_->lines;
#line 383 "../src/main.vala"
								_tmp76_ = gee_abstract_list_get ((GeeAbstractList*) _tmp75_, i);
#line 383 "../src/main.vala"
								_tmp77_ = statements;
#line 383 "../src/main.vala"
								_tmp78_ = _tmp77_->columns;
#line 383 "../src/main.vala"
								_tmp79_ = gee_abstract_list_get ((GeeAbstractList*) _tmp78_, i);
#line 383 "../src/main.vala"
								_tmp80_ = vala_line;
#line 383 "../src/main.vala"
								php_to_vala_transpiler_validate_no_untranslated_php (self, _tmp73_, (gint) ((gintptr) _tmp76_), (gint) ((gintptr) _tmp79_), _tmp80_, &_inner_error0_);
#line 383 "../src/main.vala"
								_g_free0 (_tmp73_);
#line 383 "../src/main.vala"
								if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 383 "../src/main.vala"
									g_propagate_error (error, _inner_error0_);
#line 383 "../src/main.vala"
									_g_free0 (vala_line);
#line 383 "../src/main.vala"
									_g_object_unref0 (statements);
#line 383 "../src/main.vala"
									_g_free0 (previous_local_function_name);
#line 383 "../src/main.vala"
									_g_object_unref0 (previous_object_class_names);
#line 383 "../src/main.vala"
									_g_object_unref0 (previous_variable_types);
#line 383 "../src/main.vala"
									_g_object_unref0 (method);
#line 383 "../src/main.vala"
									_g_object_unref0 (php_class);
#line 383 "../src/main.vala"
									return;
#line 4531 "main.c"
								}
#line 384 "../src/main.vala"
								_tmp81_ = vala_line;
#line 384 "../src/main.vala"
								method_block_level = php_to_vala_transpiler_append_generated_block (self, output, 2, _tmp81_, method_block_level);
#line 385 "../src/main.vala"
								_tmp82_ = vala_line;
#line 385 "../src/main.vala"
								last_statement_terminates = php_to_vala_transpiler_zval_statement_terminates_function (_tmp82_);
#line 378 "../src/main.vala"
								_g_free0 (vala_line);
#line 4543 "main.c"
							}
						}
					}
#line 387 "../src/main.vala"
					if (!last_statement_terminates) {
#line 388 "../src/main.vala"
						php_to_vala_transpiler_append_indented_line (self, output, 2, "return Php.zval.null_value ();");
#line 4551 "main.c"
					}
#line 390 "../src/main.vala"
					g_string_append (output, "    }\n\n");
#line 392 "../src/main.vala"
					_tmp83_ = previous_variable_types;
#line 392 "../src/main.vala"
					_tmp84_ = _g_object_ref0 (_tmp83_);
#line 392 "../src/main.vala"
					_g_object_unref0 (self->variable_types);
#line 392 "../src/main.vala"
					self->variable_types = _tmp84_;
#line 393 "../src/main.vala"
					_tmp85_ = previous_object_class_names;
#line 393 "../src/main.vala"
					_tmp86_ = _g_object_ref0 (_tmp85_);
#line 393 "../src/main.vala"
					_g_object_unref0 (self->priv->object_class_names);
#line 393 "../src/main.vala"
					self->priv->object_class_names = _tmp86_;
#line 394 "../src/main.vala"
					self->transpiling_local_function = previous_transpiling_local_function;
#line 395 "../src/main.vala"
					_tmp87_ = previous_local_function_name;
#line 395 "../src/main.vala"
					_tmp88_ = g_strdup (_tmp87_);
#line 395 "../src/main.vala"
					_g_free0 (self->current_local_function_name);
#line 395 "../src/main.vala"
					self->current_local_function_name = _tmp88_;
#line 354 "../src/main.vala"
					_g_object_unref0 (statements);
#line 354 "../src/main.vala"
					_g_free0 (previous_local_function_name);
#line 354 "../src/main.vala"
					_g_object_unref0 (previous_object_class_names);
#line 354 "../src/main.vala"
					_g_object_unref0 (previous_variable_types);
#line 354 "../src/main.vala"
					_g_object_unref0 (method);
#line 4591 "main.c"
				}
			}
#line 398 "../src/main.vala"
			g_string_append (output, "}\n\n");
#line 351 "../src/main.vala"
			_g_object_unref0 (php_class);
#line 4598 "main.c"
		}
	}
}

gboolean
php_to_vala_transpiler_zval_statement_terminates_function (const gchar* vala_line)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	gboolean _tmp1_ = FALSE;
	const gchar* _tmp2_;
	gboolean result;
#line 402 "../src/main.vala"
	g_return_val_if_fail (vala_line != NULL, FALSE);
#line 403 "../src/main.vala"
	_tmp0_ = string_strip (vala_line);
#line 403 "../src/main.vala"
	clean = _tmp0_;
#line 404 "../src/main.vala"
	_tmp2_ = clean;
#line 404 "../src/main.vala"
	if (g_str_has_prefix (_tmp2_, "return ")) {
#line 404 "../src/main.vala"
		_tmp1_ = TRUE;
#line 4623 "main.c"
	} else {
		const gchar* _tmp3_;
#line 404 "../src/main.vala"
		_tmp3_ = clean;
#line 404 "../src/main.vala"
		_tmp1_ = g_str_has_prefix (_tmp3_, "Process.exit ");
#line 4630 "main.c"
	}
#line 404 "../src/main.vala"
	result = _tmp1_;
#line 404 "../src/main.vala"
	_g_free0 (clean);
#line 404 "../src/main.vala"
	return result;
#line 4638 "main.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 4662 "main.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 4670 "main.c"
	} else {
#line 1190 "glib-2.0.vapi"
		result = -1;
#line 1190 "glib-2.0.vapi"
		return result;
#line 4676 "main.c"
	}
}

void
php_to_vala_transpiler_validate_no_untranslated_php (PhpToValaTranspiler* self,
                                                     const gchar* php_statement,
                                                     gint php_line,
                                                     gint php_column,
                                                     const gchar* vala_line,
                                                     GError** error)
{
	gchar** _tmp0_;
	gchar** _tmp1_;
	GError* _inner_error0_ = NULL;
#line 407 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 407 "../src/main.vala"
	g_return_if_fail (php_statement != NULL);
#line 407 "../src/main.vala"
	g_return_if_fail (vala_line != NULL);
#line 408 "../src/main.vala"
	_tmp1_ = _tmp0_ = g_strsplit (vala_line, "\n", 0);
#line 4699 "main.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 408 "../src/main.vala"
		raw_line_collection = _tmp1_;
#line 408 "../src/main.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp0_);
#line 408 "../src/main.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 4711 "main.c"
			gchar* _tmp2_;
			gchar* raw_line = NULL;
#line 408 "../src/main.vala"
			_tmp2_ = g_strdup (raw_line_collection[raw_line_it]);
#line 408 "../src/main.vala"
			raw_line = _tmp2_;
#line 4718 "main.c"
			{
				gchar* code = NULL;
				const gchar* _tmp3_;
				gchar* _tmp4_;
				gboolean _tmp5_ = FALSE;
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gboolean _tmp8_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				const gchar* _tmp11_;
#line 409 "../src/main.vala"
				_tmp3_ = raw_line;
#line 409 "../src/main.vala"
				_tmp4_ = php_to_vala_transpiler_strip_vala_line_strings_and_comments (_tmp3_);
#line 409 "../src/main.vala"
				code = _tmp4_;
#line 410 "../src/main.vala"
				_tmp11_ = code;
#line 410 "../src/main.vala"
				if (string_index_of (_tmp11_, "$", 0) >= 0) {
#line 410 "../src/main.vala"
					_tmp10_ = TRUE;
#line 4742 "main.c"
				} else {
					const gchar* _tmp12_;
#line 411 "../src/main.vala"
					_tmp12_ = code;
#line 411 "../src/main.vala"
					_tmp10_ = string_index_of (_tmp12_, "<?", 0) >= 0;
#line 4749 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp10_) {
#line 410 "../src/main.vala"
					_tmp9_ = TRUE;
#line 4755 "main.c"
				} else {
					const gchar* _tmp13_;
#line 412 "../src/main.vala"
					_tmp13_ = code;
#line 412 "../src/main.vala"
					_tmp9_ = string_index_of (_tmp13_, "?>", 0) >= 0;
#line 4762 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp9_) {
#line 410 "../src/main.vala"
					_tmp8_ = TRUE;
#line 4768 "main.c"
				} else {
					const gchar* _tmp14_;
#line 413 "../src/main.vala"
					_tmp14_ = code;
#line 413 "../src/main.vala"
					_tmp8_ = php_to_vala_transpiler_has_bare_function_call (_tmp14_, "die");
#line 4775 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp8_) {
#line 410 "../src/main.vala"
					_tmp7_ = TRUE;
#line 4781 "main.c"
				} else {
					const gchar* _tmp15_;
#line 414 "../src/main.vala"
					_tmp15_ = code;
#line 414 "../src/main.vala"
					_tmp7_ = php_to_vala_transpiler_has_bare_function_call (_tmp15_, "exit");
#line 4788 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp7_) {
#line 410 "../src/main.vala"
					_tmp6_ = TRUE;
#line 4794 "main.c"
				} else {
					const gchar* _tmp16_;
#line 415 "../src/main.vala"
					_tmp16_ = code;
#line 415 "../src/main.vala"
					_tmp6_ = php_to_vala_transpiler_has_bare_function_call (_tmp16_, "var_dump");
#line 4801 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp6_) {
#line 410 "../src/main.vala"
					_tmp5_ = TRUE;
#line 4807 "main.c"
				} else {
					const gchar* _tmp17_;
#line 416 "../src/main.vala"
					_tmp17_ = code;
#line 416 "../src/main.vala"
					_tmp5_ = php_to_vala_transpiler_has_bare_keyword (_tmp17_, "echo");
#line 4814 "main.c"
				}
#line 410 "../src/main.vala"
				if (_tmp5_) {
#line 4818 "main.c"
					const gchar* _tmp18_;
					GError* _tmp19_;
#line 417 "../src/main.vala"
					_tmp18_ = self->priv->source_path;
#line 417 "../src/main.vala"
					_tmp19_ = g_error_new (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Not implemented at %s:%d:%d: PHP statement was only partially translat" \
"ed: %s -> %s", _tmp18_, php_line, php_column, php_statement, vala_line);
#line 417 "../src/main.vala"
					_inner_error0_ = _tmp19_;
#line 417 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 417 "../src/main.vala"
					_g_free0 (code);
#line 417 "../src/main.vala"
					_g_free0 (raw_line);
#line 417 "../src/main.vala"
					raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 417 "../src/main.vala"
					return;
#line 4837 "main.c"
				}
#line 408 "../src/main.vala"
				_g_free0 (code);
#line 408 "../src/main.vala"
				_g_free0 (raw_line);
#line 4843 "main.c"
			}
		}
#line 408 "../src/main.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 4848 "main.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 4866 "main.c"
}

static gchar*
php_to_vala_transpiler_strip_vala_line_strings_and_comments (const gchar* line)
{
	GString* output = NULL;
	GString* _tmp0_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gboolean escaped = FALSE;
	GString* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* result;
#line 429 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 430 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 430 "../src/main.vala"
	output = _tmp0_;
#line 431 "../src/main.vala"
	in_single_quote = FALSE;
#line 432 "../src/main.vala"
	in_double_quote = FALSE;
#line 433 "../src/main.vala"
	escaped = FALSE;
#line 4893 "main.c"
	{
		gint i = 0;
#line 435 "../src/main.vala"
		i = 0;
#line 4898 "main.c"
		{
			gboolean _tmp1_ = FALSE;
#line 435 "../src/main.vala"
			_tmp1_ = TRUE;
#line 435 "../src/main.vala"
			while (TRUE) {
#line 4905 "main.c"
				gint _tmp3_;
				gint _tmp4_;
				gchar c = '\0';
				gchar _tmp5_ = '\0';
				gint _tmp6_;
				gint _tmp7_;
				gchar next = '\0';
				gboolean _tmp8_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				gboolean _tmp11_ = FALSE;
				gboolean _tmp12_ = FALSE;
				gboolean _tmp13_ = FALSE;
				gboolean _tmp14_ = FALSE;
				gboolean _tmp15_ = FALSE;
#line 435 "../src/main.vala"
				if (!_tmp1_) {
#line 4923 "main.c"
					gint _tmp2_;
#line 435 "../src/main.vala"
					_tmp2_ = i;
#line 435 "../src/main.vala"
					i = _tmp2_ + 1;
#line 4929 "main.c"
				}
#line 435 "../src/main.vala"
				_tmp1_ = FALSE;
#line 435 "../src/main.vala"
				_tmp3_ = strlen (line);
#line 435 "../src/main.vala"
				_tmp4_ = _tmp3_;
#line 435 "../src/main.vala"
				if (!(i < _tmp4_)) {
#line 435 "../src/main.vala"
					break;
#line 4941 "main.c"
				}
#line 436 "../src/main.vala"
				c = string_get (line, (glong) i);
#line 437 "../src/main.vala"
				_tmp6_ = strlen (line);
#line 437 "../src/main.vala"
				_tmp7_ = _tmp6_;
#line 437 "../src/main.vala"
				if ((i + 1) < _tmp7_) {
#line 437 "../src/main.vala"
					_tmp5_ = string_get (line, (glong) (i + 1));
#line 4953 "main.c"
				} else {
#line 437 "../src/main.vala"
					_tmp5_ = '\0';
#line 4957 "main.c"
				}
#line 437 "../src/main.vala"
				next = _tmp5_;
#line 439 "../src/main.vala"
				if (!in_single_quote) {
#line 439 "../src/main.vala"
					_tmp10_ = !in_double_quote;
#line 4965 "main.c"
				} else {
#line 439 "../src/main.vala"
					_tmp10_ = FALSE;
#line 4969 "main.c"
				}
#line 439 "../src/main.vala"
				if (_tmp10_) {
#line 439 "../src/main.vala"
					_tmp9_ = c == '/';
#line 4975 "main.c"
				} else {
#line 439 "../src/main.vala"
					_tmp9_ = FALSE;
#line 4979 "main.c"
				}
#line 439 "../src/main.vala"
				if (_tmp9_) {
#line 439 "../src/main.vala"
					_tmp8_ = next == '/';
#line 4985 "main.c"
				} else {
#line 439 "../src/main.vala"
					_tmp8_ = FALSE;
#line 4989 "main.c"
				}
#line 439 "../src/main.vala"
				if (_tmp8_) {
#line 440 "../src/main.vala"
					break;
#line 4995 "main.c"
				}
#line 443 "../src/main.vala"
				if (escaped) {
#line 444 "../src/main.vala"
					escaped = FALSE;
#line 445 "../src/main.vala"
					continue;
#line 5003 "main.c"
				}
#line 447 "../src/main.vala"
				if (in_single_quote) {
#line 447 "../src/main.vala"
					_tmp12_ = TRUE;
#line 5009 "main.c"
				} else {
#line 447 "../src/main.vala"
					_tmp12_ = in_double_quote;
#line 5013 "main.c"
				}
#line 447 "../src/main.vala"
				if (_tmp12_) {
#line 447 "../src/main.vala"
					_tmp11_ = c == '\\';
#line 5019 "main.c"
				} else {
#line 447 "../src/main.vala"
					_tmp11_ = FALSE;
#line 5023 "main.c"
				}
#line 447 "../src/main.vala"
				if (_tmp11_) {
#line 448 "../src/main.vala"
					escaped = TRUE;
#line 449 "../src/main.vala"
					continue;
#line 5031 "main.c"
				}
#line 451 "../src/main.vala"
				if (c == '\'') {
#line 451 "../src/main.vala"
					_tmp13_ = !in_double_quote;
#line 5037 "main.c"
				} else {
#line 451 "../src/main.vala"
					_tmp13_ = FALSE;
#line 5041 "main.c"
				}
#line 451 "../src/main.vala"
				if (_tmp13_) {
#line 452 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 453 "../src/main.vala"
					continue;
#line 5049 "main.c"
				}
#line 455 "../src/main.vala"
				if (c == '"') {
#line 455 "../src/main.vala"
					_tmp14_ = !in_single_quote;
#line 5055 "main.c"
				} else {
#line 455 "../src/main.vala"
					_tmp14_ = FALSE;
#line 5059 "main.c"
				}
#line 455 "../src/main.vala"
				if (_tmp14_) {
#line 456 "../src/main.vala"
					in_double_quote = !in_double_quote;
#line 457 "../src/main.vala"
					continue;
#line 5067 "main.c"
				}
#line 459 "../src/main.vala"
				if (!in_single_quote) {
#line 459 "../src/main.vala"
					_tmp15_ = !in_double_quote;
#line 5073 "main.c"
				} else {
#line 459 "../src/main.vala"
					_tmp15_ = FALSE;
#line 5077 "main.c"
				}
#line 459 "../src/main.vala"
				if (_tmp15_) {
#line 5081 "main.c"
					GString* _tmp16_;
#line 460 "../src/main.vala"
					_tmp16_ = output;
#line 460 "../src/main.vala"
					g_string_append_c (_tmp16_, c);
#line 5087 "main.c"
				}
			}
		}
	}
#line 464 "../src/main.vala"
	_tmp17_ = output;
#line 464 "../src/main.vala"
	_tmp18_ = _tmp17_->str;
#line 464 "../src/main.vala"
	_tmp19_ = g_strdup (_tmp18_);
#line 464 "../src/main.vala"
	result = _tmp19_;
#line 464 "../src/main.vala"
	_g_string_free0 (output);
#line 464 "../src/main.vala"
	return result;
#line 5104 "main.c"
}

static gboolean
php_to_vala_transpiler_has_bare_function_call (const gchar* code,
                                               const gchar* name)
{
	gint start = 0;
	gboolean result;
#line 467 "../src/main.vala"
	g_return_val_if_fail (code != NULL, FALSE);
#line 467 "../src/main.vala"
	g_return_val_if_fail (name != NULL, FALSE);
#line 468 "../src/main.vala"
	start = 0;
#line 469 "../src/main.vala"
	while (TRUE) {
#line 5121 "main.c"
		gint _tmp0_;
		gint _tmp1_;
		gint index = 0;
		gboolean _tmp2_ = FALSE;
		gboolean valid_left = FALSE;
		gint next_index = 0;
		gint _tmp4_;
		gint _tmp5_;
		gboolean _tmp6_ = FALSE;
		gint _tmp7_;
		gint _tmp8_;
		gboolean valid_right = FALSE;
		gboolean _tmp9_ = FALSE;
		gint _tmp18_;
		gint _tmp19_;
#line 469 "../src/main.vala"
		_tmp0_ = strlen (code);
#line 469 "../src/main.vala"
		_tmp1_ = _tmp0_;
#line 469 "../src/main.vala"
		if (!(start < _tmp1_)) {
#line 469 "../src/main.vala"
			break;
#line 5145 "main.c"
		}
#line 470 "../src/main.vala"
		index = string_index_of (code, name, start);
#line 471 "../src/main.vala"
		if (index < 0) {
#line 472 "../src/main.vala"
			result = FALSE;
#line 472 "../src/main.vala"
			return result;
#line 5155 "main.c"
		}
#line 475 "../src/main.vala"
		if (index == 0) {
#line 475 "../src/main.vala"
			_tmp2_ = TRUE;
#line 5161 "main.c"
		} else {
			gboolean _tmp3_ = FALSE;
#line 475 "../src/main.vala"
			if (!php_to_vala_transpiler_is_identifier_char (string_get (code, (glong) (index - 1)))) {
#line 475 "../src/main.vala"
				_tmp3_ = string_get (code, (glong) (index - 1)) != '.';
#line 5168 "main.c"
			} else {
#line 475 "../src/main.vala"
				_tmp3_ = FALSE;
#line 5172 "main.c"
			}
#line 475 "../src/main.vala"
			_tmp2_ = _tmp3_;
#line 5176 "main.c"
		}
#line 475 "../src/main.vala"
		valid_left = _tmp2_;
#line 476 "../src/main.vala"
		_tmp4_ = strlen (name);
#line 476 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 476 "../src/main.vala"
		next_index = index + _tmp5_;
#line 477 "../src/main.vala"
		_tmp7_ = strlen (code);
#line 477 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 477 "../src/main.vala"
		if (next_index >= _tmp8_) {
#line 477 "../src/main.vala"
			_tmp6_ = TRUE;
#line 5194 "main.c"
		} else {
#line 477 "../src/main.vala"
			_tmp6_ = !php_to_vala_transpiler_is_identifier_char (string_get (code, (glong) next_index));
#line 5198 "main.c"
		}
#line 477 "../src/main.vala"
		valid_right = _tmp6_;
#line 478 "../src/main.vala"
		if (valid_left) {
#line 478 "../src/main.vala"
			_tmp9_ = valid_right;
#line 5206 "main.c"
		} else {
#line 478 "../src/main.vala"
			_tmp9_ = FALSE;
#line 5210 "main.c"
		}
#line 478 "../src/main.vala"
		if (_tmp9_) {
#line 5214 "main.c"
			gboolean _tmp15_ = FALSE;
			gint _tmp16_;
			gint _tmp17_;
#line 479 "../src/main.vala"
			while (TRUE) {
#line 5220 "main.c"
				gboolean _tmp10_ = FALSE;
				gint _tmp11_;
				gint _tmp12_;
				gint _tmp14_;
#line 479 "../src/main.vala"
				_tmp11_ = strlen (code);
#line 479 "../src/main.vala"
				_tmp12_ = _tmp11_;
#line 479 "../src/main.vala"
				if (next_index < _tmp12_) {
#line 5231 "main.c"
					gboolean _tmp13_ = FALSE;
#line 479 "../src/main.vala"
					if (string_get (code, (glong) next_index) == ' ') {
#line 479 "../src/main.vala"
						_tmp13_ = TRUE;
#line 5237 "main.c"
					} else {
#line 479 "../src/main.vala"
						_tmp13_ = string_get (code, (glong) next_index) == '\t';
#line 5241 "main.c"
					}
#line 479 "../src/main.vala"
					_tmp10_ = _tmp13_;
#line 5245 "main.c"
				} else {
#line 479 "../src/main.vala"
					_tmp10_ = FALSE;
#line 5249 "main.c"
				}
#line 479 "../src/main.vala"
				if (!_tmp10_) {
#line 479 "../src/main.vala"
					break;
#line 5255 "main.c"
				}
#line 480 "../src/main.vala"
				_tmp14_ = next_index;
#line 480 "../src/main.vala"
				next_index = _tmp14_ + 1;
#line 5261 "main.c"
			}
#line 482 "../src/main.vala"
			_tmp16_ = strlen (code);
#line 482 "../src/main.vala"
			_tmp17_ = _tmp16_;
#line 482 "../src/main.vala"
			if (next_index < _tmp17_) {
#line 482 "../src/main.vala"
				_tmp15_ = string_get (code, (glong) next_index) == '(';
#line 5271 "main.c"
			} else {
#line 482 "../src/main.vala"
				_tmp15_ = FALSE;
#line 5275 "main.c"
			}
#line 482 "../src/main.vala"
			if (_tmp15_) {
#line 483 "../src/main.vala"
				result = TRUE;
#line 483 "../src/main.vala"
				return result;
#line 5283 "main.c"
			}
		}
#line 487 "../src/main.vala"
		_tmp18_ = strlen (name);
#line 487 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 487 "../src/main.vala"
		start = index + _tmp19_;
#line 5292 "main.c"
	}
#line 489 "../src/main.vala"
	result = FALSE;
#line 489 "../src/main.vala"
	return result;
#line 5298 "main.c"
}

static gboolean
php_to_vala_transpiler_has_bare_keyword (const gchar* code,
                                         const gchar* name)
{
	gint start = 0;
	gboolean result;
#line 492 "../src/main.vala"
	g_return_val_if_fail (code != NULL, FALSE);
#line 492 "../src/main.vala"
	g_return_val_if_fail (name != NULL, FALSE);
#line 493 "../src/main.vala"
	start = 0;
#line 494 "../src/main.vala"
	while (TRUE) {
#line 5315 "main.c"
		gint _tmp0_;
		gint _tmp1_;
		gint index = 0;
		gboolean _tmp2_ = FALSE;
		gboolean valid_left = FALSE;
		gint next_index = 0;
		gint _tmp3_;
		gint _tmp4_;
		gboolean _tmp5_ = FALSE;
		gint _tmp6_;
		gint _tmp7_;
		gboolean valid_right = FALSE;
		gboolean _tmp8_ = FALSE;
		gint _tmp9_;
		gint _tmp10_;
#line 494 "../src/main.vala"
		_tmp0_ = strlen (code);
#line 494 "../src/main.vala"
		_tmp1_ = _tmp0_;
#line 494 "../src/main.vala"
		if (!(start < _tmp1_)) {
#line 494 "../src/main.vala"
			break;
#line 5339 "main.c"
		}
#line 495 "../src/main.vala"
		index = string_index_of (code, name, start);
#line 496 "../src/main.vala"
		if (index < 0) {
#line 497 "../src/main.vala"
			result = FALSE;
#line 497 "../src/main.vala"
			return result;
#line 5349 "main.c"
		}
#line 500 "../src/main.vala"
		if (index == 0) {
#line 500 "../src/main.vala"
			_tmp2_ = TRUE;
#line 5355 "main.c"
		} else {
#line 500 "../src/main.vala"
			_tmp2_ = !php_to_vala_transpiler_is_identifier_char (string_get (code, (glong) (index - 1)));
#line 5359 "main.c"
		}
#line 500 "../src/main.vala"
		valid_left = _tmp2_;
#line 501 "../src/main.vala"
		_tmp3_ = strlen (name);
#line 501 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 501 "../src/main.vala"
		next_index = index + _tmp4_;
#line 502 "../src/main.vala"
		_tmp6_ = strlen (code);
#line 502 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 502 "../src/main.vala"
		if (next_index >= _tmp7_) {
#line 502 "../src/main.vala"
			_tmp5_ = TRUE;
#line 5377 "main.c"
		} else {
#line 502 "../src/main.vala"
			_tmp5_ = !php_to_vala_transpiler_is_identifier_char (string_get (code, (glong) next_index));
#line 5381 "main.c"
		}
#line 502 "../src/main.vala"
		valid_right = _tmp5_;
#line 503 "../src/main.vala"
		if (valid_left) {
#line 503 "../src/main.vala"
			_tmp8_ = valid_right;
#line 5389 "main.c"
		} else {
#line 503 "../src/main.vala"
			_tmp8_ = FALSE;
#line 5393 "main.c"
		}
#line 503 "../src/main.vala"
		if (_tmp8_) {
#line 504 "../src/main.vala"
			result = TRUE;
#line 504 "../src/main.vala"
			return result;
#line 5401 "main.c"
		}
#line 507 "../src/main.vala"
		_tmp9_ = strlen (name);
#line 507 "../src/main.vala"
		_tmp10_ = _tmp9_;
#line 507 "../src/main.vala"
		start = index + _tmp10_;
#line 5409 "main.c"
	}
#line 509 "../src/main.vala"
	result = FALSE;
#line 509 "../src/main.vala"
	return result;
#line 5415 "main.c"
}

static gchar*
php_to_vala_transpiler_detect_indent_unit (const gchar* source)
{
	gchar** _tmp0_;
	gchar** _tmp1_;
	gchar* _tmp28_;
	gchar* result;
#line 512 "../src/main.vala"
	g_return_val_if_fail (source != NULL, NULL);
#line 513 "../src/main.vala"
	_tmp1_ = _tmp0_ = g_strsplit (source, "\n", 0);
#line 5429 "main.c"
	{
		gchar** line_collection = NULL;
		gint line_collection_length1 = 0;
		gint _line_collection_size_ = 0;
		gint line_it = 0;
#line 513 "../src/main.vala"
		line_collection = _tmp1_;
#line 513 "../src/main.vala"
		line_collection_length1 = _vala_array_length (_tmp0_);
#line 513 "../src/main.vala"
		for (line_it = 0; line_it < line_collection_length1; line_it = line_it + 1) {
#line 5441 "main.c"
			gchar* _tmp2_;
			gchar* line = NULL;
#line 513 "../src/main.vala"
			_tmp2_ = g_strdup (line_collection[line_it]);
#line 513 "../src/main.vala"
			line = _tmp2_;
#line 5448 "main.c"
			{
				const gchar* _tmp3_;
				gchar* _tmp4_;
				gchar* _tmp5_;
				gboolean _tmp6_;
				GString* indent = NULL;
				GString* _tmp7_;
				GString* _tmp16_;
				gchar* candidate = NULL;
				GString* _tmp17_;
				const gchar* _tmp18_;
				gchar* _tmp19_;
				gint tab_index = 0;
				const gchar* _tmp20_;
				const gchar* _tmp22_ = NULL;
				const gchar* _tmp23_;
				gint _tmp24_;
				gint _tmp25_;
				gchar* _tmp27_;
#line 514 "../src/main.vala"
				_tmp3_ = line;
#line 514 "../src/main.vala"
				_tmp4_ = string_strip (_tmp3_);
#line 514 "../src/main.vala"
				_tmp5_ = _tmp4_;
#line 514 "../src/main.vala"
				_tmp6_ = g_strcmp0 (_tmp5_, "") == 0;
#line 514 "../src/main.vala"
				_g_free0 (_tmp5_);
#line 514 "../src/main.vala"
				if (_tmp6_) {
#line 515 "../src/main.vala"
					_g_free0 (line);
#line 515 "../src/main.vala"
					continue;
#line 5484 "main.c"
				}
#line 518 "../src/main.vala"
				_tmp7_ = g_string_new ("");
#line 518 "../src/main.vala"
				indent = _tmp7_;
#line 5490 "main.c"
				{
					gint i = 0;
#line 519 "../src/main.vala"
					i = 0;
#line 5495 "main.c"
					{
						gboolean _tmp8_ = FALSE;
#line 519 "../src/main.vala"
						_tmp8_ = TRUE;
#line 519 "../src/main.vala"
						while (TRUE) {
#line 5502 "main.c"
							const gchar* _tmp10_;
							gint _tmp11_;
							gint _tmp12_;
							gchar c = '\0';
							const gchar* _tmp13_;
							gboolean _tmp14_ = FALSE;
							GString* _tmp15_;
#line 519 "../src/main.vala"
							if (!_tmp8_) {
#line 5512 "main.c"
								gint _tmp9_;
#line 519 "../src/main.vala"
								_tmp9_ = i;
#line 519 "../src/main.vala"
								i = _tmp9_ + 1;
#line 5518 "main.c"
							}
#line 519 "../src/main.vala"
							_tmp8_ = FALSE;
#line 519 "../src/main.vala"
							_tmp10_ = line;
#line 519 "../src/main.vala"
							_tmp11_ = strlen (_tmp10_);
#line 519 "../src/main.vala"
							_tmp12_ = _tmp11_;
#line 519 "../src/main.vala"
							if (!(i < _tmp12_)) {
#line 519 "../src/main.vala"
								break;
#line 5532 "main.c"
							}
#line 520 "../src/main.vala"
							_tmp13_ = line;
#line 520 "../src/main.vala"
							c = string_get (_tmp13_, (glong) i);
#line 521 "../src/main.vala"
							if (c != ' ') {
#line 521 "../src/main.vala"
								_tmp14_ = c != '\t';
#line 5542 "main.c"
							} else {
#line 521 "../src/main.vala"
								_tmp14_ = FALSE;
#line 5546 "main.c"
							}
#line 521 "../src/main.vala"
							if (_tmp14_) {
#line 522 "../src/main.vala"
								break;
#line 5552 "main.c"
							}
#line 524 "../src/main.vala"
							_tmp15_ = indent;
#line 524 "../src/main.vala"
							g_string_append_c (_tmp15_, c);
#line 5558 "main.c"
						}
					}
				}
#line 527 "../src/main.vala"
				_tmp16_ = indent;
#line 527 "../src/main.vala"
				if (_tmp16_->len == ((gssize) 0)) {
#line 528 "../src/main.vala"
					_g_string_free0 (indent);
#line 528 "../src/main.vala"
					_g_free0 (line);
#line 528 "../src/main.vala"
					continue;
#line 5572 "main.c"
				}
#line 531 "../src/main.vala"
				_tmp17_ = indent;
#line 531 "../src/main.vala"
				_tmp18_ = _tmp17_->str;
#line 531 "../src/main.vala"
				_tmp19_ = g_strdup (_tmp18_);
#line 531 "../src/main.vala"
				candidate = _tmp19_;
#line 532 "../src/main.vala"
				_tmp20_ = candidate;
#line 532 "../src/main.vala"
				tab_index = string_index_of (_tmp20_, "\t", 0);
#line 533 "../src/main.vala"
				if (tab_index >= 0) {
#line 5588 "main.c"
					gchar* _tmp21_;
#line 534 "../src/main.vala"
					_tmp21_ = g_strdup ("\t");
#line 534 "../src/main.vala"
					result = _tmp21_;
#line 534 "../src/main.vala"
					_g_free0 (candidate);
#line 534 "../src/main.vala"
					_g_string_free0 (indent);
#line 534 "../src/main.vala"
					_g_free0 (line);
#line 534 "../src/main.vala"
					line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 534 "../src/main.vala"
					return result;
#line 5604 "main.c"
				}
#line 536 "../src/main.vala"
				_tmp23_ = candidate;
#line 536 "../src/main.vala"
				_tmp24_ = strlen (_tmp23_);
#line 536 "../src/main.vala"
				_tmp25_ = _tmp24_;
#line 536 "../src/main.vala"
				if (_tmp25_ > 4) {
#line 536 "../src/main.vala"
					_tmp22_ = "    ";
#line 5616 "main.c"
				} else {
					const gchar* _tmp26_;
#line 536 "../src/main.vala"
					_tmp26_ = candidate;
#line 536 "../src/main.vala"
					_tmp22_ = _tmp26_;
#line 5623 "main.c"
				}
#line 536 "../src/main.vala"
				_tmp27_ = g_strdup (_tmp22_);
#line 536 "../src/main.vala"
				result = _tmp27_;
#line 536 "../src/main.vala"
				_g_free0 (candidate);
#line 536 "../src/main.vala"
				_g_string_free0 (indent);
#line 536 "../src/main.vala"
				_g_free0 (line);
#line 536 "../src/main.vala"
				line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 536 "../src/main.vala"
				return result;
#line 5639 "main.c"
			}
		}
#line 513 "../src/main.vala"
		line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 5644 "main.c"
	}
#line 539 "../src/main.vala"
	_tmp28_ = g_strdup ("    ");
#line 539 "../src/main.vala"
	result = _tmp28_;
#line 539 "../src/main.vala"
	return result;
#line 5652 "main.c"
}

static gchar*
php_to_vala_transpiler_indent_string (PhpToValaTranspiler* self,
                                      gint level)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* result;
#line 542 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 543 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 543 "../src/main.vala"
	output = _tmp0_;
#line 5671 "main.c"
	{
		gint i = 0;
#line 544 "../src/main.vala"
		i = 0;
#line 5676 "main.c"
		{
			gboolean _tmp1_ = FALSE;
#line 544 "../src/main.vala"
			_tmp1_ = TRUE;
#line 544 "../src/main.vala"
			while (TRUE) {
#line 5683 "main.c"
				GString* _tmp3_;
				const gchar* _tmp4_;
#line 544 "../src/main.vala"
				if (!_tmp1_) {
#line 5688 "main.c"
					gint _tmp2_;
#line 544 "../src/main.vala"
					_tmp2_ = i;
#line 544 "../src/main.vala"
					i = _tmp2_ + 1;
#line 5694 "main.c"
				}
#line 544 "../src/main.vala"
				_tmp1_ = FALSE;
#line 544 "../src/main.vala"
				if (!(i < level)) {
#line 544 "../src/main.vala"
					break;
#line 5702 "main.c"
				}
#line 545 "../src/main.vala"
				_tmp3_ = output;
#line 545 "../src/main.vala"
				_tmp4_ = self->priv->output_indent_unit;
#line 545 "../src/main.vala"
				g_string_append (_tmp3_, _tmp4_);
#line 5710 "main.c"
			}
		}
	}
#line 547 "../src/main.vala"
	_tmp5_ = output;
#line 547 "../src/main.vala"
	_tmp6_ = _tmp5_->str;
#line 547 "../src/main.vala"
	_tmp7_ = g_strdup (_tmp6_);
#line 547 "../src/main.vala"
	result = _tmp7_;
#line 547 "../src/main.vala"
	_g_string_free0 (output);
#line 547 "../src/main.vala"
	return result;
#line 5726 "main.c"
}

void
php_to_vala_transpiler_append_indented_line (PhpToValaTranspiler* self,
                                             GString* output,
                                             gint level,
                                             const gchar* line)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
#line 550 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 550 "../src/main.vala"
	g_return_if_fail (output != NULL);
#line 550 "../src/main.vala"
	g_return_if_fail (line != NULL);
#line 551 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_indent_string (self, level);
#line 551 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 551 "../src/main.vala"
	g_string_append (output, _tmp1_);
#line 551 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 552 "../src/main.vala"
	g_string_append (output, line);
#line 553 "../src/main.vala"
	g_string_append (output, "\n");
#line 5755 "main.c"
}

gint
php_to_vala_transpiler_append_generated_block (PhpToValaTranspiler* self,
                                               GString* output,
                                               gint base_level,
                                               const gchar* generated_block,
                                               gint initial_relative_level)
{
	gint relative_level = 0;
	gchar** _tmp0_;
	gchar** _tmp1_;
	gint result;
#line 556 "../src/main.vala"
	g_return_val_if_fail (self != NULL, -1);
#line 556 "../src/main.vala"
	g_return_val_if_fail (output != NULL, -1);
#line 556 "../src/main.vala"
	g_return_val_if_fail (generated_block != NULL, -1);
#line 557 "../src/main.vala"
	relative_level = initial_relative_level;
#line 558 "../src/main.vala"
	_tmp1_ = _tmp0_ = g_strsplit (generated_block, "\n", 0);
#line 5779 "main.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 558 "../src/main.vala"
		raw_line_collection = _tmp1_;
#line 558 "../src/main.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp0_);
#line 558 "../src/main.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 5791 "main.c"
			gchar* _tmp2_;
			gchar* raw_line = NULL;
#line 558 "../src/main.vala"
			_tmp2_ = g_strdup (raw_line_collection[raw_line_it]);
#line 558 "../src/main.vala"
			raw_line = _tmp2_;
#line 5798 "main.c"
			{
				gchar* line = NULL;
				const gchar* _tmp3_;
				gchar* _tmp4_;
				const gchar* _tmp5_;
				gboolean starts_with_close = FALSE;
				const gchar* _tmp6_;
				gint line_relative_level = 0;
				gboolean _tmp7_ = FALSE;
				const gchar* _tmp9_;
				gint opens = 0;
				const gchar* _tmp10_;
				gint closes = 0;
				const gchar* _tmp11_;
				gboolean _tmp12_ = FALSE;
#line 559 "../src/main.vala"
				_tmp3_ = raw_line;
#line 559 "../src/main.vala"
				_tmp4_ = string_strip (_tmp3_);
#line 559 "../src/main.vala"
				line = _tmp4_;
#line 560 "../src/main.vala"
				_tmp5_ = line;
#line 560 "../src/main.vala"
				if (g_strcmp0 (_tmp5_, "") == 0) {
#line 561 "../src/main.vala"
					g_string_append (output, "\n");
#line 562 "../src/main.vala"
					_g_free0 (line);
#line 562 "../src/main.vala"
					_g_free0 (raw_line);
#line 562 "../src/main.vala"
					continue;
#line 5832 "main.c"
				}
#line 565 "../src/main.vala"
				_tmp6_ = line;
#line 565 "../src/main.vala"
				starts_with_close = g_str_has_prefix (_tmp6_, "}");
#line 566 "../src/main.vala"
				line_relative_level = relative_level;
#line 567 "../src/main.vala"
				if (starts_with_close) {
#line 567 "../src/main.vala"
					_tmp7_ = line_relative_level > 0;
#line 5844 "main.c"
				} else {
#line 567 "../src/main.vala"
					_tmp7_ = FALSE;
#line 5848 "main.c"
				}
#line 567 "../src/main.vala"
				if (_tmp7_) {
#line 5852 "main.c"
					gint _tmp8_;
#line 568 "../src/main.vala"
					_tmp8_ = line_relative_level;
#line 568 "../src/main.vala"
					line_relative_level = _tmp8_ - 1;
#line 5858 "main.c"
				}
#line 571 "../src/main.vala"
				_tmp9_ = line;
#line 571 "../src/main.vala"
				php_to_vala_transpiler_append_indented_line (self, output, base_level + line_relative_level, _tmp9_);
#line 573 "../src/main.vala"
				_tmp10_ = line;
#line 573 "../src/main.vala"
				opens = php_to_vala_transpiler_count_char (_tmp10_, '{');
#line 574 "../src/main.vala"
				_tmp11_ = line;
#line 574 "../src/main.vala"
				closes = php_to_vala_transpiler_count_char (_tmp11_, '}');
#line 575 "../src/main.vala"
				if (starts_with_close) {
#line 575 "../src/main.vala"
					_tmp12_ = closes > 0;
#line 5876 "main.c"
				} else {
#line 575 "../src/main.vala"
					_tmp12_ = FALSE;
#line 5880 "main.c"
				}
#line 575 "../src/main.vala"
				if (_tmp12_) {
#line 5884 "main.c"
					gint _tmp13_;
#line 576 "../src/main.vala"
					_tmp13_ = closes;
#line 576 "../src/main.vala"
					closes = _tmp13_ - 1;
#line 5890 "main.c"
				}
#line 578 "../src/main.vala"
				relative_level = (line_relative_level + opens) - closes;
#line 579 "../src/main.vala"
				if (relative_level < 0) {
#line 580 "../src/main.vala"
					relative_level = 0;
#line 5898 "main.c"
				}
#line 558 "../src/main.vala"
				_g_free0 (line);
#line 558 "../src/main.vala"
				_g_free0 (raw_line);
#line 5904 "main.c"
			}
		}
#line 558 "../src/main.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 5909 "main.c"
	}
#line 583 "../src/main.vala"
	result = relative_level;
#line 583 "../src/main.vala"
	return result;
#line 5915 "main.c"
}

static gint
php_to_vala_transpiler_count_char (const gchar* value,
                                   gchar needle)
{
	gint count = 0;
	gint result;
#line 586 "../src/main.vala"
	g_return_val_if_fail (value != NULL, -1);
#line 587 "../src/main.vala"
	count = 0;
#line 5928 "main.c"
	{
		gint i = 0;
#line 588 "../src/main.vala"
		i = 0;
#line 5933 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 588 "../src/main.vala"
			_tmp0_ = TRUE;
#line 588 "../src/main.vala"
			while (TRUE) {
#line 5940 "main.c"
				gint _tmp2_;
				gint _tmp3_;
#line 588 "../src/main.vala"
				if (!_tmp0_) {
#line 5945 "main.c"
					gint _tmp1_;
#line 588 "../src/main.vala"
					_tmp1_ = i;
#line 588 "../src/main.vala"
					i = _tmp1_ + 1;
#line 5951 "main.c"
				}
#line 588 "../src/main.vala"
				_tmp0_ = FALSE;
#line 588 "../src/main.vala"
				_tmp2_ = strlen (value);
#line 588 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 588 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 588 "../src/main.vala"
					break;
#line 5963 "main.c"
				}
#line 589 "../src/main.vala"
				if (string_get (value, (glong) i) == needle) {
#line 5967 "main.c"
					gint _tmp4_;
#line 590 "../src/main.vala"
					_tmp4_ = count;
#line 590 "../src/main.vala"
					count = _tmp4_ + 1;
#line 5973 "main.c"
				}
			}
		}
	}
#line 593 "../src/main.vala"
	result = count;
#line 593 "../src/main.vala"
	return result;
#line 5982 "main.c"
}

gchar*
php_to_vala_transpiler_build_zval_local_function_parameter_list (PhpToValaTranspiler* self,
                                                                 LocalFunction* local_function)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* result;
#line 596 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 596 "../src/main.vala"
	g_return_val_if_fail (local_function != NULL, NULL);
#line 597 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 597 "../src/main.vala"
	output = _tmp0_;
#line 6003 "main.c"
	{
		GeeArrayList* _parameter_list = NULL;
		GeeArrayList* _tmp1_;
		gint _parameter_size = 0;
		GeeArrayList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _parameter_index = 0;
#line 598 "../src/main.vala"
		_tmp1_ = local_function->parameters;
#line 598 "../src/main.vala"
		_parameter_list = _tmp1_;
#line 598 "../src/main.vala"
		_tmp2_ = _parameter_list;
#line 598 "../src/main.vala"
		_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
#line 598 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 598 "../src/main.vala"
		_parameter_size = _tmp4_;
#line 598 "../src/main.vala"
		_parameter_index = -1;
#line 598 "../src/main.vala"
		while (TRUE) {
#line 6028 "main.c"
			gint _tmp5_;
			gint _tmp6_;
			LocalParameter* parameter = NULL;
			GeeArrayList* _tmp7_;
			gpointer _tmp8_;
			GString* _tmp9_;
			GString* _tmp11_;
			LocalParameter* _tmp12_;
			const gchar* _tmp13_;
			LocalParameter* _tmp14_;
			const gchar* _tmp15_;
#line 598 "../src/main.vala"
			_parameter_index = _parameter_index + 1;
#line 598 "../src/main.vala"
			_tmp5_ = _parameter_index;
#line 598 "../src/main.vala"
			_tmp6_ = _parameter_size;
#line 598 "../src/main.vala"
			if (!(_tmp5_ < _tmp6_)) {
#line 598 "../src/main.vala"
				break;
#line 6050 "main.c"
			}
#line 598 "../src/main.vala"
			_tmp7_ = _parameter_list;
#line 598 "../src/main.vala"
			_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _parameter_index);
#line 598 "../src/main.vala"
			parameter = (LocalParameter*) _tmp8_;
#line 599 "../src/main.vala"
			_tmp9_ = output;
#line 599 "../src/main.vala"
			if (_tmp9_->len > ((gssize) 0)) {
#line 6062 "main.c"
				GString* _tmp10_;
#line 600 "../src/main.vala"
				_tmp10_ = output;
#line 600 "../src/main.vala"
				g_string_append (_tmp10_, ", ");
#line 6068 "main.c"
			}
#line 602 "../src/main.vala"
			_tmp11_ = output;
#line 602 "../src/main.vala"
			_tmp12_ = parameter;
#line 602 "../src/main.vala"
			_tmp13_ = _tmp12_->name;
#line 602 "../src/main.vala"
			g_string_append_printf (_tmp11_, "owned Php.zval %s", _tmp13_);
#line 603 "../src/main.vala"
			_tmp14_ = parameter;
#line 603 "../src/main.vala"
			_tmp15_ = _tmp14_->default_value;
#line 603 "../src/main.vala"
			if (_tmp15_ != NULL) {
#line 6084 "main.c"
				GString* _tmp16_;
				LocalParameter* _tmp17_;
				const gchar* _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
#line 604 "../src/main.vala"
				_tmp16_ = output;
#line 604 "../src/main.vala"
				_tmp17_ = parameter;
#line 604 "../src/main.vala"
				_tmp18_ = _tmp17_->default_value;
#line 604 "../src/main.vala"
				_tmp19_ = php_to_vala_transpiler_convert_zval_expression_no_throw (self, _tmp18_, local_function->line);
#line 604 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 604 "../src/main.vala"
				g_string_append_printf (_tmp16_, " = %s", _tmp20_);
#line 604 "../src/main.vala"
				_g_free0 (_tmp20_);
#line 6104 "main.c"
			}
#line 598 "../src/main.vala"
			_g_object_unref0 (parameter);
#line 6108 "main.c"
		}
	}
#line 607 "../src/main.vala"
	_tmp21_ = output;
#line 607 "../src/main.vala"
	_tmp22_ = _tmp21_->str;
#line 607 "../src/main.vala"
	_tmp23_ = g_strdup (_tmp22_);
#line 607 "../src/main.vala"
	result = _tmp23_;
#line 607 "../src/main.vala"
	_g_string_free0 (output);
#line 607 "../src/main.vala"
	return result;
#line 6123 "main.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 6146 "main.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 6155 "main.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 6174 "main.c"
	} else {
#line 1514 "glib-2.0.vapi"
		_tmp0_ = FALSE;
#line 6178 "main.c"
	}
#line 1514 "glib-2.0.vapi"
	if (_tmp0_) {
#line 1516 "glib-2.0.vapi"
		string_length = string_strnlen ((gchar*) self, offset + len);
#line 6184 "main.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 6194 "main.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 6202 "main.c"
	} else {
#line 1525 "glib-2.0.vapi"
		g_return_val_if_fail (offset <= string_length, NULL);
#line 6206 "main.c"
	}
#line 1527 "glib-2.0.vapi"
	if (len < ((glong) 0)) {
#line 1528 "glib-2.0.vapi"
		len = string_length - offset;
#line 6212 "main.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 6222 "main.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 6244 "main.c"
	} else {
#line 1589 "glib-2.0.vapi"
		_tmp1_ = (*((gchar*) old)) == '\0';
#line 6248 "main.c"
	}
#line 1589 "glib-2.0.vapi"
	if (_tmp1_) {
#line 1589 "glib-2.0.vapi"
		_tmp0_ = TRUE;
#line 6254 "main.c"
	} else {
#line 1589 "glib-2.0.vapi"
		_tmp0_ = g_strcmp0 (old, replacement) == 0;
#line 6258 "main.c"
	}
#line 1589 "glib-2.0.vapi"
	if (_tmp0_) {
#line 6262 "main.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 6270 "main.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 6298 "main.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 6307 "main.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 6321 "main.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 6330 "main.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 6344 "main.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 6353 "main.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 6362 "main.c"
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
#line 1624 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1625 "glib-2.0.vapi"
	result = self;
#line 1625 "glib-2.0.vapi"
	return result;
#line 6375 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_line (PhpToValaTranspiler* self,
                                            gchar* line,
                                            gint php_line_number,
                                            GError** error)
{
	gchar* _tmp0_;
	gboolean _tmp42_ = FALSE;
	gboolean _tmp54_ = FALSE;
	gboolean _tmp58_ = FALSE;
	gboolean _tmp70_ = FALSE;
	gboolean _tmp74_ = FALSE;
	gboolean _tmp78_ = FALSE;
	gboolean _tmp108_ = FALSE;
	gboolean _tmp113_ = FALSE;
	gchar* dynamic_call = NULL;
	gchar* _tmp115_;
	const gchar* _tmp116_;
	gchar* _tmp117_ = NULL;
	gchar* _tmp118_;
	gchar* _tmp119_;
	const gchar* _tmp120_;
	gchar* increment = NULL;
	gchar* _tmp121_;
	const gchar* _tmp122_;
	gchar* list_assignment = NULL;
	gchar* _tmp123_;
	const gchar* _tmp124_;
	gchar* compound_assignment = NULL;
	gchar* _tmp125_;
	const gchar* _tmp126_;
	gchar* array_assignment = NULL;
	gchar* _tmp127_;
	const gchar* _tmp128_;
	gchar* new_object_assignment = NULL;
	gchar* _tmp129_;
	const gchar* _tmp130_;
	gchar* object_method_call = NULL;
	gchar* _tmp131_;
	const gchar* _tmp132_;
	gchar* static_method_call = NULL;
	gchar* _tmp133_;
	const gchar* _tmp134_;
	gchar* assignment_name = NULL;
	gchar* raw_assignment_expression = NULL;
	gchar* _tmp135_;
	GMatchInfo* assignment_match = NULL;
	GRegex* _tmp136_;
	GMatchInfo* _tmp137_ = NULL;
	gboolean _tmp138_;
	const gchar* _tmp162_;
	GMatchInfo* match = NULL;
	GRegex* _tmp204_;
	GMatchInfo* _tmp205_ = NULL;
	gboolean _tmp206_;
	gint fallback_equals_index = 0;
	GError* _tmp287_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 610 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 610 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 611 "../src/main.vala"
	_tmp0_ = string_strip (line);
#line 611 "../src/main.vala"
	_g_free0 (line);
#line 611 "../src/main.vala"
	line = _tmp0_;
#line 612 "../src/main.vala"
	if (g_str_has_prefix (line, "//")) {
#line 6449 "main.c"
		gchar* _tmp1_;
#line 613 "../src/main.vala"
		_tmp1_ = g_strdup (line);
#line 613 "../src/main.vala"
		result = _tmp1_;
#line 613 "../src/main.vala"
		_g_free0 (line);
#line 613 "../src/main.vala"
		return result;
#line 6459 "main.c"
	}
#line 615 "../src/main.vala"
	if (g_str_has_prefix (line, "#")) {
#line 6463 "main.c"
		gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
#line 616 "../src/main.vala"
		_tmp2_ = string_substring (line, (glong) 1, (glong) -1);
#line 616 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 616 "../src/main.vala"
		_tmp4_ = g_strconcat ("//", _tmp3_, NULL);
#line 616 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 616 "../src/main.vala"
		_g_free0 (_tmp3_);
#line 616 "../src/main.vala"
		result = _tmp5_;
#line 616 "../src/main.vala"
		_g_free0 (line);
#line 616 "../src/main.vala"
		return result;
#line 6484 "main.c"
	}
#line 618 "../src/main.vala"
	if (g_str_has_prefix (line, "/*")) {
#line 6488 "main.c"
		gchar* _tmp6_;
#line 619 "../src/main.vala"
		_tmp6_ = string_replace (line, "\n", "\n        ");
#line 619 "../src/main.vala"
		result = _tmp6_;
#line 619 "../src/main.vala"
		_g_free0 (line);
#line 619 "../src/main.vala"
		return result;
#line 6498 "main.c"
	}
#line 621 "../src/main.vala"
	if (g_str_has_prefix (line, "@")) {
#line 6502 "main.c"
		gchar* _tmp7_ = NULL;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
#line 622 "../src/main.vala"
		_tmp8_ = string_substring (line, (glong) 1, (glong) -1);
#line 622 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 622 "../src/main.vala"
		_tmp10_ = string_strip (_tmp9_);
#line 622 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_transpile_zval_line (self, _tmp10_, php_line_number, &_inner_error0_);
#line 622 "../src/main.vala"
		_tmp12_ = _tmp11_;
#line 622 "../src/main.vala"
		_g_free0 (_tmp9_);
#line 622 "../src/main.vala"
		_tmp7_ = _tmp12_;
#line 622 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 622 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 622 "../src/main.vala"
			_g_free0 (line);
#line 622 "../src/main.vala"
			return NULL;
#line 6532 "main.c"
		}
#line 622 "../src/main.vala"
		_tmp13_ = _tmp7_;
#line 622 "../src/main.vala"
		_tmp7_ = NULL;
#line 622 "../src/main.vala"
		result = _tmp13_;
#line 622 "../src/main.vala"
		_g_free0 (_tmp7_);
#line 622 "../src/main.vala"
		_g_free0 (line);
#line 622 "../src/main.vala"
		return result;
#line 6546 "main.c"
	}
#line 624 "../src/main.vala"
	if (g_str_has_suffix (line, ";flush();")) {
#line 6550 "main.c"
		gchar* first = NULL;
		gint _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* flush_name = NULL;
		gchar* _tmp22_;
		gchar* _tmp23_ = NULL;
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		const gchar* _tmp29_;
		gchar* _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		gchar* _tmp41_;
#line 625 "../src/main.vala"
		_tmp14_ = strlen (line);
#line 625 "../src/main.vala"
		_tmp15_ = _tmp14_;
#line 625 "../src/main.vala"
		_tmp16_ = strlen ("flush();");
#line 625 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 625 "../src/main.vala"
		_tmp18_ = string_substring (line, (glong) 0, (glong) (_tmp15_ - _tmp17_));
#line 625 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 625 "../src/main.vala"
		_tmp20_ = string_strip (_tmp19_);
#line 625 "../src/main.vala"
		_tmp21_ = _tmp20_;
#line 625 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 625 "../src/main.vala"
		first = _tmp21_;
#line 626 "../src/main.vala"
		php_to_vala_transpiler_mark_function_used (self, "flush");
#line 627 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_map_php_runtime_function_name (self, "flush", "flush_zval", php_line_number, &_inner_error0_);
#line 627 "../src/main.vala"
		flush_name = _tmp22_;
#line 627 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 627 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 627 "../src/main.vala"
			_g_free0 (first);
#line 627 "../src/main.vala"
			_g_free0 (line);
#line 627 "../src/main.vala"
			return NULL;
#line 6617 "main.c"
		}
#line 628 "../src/main.vala"
		_tmp24_ = first;
#line 628 "../src/main.vala"
		_tmp25_ = g_strdup (_tmp24_);
#line 628 "../src/main.vala"
		_tmp26_ = php_to_vala_transpiler_transpile_zval_line (self, _tmp25_, php_line_number, &_inner_error0_);
#line 628 "../src/main.vala"
		_tmp23_ = _tmp26_;
#line 628 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 628 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 628 "../src/main.vala"
			_g_free0 (flush_name);
#line 628 "../src/main.vala"
			_g_free0 (first);
#line 628 "../src/main.vala"
			_g_free0 (line);
#line 628 "../src/main.vala"
			return NULL;
#line 6639 "main.c"
		}
#line 628 "../src/main.vala"
		_tmp27_ = g_strconcat (_tmp23_, "\n", NULL);
#line 628 "../src/main.vala"
		_tmp28_ = _tmp27_;
#line 628 "../src/main.vala"
		_tmp29_ = flush_name;
#line 628 "../src/main.vala"
		_tmp30_ = g_strconcat (_tmp28_, _tmp29_, NULL);
#line 628 "../src/main.vala"
		_tmp31_ = _tmp30_;
#line 628 "../src/main.vala"
		_tmp32_ = g_strconcat (_tmp31_, " (", NULL);
#line 628 "../src/main.vala"
		_tmp33_ = _tmp32_;
#line 628 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 628 "../src/main.vala"
		_tmp35_ = _tmp34_;
#line 628 "../src/main.vala"
		_tmp36_ = string_substring (_tmp35_, (glong) 2, (glong) -1);
#line 628 "../src/main.vala"
		_tmp37_ = _tmp36_;
#line 628 "../src/main.vala"
		_tmp38_ = g_strconcat (_tmp33_, _tmp37_, NULL);
#line 628 "../src/main.vala"
		_tmp39_ = _tmp38_;
#line 628 "../src/main.vala"
		_tmp40_ = g_strconcat (_tmp39_, ");", NULL);
#line 628 "../src/main.vala"
		_tmp41_ = _tmp40_;
#line 628 "../src/main.vala"
		_g_free0 (_tmp39_);
#line 628 "../src/main.vala"
		_g_free0 (_tmp37_);
#line 628 "../src/main.vala"
		_g_free0 (_tmp35_);
#line 628 "../src/main.vala"
		_g_free0 (_tmp33_);
#line 628 "../src/main.vala"
		_g_free0 (_tmp31_);
#line 628 "../src/main.vala"
		_g_free0 (_tmp28_);
#line 628 "../src/main.vala"
		result = _tmp41_;
#line 628 "../src/main.vala"
		_g_free0 (_tmp23_);
#line 628 "../src/main.vala"
		_g_free0 (flush_name);
#line 628 "../src/main.vala"
		_g_free0 (first);
#line 628 "../src/main.vala"
		_g_free0 (line);
#line 628 "../src/main.vala"
		return result;
#line 6695 "main.c"
	}
#line 630 "../src/main.vala"
	if (g_strcmp0 (line, "{") == 0) {
#line 630 "../src/main.vala"
		_tmp42_ = TRUE;
#line 6701 "main.c"
	} else {
#line 630 "../src/main.vala"
		_tmp42_ = g_strcmp0 (line, "}") == 0;
#line 6705 "main.c"
	}
#line 630 "../src/main.vala"
	if (_tmp42_) {
#line 6709 "main.c"
		gchar* _tmp43_;
#line 631 "../src/main.vala"
		_tmp43_ = g_strdup (line);
#line 631 "../src/main.vala"
		result = _tmp43_;
#line 631 "../src/main.vala"
		_g_free0 (line);
#line 631 "../src/main.vala"
		return result;
#line 6719 "main.c"
	}
#line 633 "../src/main.vala"
	if (g_strcmp0 (line, "else{") == 0) {
#line 6723 "main.c"
		gchar* _tmp44_;
#line 634 "../src/main.vala"
		_tmp44_ = g_strdup ("else {");
#line 634 "../src/main.vala"
		result = _tmp44_;
#line 634 "../src/main.vala"
		_g_free0 (line);
#line 634 "../src/main.vala"
		return result;
#line 6733 "main.c"
	}
#line 636 "../src/main.vala"
	if (g_str_has_prefix (line, "} else")) {
#line 6737 "main.c"
		gchar* _tmp45_;
#line 637 "../src/main.vala"
		_tmp45_ = g_strdup ("} else {");
#line 637 "../src/main.vala"
		result = _tmp45_;
#line 637 "../src/main.vala"
		_g_free0 (line);
#line 637 "../src/main.vala"
		return result;
#line 6747 "main.c"
	}
#line 639 "../src/main.vala"
	if (g_str_has_prefix (line, "echo ")) {
#line 6751 "main.c"
		gchar* _tmp46_ = NULL;
		gchar* _tmp47_;
		gchar* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		gchar* _tmp51_;
		gchar* _tmp52_;
		gchar* _tmp53_;
#line 640 "../src/main.vala"
		_tmp47_ = string_substring (line, (glong) 5, (glong) -1);
#line 640 "../src/main.vala"
		_tmp48_ = _tmp47_;
#line 640 "../src/main.vala"
		_tmp49_ = string_strip (_tmp48_);
#line 640 "../src/main.vala"
		_tmp50_ = _tmp49_;
#line 640 "../src/main.vala"
		_tmp51_ = php_to_vala_transpiler_transpile_zval_echo (self, _tmp50_, php_line_number, &_inner_error0_);
#line 640 "../src/main.vala"
		_tmp52_ = _tmp51_;
#line 640 "../src/main.vala"
		_g_free0 (_tmp50_);
#line 640 "../src/main.vala"
		_g_free0 (_tmp48_);
#line 640 "../src/main.vala"
		_tmp46_ = _tmp52_;
#line 640 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 640 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 640 "../src/main.vala"
			_g_free0 (line);
#line 640 "../src/main.vala"
			return NULL;
#line 6786 "main.c"
		}
#line 640 "../src/main.vala"
		_tmp53_ = _tmp46_;
#line 640 "../src/main.vala"
		_tmp46_ = NULL;
#line 640 "../src/main.vala"
		result = _tmp53_;
#line 640 "../src/main.vala"
		_g_free0 (_tmp46_);
#line 640 "../src/main.vala"
		_g_free0 (line);
#line 640 "../src/main.vala"
		return result;
#line 6800 "main.c"
	}
#line 642 "../src/main.vala"
	if (g_str_has_prefix (line, "if(")) {
#line 642 "../src/main.vala"
		_tmp54_ = TRUE;
#line 6806 "main.c"
	} else {
#line 642 "../src/main.vala"
		_tmp54_ = g_str_has_prefix (line, "if (");
#line 6810 "main.c"
	}
#line 642 "../src/main.vala"
	if (_tmp54_) {
#line 6814 "main.c"
		gchar* _tmp55_ = NULL;
		gchar* _tmp56_;
		gchar* _tmp57_;
#line 643 "../src/main.vala"
		_tmp56_ = php_to_vala_transpiler_transpile_zval_inline_condition (self, line, "if", php_line_number, &_inner_error0_);
#line 643 "../src/main.vala"
		_tmp55_ = _tmp56_;
#line 643 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 643 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 643 "../src/main.vala"
			_g_free0 (line);
#line 643 "../src/main.vala"
			return NULL;
#line 6830 "main.c"
		}
#line 643 "../src/main.vala"
		_tmp57_ = _tmp55_;
#line 643 "../src/main.vala"
		_tmp55_ = NULL;
#line 643 "../src/main.vala"
		result = _tmp57_;
#line 643 "../src/main.vala"
		_g_free0 (_tmp55_);
#line 643 "../src/main.vala"
		_g_free0 (line);
#line 643 "../src/main.vala"
		return result;
#line 6844 "main.c"
	}
#line 645 "../src/main.vala"
	if (g_str_has_prefix (line, "elseif(")) {
#line 645 "../src/main.vala"
		_tmp58_ = TRUE;
#line 6850 "main.c"
	} else {
#line 645 "../src/main.vala"
		_tmp58_ = g_str_has_prefix (line, "elseif (");
#line 6854 "main.c"
	}
#line 645 "../src/main.vala"
	if (_tmp58_) {
#line 6858 "main.c"
		gchar* _tmp59_ = NULL;
		gchar* _tmp60_;
		gchar* _tmp61_;
#line 646 "../src/main.vala"
		_tmp60_ = php_to_vala_transpiler_transpile_zval_inline_condition (self, line, "else if", php_line_number, &_inner_error0_);
#line 646 "../src/main.vala"
		_tmp59_ = _tmp60_;
#line 646 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 646 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 646 "../src/main.vala"
			_g_free0 (line);
#line 646 "../src/main.vala"
			return NULL;
#line 6874 "main.c"
		}
#line 646 "../src/main.vala"
		_tmp61_ = _tmp59_;
#line 646 "../src/main.vala"
		_tmp59_ = NULL;
#line 646 "../src/main.vala"
		result = _tmp61_;
#line 646 "../src/main.vala"
		_g_free0 (_tmp59_);
#line 646 "../src/main.vala"
		_g_free0 (line);
#line 646 "../src/main.vala"
		return result;
#line 6888 "main.c"
	}
#line 648 "../src/main.vala"
	if (g_str_has_prefix (line, "else ")) {
#line 6892 "main.c"
		gchar* nested = NULL;
		gchar* _tmp62_;
		gchar* _tmp63_;
		gchar* _tmp64_;
		gchar* _tmp65_;
		gchar* _tmp66_;
		const gchar* _tmp67_;
		const gchar* _tmp68_;
		gchar* _tmp69_;
#line 649 "../src/main.vala"
		_tmp62_ = string_substring (line, (glong) 5, (glong) -1);
#line 649 "../src/main.vala"
		_tmp63_ = _tmp62_;
#line 649 "../src/main.vala"
		_tmp64_ = string_strip (_tmp63_);
#line 649 "../src/main.vala"
		_tmp65_ = php_to_vala_transpiler_transpile_zval_line (self, _tmp64_, php_line_number, &_inner_error0_);
#line 649 "../src/main.vala"
		_tmp66_ = _tmp65_;
#line 649 "../src/main.vala"
		_g_free0 (_tmp63_);
#line 649 "../src/main.vala"
		nested = _tmp66_;
#line 649 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 649 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 649 "../src/main.vala"
			_g_free0 (line);
#line 649 "../src/main.vala"
			return NULL;
#line 6924 "main.c"
		}
#line 650 "../src/main.vala"
		_tmp67_ = nested;
#line 650 "../src/main.vala"
		_tmp68_ = string_to_string (_tmp67_);
#line 650 "../src/main.vala"
		_tmp69_ = g_strconcat ("else { ", _tmp68_, " }", NULL);
#line 650 "../src/main.vala"
		result = _tmp69_;
#line 650 "../src/main.vala"
		_g_free0 (nested);
#line 650 "../src/main.vala"
		_g_free0 (line);
#line 650 "../src/main.vala"
		return result;
#line 6940 "main.c"
	}
#line 652 "../src/main.vala"
	if (g_str_has_prefix (line, "foreach(")) {
#line 652 "../src/main.vala"
		_tmp70_ = TRUE;
#line 6946 "main.c"
	} else {
#line 652 "../src/main.vala"
		_tmp70_ = g_str_has_prefix (line, "foreach (");
#line 6950 "main.c"
	}
#line 652 "../src/main.vala"
	if (_tmp70_) {
#line 6954 "main.c"
		gchar* _tmp71_ = NULL;
		gchar* _tmp72_;
		gchar* _tmp73_;
#line 653 "../src/main.vala"
		_tmp72_ = php_to_vala_transpiler_transpile_zval_foreach (self, line, php_line_number, &_inner_error0_);
#line 653 "../src/main.vala"
		_tmp71_ = _tmp72_;
#line 653 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 653 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 653 "../src/main.vala"
			_g_free0 (line);
#line 653 "../src/main.vala"
			return NULL;
#line 6970 "main.c"
		}
#line 653 "../src/main.vala"
		_tmp73_ = _tmp71_;
#line 653 "../src/main.vala"
		_tmp71_ = NULL;
#line 653 "../src/main.vala"
		result = _tmp73_;
#line 653 "../src/main.vala"
		_g_free0 (_tmp71_);
#line 653 "../src/main.vala"
		_g_free0 (line);
#line 653 "../src/main.vala"
		return result;
#line 6984 "main.c"
	}
#line 655 "../src/main.vala"
	if (g_str_has_prefix (line, "for(")) {
#line 655 "../src/main.vala"
		_tmp74_ = TRUE;
#line 6990 "main.c"
	} else {
#line 655 "../src/main.vala"
		_tmp74_ = g_str_has_prefix (line, "for (");
#line 6994 "main.c"
	}
#line 655 "../src/main.vala"
	if (_tmp74_) {
#line 6998 "main.c"
		gchar* _tmp75_ = NULL;
		gchar* _tmp76_;
		gchar* _tmp77_;
#line 656 "../src/main.vala"
		_tmp76_ = php_to_vala_transpiler_transpile_zval_for (self, line, php_line_number, &_inner_error0_);
#line 656 "../src/main.vala"
		_tmp75_ = _tmp76_;
#line 656 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 656 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 656 "../src/main.vala"
			_g_free0 (line);
#line 656 "../src/main.vala"
			return NULL;
#line 7014 "main.c"
		}
#line 656 "../src/main.vala"
		_tmp77_ = _tmp75_;
#line 656 "../src/main.vala"
		_tmp75_ = NULL;
#line 656 "../src/main.vala"
		result = _tmp77_;
#line 656 "../src/main.vala"
		_g_free0 (_tmp75_);
#line 656 "../src/main.vala"
		_g_free0 (line);
#line 656 "../src/main.vala"
		return result;
#line 7028 "main.c"
	}
#line 658 "../src/main.vala"
	if (g_str_has_prefix (line, "while(")) {
#line 658 "../src/main.vala"
		_tmp78_ = TRUE;
#line 7034 "main.c"
	} else {
#line 658 "../src/main.vala"
		_tmp78_ = g_str_has_prefix (line, "while (");
#line 7038 "main.c"
	}
#line 658 "../src/main.vala"
	if (_tmp78_) {
#line 7042 "main.c"
		gchar* _tmp79_ = NULL;
		gchar* _tmp80_;
		gchar* _tmp81_;
#line 659 "../src/main.vala"
		_tmp80_ = php_to_vala_transpiler_transpile_zval_while (self, line, php_line_number, &_inner_error0_);
#line 659 "../src/main.vala"
		_tmp79_ = _tmp80_;
#line 659 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 659 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 659 "../src/main.vala"
			_g_free0 (line);
#line 659 "../src/main.vala"
			return NULL;
#line 7058 "main.c"
		}
#line 659 "../src/main.vala"
		_tmp81_ = _tmp79_;
#line 659 "../src/main.vala"
		_tmp79_ = NULL;
#line 659 "../src/main.vala"
		result = _tmp81_;
#line 659 "../src/main.vala"
		_g_free0 (_tmp79_);
#line 659 "../src/main.vala"
		_g_free0 (line);
#line 659 "../src/main.vala"
		return result;
#line 7072 "main.c"
	}
#line 661 "../src/main.vala"
	if (g_str_has_prefix (line, "return")) {
#line 7076 "main.c"
		gchar* expression = NULL;
		gint _tmp82_;
		gint _tmp83_;
		gchar* _tmp84_;
		gchar* _tmp85_;
		gchar* _tmp86_;
		gchar* _tmp87_;
		const gchar* _tmp88_;
		gchar* _tmp89_;
		gboolean _tmp90_ = FALSE;
		const gchar* _tmp91_;
		gchar* _tmp100_ = NULL;
		const gchar* _tmp101_;
		gchar* _tmp107_;
#line 662 "../src/main.vala"
		_tmp82_ = strlen ("return");
#line 662 "../src/main.vala"
		_tmp83_ = _tmp82_;
#line 662 "../src/main.vala"
		_tmp84_ = string_substring (line, (glong) _tmp83_, (glong) -1);
#line 662 "../src/main.vala"
		_tmp85_ = _tmp84_;
#line 662 "../src/main.vala"
		_tmp86_ = string_strip (_tmp85_);
#line 662 "../src/main.vala"
		_tmp87_ = _tmp86_;
#line 662 "../src/main.vala"
		_g_free0 (_tmp85_);
#line 662 "../src/main.vala"
		expression = _tmp87_;
#line 663 "../src/main.vala"
		_tmp88_ = expression;
#line 663 "../src/main.vala"
		_tmp89_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp88_);
#line 663 "../src/main.vala"
		_g_free0 (expression);
#line 663 "../src/main.vala"
		expression = _tmp89_;
#line 664 "../src/main.vala"
		_tmp91_ = expression;
#line 664 "../src/main.vala"
		if (g_str_has_prefix (_tmp91_, "(")) {
#line 7119 "main.c"
			const gchar* _tmp92_;
#line 664 "../src/main.vala"
			_tmp92_ = expression;
#line 664 "../src/main.vala"
			_tmp90_ = g_str_has_suffix (_tmp92_, ")");
#line 7125 "main.c"
		} else {
#line 664 "../src/main.vala"
			_tmp90_ = FALSE;
#line 7129 "main.c"
		}
#line 664 "../src/main.vala"
		if (_tmp90_) {
#line 7133 "main.c"
			const gchar* _tmp93_;
			const gchar* _tmp94_;
			gint _tmp95_;
			gint _tmp96_;
			gchar* _tmp97_;
			gchar* _tmp98_;
			gchar* _tmp99_;
#line 665 "../src/main.vala"
			_tmp93_ = expression;
#line 665 "../src/main.vala"
			_tmp94_ = expression;
#line 665 "../src/main.vala"
			_tmp95_ = strlen (_tmp94_);
#line 665 "../src/main.vala"
			_tmp96_ = _tmp95_;
#line 665 "../src/main.vala"
			_tmp97_ = string_substring (_tmp93_, (glong) 1, (glong) (_tmp96_ - 2));
#line 665 "../src/main.vala"
			_tmp98_ = _tmp97_;
#line 665 "../src/main.vala"
			_tmp99_ = string_strip (_tmp98_);
#line 665 "../src/main.vala"
			_g_free0 (expression);
#line 665 "../src/main.vala"
			expression = _tmp99_;
#line 665 "../src/main.vala"
			_g_free0 (_tmp98_);
#line 7161 "main.c"
		}
#line 667 "../src/main.vala"
		_tmp101_ = expression;
#line 667 "../src/main.vala"
		if (g_strcmp0 (_tmp101_, "") == 0) {
#line 7167 "main.c"
			gchar* _tmp102_;
#line 667 "../src/main.vala"
			_tmp102_ = g_strdup ("return Php.zval.null_value ();");
#line 667 "../src/main.vala"
			_g_free0 (_tmp100_);
#line 667 "../src/main.vala"
			_tmp100_ = _tmp102_;
#line 7175 "main.c"
		} else {
			gchar* _tmp103_ = NULL;
			const gchar* _tmp104_;
			gchar* _tmp105_;
			gchar* _tmp106_;
#line 667 "../src/main.vala"
			_tmp104_ = expression;
#line 667 "../src/main.vala"
			_tmp105_ = php_to_vala_transpiler_convert_zval_return_expression (self, _tmp104_, php_line_number, &_inner_error0_);
#line 667 "../src/main.vala"
			_tmp103_ = _tmp105_;
#line 667 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 667 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 667 "../src/main.vala"
				_g_free0 (_tmp100_);
#line 667 "../src/main.vala"
				_g_free0 (expression);
#line 667 "../src/main.vala"
				_g_free0 (line);
#line 667 "../src/main.vala"
				return NULL;
#line 7199 "main.c"
			}
#line 667 "../src/main.vala"
			_tmp106_ = g_strdup_printf ("return %s;", _tmp103_);
#line 667 "../src/main.vala"
			_g_free0 (_tmp100_);
#line 667 "../src/main.vala"
			_tmp100_ = _tmp106_;
#line 667 "../src/main.vala"
			_g_free0 (_tmp103_);
#line 7209 "main.c"
		}
#line 667 "../src/main.vala"
		_tmp107_ = _tmp100_;
#line 667 "../src/main.vala"
		_tmp100_ = NULL;
#line 667 "../src/main.vala"
		result = _tmp107_;
#line 667 "../src/main.vala"
		_g_free0 (_tmp100_);
#line 667 "../src/main.vala"
		_g_free0 (expression);
#line 667 "../src/main.vala"
		_g_free0 (line);
#line 667 "../src/main.vala"
		return result;
#line 7225 "main.c"
	}
#line 669 "../src/main.vala"
	if (g_strcmp0 (line, "exit;") == 0) {
#line 669 "../src/main.vala"
		_tmp108_ = TRUE;
#line 7231 "main.c"
	} else {
#line 669 "../src/main.vala"
		_tmp108_ = g_strcmp0 (line, "die;") == 0;
#line 7235 "main.c"
	}
#line 669 "../src/main.vala"
	if (_tmp108_) {
#line 7239 "main.c"
		const gchar* _tmp109_ = NULL;
		gchar* _tmp110_ = NULL;
		gchar* _tmp111_;
		gchar* _tmp112_;
#line 670 "../src/main.vala"
		if (g_str_has_prefix (line, "die")) {
#line 670 "../src/main.vala"
			_tmp109_ = "die";
#line 7248 "main.c"
		} else {
#line 670 "../src/main.vala"
			_tmp109_ = "exit";
#line 7252 "main.c"
		}
#line 670 "../src/main.vala"
		_tmp111_ = php_to_vala_transpiler_transpile_zval_exit (self, "", php_line_number, _tmp109_, &_inner_error0_);
#line 670 "../src/main.vala"
		_tmp110_ = _tmp111_;
#line 670 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 670 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 670 "../src/main.vala"
			_g_free0 (line);
#line 670 "../src/main.vala"
			return NULL;
#line 7266 "main.c"
		}
#line 670 "../src/main.vala"
		_tmp112_ = _tmp110_;
#line 670 "../src/main.vala"
		_tmp110_ = NULL;
#line 670 "../src/main.vala"
		result = _tmp112_;
#line 670 "../src/main.vala"
		_g_free0 (_tmp110_);
#line 670 "../src/main.vala"
		_g_free0 (line);
#line 670 "../src/main.vala"
		return result;
#line 7280 "main.c"
	}
#line 672 "../src/main.vala"
	if (g_strcmp0 (line, "continue;") == 0) {
#line 672 "../src/main.vala"
		_tmp113_ = TRUE;
#line 7286 "main.c"
	} else {
#line 672 "../src/main.vala"
		_tmp113_ = g_strcmp0 (line, "break;") == 0;
#line 7290 "main.c"
	}
#line 672 "../src/main.vala"
	if (_tmp113_) {
#line 7294 "main.c"
		gchar* _tmp114_;
#line 673 "../src/main.vala"
		_tmp114_ = g_strdup (line);
#line 673 "../src/main.vala"
		result = _tmp114_;
#line 673 "../src/main.vala"
		_g_free0 (line);
#line 673 "../src/main.vala"
		return result;
#line 7304 "main.c"
	}
#line 675 "../src/main.vala"
	_tmp115_ = php_to_vala_transpiler_transpile_zval_dynamic_this_call (self, line, php_line_number, &_inner_error0_);
#line 675 "../src/main.vala"
	dynamic_call = _tmp115_;
#line 675 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 675 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 675 "../src/main.vala"
		_g_free0 (line);
#line 675 "../src/main.vala"
		return NULL;
#line 7318 "main.c"
	}
#line 676 "../src/main.vala"
	_tmp116_ = dynamic_call;
#line 676 "../src/main.vala"
	if (_tmp116_ != NULL) {
#line 677 "../src/main.vala"
		result = dynamic_call;
#line 677 "../src/main.vala"
		_g_free0 (line);
#line 677 "../src/main.vala"
		return result;
#line 7330 "main.c"
	}
#line 679 "../src/main.vala"
	_tmp118_ = php_to_vala_transpiler_transpile_zval_variable_function_call (self, line, php_line_number, &_inner_error0_);
#line 679 "../src/main.vala"
	_tmp117_ = _tmp118_;
#line 679 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 679 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 679 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 679 "../src/main.vala"
		_g_free0 (line);
#line 679 "../src/main.vala"
		return NULL;
#line 7346 "main.c"
	}
#line 679 "../src/main.vala"
	_tmp119_ = _tmp117_;
#line 679 "../src/main.vala"
	_tmp117_ = NULL;
#line 679 "../src/main.vala"
	_g_free0 (dynamic_call);
#line 679 "../src/main.vala"
	dynamic_call = _tmp119_;
#line 680 "../src/main.vala"
	_tmp120_ = dynamic_call;
#line 680 "../src/main.vala"
	if (_tmp120_ != NULL) {
#line 681 "../src/main.vala"
		result = dynamic_call;
#line 681 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 681 "../src/main.vala"
		_g_free0 (line);
#line 681 "../src/main.vala"
		return result;
#line 7368 "main.c"
	}
#line 683 "../src/main.vala"
	_tmp121_ = php_to_vala_transpiler_transpile_zval_increment (self, line, php_line_number, &_inner_error0_);
#line 683 "../src/main.vala"
	increment = _tmp121_;
#line 683 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 683 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 683 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 683 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 683 "../src/main.vala"
		_g_free0 (line);
#line 683 "../src/main.vala"
		return NULL;
#line 7386 "main.c"
	}
#line 684 "../src/main.vala"
	_tmp122_ = increment;
#line 684 "../src/main.vala"
	if (_tmp122_ != NULL) {
#line 685 "../src/main.vala"
		result = increment;
#line 685 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 685 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 685 "../src/main.vala"
		_g_free0 (line);
#line 685 "../src/main.vala"
		return result;
#line 7402 "main.c"
	}
#line 687 "../src/main.vala"
	_tmp123_ = php_to_vala_transpiler_transpile_zval_list_assignment (self, line, php_line_number, &_inner_error0_);
#line 687 "../src/main.vala"
	list_assignment = _tmp123_;
#line 687 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 687 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 687 "../src/main.vala"
		_g_free0 (increment);
#line 687 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 687 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 687 "../src/main.vala"
		_g_free0 (line);
#line 687 "../src/main.vala"
		return NULL;
#line 7422 "main.c"
	}
#line 688 "../src/main.vala"
	_tmp124_ = list_assignment;
#line 688 "../src/main.vala"
	if (_tmp124_ != NULL) {
#line 689 "../src/main.vala"
		result = list_assignment;
#line 689 "../src/main.vala"
		_g_free0 (increment);
#line 689 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 689 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 689 "../src/main.vala"
		_g_free0 (line);
#line 689 "../src/main.vala"
		return result;
#line 7440 "main.c"
	}
#line 692 "../src/main.vala"
	_tmp125_ = php_to_vala_transpiler_transpile_zval_compound_assignment (self, line, php_line_number, &_inner_error0_);
#line 692 "../src/main.vala"
	compound_assignment = _tmp125_;
#line 692 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 692 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 692 "../src/main.vala"
		_g_free0 (list_assignment);
#line 692 "../src/main.vala"
		_g_free0 (increment);
#line 692 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 692 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 692 "../src/main.vala"
		_g_free0 (line);
#line 692 "../src/main.vala"
		return NULL;
#line 7462 "main.c"
	}
#line 693 "../src/main.vala"
	_tmp126_ = compound_assignment;
#line 693 "../src/main.vala"
	if (_tmp126_ != NULL) {
#line 694 "../src/main.vala"
		result = compound_assignment;
#line 694 "../src/main.vala"
		_g_free0 (list_assignment);
#line 694 "../src/main.vala"
		_g_free0 (increment);
#line 694 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 694 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 694 "../src/main.vala"
		_g_free0 (line);
#line 694 "../src/main.vala"
		return result;
#line 7482 "main.c"
	}
#line 696 "../src/main.vala"
	_tmp127_ = php_to_vala_transpiler_transpile_zval_array_assignment (self, line, php_line_number, &_inner_error0_);
#line 696 "../src/main.vala"
	array_assignment = _tmp127_;
#line 696 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 696 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 696 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 696 "../src/main.vala"
		_g_free0 (list_assignment);
#line 696 "../src/main.vala"
		_g_free0 (increment);
#line 696 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 696 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 696 "../src/main.vala"
		_g_free0 (line);
#line 696 "../src/main.vala"
		return NULL;
#line 7506 "main.c"
	}
#line 697 "../src/main.vala"
	_tmp128_ = array_assignment;
#line 697 "../src/main.vala"
	if (_tmp128_ != NULL) {
#line 698 "../src/main.vala"
		result = array_assignment;
#line 698 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 698 "../src/main.vala"
		_g_free0 (list_assignment);
#line 698 "../src/main.vala"
		_g_free0 (increment);
#line 698 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 698 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 698 "../src/main.vala"
		_g_free0 (line);
#line 698 "../src/main.vala"
		return result;
#line 7528 "main.c"
	}
#line 700 "../src/main.vala"
	_tmp129_ = php_to_vala_transpiler_transpile_zval_new_object_assignment (self, line, php_line_number, &_inner_error0_);
#line 700 "../src/main.vala"
	new_object_assignment = _tmp129_;
#line 700 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 700 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 700 "../src/main.vala"
		_g_free0 (array_assignment);
#line 700 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 700 "../src/main.vala"
		_g_free0 (list_assignment);
#line 700 "../src/main.vala"
		_g_free0 (increment);
#line 700 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 700 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 700 "../src/main.vala"
		_g_free0 (line);
#line 700 "../src/main.vala"
		return NULL;
#line 7554 "main.c"
	}
#line 701 "../src/main.vala"
	_tmp130_ = new_object_assignment;
#line 701 "../src/main.vala"
	if (_tmp130_ != NULL) {
#line 702 "../src/main.vala"
		result = new_object_assignment;
#line 702 "../src/main.vala"
		_g_free0 (array_assignment);
#line 702 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 702 "../src/main.vala"
		_g_free0 (list_assignment);
#line 702 "../src/main.vala"
		_g_free0 (increment);
#line 702 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 702 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 702 "../src/main.vala"
		_g_free0 (line);
#line 702 "../src/main.vala"
		return result;
#line 7578 "main.c"
	}
#line 704 "../src/main.vala"
	_tmp131_ = php_to_vala_transpiler_transpile_zval_object_method_call (self, line, php_line_number, &_inner_error0_);
#line 704 "../src/main.vala"
	object_method_call = _tmp131_;
#line 704 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 704 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 704 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 704 "../src/main.vala"
		_g_free0 (array_assignment);
#line 704 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 704 "../src/main.vala"
		_g_free0 (list_assignment);
#line 704 "../src/main.vala"
		_g_free0 (increment);
#line 704 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 704 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 704 "../src/main.vala"
		_g_free0 (line);
#line 704 "../src/main.vala"
		return NULL;
#line 7606 "main.c"
	}
#line 705 "../src/main.vala"
	_tmp132_ = object_method_call;
#line 705 "../src/main.vala"
	if (_tmp132_ != NULL) {
#line 706 "../src/main.vala"
		result = object_method_call;
#line 706 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 706 "../src/main.vala"
		_g_free0 (array_assignment);
#line 706 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 706 "../src/main.vala"
		_g_free0 (list_assignment);
#line 706 "../src/main.vala"
		_g_free0 (increment);
#line 706 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 706 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 706 "../src/main.vala"
		_g_free0 (line);
#line 706 "../src/main.vala"
		return result;
#line 7632 "main.c"
	}
#line 708 "../src/main.vala"
	_tmp133_ = php_to_vala_transpiler_transpile_zval_static_method_call (self, line, php_line_number, &_inner_error0_);
#line 708 "../src/main.vala"
	static_method_call = _tmp133_;
#line 708 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 708 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 708 "../src/main.vala"
		_g_free0 (object_method_call);
#line 708 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 708 "../src/main.vala"
		_g_free0 (array_assignment);
#line 708 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 708 "../src/main.vala"
		_g_free0 (list_assignment);
#line 708 "../src/main.vala"
		_g_free0 (increment);
#line 708 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 708 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 708 "../src/main.vala"
		_g_free0 (line);
#line 708 "../src/main.vala"
		return NULL;
#line 7662 "main.c"
	}
#line 709 "../src/main.vala"
	_tmp134_ = static_method_call;
#line 709 "../src/main.vala"
	if (_tmp134_ != NULL) {
#line 710 "../src/main.vala"
		result = static_method_call;
#line 710 "../src/main.vala"
		_g_free0 (object_method_call);
#line 710 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 710 "../src/main.vala"
		_g_free0 (array_assignment);
#line 710 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 710 "../src/main.vala"
		_g_free0 (list_assignment);
#line 710 "../src/main.vala"
		_g_free0 (increment);
#line 710 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 710 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 710 "../src/main.vala"
		_g_free0 (line);
#line 710 "../src/main.vala"
		return result;
#line 7690 "main.c"
	}
#line 713 "../src/main.vala"
	assignment_name = NULL;
#line 714 "../src/main.vala"
	_tmp135_ = g_strdup ("");
#line 714 "../src/main.vala"
	raw_assignment_expression = _tmp135_;
#line 716 "../src/main.vala"
	_tmp136_ = self->priv->assignment_regex;
#line 716 "../src/main.vala"
	_tmp138_ = g_regex_match (_tmp136_, line, 0, &_tmp137_);
#line 716 "../src/main.vala"
	_g_match_info_unref0 (assignment_match);
#line 716 "../src/main.vala"
	assignment_match = _tmp137_;
#line 716 "../src/main.vala"
	if (_tmp138_) {
#line 7708 "main.c"
		GMatchInfo* _tmp139_;
		gchar* _tmp140_;
		GMatchInfo* _tmp141_;
		gchar* _tmp142_;
		gchar* _tmp143_;
		gchar* _tmp144_;
#line 717 "../src/main.vala"
		_tmp139_ = assignment_match;
#line 717 "../src/main.vala"
		_tmp140_ = g_match_info_fetch (_tmp139_, 1);
#line 717 "../src/main.vala"
		_g_free0 (assignment_name);
#line 717 "../src/main.vala"
		assignment_name = _tmp140_;
#line 718 "../src/main.vala"
		_tmp141_ = assignment_match;
#line 718 "../src/main.vala"
		_tmp142_ = g_match_info_fetch (_tmp141_, 2);
#line 718 "../src/main.vala"
		_tmp143_ = _tmp142_;
#line 718 "../src/main.vala"
		_tmp144_ = string_strip (_tmp143_);
#line 718 "../src/main.vala"
		_g_free0 (raw_assignment_expression);
#line 718 "../src/main.vala"
		raw_assignment_expression = _tmp144_;
#line 718 "../src/main.vala"
		_g_free0 (_tmp143_);
#line 7737 "main.c"
	} else {
		gchar* _tmp145_;
		const gchar* _tmp146_;
#line 720 "../src/main.vala"
		_tmp145_ = php_to_vala_transpiler_parse_assignment_name (line);
#line 720 "../src/main.vala"
		_g_free0 (assignment_name);
#line 720 "../src/main.vala"
		assignment_name = _tmp145_;
#line 721 "../src/main.vala"
		_tmp146_ = assignment_name;
#line 721 "../src/main.vala"
		if (_tmp146_ != NULL) {
#line 7751 "main.c"
			gchar* _tmp147_;
#line 722 "../src/main.vala"
			_tmp147_ = php_to_vala_transpiler_parse_assignment_expression (line);
#line 722 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 722 "../src/main.vala"
			raw_assignment_expression = _tmp147_;
#line 7759 "main.c"
		} else {
			gint dollar_index = 0;
			gint equals_index = 0;
			gboolean _tmp148_ = FALSE;
			gboolean _tmp149_ = FALSE;
#line 724 "../src/main.vala"
			dollar_index = string_index_of (line, "$", 0);
#line 725 "../src/main.vala"
			equals_index = string_index_of (line, "=", 0);
#line 726 "../src/main.vala"
			if (dollar_index >= 0) {
#line 726 "../src/main.vala"
				_tmp149_ = equals_index > dollar_index;
#line 7773 "main.c"
			} else {
#line 726 "../src/main.vala"
				_tmp149_ = FALSE;
#line 7777 "main.c"
			}
#line 726 "../src/main.vala"
			if (_tmp149_) {
#line 726 "../src/main.vala"
				_tmp148_ = g_str_has_suffix (line, ";");
#line 7783 "main.c"
			} else {
#line 726 "../src/main.vala"
				_tmp148_ = FALSE;
#line 7787 "main.c"
			}
#line 726 "../src/main.vala"
			if (_tmp148_) {
#line 7791 "main.c"
				gchar* candidate = NULL;
				gchar* _tmp150_;
				gchar* _tmp151_;
				gchar* _tmp152_;
				gchar* _tmp153_;
				const gchar* _tmp154_;
#line 727 "../src/main.vala"
				_tmp150_ = string_substring (line, (glong) (dollar_index + 1), (glong) ((equals_index - dollar_index) - 1));
#line 727 "../src/main.vala"
				_tmp151_ = _tmp150_;
#line 727 "../src/main.vala"
				_tmp152_ = string_strip (_tmp151_);
#line 727 "../src/main.vala"
				_tmp153_ = _tmp152_;
#line 727 "../src/main.vala"
				_g_free0 (_tmp151_);
#line 727 "../src/main.vala"
				candidate = _tmp153_;
#line 728 "../src/main.vala"
				_tmp154_ = candidate;
#line 728 "../src/main.vala"
				if (php_to_vala_transpiler_is_identifier (_tmp154_)) {
#line 7814 "main.c"
					const gchar* _tmp155_;
					gchar* _tmp156_;
					gchar* _tmp157_;
					gchar* _tmp158_;
					gchar* _tmp159_;
					gchar* _tmp160_;
					gchar* _tmp161_;
#line 729 "../src/main.vala"
					_tmp155_ = candidate;
#line 729 "../src/main.vala"
					_tmp156_ = g_strdup (_tmp155_);
#line 729 "../src/main.vala"
					_g_free0 (assignment_name);
#line 729 "../src/main.vala"
					assignment_name = _tmp156_;
#line 730 "../src/main.vala"
					_tmp157_ = string_substring (line, (glong) (equals_index + 1), (glong) -1);
#line 730 "../src/main.vala"
					_tmp158_ = _tmp157_;
#line 730 "../src/main.vala"
					_tmp159_ = string_strip (_tmp158_);
#line 730 "../src/main.vala"
					_tmp160_ = _tmp159_;
#line 730 "../src/main.vala"
					_tmp161_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp160_);
#line 730 "../src/main.vala"
					_g_free0 (raw_assignment_expression);
#line 730 "../src/main.vala"
					raw_assignment_expression = _tmp161_;
#line 730 "../src/main.vala"
					_g_free0 (_tmp160_);
#line 730 "../src/main.vala"
					_g_free0 (_tmp158_);
#line 7848 "main.c"
				}
#line 726 "../src/main.vala"
				_g_free0 (candidate);
#line 7852 "main.c"
			}
		}
	}
#line 735 "../src/main.vala"
	_tmp162_ = assignment_name;
#line 735 "../src/main.vala"
	if (_tmp162_ != NULL) {
#line 7860 "main.c"
		gchar* raw_expression = NULL;
		const gchar* _tmp163_;
		gchar* _tmp164_;
		gchar* chained_assignment = NULL;
		const gchar* _tmp165_;
		const gchar* _tmp166_;
		gchar* _tmp167_;
		const gchar* _tmp168_;
		gchar* expression = NULL;
		const gchar* _tmp169_;
		gchar* _tmp170_;
		gchar* _tmp171_ = NULL;
		GeeHashMap* _tmp172_;
		const gchar* _tmp173_;
		gchar* storage_name = NULL;
		gchar* _tmp179_;
		gboolean _tmp180_ = FALSE;
		GeeHashMap* _tmp181_;
		const gchar* _tmp182_;
		GeeHashMap* _tmp190_;
		const gchar* _tmp191_;
		const gchar* _tmp199_;
		const gchar* _tmp200_;
		const gchar* _tmp201_;
		const gchar* _tmp202_;
		gchar* _tmp203_;
#line 736 "../src/main.vala"
		_tmp163_ = raw_assignment_expression;
#line 736 "../src/main.vala"
		_tmp164_ = g_strdup (_tmp163_);
#line 736 "../src/main.vala"
		raw_expression = _tmp164_;
#line 737 "../src/main.vala"
		_tmp165_ = assignment_name;
#line 737 "../src/main.vala"
		_tmp166_ = raw_expression;
#line 737 "../src/main.vala"
		_tmp167_ = php_to_vala_transpiler_transpile_zval_chained_assignment (self, _tmp165_, _tmp166_, php_line_number, &_inner_error0_);
#line 737 "../src/main.vala"
		chained_assignment = _tmp167_;
#line 737 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 737 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 737 "../src/main.vala"
			_g_free0 (raw_expression);
#line 737 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 737 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 737 "../src/main.vala"
			_g_free0 (assignment_name);
#line 737 "../src/main.vala"
			_g_free0 (static_method_call);
#line 737 "../src/main.vala"
			_g_free0 (object_method_call);
#line 737 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 737 "../src/main.vala"
			_g_free0 (array_assignment);
#line 737 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 737 "../src/main.vala"
			_g_free0 (list_assignment);
#line 737 "../src/main.vala"
			_g_free0 (increment);
#line 737 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 737 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 737 "../src/main.vala"
			_g_free0 (line);
#line 737 "../src/main.vala"
			return NULL;
#line 7935 "main.c"
		}
#line 738 "../src/main.vala"
		_tmp168_ = chained_assignment;
#line 738 "../src/main.vala"
		if (_tmp168_ != NULL) {
#line 739 "../src/main.vala"
			result = chained_assignment;
#line 739 "../src/main.vala"
			_g_free0 (raw_expression);
#line 739 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 739 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 739 "../src/main.vala"
			_g_free0 (assignment_name);
#line 739 "../src/main.vala"
			_g_free0 (static_method_call);
#line 739 "../src/main.vala"
			_g_free0 (object_method_call);
#line 739 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 739 "../src/main.vala"
			_g_free0 (array_assignment);
#line 739 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 739 "../src/main.vala"
			_g_free0 (list_assignment);
#line 739 "../src/main.vala"
			_g_free0 (increment);
#line 739 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 739 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 739 "../src/main.vala"
			_g_free0 (line);
#line 739 "../src/main.vala"
			return result;
#line 7973 "main.c"
		}
#line 741 "../src/main.vala"
		_tmp169_ = raw_expression;
#line 741 "../src/main.vala"
		_tmp170_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp169_, php_line_number, &_inner_error0_);
#line 741 "../src/main.vala"
		expression = _tmp170_;
#line 741 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 741 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 741 "../src/main.vala"
			_g_free0 (chained_assignment);
#line 741 "../src/main.vala"
			_g_free0 (raw_expression);
#line 741 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 741 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 741 "../src/main.vala"
			_g_free0 (assignment_name);
#line 741 "../src/main.vala"
			_g_free0 (static_method_call);
#line 741 "../src/main.vala"
			_g_free0 (object_method_call);
#line 741 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 741 "../src/main.vala"
			_g_free0 (array_assignment);
#line 741 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 741 "../src/main.vala"
			_g_free0 (list_assignment);
#line 741 "../src/main.vala"
			_g_free0 (increment);
#line 741 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 741 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 741 "../src/main.vala"
			_g_free0 (line);
#line 741 "../src/main.vala"
			return NULL;
#line 8017 "main.c"
		}
#line 742 "../src/main.vala"
		_tmp172_ = self->variable_aliases;
#line 742 "../src/main.vala"
		_tmp173_ = assignment_name;
#line 742 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp172_, _tmp173_)) {
#line 8025 "main.c"
			GeeHashMap* _tmp174_;
			const gchar* _tmp175_;
			gpointer _tmp176_;
#line 742 "../src/main.vala"
			_tmp174_ = self->variable_aliases;
#line 742 "../src/main.vala"
			_tmp175_ = assignment_name;
#line 742 "../src/main.vala"
			_tmp176_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp174_, _tmp175_);
#line 742 "../src/main.vala"
			_g_free0 (_tmp171_);
#line 742 "../src/main.vala"
			_tmp171_ = (gchar*) _tmp176_;
#line 8039 "main.c"
		} else {
			const gchar* _tmp177_;
			gchar* _tmp178_;
#line 742 "../src/main.vala"
			_tmp177_ = assignment_name;
#line 742 "../src/main.vala"
			_tmp178_ = g_strdup (_tmp177_);
#line 742 "../src/main.vala"
			_g_free0 (_tmp171_);
#line 742 "../src/main.vala"
			_tmp171_ = _tmp178_;
#line 8051 "main.c"
		}
#line 742 "../src/main.vala"
		_tmp179_ = _tmp171_;
#line 742 "../src/main.vala"
		_tmp171_ = NULL;
#line 742 "../src/main.vala"
		storage_name = _tmp179_;
#line 743 "../src/main.vala"
		_tmp181_ = self->local_functions;
#line 743 "../src/main.vala"
		_tmp182_ = assignment_name;
#line 743 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp181_, _tmp182_)) {
#line 8065 "main.c"
			GeeHashMap* _tmp183_;
			const gchar* _tmp184_;
#line 743 "../src/main.vala"
			_tmp183_ = self->variable_aliases;
#line 743 "../src/main.vala"
			_tmp184_ = assignment_name;
#line 743 "../src/main.vala"
			_tmp180_ = !gee_abstract_map_has_key ((GeeAbstractMap*) _tmp183_, _tmp184_);
#line 8074 "main.c"
		} else {
#line 743 "../src/main.vala"
			_tmp180_ = FALSE;
#line 8078 "main.c"
		}
#line 743 "../src/main.vala"
		if (_tmp180_) {
#line 8082 "main.c"
			const gchar* _tmp185_;
			gchar* _tmp186_;
			GeeHashMap* _tmp187_;
			const gchar* _tmp188_;
			const gchar* _tmp189_;
#line 744 "../src/main.vala"
			_tmp185_ = assignment_name;
#line 744 "../src/main.vala"
			_tmp186_ = g_strconcat (_tmp185_, "_result", NULL);
#line 744 "../src/main.vala"
			_g_free0 (storage_name);
#line 744 "../src/main.vala"
			storage_name = _tmp186_;
#line 745 "../src/main.vala"
			_tmp187_ = self->variable_aliases;
#line 745 "../src/main.vala"
			_tmp188_ = assignment_name;
#line 745 "../src/main.vala"
			_tmp189_ = storage_name;
#line 745 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp187_, _tmp188_, _tmp189_);
#line 8104 "main.c"
		}
#line 747 "../src/main.vala"
		_tmp190_ = self->variable_types;
#line 747 "../src/main.vala"
		_tmp191_ = storage_name;
#line 747 "../src/main.vala"
		if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp190_, _tmp191_)) {
#line 8112 "main.c"
			GeeHashMap* _tmp192_;
			const gchar* _tmp193_;
			const gchar* _tmp194_;
			const gchar* _tmp195_;
			const gchar* _tmp196_;
			const gchar* _tmp197_;
			gchar* _tmp198_;
#line 748 "../src/main.vala"
			_tmp192_ = self->variable_types;
#line 748 "../src/main.vala"
			_tmp193_ = storage_name;
#line 748 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp192_, _tmp193_, "Php.zval");
#line 749 "../src/main.vala"
			_tmp194_ = storage_name;
#line 749 "../src/main.vala"
			_tmp195_ = string_to_string (_tmp194_);
#line 749 "../src/main.vala"
			_tmp196_ = expression;
#line 749 "../src/main.vala"
			_tmp197_ = string_to_string (_tmp196_);
#line 749 "../src/main.vala"
			_tmp198_ = g_strconcat ("Php.zval ", _tmp195_, " = ", _tmp197_, ";", NULL);
#line 749 "../src/main.vala"
			result = _tmp198_;
#line 749 "../src/main.vala"
			_g_free0 (storage_name);
#line 749 "../src/main.vala"
			_g_free0 (_tmp171_);
#line 749 "../src/main.vala"
			_g_free0 (expression);
#line 749 "../src/main.vala"
			_g_free0 (chained_assignment);
#line 749 "../src/main.vala"
			_g_free0 (raw_expression);
#line 749 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 749 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 749 "../src/main.vala"
			_g_free0 (assignment_name);
#line 749 "../src/main.vala"
			_g_free0 (static_method_call);
#line 749 "../src/main.vala"
			_g_free0 (object_method_call);
#line 749 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 749 "../src/main.vala"
			_g_free0 (array_assignment);
#line 749 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 749 "../src/main.vala"
			_g_free0 (list_assignment);
#line 749 "../src/main.vala"
			_g_free0 (increment);
#line 749 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 749 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 749 "../src/main.vala"
			_g_free0 (line);
#line 749 "../src/main.vala"
			return result;
#line 8176 "main.c"
		}
#line 751 "../src/main.vala"
		_tmp199_ = storage_name;
#line 751 "../src/main.vala"
		_tmp200_ = string_to_string (_tmp199_);
#line 751 "../src/main.vala"
		_tmp201_ = expression;
#line 751 "../src/main.vala"
		_tmp202_ = string_to_string (_tmp201_);
#line 751 "../src/main.vala"
		_tmp203_ = g_strconcat (_tmp200_, " = ", _tmp202_, ";", NULL);
#line 751 "../src/main.vala"
		result = _tmp203_;
#line 751 "../src/main.vala"
		_g_free0 (storage_name);
#line 751 "../src/main.vala"
		_g_free0 (_tmp171_);
#line 751 "../src/main.vala"
		_g_free0 (expression);
#line 751 "../src/main.vala"
		_g_free0 (chained_assignment);
#line 751 "../src/main.vala"
		_g_free0 (raw_expression);
#line 751 "../src/main.vala"
		_g_match_info_unref0 (assignment_match);
#line 751 "../src/main.vala"
		_g_free0 (raw_assignment_expression);
#line 751 "../src/main.vala"
		_g_free0 (assignment_name);
#line 751 "../src/main.vala"
		_g_free0 (static_method_call);
#line 751 "../src/main.vala"
		_g_free0 (object_method_call);
#line 751 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 751 "../src/main.vala"
		_g_free0 (array_assignment);
#line 751 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 751 "../src/main.vala"
		_g_free0 (list_assignment);
#line 751 "../src/main.vala"
		_g_free0 (increment);
#line 751 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 751 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 751 "../src/main.vala"
		_g_free0 (line);
#line 751 "../src/main.vala"
		return result;
#line 8228 "main.c"
	}
#line 755 "../src/main.vala"
	_tmp204_ = self->priv->function_call_regex;
#line 755 "../src/main.vala"
	_tmp206_ = g_regex_match (_tmp204_, line, 0, &_tmp205_);
#line 755 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 755 "../src/main.vala"
	match = _tmp205_;
#line 755 "../src/main.vala"
	if (_tmp206_) {
#line 8240 "main.c"
		gchar* php_function_name = NULL;
		GMatchInfo* _tmp207_;
		gchar* _tmp208_;
		gboolean _tmp209_ = FALSE;
		const gchar* _tmp210_;
		GeeHashMap* _tmp222_;
		const gchar* _tmp223_;
		gchar* expression = NULL;
		const gchar* _tmp241_;
		gchar* _tmp242_;
		gchar* _tmp243_;
		GMatchInfo* _tmp244_;
		gchar* _tmp245_;
		gchar* _tmp246_;
		gchar* _tmp247_;
		gchar* _tmp248_;
		gchar* _tmp249_;
		gchar* _tmp250_;
		gchar* _tmp251_;
		gchar* _tmp252_;
		gchar* _tmp253_;
		gchar* _tmp254_;
		const gchar* _tmp255_;
		gchar* _tmp256_;
#line 756 "../src/main.vala"
		_tmp207_ = match;
#line 756 "../src/main.vala"
		_tmp208_ = g_match_info_fetch (_tmp207_, 1);
#line 756 "../src/main.vala"
		php_function_name = _tmp208_;
#line 757 "../src/main.vala"
		_tmp210_ = php_function_name;
#line 757 "../src/main.vala"
		if (g_strcmp0 (_tmp210_, "exit") == 0) {
#line 757 "../src/main.vala"
			_tmp209_ = TRUE;
#line 8277 "main.c"
		} else {
			const gchar* _tmp211_;
#line 757 "../src/main.vala"
			_tmp211_ = php_function_name;
#line 757 "../src/main.vala"
			_tmp209_ = g_strcmp0 (_tmp211_, "die") == 0;
#line 8284 "main.c"
		}
#line 757 "../src/main.vala"
		if (_tmp209_) {
#line 8288 "main.c"
			gchar* _tmp212_ = NULL;
			GMatchInfo* _tmp213_;
			gchar* _tmp214_;
			gchar* _tmp215_;
			gchar* _tmp216_;
			gchar* _tmp217_;
			const gchar* _tmp218_;
			gchar* _tmp219_;
			gchar* _tmp220_;
			gchar* _tmp221_;
#line 758 "../src/main.vala"
			_tmp213_ = match;
#line 758 "../src/main.vala"
			_tmp214_ = g_match_info_fetch (_tmp213_, 2);
#line 758 "../src/main.vala"
			_tmp215_ = _tmp214_;
#line 758 "../src/main.vala"
			_tmp216_ = string_strip (_tmp215_);
#line 758 "../src/main.vala"
			_tmp217_ = _tmp216_;
#line 758 "../src/main.vala"
			_tmp218_ = php_function_name;
#line 758 "../src/main.vala"
			_tmp219_ = php_to_vala_transpiler_transpile_zval_exit (self, _tmp217_, php_line_number, _tmp218_, &_inner_error0_);
#line 758 "../src/main.vala"
			_tmp220_ = _tmp219_;
#line 758 "../src/main.vala"
			_g_free0 (_tmp217_);
#line 758 "../src/main.vala"
			_g_free0 (_tmp215_);
#line 758 "../src/main.vala"
			_tmp212_ = _tmp220_;
#line 758 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 758 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 758 "../src/main.vala"
				_g_free0 (php_function_name);
#line 758 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 758 "../src/main.vala"
				_g_match_info_unref0 (assignment_match);
#line 758 "../src/main.vala"
				_g_free0 (raw_assignment_expression);
#line 758 "../src/main.vala"
				_g_free0 (assignment_name);
#line 758 "../src/main.vala"
				_g_free0 (static_method_call);
#line 758 "../src/main.vala"
				_g_free0 (object_method_call);
#line 758 "../src/main.vala"
				_g_free0 (new_object_assignment);
#line 758 "../src/main.vala"
				_g_free0 (array_assignment);
#line 758 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 758 "../src/main.vala"
				_g_free0 (list_assignment);
#line 758 "../src/main.vala"
				_g_free0 (increment);
#line 758 "../src/main.vala"
				_g_free0 (_tmp117_);
#line 758 "../src/main.vala"
				_g_free0 (dynamic_call);
#line 758 "../src/main.vala"
				_g_free0 (line);
#line 758 "../src/main.vala"
				return NULL;
#line 8357 "main.c"
			}
#line 758 "../src/main.vala"
			_tmp221_ = _tmp212_;
#line 758 "../src/main.vala"
			_tmp212_ = NULL;
#line 758 "../src/main.vala"
			result = _tmp221_;
#line 758 "../src/main.vala"
			_g_free0 (_tmp212_);
#line 758 "../src/main.vala"
			_g_free0 (php_function_name);
#line 758 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 758 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 758 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 758 "../src/main.vala"
			_g_free0 (assignment_name);
#line 758 "../src/main.vala"
			_g_free0 (static_method_call);
#line 758 "../src/main.vala"
			_g_free0 (object_method_call);
#line 758 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 758 "../src/main.vala"
			_g_free0 (array_assignment);
#line 758 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 758 "../src/main.vala"
			_g_free0 (list_assignment);
#line 758 "../src/main.vala"
			_g_free0 (increment);
#line 758 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 758 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 758 "../src/main.vala"
			_g_free0 (line);
#line 758 "../src/main.vala"
			return result;
#line 8399 "main.c"
		}
#line 760 "../src/main.vala"
		_tmp222_ = self->priv->external_functions;
#line 760 "../src/main.vala"
		_tmp223_ = php_function_name;
#line 760 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp222_, _tmp223_)) {
#line 8407 "main.c"
			LocalFunction* external_function = NULL;
			GeeHashMap* _tmp224_;
			const gchar* _tmp225_;
			gpointer _tmp226_;
			LocalFunction* _tmp227_;
#line 761 "../src/main.vala"
			_tmp224_ = self->priv->external_functions;
#line 761 "../src/main.vala"
			_tmp225_ = php_function_name;
#line 761 "../src/main.vala"
			_tmp226_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp224_, _tmp225_);
#line 761 "../src/main.vala"
			external_function = (LocalFunction*) _tmp226_;
#line 762 "../src/main.vala"
			_tmp227_ = external_function;
#line 762 "../src/main.vala"
			if (_tmp227_ != NULL) {
#line 8425 "main.c"
				gchar* raw_args = NULL;
				GMatchInfo* _tmp228_;
				gchar* _tmp229_;
				gchar* _tmp230_;
				gchar* _tmp231_;
				gchar* _tmp232_;
				LocalFunction* _tmp233_;
				const gchar* _tmp234_;
				const gchar* _tmp235_;
				gchar* _tmp236_ = NULL;
				const gchar* _tmp237_;
				gchar* _tmp238_;
				const gchar* _tmp239_;
				gchar* _tmp240_;
#line 763 "../src/main.vala"
				_tmp228_ = match;
#line 763 "../src/main.vala"
				_tmp229_ = g_match_info_fetch (_tmp228_, 2);
#line 763 "../src/main.vala"
				_tmp230_ = _tmp229_;
#line 763 "../src/main.vala"
				_tmp231_ = string_strip (_tmp230_);
#line 763 "../src/main.vala"
				_tmp232_ = _tmp231_;
#line 763 "../src/main.vala"
				_g_free0 (_tmp230_);
#line 763 "../src/main.vala"
				raw_args = _tmp232_;
#line 764 "../src/main.vala"
				_tmp233_ = external_function;
#line 764 "../src/main.vala"
				_tmp234_ = raw_args;
#line 764 "../src/main.vala"
				_tmp235_ = php_function_name;
#line 764 "../src/main.vala"
				php_to_vala_transpiler_validate_php_stub_argument_count (self, _tmp233_, _tmp234_, php_line_number, _tmp235_, &_inner_error0_);
#line 764 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 764 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 764 "../src/main.vala"
					_g_free0 (raw_args);
#line 764 "../src/main.vala"
					_g_object_unref0 (external_function);
#line 764 "../src/main.vala"
					_g_free0 (php_function_name);
#line 764 "../src/main.vala"
					_g_match_info_unref0 (match);
#line 764 "../src/main.vala"
					_g_match_info_unref0 (assignment_match);
#line 764 "../src/main.vala"
					_g_free0 (raw_assignment_expression);
#line 764 "../src/main.vala"
					_g_free0 (assignment_name);
#line 764 "../src/main.vala"
					_g_free0 (static_method_call);
#line 764 "../src/main.vala"
					_g_free0 (object_method_call);
#line 764 "../src/main.vala"
					_g_free0 (new_object_assignment);
#line 764 "../src/main.vala"
					_g_free0 (array_assignment);
#line 764 "../src/main.vala"
					_g_free0 (compound_assignment);
#line 764 "../src/main.vala"
					_g_free0 (list_assignment);
#line 764 "../src/main.vala"
					_g_free0 (increment);
#line 764 "../src/main.vala"
					_g_free0 (_tmp117_);
#line 764 "../src/main.vala"
					_g_free0 (dynamic_call);
#line 764 "../src/main.vala"
					_g_free0 (line);
#line 764 "../src/main.vala"
					return NULL;
#line 8502 "main.c"
				}
#line 765 "../src/main.vala"
				_tmp237_ = raw_args;
#line 765 "../src/main.vala"
				_tmp238_ = php_to_vala_transpiler_convert_zval_argument_list (self, _tmp237_, php_line_number, &_inner_error0_);
#line 765 "../src/main.vala"
				_tmp236_ = _tmp238_;
#line 765 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 765 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 765 "../src/main.vala"
					_g_free0 (raw_args);
#line 765 "../src/main.vala"
					_g_object_unref0 (external_function);
#line 765 "../src/main.vala"
					_g_free0 (php_function_name);
#line 765 "../src/main.vala"
					_g_match_info_unref0 (match);
#line 765 "../src/main.vala"
					_g_match_info_unref0 (assignment_match);
#line 765 "../src/main.vala"
					_g_free0 (raw_assignment_expression);
#line 765 "../src/main.vala"
					_g_free0 (assignment_name);
#line 765 "../src/main.vala"
					_g_free0 (static_method_call);
#line 765 "../src/main.vala"
					_g_free0 (object_method_call);
#line 765 "../src/main.vala"
					_g_free0 (new_object_assignment);
#line 765 "../src/main.vala"
					_g_free0 (array_assignment);
#line 765 "../src/main.vala"
					_g_free0 (compound_assignment);
#line 765 "../src/main.vala"
					_g_free0 (list_assignment);
#line 765 "../src/main.vala"
					_g_free0 (increment);
#line 765 "../src/main.vala"
					_g_free0 (_tmp117_);
#line 765 "../src/main.vala"
					_g_free0 (dynamic_call);
#line 765 "../src/main.vala"
					_g_free0 (line);
#line 765 "../src/main.vala"
					return NULL;
#line 8550 "main.c"
				}
#line 765 "../src/main.vala"
				_tmp239_ = php_function_name;
#line 765 "../src/main.vala"
				_tmp240_ = g_strdup_printf ("%s (%s);", _tmp239_, _tmp236_);
#line 765 "../src/main.vala"
				result = _tmp240_;
#line 765 "../src/main.vala"
				_g_free0 (_tmp236_);
#line 765 "../src/main.vala"
				_g_free0 (raw_args);
#line 765 "../src/main.vala"
				_g_object_unref0 (external_function);
#line 765 "../src/main.vala"
				_g_free0 (php_function_name);
#line 765 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 765 "../src/main.vala"
				_g_match_info_unref0 (assignment_match);
#line 765 "../src/main.vala"
				_g_free0 (raw_assignment_expression);
#line 765 "../src/main.vala"
				_g_free0 (assignment_name);
#line 765 "../src/main.vala"
				_g_free0 (static_method_call);
#line 765 "../src/main.vala"
				_g_free0 (object_method_call);
#line 765 "../src/main.vala"
				_g_free0 (new_object_assignment);
#line 765 "../src/main.vala"
				_g_free0 (array_assignment);
#line 765 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 765 "../src/main.vala"
				_g_free0 (list_assignment);
#line 765 "../src/main.vala"
				_g_free0 (increment);
#line 765 "../src/main.vala"
				_g_free0 (_tmp117_);
#line 765 "../src/main.vala"
				_g_free0 (dynamic_call);
#line 765 "../src/main.vala"
				_g_free0 (line);
#line 765 "../src/main.vala"
				return result;
#line 8596 "main.c"
			}
#line 760 "../src/main.vala"
			_g_object_unref0 (external_function);
#line 8600 "main.c"
		}
#line 768 "../src/main.vala"
		_tmp241_ = php_function_name;
#line 768 "../src/main.vala"
		_tmp242_ = g_strconcat (_tmp241_, "(", NULL);
#line 768 "../src/main.vala"
		_tmp243_ = _tmp242_;
#line 768 "../src/main.vala"
		_tmp244_ = match;
#line 768 "../src/main.vala"
		_tmp245_ = g_match_info_fetch (_tmp244_, 2);
#line 768 "../src/main.vala"
		_tmp246_ = _tmp245_;
#line 768 "../src/main.vala"
		_tmp247_ = string_strip (_tmp246_);
#line 768 "../src/main.vala"
		_tmp248_ = _tmp247_;
#line 768 "../src/main.vala"
		_tmp249_ = g_strconcat (_tmp243_, _tmp248_, NULL);
#line 768 "../src/main.vala"
		_tmp250_ = _tmp249_;
#line 768 "../src/main.vala"
		_tmp251_ = g_strconcat (_tmp250_, ")", NULL);
#line 768 "../src/main.vala"
		_tmp252_ = _tmp251_;
#line 768 "../src/main.vala"
		_tmp253_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp252_, php_line_number, &_inner_error0_);
#line 768 "../src/main.vala"
		_tmp254_ = _tmp253_;
#line 768 "../src/main.vala"
		_g_free0 (_tmp252_);
#line 768 "../src/main.vala"
		_g_free0 (_tmp250_);
#line 768 "../src/main.vala"
		_g_free0 (_tmp248_);
#line 768 "../src/main.vala"
		_g_free0 (_tmp246_);
#line 768 "../src/main.vala"
		_g_free0 (_tmp243_);
#line 768 "../src/main.vala"
		expression = _tmp254_;
#line 768 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 768 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 768 "../src/main.vala"
			_g_free0 (php_function_name);
#line 768 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 768 "../src/main.vala"
			_g_match_info_unref0 (assignment_match);
#line 768 "../src/main.vala"
			_g_free0 (raw_assignment_expression);
#line 768 "../src/main.vala"
			_g_free0 (assignment_name);
#line 768 "../src/main.vala"
			_g_free0 (static_method_call);
#line 768 "../src/main.vala"
			_g_free0 (object_method_call);
#line 768 "../src/main.vala"
			_g_free0 (new_object_assignment);
#line 768 "../src/main.vala"
			_g_free0 (array_assignment);
#line 768 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 768 "../src/main.vala"
			_g_free0 (list_assignment);
#line 768 "../src/main.vala"
			_g_free0 (increment);
#line 768 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 768 "../src/main.vala"
			_g_free0 (dynamic_call);
#line 768 "../src/main.vala"
			_g_free0 (line);
#line 768 "../src/main.vala"
			return NULL;
#line 8678 "main.c"
		}
#line 769 "../src/main.vala"
		_tmp255_ = expression;
#line 769 "../src/main.vala"
		_tmp256_ = g_strdup_printf ("%s;", _tmp255_);
#line 769 "../src/main.vala"
		result = _tmp256_;
#line 769 "../src/main.vala"
		_g_free0 (expression);
#line 769 "../src/main.vala"
		_g_free0 (php_function_name);
#line 769 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 769 "../src/main.vala"
		_g_match_info_unref0 (assignment_match);
#line 769 "../src/main.vala"
		_g_free0 (raw_assignment_expression);
#line 769 "../src/main.vala"
		_g_free0 (assignment_name);
#line 769 "../src/main.vala"
		_g_free0 (static_method_call);
#line 769 "../src/main.vala"
		_g_free0 (object_method_call);
#line 769 "../src/main.vala"
		_g_free0 (new_object_assignment);
#line 769 "../src/main.vala"
		_g_free0 (array_assignment);
#line 769 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 769 "../src/main.vala"
		_g_free0 (list_assignment);
#line 769 "../src/main.vala"
		_g_free0 (increment);
#line 769 "../src/main.vala"
		_g_free0 (_tmp117_);
#line 769 "../src/main.vala"
		_g_free0 (dynamic_call);
#line 769 "../src/main.vala"
		_g_free0 (line);
#line 769 "../src/main.vala"
		return result;
#line 8720 "main.c"
	}
#line 772 "../src/main.vala"
	fallback_equals_index = string_index_of (line, "=", 0);
#line 773 "../src/main.vala"
	if (fallback_equals_index > 0) {
#line 8726 "main.c"
		gchar* lhs = NULL;
		gchar* _tmp257_;
		gchar* _tmp258_;
		gchar* _tmp259_;
		gchar* _tmp260_;
		const gchar* _tmp261_;
#line 774 "../src/main.vala"
		_tmp257_ = string_substring (line, (glong) 0, (glong) fallback_equals_index);
#line 774 "../src/main.vala"
		_tmp258_ = _tmp257_;
#line 774 "../src/main.vala"
		_tmp259_ = string_strip (_tmp258_);
#line 774 "../src/main.vala"
		_tmp260_ = _tmp259_;
#line 774 "../src/main.vala"
		_g_free0 (_tmp258_);
#line 774 "../src/main.vala"
		lhs = _tmp260_;
#line 775 "../src/main.vala"
		_tmp261_ = lhs;
#line 775 "../src/main.vala"
		if (g_str_has_prefix (_tmp261_, "$")) {
#line 8749 "main.c"
			gchar* name = NULL;
			const gchar* _tmp262_;
			gchar* _tmp263_;
			const gchar* _tmp264_;
#line 776 "../src/main.vala"
			_tmp262_ = lhs;
#line 776 "../src/main.vala"
			_tmp263_ = php_to_vala_transpiler_replace_php_variables (_tmp262_);
#line 776 "../src/main.vala"
			name = _tmp263_;
#line 777 "../src/main.vala"
			_tmp264_ = name;
#line 777 "../src/main.vala"
			if (php_to_vala_transpiler_is_identifier (_tmp264_)) {
#line 8764 "main.c"
				gchar* expression = NULL;
				gchar* _tmp265_;
				gchar* _tmp266_;
				gchar* _tmp267_;
				gchar* _tmp268_;
				gchar* _tmp269_;
				gchar* _tmp270_;
				gchar* _tmp271_;
				gchar* _tmp272_;
				GeeHashMap* _tmp273_;
				const gchar* _tmp274_;
				const gchar* _tmp282_;
				const gchar* _tmp283_;
				const gchar* _tmp284_;
				const gchar* _tmp285_;
				gchar* _tmp286_;
#line 778 "../src/main.vala"
				_tmp265_ = string_substring (line, (glong) (fallback_equals_index + 1), (glong) -1);
#line 778 "../src/main.vala"
				_tmp266_ = _tmp265_;
#line 778 "../src/main.vala"
				_tmp267_ = string_strip (_tmp266_);
#line 778 "../src/main.vala"
				_tmp268_ = _tmp267_;
#line 778 "../src/main.vala"
				_tmp269_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp268_);
#line 778 "../src/main.vala"
				_tmp270_ = _tmp269_;
#line 778 "../src/main.vala"
				_tmp271_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp270_, php_line_number, &_inner_error0_);
#line 778 "../src/main.vala"
				_tmp272_ = _tmp271_;
#line 778 "../src/main.vala"
				_g_free0 (_tmp270_);
#line 778 "../src/main.vala"
				_g_free0 (_tmp268_);
#line 778 "../src/main.vala"
				_g_free0 (_tmp266_);
#line 778 "../src/main.vala"
				expression = _tmp272_;
#line 778 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 778 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 778 "../src/main.vala"
					_g_free0 (name);
#line 778 "../src/main.vala"
					_g_free0 (lhs);
#line 778 "../src/main.vala"
					_g_match_info_unref0 (match);
#line 778 "../src/main.vala"
					_g_match_info_unref0 (assignment_match);
#line 778 "../src/main.vala"
					_g_free0 (raw_assignment_expression);
#line 778 "../src/main.vala"
					_g_free0 (assignment_name);
#line 778 "../src/main.vala"
					_g_free0 (static_method_call);
#line 778 "../src/main.vala"
					_g_free0 (object_method_call);
#line 778 "../src/main.vala"
					_g_free0 (new_object_assignment);
#line 778 "../src/main.vala"
					_g_free0 (array_assignment);
#line 778 "../src/main.vala"
					_g_free0 (compound_assignment);
#line 778 "../src/main.vala"
					_g_free0 (list_assignment);
#line 778 "../src/main.vala"
					_g_free0 (increment);
#line 778 "../src/main.vala"
					_g_free0 (_tmp117_);
#line 778 "../src/main.vala"
					_g_free0 (dynamic_call);
#line 778 "../src/main.vala"
					_g_free0 (line);
#line 778 "../src/main.vala"
					return NULL;
#line 8843 "main.c"
				}
#line 779 "../src/main.vala"
				_tmp273_ = self->variable_types;
#line 779 "../src/main.vala"
				_tmp274_ = name;
#line 779 "../src/main.vala"
				if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp273_, _tmp274_)) {
#line 8851 "main.c"
					GeeHashMap* _tmp275_;
					const gchar* _tmp276_;
					const gchar* _tmp277_;
					const gchar* _tmp278_;
					const gchar* _tmp279_;
					const gchar* _tmp280_;
					gchar* _tmp281_;
#line 780 "../src/main.vala"
					_tmp275_ = self->variable_types;
#line 780 "../src/main.vala"
					_tmp276_ = name;
#line 780 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp275_, _tmp276_, "Php.zval");
#line 781 "../src/main.vala"
					_tmp277_ = name;
#line 781 "../src/main.vala"
					_tmp278_ = string_to_string (_tmp277_);
#line 781 "../src/main.vala"
					_tmp279_ = expression;
#line 781 "../src/main.vala"
					_tmp280_ = string_to_string (_tmp279_);
#line 781 "../src/main.vala"
					_tmp281_ = g_strconcat ("Php.zval ", _tmp278_, " = ", _tmp280_, ";", NULL);
#line 781 "../src/main.vala"
					result = _tmp281_;
#line 781 "../src/main.vala"
					_g_free0 (expression);
#line 781 "../src/main.vala"
					_g_free0 (name);
#line 781 "../src/main.vala"
					_g_free0 (lhs);
#line 781 "../src/main.vala"
					_g_match_info_unref0 (match);
#line 781 "../src/main.vala"
					_g_match_info_unref0 (assignment_match);
#line 781 "../src/main.vala"
					_g_free0 (raw_assignment_expression);
#line 781 "../src/main.vala"
					_g_free0 (assignment_name);
#line 781 "../src/main.vala"
					_g_free0 (static_method_call);
#line 781 "../src/main.vala"
					_g_free0 (object_method_call);
#line 781 "../src/main.vala"
					_g_free0 (new_object_assignment);
#line 781 "../src/main.vala"
					_g_free0 (array_assignment);
#line 781 "../src/main.vala"
					_g_free0 (compound_assignment);
#line 781 "../src/main.vala"
					_g_free0 (list_assignment);
#line 781 "../src/main.vala"
					_g_free0 (increment);
#line 781 "../src/main.vala"
					_g_free0 (_tmp117_);
#line 781 "../src/main.vala"
					_g_free0 (dynamic_call);
#line 781 "../src/main.vala"
					_g_free0 (line);
#line 781 "../src/main.vala"
					return result;
#line 8913 "main.c"
				}
#line 783 "../src/main.vala"
				_tmp282_ = name;
#line 783 "../src/main.vala"
				_tmp283_ = string_to_string (_tmp282_);
#line 783 "../src/main.vala"
				_tmp284_ = expression;
#line 783 "../src/main.vala"
				_tmp285_ = string_to_string (_tmp284_);
#line 783 "../src/main.vala"
				_tmp286_ = g_strconcat (_tmp283_, " = ", _tmp285_, ";", NULL);
#line 783 "../src/main.vala"
				result = _tmp286_;
#line 783 "../src/main.vala"
				_g_free0 (expression);
#line 783 "../src/main.vala"
				_g_free0 (name);
#line 783 "../src/main.vala"
				_g_free0 (lhs);
#line 783 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 783 "../src/main.vala"
				_g_match_info_unref0 (assignment_match);
#line 783 "../src/main.vala"
				_g_free0 (raw_assignment_expression);
#line 783 "../src/main.vala"
				_g_free0 (assignment_name);
#line 783 "../src/main.vala"
				_g_free0 (static_method_call);
#line 783 "../src/main.vala"
				_g_free0 (object_method_call);
#line 783 "../src/main.vala"
				_g_free0 (new_object_assignment);
#line 783 "../src/main.vala"
				_g_free0 (array_assignment);
#line 783 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 783 "../src/main.vala"
				_g_free0 (list_assignment);
#line 783 "../src/main.vala"
				_g_free0 (increment);
#line 783 "../src/main.vala"
				_g_free0 (_tmp117_);
#line 783 "../src/main.vala"
				_g_free0 (dynamic_call);
#line 783 "../src/main.vala"
				_g_free0 (line);
#line 783 "../src/main.vala"
				return result;
#line 8963 "main.c"
			}
#line 775 "../src/main.vala"
			_g_free0 (name);
#line 8967 "main.c"
		}
#line 773 "../src/main.vala"
		_g_free0 (lhs);
#line 8971 "main.c"
	}
#line 788 "../src/main.vala"
	_tmp287_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 788 "../src/main.vala"
	_inner_error0_ = _tmp287_;
#line 788 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 788 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 788 "../src/main.vala"
	_g_match_info_unref0 (assignment_match);
#line 788 "../src/main.vala"
	_g_free0 (raw_assignment_expression);
#line 788 "../src/main.vala"
	_g_free0 (assignment_name);
#line 788 "../src/main.vala"
	_g_free0 (static_method_call);
#line 788 "../src/main.vala"
	_g_free0 (object_method_call);
#line 788 "../src/main.vala"
	_g_free0 (new_object_assignment);
#line 788 "../src/main.vala"
	_g_free0 (array_assignment);
#line 788 "../src/main.vala"
	_g_free0 (compound_assignment);
#line 788 "../src/main.vala"
	_g_free0 (list_assignment);
#line 788 "../src/main.vala"
	_g_free0 (increment);
#line 788 "../src/main.vala"
	_g_free0 (_tmp117_);
#line 788 "../src/main.vala"
	_g_free0 (dynamic_call);
#line 788 "../src/main.vala"
	_g_free0 (line);
#line 788 "../src/main.vala"
	return NULL;
#line 9009 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_chained_assignment (PhpToValaTranspiler* self,
                                                          const gchar* first_name,
                                                          const gchar* raw_expression,
                                                          gint php_line_number,
                                                          GError** error)
{
	GeeArrayList* names = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	gchar* expression = NULL;
	gchar* _tmp2_;
	GeeArrayList* _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	gchar* current_value = NULL;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	GString* output = NULL;
	GString* _tmp24_;
	GString* _tmp46_;
	const gchar* _tmp47_;
	gchar* _tmp48_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 791 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 791 "../src/main.vala"
	g_return_val_if_fail (first_name != NULL, NULL);
#line 791 "../src/main.vala"
	g_return_val_if_fail (raw_expression != NULL, NULL);
#line 792 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 792 "../src/main.vala"
	names = _tmp0_;
#line 793 "../src/main.vala"
	_tmp1_ = names;
#line 793 "../src/main.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, first_name);
#line 795 "../src/main.vala"
	_tmp2_ = string_strip (raw_expression);
#line 795 "../src/main.vala"
	expression = _tmp2_;
#line 796 "../src/main.vala"
	while (TRUE) {
#line 9057 "main.c"
		gint equals_index = 0;
		const gchar* _tmp3_;
		gchar* lhs = NULL;
		const gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* name = NULL;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		const gchar* _tmp12_;
		GeeArrayList* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
#line 797 "../src/main.vala"
		_tmp3_ = expression;
#line 797 "../src/main.vala"
		equals_index = php_to_vala_transpiler_find_top_level_assignment_index (_tmp3_);
#line 798 "../src/main.vala"
		if (equals_index < 0) {
#line 799 "../src/main.vala"
			break;
#line 9085 "main.c"
		}
#line 802 "../src/main.vala"
		_tmp4_ = expression;
#line 802 "../src/main.vala"
		_tmp5_ = string_substring (_tmp4_, (glong) 0, (glong) equals_index);
#line 802 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 802 "../src/main.vala"
		_tmp7_ = string_strip (_tmp6_);
#line 802 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 802 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 802 "../src/main.vala"
		lhs = _tmp8_;
#line 803 "../src/main.vala"
		_tmp9_ = lhs;
#line 803 "../src/main.vala"
		if (!g_str_has_prefix (_tmp9_, "$")) {
#line 804 "../src/main.vala"
			result = NULL;
#line 804 "../src/main.vala"
			_g_free0 (lhs);
#line 804 "../src/main.vala"
			_g_free0 (expression);
#line 804 "../src/main.vala"
			_g_object_unref0 (names);
#line 804 "../src/main.vala"
			return result;
#line 9115 "main.c"
		}
#line 807 "../src/main.vala"
		_tmp10_ = lhs;
#line 807 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_replace_php_variables (_tmp10_);
#line 807 "../src/main.vala"
		name = _tmp11_;
#line 808 "../src/main.vala"
		_tmp12_ = name;
#line 808 "../src/main.vala"
		if (!php_to_vala_transpiler_is_identifier (_tmp12_)) {
#line 809 "../src/main.vala"
			result = NULL;
#line 809 "../src/main.vala"
			_g_free0 (name);
#line 809 "../src/main.vala"
			_g_free0 (lhs);
#line 809 "../src/main.vala"
			_g_free0 (expression);
#line 809 "../src/main.vala"
			_g_object_unref0 (names);
#line 809 "../src/main.vala"
			return result;
#line 9139 "main.c"
		}
#line 812 "../src/main.vala"
		_tmp13_ = names;
#line 812 "../src/main.vala"
		_tmp14_ = name;
#line 812 "../src/main.vala"
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _tmp14_);
#line 813 "../src/main.vala"
		_tmp15_ = expression;
#line 813 "../src/main.vala"
		_tmp16_ = string_substring (_tmp15_, (glong) (equals_index + 1), (glong) -1);
#line 813 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 813 "../src/main.vala"
		_tmp18_ = string_strip (_tmp17_);
#line 813 "../src/main.vala"
		_g_free0 (expression);
#line 813 "../src/main.vala"
		expression = _tmp18_;
#line 813 "../src/main.vala"
		_g_free0 (_tmp17_);
#line 796 "../src/main.vala"
		_g_free0 (name);
#line 796 "../src/main.vala"
		_g_free0 (lhs);
#line 9165 "main.c"
	}
#line 816 "../src/main.vala"
	_tmp19_ = names;
#line 816 "../src/main.vala"
	_tmp20_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp19_);
#line 816 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 816 "../src/main.vala"
	if (_tmp21_ <= 1) {
#line 817 "../src/main.vala"
		result = NULL;
#line 817 "../src/main.vala"
		_g_free0 (expression);
#line 817 "../src/main.vala"
		_g_object_unref0 (names);
#line 817 "../src/main.vala"
		return result;
#line 9183 "main.c"
	}
#line 820 "../src/main.vala"
	_tmp22_ = expression;
#line 820 "../src/main.vala"
	_tmp23_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp22_, php_line_number, &_inner_error0_);
#line 820 "../src/main.vala"
	current_value = _tmp23_;
#line 820 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 820 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 820 "../src/main.vala"
		_g_free0 (expression);
#line 820 "../src/main.vala"
		_g_object_unref0 (names);
#line 820 "../src/main.vala"
		return NULL;
#line 9201 "main.c"
	}
#line 821 "../src/main.vala"
	_tmp24_ = g_string_new ("");
#line 821 "../src/main.vala"
	output = _tmp24_;
#line 9207 "main.c"
	{
		gint i = 0;
		GeeArrayList* _tmp25_;
		gint _tmp26_;
		gint _tmp27_;
#line 822 "../src/main.vala"
		_tmp25_ = names;
#line 822 "../src/main.vala"
		_tmp26_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp25_);
#line 822 "../src/main.vala"
		_tmp27_ = _tmp26_;
#line 822 "../src/main.vala"
		i = _tmp27_ - 1;
#line 9221 "main.c"
		{
			gboolean _tmp28_ = FALSE;
#line 822 "../src/main.vala"
			_tmp28_ = TRUE;
#line 822 "../src/main.vala"
			while (TRUE) {
#line 9228 "main.c"
				gchar* name = NULL;
				GeeArrayList* _tmp30_;
				gpointer _tmp31_;
				GString* _tmp32_;
				GeeHashMap* _tmp34_;
				const gchar* _tmp35_;
				const gchar* _tmp44_;
				gchar* _tmp45_;
#line 822 "../src/main.vala"
				if (!_tmp28_) {
#line 9239 "main.c"
					gint _tmp29_;
#line 822 "../src/main.vala"
					_tmp29_ = i;
#line 822 "../src/main.vala"
					i = _tmp29_ - 1;
#line 9245 "main.c"
				}
#line 822 "../src/main.vala"
				_tmp28_ = FALSE;
#line 822 "../src/main.vala"
				if (!(i >= 0)) {
#line 822 "../src/main.vala"
					break;
#line 9253 "main.c"
				}
#line 823 "../src/main.vala"
				_tmp30_ = names;
#line 823 "../src/main.vala"
				_tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp30_, i);
#line 823 "../src/main.vala"
				name = (gchar*) _tmp31_;
#line 824 "../src/main.vala"
				_tmp32_ = output;
#line 824 "../src/main.vala"
				if (_tmp32_->len > ((gssize) 0)) {
#line 9265 "main.c"
					GString* _tmp33_;
#line 825 "../src/main.vala"
					_tmp33_ = output;
#line 825 "../src/main.vala"
					g_string_append (_tmp33_, "\n");
#line 9271 "main.c"
				}
#line 827 "../src/main.vala"
				_tmp34_ = self->variable_types;
#line 827 "../src/main.vala"
				_tmp35_ = name;
#line 827 "../src/main.vala"
				if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp34_, _tmp35_)) {
#line 9279 "main.c"
					GeeHashMap* _tmp36_;
					const gchar* _tmp37_;
					GString* _tmp38_;
					const gchar* _tmp39_;
					const gchar* _tmp40_;
#line 828 "../src/main.vala"
					_tmp36_ = self->variable_types;
#line 828 "../src/main.vala"
					_tmp37_ = name;
#line 828 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp36_, _tmp37_, "Php.zval");
#line 829 "../src/main.vala"
					_tmp38_ = output;
#line 829 "../src/main.vala"
					_tmp39_ = name;
#line 829 "../src/main.vala"
					_tmp40_ = current_value;
#line 829 "../src/main.vala"
					g_string_append_printf (_tmp38_, "Php.zval %s = %s;", _tmp39_, _tmp40_);
#line 9299 "main.c"
				} else {
					GString* _tmp41_;
					const gchar* _tmp42_;
					const gchar* _tmp43_;
#line 831 "../src/main.vala"
					_tmp41_ = output;
#line 831 "../src/main.vala"
					_tmp42_ = name;
#line 831 "../src/main.vala"
					_tmp43_ = current_value;
#line 831 "../src/main.vala"
					g_string_append_printf (_tmp41_, "%s = %s;", _tmp42_, _tmp43_);
#line 9312 "main.c"
				}
#line 833 "../src/main.vala"
				_tmp44_ = name;
#line 833 "../src/main.vala"
				_tmp45_ = g_strdup (_tmp44_);
#line 833 "../src/main.vala"
				_g_free0 (current_value);
#line 833 "../src/main.vala"
				current_value = _tmp45_;
#line 822 "../src/main.vala"
				_g_free0 (name);
#line 9324 "main.c"
			}
		}
	}
#line 836 "../src/main.vala"
	_tmp46_ = output;
#line 836 "../src/main.vala"
	_tmp47_ = _tmp46_->str;
#line 836 "../src/main.vala"
	_tmp48_ = g_strdup (_tmp47_);
#line 836 "../src/main.vala"
	result = _tmp48_;
#line 836 "../src/main.vala"
	_g_string_free0 (output);
#line 836 "../src/main.vala"
	_g_free0 (current_value);
#line 836 "../src/main.vala"
	_g_free0 (expression);
#line 836 "../src/main.vala"
	_g_object_unref0 (names);
#line 836 "../src/main.vala"
	return result;
#line 9346 "main.c"
}

static gint
php_to_vala_transpiler_find_top_level_assignment_index (const gchar* expression)
{
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	gint result;
#line 839 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, -1);
#line 840 "../src/main.vala"
	in_single_quote = FALSE;
#line 841 "../src/main.vala"
	in_double_quote = FALSE;
#line 842 "../src/main.vala"
	depth = 0;
#line 9364 "main.c"
	{
		gint i = 0;
#line 844 "../src/main.vala"
		i = 0;
#line 9369 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 844 "../src/main.vala"
			_tmp0_ = TRUE;
#line 844 "../src/main.vala"
			while (TRUE) {
#line 9376 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
				gboolean _tmp4_ = FALSE;
#line 844 "../src/main.vala"
				if (!_tmp0_) {
#line 9383 "main.c"
					gint _tmp1_;
#line 844 "../src/main.vala"
					_tmp1_ = i;
#line 844 "../src/main.vala"
					i = _tmp1_ + 1;
#line 9389 "main.c"
				}
#line 844 "../src/main.vala"
				_tmp0_ = FALSE;
#line 844 "../src/main.vala"
				_tmp2_ = strlen (expression);
#line 844 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 844 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 844 "../src/main.vala"
					break;
#line 9401 "main.c"
				}
#line 845 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 846 "../src/main.vala"
				if (c == '\'') {
#line 846 "../src/main.vala"
					_tmp4_ = !in_double_quote;
#line 9409 "main.c"
				} else {
#line 846 "../src/main.vala"
					_tmp4_ = FALSE;
#line 9413 "main.c"
				}
#line 846 "../src/main.vala"
				if (_tmp4_) {
#line 847 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 9419 "main.c"
				} else {
					gboolean _tmp5_ = FALSE;
#line 848 "../src/main.vala"
					if (c == '"') {
#line 848 "../src/main.vala"
						_tmp5_ = !in_single_quote;
#line 9426 "main.c"
					} else {
#line 848 "../src/main.vala"
						_tmp5_ = FALSE;
#line 9430 "main.c"
					}
#line 848 "../src/main.vala"
					if (_tmp5_) {
#line 849 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 9436 "main.c"
					} else {
						gboolean _tmp6_ = FALSE;
#line 850 "../src/main.vala"
						if (!in_single_quote) {
#line 850 "../src/main.vala"
							_tmp6_ = !in_double_quote;
#line 9443 "main.c"
						} else {
#line 850 "../src/main.vala"
							_tmp6_ = FALSE;
#line 9447 "main.c"
						}
#line 850 "../src/main.vala"
						if (_tmp6_) {
#line 9451 "main.c"
							gboolean _tmp7_ = FALSE;
							gboolean _tmp8_ = FALSE;
#line 851 "../src/main.vala"
							if (c == '(') {
#line 851 "../src/main.vala"
								_tmp8_ = TRUE;
#line 9458 "main.c"
							} else {
#line 851 "../src/main.vala"
								_tmp8_ = c == '[';
#line 9462 "main.c"
							}
#line 851 "../src/main.vala"
							if (_tmp8_) {
#line 851 "../src/main.vala"
								_tmp7_ = TRUE;
#line 9468 "main.c"
							} else {
#line 851 "../src/main.vala"
								_tmp7_ = c == '{';
#line 9472 "main.c"
							}
#line 851 "../src/main.vala"
							if (_tmp7_) {
#line 9476 "main.c"
								gint _tmp9_;
#line 852 "../src/main.vala"
								_tmp9_ = depth;
#line 852 "../src/main.vala"
								depth = _tmp9_ + 1;
#line 9482 "main.c"
							} else {
								gboolean _tmp10_ = FALSE;
								gboolean _tmp11_ = FALSE;
#line 853 "../src/main.vala"
								if (c == ')') {
#line 853 "../src/main.vala"
									_tmp11_ = TRUE;
#line 9490 "main.c"
								} else {
#line 853 "../src/main.vala"
									_tmp11_ = c == ']';
#line 9494 "main.c"
								}
#line 853 "../src/main.vala"
								if (_tmp11_) {
#line 853 "../src/main.vala"
									_tmp10_ = TRUE;
#line 9500 "main.c"
								} else {
#line 853 "../src/main.vala"
									_tmp10_ = c == '}';
#line 9504 "main.c"
								}
#line 853 "../src/main.vala"
								if (_tmp10_) {
#line 9508 "main.c"
									gint _tmp12_;
#line 854 "../src/main.vala"
									_tmp12_ = depth;
#line 854 "../src/main.vala"
									depth = _tmp12_ - 1;
#line 9514 "main.c"
								} else {
									gboolean _tmp13_ = FALSE;
#line 855 "../src/main.vala"
									if (c == '=') {
#line 855 "../src/main.vala"
										_tmp13_ = depth == 0;
#line 9521 "main.c"
									} else {
#line 855 "../src/main.vala"
										_tmp13_ = FALSE;
#line 9525 "main.c"
									}
#line 855 "../src/main.vala"
									if (_tmp13_) {
#line 9529 "main.c"
										gchar _tmp14_ = '\0';
										gchar previous = '\0';
										gchar _tmp15_ = '\0';
										gint _tmp16_;
										gint _tmp17_;
										gchar next = '\0';
										gboolean _tmp18_ = FALSE;
										gboolean _tmp19_ = FALSE;
										gboolean _tmp20_ = FALSE;
										gboolean _tmp21_ = FALSE;
#line 856 "../src/main.vala"
										if (i > 0) {
#line 856 "../src/main.vala"
											_tmp14_ = string_get (expression, (glong) (i - 1));
#line 9544 "main.c"
										} else {
#line 856 "../src/main.vala"
											_tmp14_ = '\0';
#line 9548 "main.c"
										}
#line 856 "../src/main.vala"
										previous = _tmp14_;
#line 857 "../src/main.vala"
										_tmp16_ = strlen (expression);
#line 857 "../src/main.vala"
										_tmp17_ = _tmp16_;
#line 857 "../src/main.vala"
										if ((i + 1) < _tmp17_) {
#line 857 "../src/main.vala"
											_tmp15_ = string_get (expression, (glong) (i + 1));
#line 9560 "main.c"
										} else {
#line 857 "../src/main.vala"
											_tmp15_ = '\0';
#line 9564 "main.c"
										}
#line 857 "../src/main.vala"
										next = _tmp15_;
#line 858 "../src/main.vala"
										if (previous != '=') {
#line 858 "../src/main.vala"
											_tmp21_ = previous != '!';
#line 9572 "main.c"
										} else {
#line 858 "../src/main.vala"
											_tmp21_ = FALSE;
#line 9576 "main.c"
										}
#line 858 "../src/main.vala"
										if (_tmp21_) {
#line 858 "../src/main.vala"
											_tmp20_ = previous != '<';
#line 9582 "main.c"
										} else {
#line 858 "../src/main.vala"
											_tmp20_ = FALSE;
#line 9586 "main.c"
										}
#line 858 "../src/main.vala"
										if (_tmp20_) {
#line 858 "../src/main.vala"
											_tmp19_ = previous != '>';
#line 9592 "main.c"
										} else {
#line 858 "../src/main.vala"
											_tmp19_ = FALSE;
#line 9596 "main.c"
										}
#line 858 "../src/main.vala"
										if (_tmp19_) {
#line 858 "../src/main.vala"
											_tmp18_ = next != '=';
#line 9602 "main.c"
										} else {
#line 858 "../src/main.vala"
											_tmp18_ = FALSE;
#line 9606 "main.c"
										}
#line 858 "../src/main.vala"
										if (_tmp18_) {
#line 859 "../src/main.vala"
											result = i;
#line 859 "../src/main.vala"
											return result;
#line 9614 "main.c"
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
#line 865 "../src/main.vala"
	result = -1;
#line 865 "../src/main.vala"
	return result;
#line 9629 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_echo (PhpToValaTranspiler* self,
                                            const gchar* expression,
                                            gint php_line_number,
                                            GError** error)
{
	gchar* clean_expression = NULL;
	gchar* _tmp0_;
	GeeArrayList* parts = NULL;
	const gchar* _tmp1_;
	GeeArrayList* _tmp2_;
	GString* output = NULL;
	GString* _tmp3_;
	GString* _tmp38_;
	const gchar* _tmp39_;
	gchar* _tmp40_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 868 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 868 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 869 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_trim_trailing_semicolon (expression);
#line 869 "../src/main.vala"
	clean_expression = _tmp0_;
#line 870 "../src/main.vala"
	php_to_vala_transpiler_mark_function_used (self, "echo");
#line 871 "../src/main.vala"
	_tmp1_ = clean_expression;
#line 871 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_split_top_level (self, _tmp1_, ',');
#line 871 "../src/main.vala"
	parts = _tmp2_;
#line 872 "../src/main.vala"
	_tmp3_ = g_string_new ("");
#line 872 "../src/main.vala"
	output = _tmp3_;
#line 9670 "main.c"
	{
		GeeArrayList* _raw_part_list = NULL;
		GeeArrayList* _tmp4_;
		gint _raw_part_size = 0;
		GeeArrayList* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		gint _raw_part_index = 0;
#line 873 "../src/main.vala"
		_tmp4_ = parts;
#line 873 "../src/main.vala"
		_raw_part_list = _tmp4_;
#line 873 "../src/main.vala"
		_tmp5_ = _raw_part_list;
#line 873 "../src/main.vala"
		_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
#line 873 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 873 "../src/main.vala"
		_raw_part_size = _tmp7_;
#line 873 "../src/main.vala"
		_raw_part_index = -1;
#line 873 "../src/main.vala"
		while (TRUE) {
#line 9695 "main.c"
			gint _tmp8_;
			gint _tmp9_;
			gchar* raw_part = NULL;
			GeeArrayList* _tmp10_;
			gpointer _tmp11_;
			gchar* part = NULL;
			const gchar* _tmp12_;
			gchar* _tmp13_;
			const gchar* _tmp14_;
			GString* _tmp15_;
			gchar* converted_concat = NULL;
			const gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_ = NULL;
			const gchar* _tmp20_;
			gchar* _tmp21_;
			gchar* converted_part = NULL;
			gchar* _tmp24_;
			gboolean _tmp25_ = FALSE;
#line 873 "../src/main.vala"
			_raw_part_index = _raw_part_index + 1;
#line 873 "../src/main.vala"
			_tmp8_ = _raw_part_index;
#line 873 "../src/main.vala"
			_tmp9_ = _raw_part_size;
#line 873 "../src/main.vala"
			if (!(_tmp8_ < _tmp9_)) {
#line 873 "../src/main.vala"
				break;
#line 9725 "main.c"
			}
#line 873 "../src/main.vala"
			_tmp10_ = _raw_part_list;
#line 873 "../src/main.vala"
			_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _raw_part_index);
#line 873 "../src/main.vala"
			raw_part = (gchar*) _tmp11_;
#line 874 "../src/main.vala"
			_tmp12_ = raw_part;
#line 874 "../src/main.vala"
			_tmp13_ = string_strip (_tmp12_);
#line 874 "../src/main.vala"
			part = _tmp13_;
#line 875 "../src/main.vala"
			_tmp14_ = part;
#line 875 "../src/main.vala"
			if (g_strcmp0 (_tmp14_, "") == 0) {
#line 876 "../src/main.vala"
				_g_free0 (part);
#line 876 "../src/main.vala"
				_g_free0 (raw_part);
#line 876 "../src/main.vala"
				continue;
#line 9749 "main.c"
			}
#line 878 "../src/main.vala"
			_tmp15_ = output;
#line 878 "../src/main.vala"
			if (_tmp15_->len > ((gssize) 0)) {
#line 9755 "main.c"
				GString* _tmp16_;
#line 879 "../src/main.vala"
				_tmp16_ = output;
#line 879 "../src/main.vala"
				g_string_append (_tmp16_, " ");
#line 9761 "main.c"
			}
#line 881 "../src/main.vala"
			_tmp17_ = part;
#line 881 "../src/main.vala"
			_tmp18_ = php_to_vala_transpiler_convert_zval_binary_expression (self, _tmp17_, '.', "Php.concat", php_line_number, &_inner_error0_);
#line 881 "../src/main.vala"
			converted_concat = _tmp18_;
#line 881 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 881 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 881 "../src/main.vala"
				_g_free0 (part);
#line 881 "../src/main.vala"
				_g_free0 (raw_part);
#line 881 "../src/main.vala"
				_g_string_free0 (output);
#line 881 "../src/main.vala"
				_g_object_unref0 (parts);
#line 881 "../src/main.vala"
				_g_free0 (clean_expression);
#line 881 "../src/main.vala"
				return NULL;
#line 9785 "main.c"
			}
#line 882 "../src/main.vala"
			_tmp20_ = converted_concat;
#line 882 "../src/main.vala"
			_tmp21_ = g_strdup (_tmp20_);
#line 882 "../src/main.vala"
			_tmp19_ = _tmp21_;
#line 882 "../src/main.vala"
			if (_tmp19_ == NULL) {
#line 9795 "main.c"
				const gchar* _tmp22_;
				gchar* _tmp23_;
#line 882 "../src/main.vala"
				_tmp22_ = part;
#line 882 "../src/main.vala"
				_tmp23_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp22_, php_line_number, &_inner_error0_);
#line 882 "../src/main.vala"
				_g_free0 (_tmp19_);
#line 882 "../src/main.vala"
				_tmp19_ = _tmp23_;
#line 882 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 882 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 882 "../src/main.vala"
					_g_free0 (_tmp19_);
#line 882 "../src/main.vala"
					_g_free0 (converted_concat);
#line 882 "../src/main.vala"
					_g_free0 (part);
#line 882 "../src/main.vala"
					_g_free0 (raw_part);
#line 882 "../src/main.vala"
					_g_string_free0 (output);
#line 882 "../src/main.vala"
					_g_object_unref0 (parts);
#line 882 "../src/main.vala"
					_g_free0 (clean_expression);
#line 882 "../src/main.vala"
					return NULL;
#line 9826 "main.c"
				}
			}
#line 882 "../src/main.vala"
			_tmp24_ = _tmp19_;
#line 882 "../src/main.vala"
			_tmp19_ = NULL;
#line 882 "../src/main.vala"
			converted_part = _tmp24_;
#line 883 "../src/main.vala"
			if (self->priv->optimize_local_vars) {
#line 883 "../src/main.vala"
				_tmp25_ = TRUE;
#line 9839 "main.c"
			} else {
#line 883 "../src/main.vala"
				_tmp25_ = self->priv->optimize_file_func_vars;
#line 9843 "main.c"
			}
#line 883 "../src/main.vala"
			if (_tmp25_) {
#line 9847 "main.c"
				gchar* echo_name = NULL;
				gchar* _tmp26_;
				GString* _tmp27_;
				const gchar* _tmp28_;
				const gchar* _tmp29_;
				gchar* _tmp30_;
				gchar* _tmp31_;
#line 884 "../src/main.vala"
				_tmp26_ = php_to_vala_transpiler_map_php_runtime_function_name (self, "echo", "echo_static", php_line_number, &_inner_error0_);
#line 884 "../src/main.vala"
				echo_name = _tmp26_;
#line 884 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 884 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 884 "../src/main.vala"
					_g_free0 (converted_part);
#line 884 "../src/main.vala"
					_g_free0 (_tmp19_);
#line 884 "../src/main.vala"
					_g_free0 (converted_concat);
#line 884 "../src/main.vala"
					_g_free0 (part);
#line 884 "../src/main.vala"
					_g_free0 (raw_part);
#line 884 "../src/main.vala"
					_g_string_free0 (output);
#line 884 "../src/main.vala"
					_g_object_unref0 (parts);
#line 884 "../src/main.vala"
					_g_free0 (clean_expression);
#line 884 "../src/main.vala"
					return NULL;
#line 9881 "main.c"
				}
#line 885 "../src/main.vala"
				_tmp27_ = output;
#line 885 "../src/main.vala"
				_tmp28_ = echo_name;
#line 885 "../src/main.vala"
				_tmp29_ = converted_part;
#line 885 "../src/main.vala"
				_tmp30_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 885 "../src/main.vala"
				_tmp31_ = _tmp30_;
#line 885 "../src/main.vala"
				g_string_append_printf (_tmp27_, "%s (Php.zval_to_string (%s)%s);", _tmp28_, _tmp29_, _tmp31_);
#line 885 "../src/main.vala"
				_g_free0 (_tmp31_);
#line 883 "../src/main.vala"
				_g_free0 (echo_name);
#line 9899 "main.c"
			} else {
				gchar* echo_name = NULL;
				gchar* _tmp32_;
				GString* _tmp33_;
				const gchar* _tmp34_;
				const gchar* _tmp35_;
				gchar* _tmp36_;
				gchar* _tmp37_;
#line 892 "../src/main.vala"
				_tmp32_ = php_to_vala_transpiler_map_php_runtime_function_name (self, "echo", "echo_zval", php_line_number, &_inner_error0_);
#line 892 "../src/main.vala"
				echo_name = _tmp32_;
#line 892 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 892 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 892 "../src/main.vala"
					_g_free0 (converted_part);
#line 892 "../src/main.vala"
					_g_free0 (_tmp19_);
#line 892 "../src/main.vala"
					_g_free0 (converted_concat);
#line 892 "../src/main.vala"
					_g_free0 (part);
#line 892 "../src/main.vala"
					_g_free0 (raw_part);
#line 892 "../src/main.vala"
					_g_string_free0 (output);
#line 892 "../src/main.vala"
					_g_object_unref0 (parts);
#line 892 "../src/main.vala"
					_g_free0 (clean_expression);
#line 892 "../src/main.vala"
					return NULL;
#line 9934 "main.c"
				}
#line 893 "../src/main.vala"
				_tmp33_ = output;
#line 893 "../src/main.vala"
				_tmp34_ = echo_name;
#line 893 "../src/main.vala"
				_tmp35_ = converted_part;
#line 893 "../src/main.vala"
				_tmp36_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 893 "../src/main.vala"
				_tmp37_ = _tmp36_;
#line 893 "../src/main.vala"
				g_string_append_printf (_tmp33_, "%s (%s%s);", _tmp34_, _tmp35_, _tmp37_);
#line 893 "../src/main.vala"
				_g_free0 (_tmp37_);
#line 883 "../src/main.vala"
				_g_free0 (echo_name);
#line 9952 "main.c"
			}
#line 873 "../src/main.vala"
			_g_free0 (converted_part);
#line 873 "../src/main.vala"
			_g_free0 (_tmp19_);
#line 873 "../src/main.vala"
			_g_free0 (converted_concat);
#line 873 "../src/main.vala"
			_g_free0 (part);
#line 873 "../src/main.vala"
			_g_free0 (raw_part);
#line 9964 "main.c"
		}
	}
#line 901 "../src/main.vala"
	_tmp38_ = output;
#line 901 "../src/main.vala"
	_tmp39_ = _tmp38_->str;
#line 901 "../src/main.vala"
	_tmp40_ = g_strdup (_tmp39_);
#line 901 "../src/main.vala"
	result = _tmp40_;
#line 901 "../src/main.vala"
	_g_string_free0 (output);
#line 901 "../src/main.vala"
	_g_object_unref0 (parts);
#line 901 "../src/main.vala"
	_g_free0 (clean_expression);
#line 901 "../src/main.vala"
	return result;
#line 9983 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_inline_condition (PhpToValaTranspiler* self,
                                                        const gchar* line,
                                                        const gchar* vala_keyword,
                                                        gint php_line_number,
                                                        GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* condition = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* rest = NULL;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gboolean _tmp10_ = FALSE;
	const gchar* _tmp11_;
	gchar* nested = NULL;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	const gchar* _tmp24_;
	gchar* _tmp25_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 904 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 904 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 904 "../src/main.vala"
	g_return_val_if_fail (vala_keyword != NULL, NULL);
#line 905 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 906 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 907 "../src/main.vala"
	if (open_index < 0) {
#line 907 "../src/main.vala"
		_tmp0_ = TRUE;
#line 10034 "main.c"
	} else {
#line 907 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 10038 "main.c"
	}
#line 907 "../src/main.vala"
	if (_tmp0_) {
#line 10042 "main.c"
		GError* _tmp1_;
#line 908 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 908 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 908 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 908 "../src/main.vala"
		return NULL;
#line 10052 "main.c"
	}
#line 910 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 910 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 910 "../src/main.vala"
	_tmp4_ = php_to_vala_transpiler_convert_zval_condition (self, _tmp3_, php_line_number, &_inner_error0_);
#line 910 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 910 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 910 "../src/main.vala"
	condition = _tmp5_;
#line 910 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 910 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 910 "../src/main.vala"
		return NULL;
#line 10072 "main.c"
	}
#line 911 "../src/main.vala"
	_tmp6_ = string_substring (line, (glong) (close_index + 1), (glong) -1);
#line 911 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 911 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 911 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 911 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 911 "../src/main.vala"
	rest = _tmp9_;
#line 912 "../src/main.vala"
	_tmp11_ = rest;
#line 912 "../src/main.vala"
	if (g_strcmp0 (_tmp11_, "") == 0) {
#line 912 "../src/main.vala"
		_tmp10_ = TRUE;
#line 10092 "main.c"
	} else {
		const gchar* _tmp12_;
#line 912 "../src/main.vala"
		_tmp12_ = rest;
#line 912 "../src/main.vala"
		_tmp10_ = g_strcmp0 (_tmp12_, "{") == 0;
#line 10099 "main.c"
	}
#line 912 "../src/main.vala"
	if (_tmp10_) {
#line 10103 "main.c"
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
#line 913 "../src/main.vala"
		_tmp13_ = string_to_string (vala_keyword);
#line 913 "../src/main.vala"
		_tmp14_ = condition;
#line 913 "../src/main.vala"
		_tmp15_ = string_to_string (_tmp14_);
#line 913 "../src/main.vala"
		_tmp16_ = g_strconcat (_tmp13_, " (", _tmp15_, ") {", NULL);
#line 913 "../src/main.vala"
		result = _tmp16_;
#line 913 "../src/main.vala"
		_g_free0 (rest);
#line 913 "../src/main.vala"
		_g_free0 (condition);
#line 913 "../src/main.vala"
		return result;
#line 10124 "main.c"
	}
#line 915 "../src/main.vala"
	_tmp17_ = rest;
#line 915 "../src/main.vala"
	_tmp18_ = g_strdup (_tmp17_);
#line 915 "../src/main.vala"
	_tmp19_ = php_to_vala_transpiler_transpile_zval_line (self, _tmp18_, php_line_number, &_inner_error0_);
#line 915 "../src/main.vala"
	nested = _tmp19_;
#line 915 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 915 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 915 "../src/main.vala"
		_g_free0 (rest);
#line 915 "../src/main.vala"
		_g_free0 (condition);
#line 915 "../src/main.vala"
		return NULL;
#line 10144 "main.c"
	}
#line 916 "../src/main.vala"
	_tmp20_ = string_to_string (vala_keyword);
#line 916 "../src/main.vala"
	_tmp21_ = condition;
#line 916 "../src/main.vala"
	_tmp22_ = string_to_string (_tmp21_);
#line 916 "../src/main.vala"
	_tmp23_ = nested;
#line 916 "../src/main.vala"
	_tmp24_ = string_to_string (_tmp23_);
#line 916 "../src/main.vala"
	_tmp25_ = g_strconcat (_tmp20_, " (", _tmp22_, ") { ", _tmp24_, " }", NULL);
#line 916 "../src/main.vala"
	result = _tmp25_;
#line 916 "../src/main.vala"
	_g_free0 (nested);
#line 916 "../src/main.vala"
	_g_free0 (rest);
#line 916 "../src/main.vala"
	_g_free0 (condition);
#line 916 "../src/main.vala"
	return result;
#line 10168 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_foreach (PhpToValaTranspiler* self,
                                               const gchar* line,
                                               gint php_line_number,
                                               GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* inner = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar** parts = NULL;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint parts_length1;
	gint _parts_size_;
	gchar* source = NULL;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* target = NULL;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gint key_sep = 0;
	const gchar* _tmp16_;
	gchar* item_name = NULL;
	const gchar* _tmp52_;
	gchar* _tmp53_;
	GeeHashMap* _tmp54_;
	const gchar* _tmp55_;
	const gchar* _tmp56_;
	const gchar* _tmp57_;
	const gchar* _tmp58_;
	const gchar* _tmp59_;
	gchar* _tmp60_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 919 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 919 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 920 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 921 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 922 "../src/main.vala"
	if (open_index < 0) {
#line 922 "../src/main.vala"
		_tmp0_ = TRUE;
#line 10225 "main.c"
	} else {
#line 922 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 10229 "main.c"
	}
#line 922 "../src/main.vala"
	if (_tmp0_) {
#line 10233 "main.c"
		GError* _tmp1_;
#line 923 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 923 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 923 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 923 "../src/main.vala"
		return NULL;
#line 10243 "main.c"
	}
#line 925 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 925 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 925 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 925 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 925 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 925 "../src/main.vala"
	inner = _tmp5_;
#line 926 "../src/main.vala"
	_tmp7_ = _tmp6_ = g_strsplit (inner, " as ", 0);
#line 926 "../src/main.vala"
	parts = _tmp7_;
#line 926 "../src/main.vala"
	parts_length1 = _vala_array_length (_tmp6_);
#line 926 "../src/main.vala"
	_parts_size_ = parts_length1;
#line 927 "../src/main.vala"
	if (parts_length1 != 2) {
#line 10267 "main.c"
		GError* _tmp8_;
#line 928 "../src/main.vala"
		_tmp8_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 928 "../src/main.vala"
		_inner_error0_ = _tmp8_;
#line 928 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 928 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 928 "../src/main.vala"
		_g_free0 (inner);
#line 928 "../src/main.vala"
		return NULL;
#line 10281 "main.c"
	}
#line 930 "../src/main.vala"
	_tmp9_ = parts[0];
#line 930 "../src/main.vala"
	_tmp10_ = string_strip (_tmp9_);
#line 930 "../src/main.vala"
	_tmp11_ = _tmp10_;
#line 930 "../src/main.vala"
	_tmp12_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp11_, php_line_number, &_inner_error0_);
#line 930 "../src/main.vala"
	_tmp13_ = _tmp12_;
#line 930 "../src/main.vala"
	_g_free0 (_tmp11_);
#line 930 "../src/main.vala"
	source = _tmp13_;
#line 930 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 930 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 930 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 930 "../src/main.vala"
		_g_free0 (inner);
#line 930 "../src/main.vala"
		return NULL;
#line 10307 "main.c"
	}
#line 931 "../src/main.vala"
	_tmp14_ = parts[1];
#line 931 "../src/main.vala"
	_tmp15_ = string_strip (_tmp14_);
#line 931 "../src/main.vala"
	target = _tmp15_;
#line 932 "../src/main.vala"
	_tmp16_ = target;
#line 932 "../src/main.vala"
	key_sep = string_index_of (_tmp16_, "=>", 0);
#line 933 "../src/main.vala"
	if (key_sep >= 0) {
#line 10321 "main.c"
		gchar* key_name = NULL;
		const gchar* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* value_name = NULL;
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		GeeHashMap* _tmp31_;
		const gchar* _tmp32_;
		GeeHashMap* _tmp33_;
		const gchar* _tmp34_;
		gchar* key_iter_name = NULL;
		const gchar* _tmp35_;
		gchar* _tmp36_;
		const gchar* _tmp37_;
		const gchar* _tmp38_;
		const gchar* _tmp39_;
		const gchar* _tmp40_;
		const gchar* _tmp41_;
		const gchar* _tmp42_;
		const gchar* _tmp43_;
		const gchar* _tmp44_;
		const gchar* _tmp45_;
		const gchar* _tmp46_;
		const gchar* _tmp47_;
		const gchar* _tmp48_;
		const gchar* _tmp49_;
		const gchar* _tmp50_;
		gchar* _tmp51_;
#line 934 "../src/main.vala"
		_tmp17_ = target;
#line 934 "../src/main.vala"
		_tmp18_ = string_substring (_tmp17_, (glong) 0, (glong) key_sep);
#line 934 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 934 "../src/main.vala"
		_tmp20_ = string_strip (_tmp19_);
#line 934 "../src/main.vala"
		_tmp21_ = _tmp20_;
#line 934 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_replace_php_variables (_tmp21_);
#line 934 "../src/main.vala"
		_tmp23_ = _tmp22_;
#line 934 "../src/main.vala"
		_g_free0 (_tmp21_);
#line 934 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 934 "../src/main.vala"
		key_name = _tmp23_;
#line 935 "../src/main.vala"
		_tmp24_ = target;
#line 935 "../src/main.vala"
		_tmp25_ = string_substring (_tmp24_, (glong) (key_sep + 2), (glong) -1);
#line 935 "../src/main.vala"
		_tmp26_ = _tmp25_;
#line 935 "../src/main.vala"
		_tmp27_ = string_strip (_tmp26_);
#line 935 "../src/main.vala"
		_tmp28_ = _tmp27_;
#line 935 "../src/main.vala"
		_tmp29_ = php_to_vala_transpiler_replace_php_variables (_tmp28_);
#line 935 "../src/main.vala"
		_tmp30_ = _tmp29_;
#line 935 "../src/main.vala"
		_g_free0 (_tmp28_);
#line 935 "../src/main.vala"
		_g_free0 (_tmp26_);
#line 935 "../src/main.vala"
		value_name = _tmp30_;
#line 936 "../src/main.vala"
		_tmp31_ = self->variable_types;
#line 936 "../src/main.vala"
		_tmp32_ = key_name;
#line 936 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp31_, _tmp32_, "Php.zval");
#line 937 "../src/main.vala"
		_tmp33_ = self->variable_types;
#line 937 "../src/main.vala"
		_tmp34_ = value_name;
#line 937 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp33_, _tmp34_, "Php.zval");
#line 938 "../src/main.vala"
		_tmp35_ = key_name;
#line 938 "../src/main.vala"
		_tmp36_ = g_strconcat ("__php2vala_key_", _tmp35_, NULL);
#line 938 "../src/main.vala"
		key_iter_name = _tmp36_;
#line 939 "../src/main.vala"
		_tmp37_ = key_iter_name;
#line 939 "../src/main.vala"
		_tmp38_ = string_to_string (_tmp37_);
#line 939 "../src/main.vala"
		_tmp39_ = source;
#line 939 "../src/main.vala"
		_tmp40_ = string_to_string (_tmp39_);
#line 939 "../src/main.vala"
		_tmp41_ = key_name;
#line 939 "../src/main.vala"
		_tmp42_ = string_to_string (_tmp41_);
#line 939 "../src/main.vala"
		_tmp43_ = key_iter_name;
#line 939 "../src/main.vala"
		_tmp44_ = string_to_string (_tmp43_);
#line 939 "../src/main.vala"
		_tmp45_ = value_name;
#line 939 "../src/main.vala"
		_tmp46_ = string_to_string (_tmp45_);
#line 939 "../src/main.vala"
		_tmp47_ = source;
#line 939 "../src/main.vala"
		_tmp48_ = string_to_string (_tmp47_);
#line 939 "../src/main.vala"
		_tmp49_ = key_name;
#line 939 "../src/main.vala"
		_tmp50_ = string_to_string (_tmp49_);
#line 939 "../src/main.vala"
		_tmp51_ = g_strconcat ("foreach (string ", _tmp38_, " in Php.array_keys (", _tmp40_, ")) { Php.zval ", _tmp42_, " = Php.zval.string_value (", _tmp44_, "); Php.zval ", _tmp46_, " = Php.array_get (", _tmp48_, ", ", _tmp50_, ");", NULL);
#line 939 "../src/main.vala"
		result = _tmp51_;
#line 939 "../src/main.vala"
		_g_free0 (key_iter_name);
#line 939 "../src/main.vala"
		_g_free0 (value_name);
#line 939 "../src/main.vala"
		_g_free0 (key_name);
#line 939 "../src/main.vala"
		_g_free0 (target);
#line 939 "../src/main.vala"
		_g_free0 (source);
#line 939 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 939 "../src/main.vala"
		_g_free0 (inner);
#line 939 "../src/main.vala"
		return result;
#line 10466 "main.c"
	}
#line 941 "../src/main.vala"
	_tmp52_ = target;
#line 941 "../src/main.vala"
	_tmp53_ = php_to_vala_transpiler_replace_php_variables (_tmp52_);
#line 941 "../src/main.vala"
	item_name = _tmp53_;
#line 942 "../src/main.vala"
	_tmp54_ = self->variable_types;
#line 942 "../src/main.vala"
	_tmp55_ = item_name;
#line 942 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp54_, _tmp55_, "Php.zval");
#line 943 "../src/main.vala"
	_tmp56_ = item_name;
#line 943 "../src/main.vala"
	_tmp57_ = string_to_string (_tmp56_);
#line 943 "../src/main.vala"
	_tmp58_ = source;
#line 943 "../src/main.vala"
	_tmp59_ = string_to_string (_tmp58_);
#line 943 "../src/main.vala"
	_tmp60_ = g_strconcat ("foreach (Php.zval ", _tmp57_, " in Php.array_values (", _tmp59_, ")) {", NULL);
#line 943 "../src/main.vala"
	result = _tmp60_;
#line 943 "../src/main.vala"
	_g_free0 (item_name);
#line 943 "../src/main.vala"
	_g_free0 (target);
#line 943 "../src/main.vala"
	_g_free0 (source);
#line 943 "../src/main.vala"
	parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 943 "../src/main.vala"
	_g_free0 (inner);
#line 943 "../src/main.vala"
	return result;
#line 10504 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_for (PhpToValaTranspiler* self,
                                           const gchar* line,
                                           gint php_line_number,
                                           GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	GeeArrayList* parts = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GeeArrayList* _tmp6_;
	GeeArrayList* _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	gchar* init = NULL;
	gpointer _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* condition = NULL;
	gpointer _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* increment = NULL;
	gpointer _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	const gchar* _tmp31_;
	const gchar* _tmp32_;
	const gchar* _tmp33_;
	const gchar* _tmp34_;
	gchar* _tmp35_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 946 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 946 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 947 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 948 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 949 "../src/main.vala"
	if (open_index < 0) {
#line 949 "../src/main.vala"
		_tmp0_ = TRUE;
#line 10567 "main.c"
	} else {
#line 949 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 10571 "main.c"
	}
#line 949 "../src/main.vala"
	if (_tmp0_) {
#line 10575 "main.c"
		GError* _tmp1_;
#line 950 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 950 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 950 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 950 "../src/main.vala"
		return NULL;
#line 10585 "main.c"
	}
#line 952 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 952 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 952 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 952 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 952 "../src/main.vala"
	_tmp6_ = php_to_vala_transpiler_split_top_level (self, _tmp5_, ';');
#line 952 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 952 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 952 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 952 "../src/main.vala"
	parts = _tmp7_;
#line 953 "../src/main.vala"
	_tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) parts);
#line 953 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 953 "../src/main.vala"
	if (_tmp9_ != 3) {
#line 10611 "main.c"
		GError* _tmp10_;
#line 954 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 954 "../src/main.vala"
		_inner_error0_ = _tmp10_;
#line 954 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 954 "../src/main.vala"
		_g_object_unref0 (parts);
#line 954 "../src/main.vala"
		return NULL;
#line 10623 "main.c"
	}
#line 956 "../src/main.vala"
	_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) parts, 0);
#line 956 "../src/main.vala"
	_tmp12_ = (gchar*) _tmp11_;
#line 956 "../src/main.vala"
	_tmp13_ = string_strip (_tmp12_);
#line 956 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 956 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_convert_zval_for_init (self, _tmp14_, php_line_number, &_inner_error0_);
#line 956 "../src/main.vala"
	_tmp16_ = _tmp15_;
#line 956 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 956 "../src/main.vala"
	_g_free0 (_tmp12_);
#line 956 "../src/main.vala"
	init = _tmp16_;
#line 956 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 956 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 956 "../src/main.vala"
		_g_object_unref0 (parts);
#line 956 "../src/main.vala"
		return NULL;
#line 10651 "main.c"
	}
#line 957 "../src/main.vala"
	_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) parts, 1);
#line 957 "../src/main.vala"
	_tmp18_ = (gchar*) _tmp17_;
#line 957 "../src/main.vala"
	_tmp19_ = string_strip (_tmp18_);
#line 957 "../src/main.vala"
	_tmp20_ = _tmp19_;
#line 957 "../src/main.vala"
	_tmp21_ = php_to_vala_transpiler_convert_zval_condition (self, _tmp20_, php_line_number, &_inner_error0_);
#line 957 "../src/main.vala"
	_tmp22_ = _tmp21_;
#line 957 "../src/main.vala"
	_g_free0 (_tmp20_);
#line 957 "../src/main.vala"
	_g_free0 (_tmp18_);
#line 957 "../src/main.vala"
	condition = _tmp22_;
#line 957 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 957 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 957 "../src/main.vala"
		_g_free0 (init);
#line 957 "../src/main.vala"
		_g_object_unref0 (parts);
#line 957 "../src/main.vala"
		return NULL;
#line 10681 "main.c"
	}
#line 958 "../src/main.vala"
	_tmp23_ = gee_abstract_list_get ((GeeAbstractList*) parts, 2);
#line 958 "../src/main.vala"
	_tmp24_ = (gchar*) _tmp23_;
#line 958 "../src/main.vala"
	_tmp25_ = string_strip (_tmp24_);
#line 958 "../src/main.vala"
	_tmp26_ = _tmp25_;
#line 958 "../src/main.vala"
	_tmp27_ = php_to_vala_transpiler_convert_zval_for_increment (self, _tmp26_, php_line_number, &_inner_error0_);
#line 958 "../src/main.vala"
	_tmp28_ = _tmp27_;
#line 958 "../src/main.vala"
	_g_free0 (_tmp26_);
#line 958 "../src/main.vala"
	_g_free0 (_tmp24_);
#line 958 "../src/main.vala"
	increment = _tmp28_;
#line 958 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 958 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 958 "../src/main.vala"
		_g_free0 (condition);
#line 958 "../src/main.vala"
		_g_free0 (init);
#line 958 "../src/main.vala"
		_g_object_unref0 (parts);
#line 958 "../src/main.vala"
		return NULL;
#line 10713 "main.c"
	}
#line 959 "../src/main.vala"
	_tmp29_ = init;
#line 959 "../src/main.vala"
	_tmp30_ = string_to_string (_tmp29_);
#line 959 "../src/main.vala"
	_tmp31_ = condition;
#line 959 "../src/main.vala"
	_tmp32_ = string_to_string (_tmp31_);
#line 959 "../src/main.vala"
	_tmp33_ = increment;
#line 959 "../src/main.vala"
	_tmp34_ = string_to_string (_tmp33_);
#line 959 "../src/main.vala"
	_tmp35_ = g_strconcat ("for (", _tmp30_, "; ", _tmp32_, "; ", _tmp34_, ") {", NULL);
#line 959 "../src/main.vala"
	result = _tmp35_;
#line 959 "../src/main.vala"
	_g_free0 (increment);
#line 959 "../src/main.vala"
	_g_free0 (condition);
#line 959 "../src/main.vala"
	_g_free0 (init);
#line 959 "../src/main.vala"
	_g_object_unref0 (parts);
#line 959 "../src/main.vala"
	return result;
#line 10741 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_while (PhpToValaTranspiler* self,
                                             const gchar* line,
                                             gint php_line_number,
                                             GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* condition = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* rest = NULL;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gboolean _tmp10_ = FALSE;
	const gchar* _tmp11_;
	gchar* nested = NULL;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 962 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 962 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 963 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 964 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 965 "../src/main.vala"
	if (open_index < 0) {
#line 965 "../src/main.vala"
		_tmp0_ = TRUE;
#line 10788 "main.c"
	} else {
#line 965 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 10792 "main.c"
	}
#line 965 "../src/main.vala"
	if (_tmp0_) {
#line 10796 "main.c"
		GError* _tmp1_;
#line 966 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 966 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 966 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 966 "../src/main.vala"
		return NULL;
#line 10806 "main.c"
	}
#line 968 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 968 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 968 "../src/main.vala"
	_tmp4_ = php_to_vala_transpiler_convert_zval_condition (self, _tmp3_, php_line_number, &_inner_error0_);
#line 968 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 968 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 968 "../src/main.vala"
	condition = _tmp5_;
#line 968 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 968 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 968 "../src/main.vala"
		return NULL;
#line 10826 "main.c"
	}
#line 969 "../src/main.vala"
	_tmp6_ = string_substring (line, (glong) (close_index + 1), (glong) -1);
#line 969 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 969 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 969 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 969 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 969 "../src/main.vala"
	rest = _tmp9_;
#line 970 "../src/main.vala"
	_tmp11_ = rest;
#line 970 "../src/main.vala"
	if (g_strcmp0 (_tmp11_, "") == 0) {
#line 970 "../src/main.vala"
		_tmp10_ = TRUE;
#line 10846 "main.c"
	} else {
		const gchar* _tmp12_;
#line 970 "../src/main.vala"
		_tmp12_ = rest;
#line 970 "../src/main.vala"
		_tmp10_ = g_strcmp0 (_tmp12_, "{") == 0;
#line 10853 "main.c"
	}
#line 970 "../src/main.vala"
	if (_tmp10_) {
#line 10857 "main.c"
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		gchar* _tmp15_;
#line 971 "../src/main.vala"
		_tmp13_ = condition;
#line 971 "../src/main.vala"
		_tmp14_ = string_to_string (_tmp13_);
#line 971 "../src/main.vala"
		_tmp15_ = g_strconcat ("while (", _tmp14_, ") {", NULL);
#line 971 "../src/main.vala"
		result = _tmp15_;
#line 971 "../src/main.vala"
		_g_free0 (rest);
#line 971 "../src/main.vala"
		_g_free0 (condition);
#line 971 "../src/main.vala"
		return result;
#line 10875 "main.c"
	}
#line 973 "../src/main.vala"
	_tmp16_ = rest;
#line 973 "../src/main.vala"
	_tmp17_ = g_strdup (_tmp16_);
#line 973 "../src/main.vala"
	_tmp18_ = php_to_vala_transpiler_transpile_zval_line (self, _tmp17_, php_line_number, &_inner_error0_);
#line 973 "../src/main.vala"
	nested = _tmp18_;
#line 973 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 973 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 973 "../src/main.vala"
		_g_free0 (rest);
#line 973 "../src/main.vala"
		_g_free0 (condition);
#line 973 "../src/main.vala"
		return NULL;
#line 10895 "main.c"
	}
#line 974 "../src/main.vala"
	_tmp19_ = condition;
#line 974 "../src/main.vala"
	_tmp20_ = string_to_string (_tmp19_);
#line 974 "../src/main.vala"
	_tmp21_ = nested;
#line 974 "../src/main.vala"
	_tmp22_ = string_to_string (_tmp21_);
#line 974 "../src/main.vala"
	_tmp23_ = g_strconcat ("while (", _tmp20_, ") { ", _tmp22_, " }", NULL);
#line 974 "../src/main.vala"
	result = _tmp23_;
#line 974 "../src/main.vala"
	_g_free0 (nested);
#line 974 "../src/main.vala"
	_g_free0 (rest);
#line 974 "../src/main.vala"
	_g_free0 (condition);
#line 974 "../src/main.vala"
	return result;
#line 10917 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_dynamic_this_call (PhpToValaTranspiler* self,
                                                         const gchar* line,
                                                         gint php_line_number,
                                                         GError** error)
{
	gboolean _tmp0_ = FALSE;
	gchar* variable_name = NULL;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_ = NULL;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 977 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 977 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 978 "../src/main.vala"
	if (!g_str_has_prefix (line, "$this->$")) {
#line 978 "../src/main.vala"
		_tmp0_ = TRUE;
#line 10954 "main.c"
	} else {
#line 978 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, "();");
#line 10958 "main.c"
	}
#line 978 "../src/main.vala"
	if (_tmp0_) {
#line 979 "../src/main.vala"
		result = NULL;
#line 979 "../src/main.vala"
		return result;
#line 10966 "main.c"
	}
#line 982 "../src/main.vala"
	_tmp1_ = strlen ("$this->$");
#line 982 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 982 "../src/main.vala"
	_tmp3_ = strlen (line);
#line 982 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 982 "../src/main.vala"
	_tmp5_ = strlen ("$this->$");
#line 982 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 982 "../src/main.vala"
	_tmp7_ = strlen ("();");
#line 982 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 982 "../src/main.vala"
	_tmp9_ = string_substring (line, (glong) _tmp2_, (glong) ((_tmp4_ - _tmp6_) - _tmp8_));
#line 982 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 982 "../src/main.vala"
	_tmp11_ = string_strip (_tmp10_);
#line 982 "../src/main.vala"
	_tmp12_ = _tmp11_;
#line 982 "../src/main.vala"
	_g_free0 (_tmp10_);
#line 982 "../src/main.vala"
	variable_name = _tmp12_;
#line 983 "../src/main.vala"
	_tmp14_ = variable_name;
#line 983 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_build_zval_dynamic_function_dispatch (self, _tmp14_, php_line_number, line, &_inner_error0_);
#line 983 "../src/main.vala"
	_tmp13_ = _tmp15_;
#line 983 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 983 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 983 "../src/main.vala"
		_g_free0 (variable_name);
#line 983 "../src/main.vala"
		return NULL;
#line 11010 "main.c"
	}
#line 983 "../src/main.vala"
	_tmp16_ = _tmp13_;
#line 983 "../src/main.vala"
	_tmp13_ = NULL;
#line 983 "../src/main.vala"
	result = _tmp16_;
#line 983 "../src/main.vala"
	_g_free0 (_tmp13_);
#line 983 "../src/main.vala"
	_g_free0 (variable_name);
#line 983 "../src/main.vala"
	return result;
#line 11024 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_new_object_assignment (PhpToValaTranspiler* self,
                                                             const gchar* line,
                                                             gint php_line_number,
                                                             GError** error)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gint equals_index = 0;
	gchar* variable_name = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* expression = NULL;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gboolean _tmp12_ = FALSE;
	const gchar* _tmp13_;
	gchar* class_call = NULL;
	const gchar* _tmp15_;
	gint _tmp16_;
	gint _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* class_name = NULL;
	gchar* args = NULL;
	gchar* _tmp22_;
	gint open_index = 0;
	const gchar* _tmp23_;
	gboolean _tmp39_ = FALSE;
	const gchar* _tmp40_;
	const gchar* _tmp43_;
	GeeHashMap* _tmp46_;
	const gchar* _tmp47_;
	const gchar* _tmp48_;
	gchar* vala_class_name = NULL;
	const gchar* _tmp49_;
	gchar* _tmp50_;
	const gchar* _tmp51_;
	const gchar* _tmp52_;
	const gchar* _tmp53_;
	const gchar* _tmp54_;
	const gchar* _tmp55_;
	const gchar* _tmp56_;
	gchar* _tmp57_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 986 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 986 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 987 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 987 "../src/main.vala"
		_tmp1_ = TRUE;
#line 11089 "main.c"
	} else {
#line 987 "../src/main.vala"
		_tmp1_ = string_index_of (line, "= new ", 0) < 0;
#line 11093 "main.c"
	}
#line 987 "../src/main.vala"
	if (_tmp1_) {
#line 987 "../src/main.vala"
		_tmp0_ = TRUE;
#line 11099 "main.c"
	} else {
#line 987 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 11103 "main.c"
	}
#line 987 "../src/main.vala"
	if (_tmp0_) {
#line 988 "../src/main.vala"
		result = NULL;
#line 988 "../src/main.vala"
		return result;
#line 11111 "main.c"
	}
#line 991 "../src/main.vala"
	equals_index = string_index_of (line, "=", 0);
#line 992 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) 1, (glong) (equals_index - 1));
#line 992 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 992 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 992 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 992 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 992 "../src/main.vala"
	variable_name = _tmp5_;
#line 993 "../src/main.vala"
	_tmp6_ = string_substring (line, (glong) (equals_index + 1), (glong) -1);
#line 993 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 993 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 993 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 993 "../src/main.vala"
	_tmp10_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp9_);
#line 993 "../src/main.vala"
	_tmp11_ = _tmp10_;
#line 993 "../src/main.vala"
	_g_free0 (_tmp9_);
#line 993 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 993 "../src/main.vala"
	expression = _tmp11_;
#line 994 "../src/main.vala"
	_tmp13_ = variable_name;
#line 994 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp13_)) {
#line 994 "../src/main.vala"
		_tmp12_ = TRUE;
#line 11151 "main.c"
	} else {
		const gchar* _tmp14_;
#line 994 "../src/main.vala"
		_tmp14_ = expression;
#line 994 "../src/main.vala"
		_tmp12_ = !g_str_has_prefix (_tmp14_, "new ");
#line 11158 "main.c"
	}
#line 994 "../src/main.vala"
	if (_tmp12_) {
#line 995 "../src/main.vala"
		result = NULL;
#line 995 "../src/main.vala"
		_g_free0 (expression);
#line 995 "../src/main.vala"
		_g_free0 (variable_name);
#line 995 "../src/main.vala"
		return result;
#line 11170 "main.c"
	}
#line 998 "../src/main.vala"
	_tmp15_ = expression;
#line 998 "../src/main.vala"
	_tmp16_ = strlen ("new ");
#line 998 "../src/main.vala"
	_tmp17_ = _tmp16_;
#line 998 "../src/main.vala"
	_tmp18_ = string_substring (_tmp15_, (glong) _tmp17_, (glong) -1);
#line 998 "../src/main.vala"
	_tmp19_ = _tmp18_;
#line 998 "../src/main.vala"
	_tmp20_ = string_strip (_tmp19_);
#line 998 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 998 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 998 "../src/main.vala"
	class_call = _tmp21_;
#line 1000 "../src/main.vala"
	_tmp22_ = g_strdup ("");
#line 1000 "../src/main.vala"
	args = _tmp22_;
#line 1001 "../src/main.vala"
	_tmp23_ = class_call;
#line 1001 "../src/main.vala"
	open_index = string_index_of (_tmp23_, "(", 0);
#line 1002 "../src/main.vala"
	if (open_index >= 0) {
#line 11200 "main.c"
		const gchar* _tmp24_;
		const gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		const gchar* _tmp30_;
		const gchar* _tmp31_;
		gint _tmp32_;
		gint _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
#line 1003 "../src/main.vala"
		_tmp24_ = class_call;
#line 1003 "../src/main.vala"
		if (!g_str_has_suffix (_tmp24_, ")")) {
#line 11217 "main.c"
			GError* _tmp25_;
#line 1004 "../src/main.vala"
			_tmp25_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1004 "../src/main.vala"
			_inner_error0_ = _tmp25_;
#line 1004 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1004 "../src/main.vala"
			_g_free0 (args);
#line 1004 "../src/main.vala"
			_g_free0 (class_name);
#line 1004 "../src/main.vala"
			_g_free0 (class_call);
#line 1004 "../src/main.vala"
			_g_free0 (expression);
#line 1004 "../src/main.vala"
			_g_free0 (variable_name);
#line 1004 "../src/main.vala"
			return NULL;
#line 11237 "main.c"
		}
#line 1006 "../src/main.vala"
		_tmp26_ = class_call;
#line 1006 "../src/main.vala"
		_tmp27_ = string_substring (_tmp26_, (glong) 0, (glong) open_index);
#line 1006 "../src/main.vala"
		_tmp28_ = _tmp27_;
#line 1006 "../src/main.vala"
		_tmp29_ = string_strip (_tmp28_);
#line 1006 "../src/main.vala"
		_g_free0 (class_name);
#line 1006 "../src/main.vala"
		class_name = _tmp29_;
#line 1006 "../src/main.vala"
		_g_free0 (_tmp28_);
#line 1007 "../src/main.vala"
		_tmp30_ = class_call;
#line 1007 "../src/main.vala"
		_tmp31_ = class_call;
#line 1007 "../src/main.vala"
		_tmp32_ = strlen (_tmp31_);
#line 1007 "../src/main.vala"
		_tmp33_ = _tmp32_;
#line 1007 "../src/main.vala"
		_tmp34_ = string_substring (_tmp30_, (glong) (open_index + 1), (glong) ((_tmp33_ - open_index) - 2));
#line 1007 "../src/main.vala"
		_tmp35_ = _tmp34_;
#line 1007 "../src/main.vala"
		_tmp36_ = string_strip (_tmp35_);
#line 1007 "../src/main.vala"
		_g_free0 (args);
#line 1007 "../src/main.vala"
		args = _tmp36_;
#line 1007 "../src/main.vala"
		_g_free0 (_tmp35_);
#line 11273 "main.c"
	} else {
		const gchar* _tmp37_;
		gchar* _tmp38_;
#line 1009 "../src/main.vala"
		_tmp37_ = class_call;
#line 1009 "../src/main.vala"
		_tmp38_ = string_strip (_tmp37_);
#line 1009 "../src/main.vala"
		_g_free0 (class_name);
#line 1009 "../src/main.vala"
		class_name = _tmp38_;
#line 11285 "main.c"
	}
#line 1011 "../src/main.vala"
	_tmp40_ = class_name;
#line 1011 "../src/main.vala"
	if (!php_to_vala_transpiler_is_php_class_name (_tmp40_)) {
#line 1011 "../src/main.vala"
		_tmp39_ = TRUE;
#line 11293 "main.c"
	} else {
		const gchar* _tmp41_;
#line 1011 "../src/main.vala"
		_tmp41_ = args;
#line 1011 "../src/main.vala"
		_tmp39_ = g_strcmp0 (_tmp41_, "") != 0;
#line 11300 "main.c"
	}
#line 1011 "../src/main.vala"
	if (_tmp39_) {
#line 11304 "main.c"
		GError* _tmp42_;
#line 1012 "../src/main.vala"
		_tmp42_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1012 "../src/main.vala"
		_inner_error0_ = _tmp42_;
#line 1012 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1012 "../src/main.vala"
		_g_free0 (args);
#line 1012 "../src/main.vala"
		_g_free0 (class_name);
#line 1012 "../src/main.vala"
		_g_free0 (class_call);
#line 1012 "../src/main.vala"
		_g_free0 (expression);
#line 1012 "../src/main.vala"
		_g_free0 (variable_name);
#line 1012 "../src/main.vala"
		return NULL;
#line 11324 "main.c"
	}
#line 1015 "../src/main.vala"
	_tmp43_ = class_name;
#line 1015 "../src/main.vala"
	if (!php_to_vala_transpiler_class_exists_for_php2vala (self, _tmp43_)) {
#line 11330 "main.c"
		const gchar* _tmp44_;
		GError* _tmp45_;
#line 1016 "../src/main.vala"
		_tmp44_ = class_name;
#line 1016 "../src/main.vala"
		_tmp45_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, _tmp44_);
#line 1016 "../src/main.vala"
		_inner_error0_ = _tmp45_;
#line 1016 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1016 "../src/main.vala"
		_g_free0 (args);
#line 1016 "../src/main.vala"
		_g_free0 (class_name);
#line 1016 "../src/main.vala"
		_g_free0 (class_call);
#line 1016 "../src/main.vala"
		_g_free0 (expression);
#line 1016 "../src/main.vala"
		_g_free0 (variable_name);
#line 1016 "../src/main.vala"
		return NULL;
#line 11353 "main.c"
	}
#line 1019 "../src/main.vala"
	_tmp46_ = self->priv->object_class_names;
#line 1019 "../src/main.vala"
	_tmp47_ = variable_name;
#line 1019 "../src/main.vala"
	_tmp48_ = class_name;
#line 1019 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp46_, _tmp47_, _tmp48_);
#line 1020 "../src/main.vala"
	_tmp49_ = class_name;
#line 1020 "../src/main.vala"
	_tmp50_ = php_to_vala_transpiler_php_class_name_to_vala (_tmp49_);
#line 1020 "../src/main.vala"
	vala_class_name = _tmp50_;
#line 1021 "../src/main.vala"
	_tmp51_ = vala_class_name;
#line 1021 "../src/main.vala"
	_tmp52_ = string_to_string (_tmp51_);
#line 1021 "../src/main.vala"
	_tmp53_ = variable_name;
#line 1021 "../src/main.vala"
	_tmp54_ = string_to_string (_tmp53_);
#line 1021 "../src/main.vala"
	_tmp55_ = vala_class_name;
#line 1021 "../src/main.vala"
	_tmp56_ = string_to_string (_tmp55_);
#line 1021 "../src/main.vala"
	_tmp57_ = g_strconcat (_tmp52_, " ", _tmp54_, " = new ", _tmp56_, " ();", NULL);
#line 1021 "../src/main.vala"
	result = _tmp57_;
#line 1021 "../src/main.vala"
	_g_free0 (vala_class_name);
#line 1021 "../src/main.vala"
	_g_free0 (args);
#line 1021 "../src/main.vala"
	_g_free0 (class_name);
#line 1021 "../src/main.vala"
	_g_free0 (class_call);
#line 1021 "../src/main.vala"
	_g_free0 (expression);
#line 1021 "../src/main.vala"
	_g_free0 (variable_name);
#line 1021 "../src/main.vala"
	return result;
#line 11399 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_object_method_call (PhpToValaTranspiler* self,
                                                          const gchar* line,
                                                          gint php_line_number,
                                                          GError** error)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gint arrow_index = 0;
	gchar* variable_name = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* call = NULL;
	gint _tmp6_;
	gint _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gint open_index = 0;
	const gchar* _tmp12_;
	gboolean _tmp13_ = FALSE;
	gboolean _tmp14_ = FALSE;
	const gchar* _tmp15_;
	gchar* method_name = NULL;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* args = NULL;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	gint _tmp24_;
	gint _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	const gchar* _tmp30_;
	gchar* class_name = NULL;
	GeeHashMap* _tmp32_;
	const gchar* _tmp33_;
	gpointer _tmp34_;
	const gchar* _tmp35_;
	LocalFunction* method = NULL;
	const gchar* _tmp37_;
	const gchar* _tmp38_;
	LocalFunction* _tmp39_;
	gboolean _tmp40_ = FALSE;
	LocalFunction* _tmp41_;
	LocalFunction* _tmp51_;
	gchar* _tmp60_ = NULL;
	const gchar* _tmp61_;
	gchar* _tmp62_;
	const gchar* _tmp63_;
	const gchar* _tmp64_;
	const gchar* _tmp65_;
	const gchar* _tmp66_;
	const gchar* _tmp67_;
	gchar* _tmp68_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1024 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1024 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1025 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 1025 "../src/main.vala"
		_tmp1_ = TRUE;
#line 11475 "main.c"
	} else {
#line 1025 "../src/main.vala"
		_tmp1_ = string_index_of (line, "->", 0) < 0;
#line 11479 "main.c"
	}
#line 1025 "../src/main.vala"
	if (_tmp1_) {
#line 1025 "../src/main.vala"
		_tmp0_ = TRUE;
#line 11485 "main.c"
	} else {
#line 1025 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ");");
#line 11489 "main.c"
	}
#line 1025 "../src/main.vala"
	if (_tmp0_) {
#line 1026 "../src/main.vala"
		result = NULL;
#line 1026 "../src/main.vala"
		return result;
#line 11497 "main.c"
	}
#line 1029 "../src/main.vala"
	arrow_index = string_index_of (line, "->", 0);
#line 1030 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) 1, (glong) (arrow_index - 1));
#line 1030 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1030 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 1030 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 1030 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 1030 "../src/main.vala"
	variable_name = _tmp5_;
#line 1031 "../src/main.vala"
	_tmp6_ = strlen (line);
#line 1031 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 1031 "../src/main.vala"
	_tmp8_ = string_substring (line, (glong) (arrow_index + 2), (glong) ((_tmp7_ - arrow_index) - 3));
#line 1031 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 1031 "../src/main.vala"
	_tmp10_ = string_strip (_tmp9_);
#line 1031 "../src/main.vala"
	_tmp11_ = _tmp10_;
#line 1031 "../src/main.vala"
	_g_free0 (_tmp9_);
#line 1031 "../src/main.vala"
	call = _tmp11_;
#line 1032 "../src/main.vala"
	_tmp12_ = call;
#line 1032 "../src/main.vala"
	open_index = string_index_of (_tmp12_, "(", 0);
#line 1033 "../src/main.vala"
	_tmp15_ = variable_name;
#line 1033 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp15_)) {
#line 1033 "../src/main.vala"
		_tmp14_ = TRUE;
#line 11539 "main.c"
	} else {
#line 1033 "../src/main.vala"
		_tmp14_ = open_index < 0;
#line 11543 "main.c"
	}
#line 1033 "../src/main.vala"
	if (_tmp14_) {
#line 1033 "../src/main.vala"
		_tmp13_ = TRUE;
#line 11549 "main.c"
	} else {
		const gchar* _tmp16_;
#line 1033 "../src/main.vala"
		_tmp16_ = call;
#line 1033 "../src/main.vala"
		_tmp13_ = !g_str_has_suffix (_tmp16_, ")");
#line 11556 "main.c"
	}
#line 1033 "../src/main.vala"
	if (_tmp13_) {
#line 1034 "../src/main.vala"
		result = NULL;
#line 1034 "../src/main.vala"
		_g_free0 (call);
#line 1034 "../src/main.vala"
		_g_free0 (variable_name);
#line 1034 "../src/main.vala"
		return result;
#line 11568 "main.c"
	}
#line 1037 "../src/main.vala"
	_tmp17_ = call;
#line 1037 "../src/main.vala"
	_tmp18_ = string_substring (_tmp17_, (glong) 0, (glong) open_index);
#line 1037 "../src/main.vala"
	_tmp19_ = _tmp18_;
#line 1037 "../src/main.vala"
	_tmp20_ = string_strip (_tmp19_);
#line 1037 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 1037 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 1037 "../src/main.vala"
	method_name = _tmp21_;
#line 1038 "../src/main.vala"
	_tmp22_ = call;
#line 1038 "../src/main.vala"
	_tmp23_ = call;
#line 1038 "../src/main.vala"
	_tmp24_ = strlen (_tmp23_);
#line 1038 "../src/main.vala"
	_tmp25_ = _tmp24_;
#line 1038 "../src/main.vala"
	_tmp26_ = string_substring (_tmp22_, (glong) (open_index + 1), (glong) ((_tmp25_ - open_index) - 2));
#line 1038 "../src/main.vala"
	_tmp27_ = _tmp26_;
#line 1038 "../src/main.vala"
	_tmp28_ = string_strip (_tmp27_);
#line 1038 "../src/main.vala"
	_tmp29_ = _tmp28_;
#line 1038 "../src/main.vala"
	_g_free0 (_tmp27_);
#line 1038 "../src/main.vala"
	args = _tmp29_;
#line 1039 "../src/main.vala"
	_tmp30_ = method_name;
#line 1039 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp30_)) {
#line 11608 "main.c"
		GError* _tmp31_;
#line 1040 "../src/main.vala"
		_tmp31_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1040 "../src/main.vala"
		_inner_error0_ = _tmp31_;
#line 1040 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1040 "../src/main.vala"
		_g_free0 (args);
#line 1040 "../src/main.vala"
		_g_free0 (method_name);
#line 1040 "../src/main.vala"
		_g_free0 (call);
#line 1040 "../src/main.vala"
		_g_free0 (variable_name);
#line 1040 "../src/main.vala"
		return NULL;
#line 11626 "main.c"
	}
#line 1043 "../src/main.vala"
	_tmp32_ = self->priv->object_class_names;
#line 1043 "../src/main.vala"
	_tmp33_ = variable_name;
#line 1043 "../src/main.vala"
	_tmp34_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp32_, _tmp33_);
#line 1043 "../src/main.vala"
	class_name = (gchar*) _tmp34_;
#line 1044 "../src/main.vala"
	_tmp35_ = class_name;
#line 1044 "../src/main.vala"
	if (_tmp35_ == NULL) {
#line 11640 "main.c"
		GError* _tmp36_;
#line 1045 "../src/main.vala"
		_tmp36_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1045 "../src/main.vala"
		_inner_error0_ = _tmp36_;
#line 1045 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1045 "../src/main.vala"
		_g_free0 (class_name);
#line 1045 "../src/main.vala"
		_g_free0 (args);
#line 1045 "../src/main.vala"
		_g_free0 (method_name);
#line 1045 "../src/main.vala"
		_g_free0 (call);
#line 1045 "../src/main.vala"
		_g_free0 (variable_name);
#line 1045 "../src/main.vala"
		return NULL;
#line 11660 "main.c"
	}
#line 1048 "../src/main.vala"
	_tmp37_ = class_name;
#line 1048 "../src/main.vala"
	_tmp38_ = method_name;
#line 1048 "../src/main.vala"
	_tmp39_ = php_to_vala_transpiler_find_class_method (self, _tmp37_, _tmp38_);
#line 1048 "../src/main.vala"
	method = _tmp39_;
#line 1049 "../src/main.vala"
	_tmp41_ = method;
#line 1049 "../src/main.vala"
	if (_tmp41_ == NULL) {
#line 11674 "main.c"
		const gchar* _tmp42_;
#line 1049 "../src/main.vala"
		_tmp42_ = class_name;
#line 1049 "../src/main.vala"
		_tmp40_ = php_to_vala_transpiler_class_exists_for_php2vala (self, _tmp42_);
#line 11680 "main.c"
	} else {
#line 1049 "../src/main.vala"
		_tmp40_ = FALSE;
#line 11684 "main.c"
	}
#line 1049 "../src/main.vala"
	if (_tmp40_) {
#line 11688 "main.c"
		const gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		const gchar* _tmp46_;
		gchar* _tmp47_;
		gchar* _tmp48_;
		GError* _tmp49_;
		GError* _tmp50_;
#line 1050 "../src/main.vala"
		_tmp43_ = class_name;
#line 1050 "../src/main.vala"
		_tmp44_ = g_strconcat (_tmp43_, "::", NULL);
#line 1050 "../src/main.vala"
		_tmp45_ = _tmp44_;
#line 1050 "../src/main.vala"
		_tmp46_ = method_name;
#line 1050 "../src/main.vala"
		_tmp47_ = g_strconcat (_tmp45_, _tmp46_, NULL);
#line 1050 "../src/main.vala"
		_tmp48_ = _tmp47_;
#line 1050 "../src/main.vala"
		_tmp49_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, _tmp48_);
#line 1050 "../src/main.vala"
		_tmp50_ = _tmp49_;
#line 1050 "../src/main.vala"
		_g_free0 (_tmp48_);
#line 1050 "../src/main.vala"
		_g_free0 (_tmp45_);
#line 1050 "../src/main.vala"
		_inner_error0_ = _tmp50_;
#line 1050 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1050 "../src/main.vala"
		_g_object_unref0 (method);
#line 1050 "../src/main.vala"
		_g_free0 (class_name);
#line 1050 "../src/main.vala"
		_g_free0 (args);
#line 1050 "../src/main.vala"
		_g_free0 (method_name);
#line 1050 "../src/main.vala"
		_g_free0 (call);
#line 1050 "../src/main.vala"
		_g_free0 (variable_name);
#line 1050 "../src/main.vala"
		return NULL;
#line 11735 "main.c"
	}
#line 1052 "../src/main.vala"
	_tmp51_ = method;
#line 1052 "../src/main.vala"
	if (_tmp51_ != NULL) {
#line 11741 "main.c"
		LocalFunction* _tmp52_;
		const gchar* _tmp53_;
		const gchar* _tmp54_;
		gchar* _tmp55_;
		gchar* _tmp56_;
		const gchar* _tmp57_;
		gchar* _tmp58_;
		gchar* _tmp59_;
#line 1053 "../src/main.vala"
		_tmp52_ = method;
#line 1053 "../src/main.vala"
		_tmp53_ = args;
#line 1053 "../src/main.vala"
		_tmp54_ = class_name;
#line 1053 "../src/main.vala"
		_tmp55_ = g_strconcat (_tmp54_, "::", NULL);
#line 1053 "../src/main.vala"
		_tmp56_ = _tmp55_;
#line 1053 "../src/main.vala"
		_tmp57_ = method_name;
#line 1053 "../src/main.vala"
		_tmp58_ = g_strconcat (_tmp56_, _tmp57_, NULL);
#line 1053 "../src/main.vala"
		_tmp59_ = _tmp58_;
#line 1053 "../src/main.vala"
		php_to_vala_transpiler_validate_php_stub_argument_count (self, _tmp52_, _tmp53_, php_line_number, _tmp59_, &_inner_error0_);
#line 1053 "../src/main.vala"
		_g_free0 (_tmp59_);
#line 1053 "../src/main.vala"
		_g_free0 (_tmp56_);
#line 1053 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1053 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1053 "../src/main.vala"
			_g_object_unref0 (method);
#line 1053 "../src/main.vala"
			_g_free0 (class_name);
#line 1053 "../src/main.vala"
			_g_free0 (args);
#line 1053 "../src/main.vala"
			_g_free0 (method_name);
#line 1053 "../src/main.vala"
			_g_free0 (call);
#line 1053 "../src/main.vala"
			_g_free0 (variable_name);
#line 1053 "../src/main.vala"
			return NULL;
#line 11790 "main.c"
		}
	}
#line 1056 "../src/main.vala"
	_tmp61_ = args;
#line 1056 "../src/main.vala"
	_tmp62_ = php_to_vala_transpiler_convert_zval_argument_list (self, _tmp61_, php_line_number, &_inner_error0_);
#line 1056 "../src/main.vala"
	_tmp60_ = _tmp62_;
#line 1056 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1056 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1056 "../src/main.vala"
		_g_object_unref0 (method);
#line 1056 "../src/main.vala"
		_g_free0 (class_name);
#line 1056 "../src/main.vala"
		_g_free0 (args);
#line 1056 "../src/main.vala"
		_g_free0 (method_name);
#line 1056 "../src/main.vala"
		_g_free0 (call);
#line 1056 "../src/main.vala"
		_g_free0 (variable_name);
#line 1056 "../src/main.vala"
		return NULL;
#line 11817 "main.c"
	}
#line 1056 "../src/main.vala"
	_tmp63_ = variable_name;
#line 1056 "../src/main.vala"
	_tmp64_ = string_to_string (_tmp63_);
#line 1056 "../src/main.vala"
	_tmp65_ = method_name;
#line 1056 "../src/main.vala"
	_tmp66_ = string_to_string (_tmp65_);
#line 1056 "../src/main.vala"
	_tmp67_ = string_to_string (_tmp60_);
#line 1056 "../src/main.vala"
	_tmp68_ = g_strconcat (_tmp64_, ".", _tmp66_, " (", _tmp67_, ");", NULL);
#line 1056 "../src/main.vala"
	result = _tmp68_;
#line 1056 "../src/main.vala"
	_g_free0 (_tmp60_);
#line 1056 "../src/main.vala"
	_g_object_unref0 (method);
#line 1056 "../src/main.vala"
	_g_free0 (class_name);
#line 1056 "../src/main.vala"
	_g_free0 (args);
#line 1056 "../src/main.vala"
	_g_free0 (method_name);
#line 1056 "../src/main.vala"
	_g_free0 (call);
#line 1056 "../src/main.vala"
	_g_free0 (variable_name);
#line 1056 "../src/main.vala"
	return result;
#line 11849 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_static_method_call (PhpToValaTranspiler* self,
                                                          const gchar* line,
                                                          gint php_line_number,
                                                          GError** error)
{
	gint static_call_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* class_name = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* call = NULL;
	gint _tmp5_;
	gint _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gint open_index = 0;
	const gchar* _tmp11_;
	gboolean _tmp12_ = FALSE;
	gboolean _tmp13_ = FALSE;
	const gchar* _tmp14_;
	gchar* method_name = NULL;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* args = NULL;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	const gchar* _tmp29_;
	LocalFunction* method = NULL;
	const gchar* _tmp31_;
	const gchar* _tmp32_;
	LocalFunction* _tmp33_;
	const gchar* _tmp34_;
	gboolean _tmp37_ = FALSE;
	LocalFunction* _tmp38_;
	gboolean _tmp48_ = FALSE;
	LocalFunction* _tmp49_;
	LocalFunction* _tmp52_;
	gchar* _tmp61_ = NULL;
	const gchar* _tmp62_;
	gchar* _tmp63_;
	const gchar* _tmp64_;
	const gchar* _tmp65_;
	const gchar* _tmp66_;
	const gchar* _tmp67_;
	const gchar* _tmp68_;
	gchar* _tmp69_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1059 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1059 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1060 "../src/main.vala"
	static_call_index = string_index_of (line, "::", 0);
#line 1061 "../src/main.vala"
	if (static_call_index <= 0) {
#line 1061 "../src/main.vala"
		_tmp0_ = TRUE;
#line 11924 "main.c"
	} else {
#line 1061 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ");");
#line 11928 "main.c"
	}
#line 1061 "../src/main.vala"
	if (_tmp0_) {
#line 1062 "../src/main.vala"
		result = NULL;
#line 1062 "../src/main.vala"
		return result;
#line 11936 "main.c"
	}
#line 1065 "../src/main.vala"
	_tmp1_ = string_substring (line, (glong) 0, (glong) static_call_index);
#line 1065 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 1065 "../src/main.vala"
	_tmp3_ = string_strip (_tmp2_);
#line 1065 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 1065 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 1065 "../src/main.vala"
	class_name = _tmp4_;
#line 1066 "../src/main.vala"
	_tmp5_ = strlen (line);
#line 1066 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 1066 "../src/main.vala"
	_tmp7_ = string_substring (line, (glong) (static_call_index + 2), (glong) ((_tmp6_ - static_call_index) - 3));
#line 1066 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1066 "../src/main.vala"
	_tmp9_ = string_strip (_tmp8_);
#line 1066 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 1066 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 1066 "../src/main.vala"
	call = _tmp10_;
#line 1067 "../src/main.vala"
	_tmp11_ = call;
#line 1067 "../src/main.vala"
	open_index = string_index_of (_tmp11_, "(", 0);
#line 1068 "../src/main.vala"
	_tmp14_ = class_name;
#line 1068 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp14_)) {
#line 1068 "../src/main.vala"
		_tmp13_ = TRUE;
#line 11976 "main.c"
	} else {
#line 1068 "../src/main.vala"
		_tmp13_ = open_index < 0;
#line 11980 "main.c"
	}
#line 1068 "../src/main.vala"
	if (_tmp13_) {
#line 1068 "../src/main.vala"
		_tmp12_ = TRUE;
#line 11986 "main.c"
	} else {
		const gchar* _tmp15_;
#line 1068 "../src/main.vala"
		_tmp15_ = call;
#line 1068 "../src/main.vala"
		_tmp12_ = !g_str_has_suffix (_tmp15_, ")");
#line 11993 "main.c"
	}
#line 1068 "../src/main.vala"
	if (_tmp12_) {
#line 1069 "../src/main.vala"
		result = NULL;
#line 1069 "../src/main.vala"
		_g_free0 (call);
#line 1069 "../src/main.vala"
		_g_free0 (class_name);
#line 1069 "../src/main.vala"
		return result;
#line 12005 "main.c"
	}
#line 1072 "../src/main.vala"
	_tmp16_ = call;
#line 1072 "../src/main.vala"
	_tmp17_ = string_substring (_tmp16_, (glong) 0, (glong) open_index);
#line 1072 "../src/main.vala"
	_tmp18_ = _tmp17_;
#line 1072 "../src/main.vala"
	_tmp19_ = string_strip (_tmp18_);
#line 1072 "../src/main.vala"
	_tmp20_ = _tmp19_;
#line 1072 "../src/main.vala"
	_g_free0 (_tmp18_);
#line 1072 "../src/main.vala"
	method_name = _tmp20_;
#line 1073 "../src/main.vala"
	_tmp21_ = call;
#line 1073 "../src/main.vala"
	_tmp22_ = call;
#line 1073 "../src/main.vala"
	_tmp23_ = strlen (_tmp22_);
#line 1073 "../src/main.vala"
	_tmp24_ = _tmp23_;
#line 1073 "../src/main.vala"
	_tmp25_ = string_substring (_tmp21_, (glong) (open_index + 1), (glong) ((_tmp24_ - open_index) - 2));
#line 1073 "../src/main.vala"
	_tmp26_ = _tmp25_;
#line 1073 "../src/main.vala"
	_tmp27_ = string_strip (_tmp26_);
#line 1073 "../src/main.vala"
	_tmp28_ = _tmp27_;
#line 1073 "../src/main.vala"
	_g_free0 (_tmp26_);
#line 1073 "../src/main.vala"
	args = _tmp28_;
#line 1074 "../src/main.vala"
	_tmp29_ = method_name;
#line 1074 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp29_)) {
#line 12045 "main.c"
		GError* _tmp30_;
#line 1075 "../src/main.vala"
		_tmp30_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1075 "../src/main.vala"
		_inner_error0_ = _tmp30_;
#line 1075 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1075 "../src/main.vala"
		_g_free0 (args);
#line 1075 "../src/main.vala"
		_g_free0 (method_name);
#line 1075 "../src/main.vala"
		_g_free0 (call);
#line 1075 "../src/main.vala"
		_g_free0 (class_name);
#line 1075 "../src/main.vala"
		return NULL;
#line 12063 "main.c"
	}
#line 1078 "../src/main.vala"
	_tmp31_ = class_name;
#line 1078 "../src/main.vala"
	_tmp32_ = method_name;
#line 1078 "../src/main.vala"
	_tmp33_ = php_to_vala_transpiler_find_class_method (self, _tmp31_, _tmp32_);
#line 1078 "../src/main.vala"
	method = _tmp33_;
#line 1079 "../src/main.vala"
	_tmp34_ = class_name;
#line 1079 "../src/main.vala"
	if (!php_to_vala_transpiler_class_exists_for_php2vala (self, _tmp34_)) {
#line 12077 "main.c"
		const gchar* _tmp35_;
		GError* _tmp36_;
#line 1080 "../src/main.vala"
		_tmp35_ = class_name;
#line 1080 "../src/main.vala"
		_tmp36_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, _tmp35_);
#line 1080 "../src/main.vala"
		_inner_error0_ = _tmp36_;
#line 1080 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1080 "../src/main.vala"
		_g_object_unref0 (method);
#line 1080 "../src/main.vala"
		_g_free0 (args);
#line 1080 "../src/main.vala"
		_g_free0 (method_name);
#line 1080 "../src/main.vala"
		_g_free0 (call);
#line 1080 "../src/main.vala"
		_g_free0 (class_name);
#line 1080 "../src/main.vala"
		return NULL;
#line 12100 "main.c"
	}
#line 1082 "../src/main.vala"
	_tmp38_ = method;
#line 1082 "../src/main.vala"
	if (_tmp38_ == NULL) {
#line 12106 "main.c"
		const gchar* _tmp39_;
#line 1082 "../src/main.vala"
		_tmp39_ = class_name;
#line 1082 "../src/main.vala"
		_tmp37_ = php_to_vala_transpiler_class_exists_for_php2vala (self, _tmp39_);
#line 12112 "main.c"
	} else {
#line 1082 "../src/main.vala"
		_tmp37_ = FALSE;
#line 12116 "main.c"
	}
#line 1082 "../src/main.vala"
	if (_tmp37_) {
#line 12120 "main.c"
		const gchar* _tmp40_;
		gchar* _tmp41_;
		gchar* _tmp42_;
		const gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		GError* _tmp46_;
		GError* _tmp47_;
#line 1083 "../src/main.vala"
		_tmp40_ = class_name;
#line 1083 "../src/main.vala"
		_tmp41_ = g_strconcat (_tmp40_, "::", NULL);
#line 1083 "../src/main.vala"
		_tmp42_ = _tmp41_;
#line 1083 "../src/main.vala"
		_tmp43_ = method_name;
#line 1083 "../src/main.vala"
		_tmp44_ = g_strconcat (_tmp42_, _tmp43_, NULL);
#line 1083 "../src/main.vala"
		_tmp45_ = _tmp44_;
#line 1083 "../src/main.vala"
		_tmp46_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, _tmp45_);
#line 1083 "../src/main.vala"
		_tmp47_ = _tmp46_;
#line 1083 "../src/main.vala"
		_g_free0 (_tmp45_);
#line 1083 "../src/main.vala"
		_g_free0 (_tmp42_);
#line 1083 "../src/main.vala"
		_inner_error0_ = _tmp47_;
#line 1083 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1083 "../src/main.vala"
		_g_object_unref0 (method);
#line 1083 "../src/main.vala"
		_g_free0 (args);
#line 1083 "../src/main.vala"
		_g_free0 (method_name);
#line 1083 "../src/main.vala"
		_g_free0 (call);
#line 1083 "../src/main.vala"
		_g_free0 (class_name);
#line 1083 "../src/main.vala"
		return NULL;
#line 12165 "main.c"
	}
#line 1085 "../src/main.vala"
	_tmp49_ = method;
#line 1085 "../src/main.vala"
	if (_tmp49_ != NULL) {
#line 12171 "main.c"
		LocalFunction* _tmp50_;
#line 1085 "../src/main.vala"
		_tmp50_ = method;
#line 1085 "../src/main.vala"
		_tmp48_ = !_tmp50_->is_static;
#line 12177 "main.c"
	} else {
#line 1085 "../src/main.vala"
		_tmp48_ = FALSE;
#line 12181 "main.c"
	}
#line 1085 "../src/main.vala"
	if (_tmp48_) {
#line 12185 "main.c"
		GError* _tmp51_;
#line 1086 "../src/main.vala"
		_tmp51_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1086 "../src/main.vala"
		_inner_error0_ = _tmp51_;
#line 1086 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1086 "../src/main.vala"
		_g_object_unref0 (method);
#line 1086 "../src/main.vala"
		_g_free0 (args);
#line 1086 "../src/main.vala"
		_g_free0 (method_name);
#line 1086 "../src/main.vala"
		_g_free0 (call);
#line 1086 "../src/main.vala"
		_g_free0 (class_name);
#line 1086 "../src/main.vala"
		return NULL;
#line 12205 "main.c"
	}
#line 1088 "../src/main.vala"
	_tmp52_ = method;
#line 1088 "../src/main.vala"
	if (_tmp52_ != NULL) {
#line 12211 "main.c"
		LocalFunction* _tmp53_;
		const gchar* _tmp54_;
		const gchar* _tmp55_;
		gchar* _tmp56_;
		gchar* _tmp57_;
		const gchar* _tmp58_;
		gchar* _tmp59_;
		gchar* _tmp60_;
#line 1089 "../src/main.vala"
		_tmp53_ = method;
#line 1089 "../src/main.vala"
		_tmp54_ = args;
#line 1089 "../src/main.vala"
		_tmp55_ = class_name;
#line 1089 "../src/main.vala"
		_tmp56_ = g_strconcat (_tmp55_, "::", NULL);
#line 1089 "../src/main.vala"
		_tmp57_ = _tmp56_;
#line 1089 "../src/main.vala"
		_tmp58_ = method_name;
#line 1089 "../src/main.vala"
		_tmp59_ = g_strconcat (_tmp57_, _tmp58_, NULL);
#line 1089 "../src/main.vala"
		_tmp60_ = _tmp59_;
#line 1089 "../src/main.vala"
		php_to_vala_transpiler_validate_php_stub_argument_count (self, _tmp53_, _tmp54_, php_line_number, _tmp60_, &_inner_error0_);
#line 1089 "../src/main.vala"
		_g_free0 (_tmp60_);
#line 1089 "../src/main.vala"
		_g_free0 (_tmp57_);
#line 1089 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1089 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1089 "../src/main.vala"
			_g_object_unref0 (method);
#line 1089 "../src/main.vala"
			_g_free0 (args);
#line 1089 "../src/main.vala"
			_g_free0 (method_name);
#line 1089 "../src/main.vala"
			_g_free0 (call);
#line 1089 "../src/main.vala"
			_g_free0 (class_name);
#line 1089 "../src/main.vala"
			return NULL;
#line 12258 "main.c"
		}
	}
#line 1092 "../src/main.vala"
	_tmp62_ = args;
#line 1092 "../src/main.vala"
	_tmp63_ = php_to_vala_transpiler_convert_zval_argument_list (self, _tmp62_, php_line_number, &_inner_error0_);
#line 1092 "../src/main.vala"
	_tmp61_ = _tmp63_;
#line 1092 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1092 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1092 "../src/main.vala"
		_g_object_unref0 (method);
#line 1092 "../src/main.vala"
		_g_free0 (args);
#line 1092 "../src/main.vala"
		_g_free0 (method_name);
#line 1092 "../src/main.vala"
		_g_free0 (call);
#line 1092 "../src/main.vala"
		_g_free0 (class_name);
#line 1092 "../src/main.vala"
		return NULL;
#line 12283 "main.c"
	}
#line 1092 "../src/main.vala"
	_tmp64_ = class_name;
#line 1092 "../src/main.vala"
	_tmp65_ = string_to_string (_tmp64_);
#line 1092 "../src/main.vala"
	_tmp66_ = method_name;
#line 1092 "../src/main.vala"
	_tmp67_ = string_to_string (_tmp66_);
#line 1092 "../src/main.vala"
	_tmp68_ = string_to_string (_tmp61_);
#line 1092 "../src/main.vala"
	_tmp69_ = g_strconcat (_tmp65_, ".", _tmp67_, " (", _tmp68_, ");", NULL);
#line 1092 "../src/main.vala"
	result = _tmp69_;
#line 1092 "../src/main.vala"
	_g_free0 (_tmp61_);
#line 1092 "../src/main.vala"
	_g_object_unref0 (method);
#line 1092 "../src/main.vala"
	_g_free0 (args);
#line 1092 "../src/main.vala"
	_g_free0 (method_name);
#line 1092 "../src/main.vala"
	_g_free0 (call);
#line 1092 "../src/main.vala"
	_g_free0 (class_name);
#line 1092 "../src/main.vala"
	return result;
#line 12313 "main.c"
}

static LocalFunction*
php_to_vala_transpiler_find_class_method (PhpToValaTranspiler* self,
                                          const gchar* class_name,
                                          const gchar* method_name)
{
	PhpClass* php_class = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	PhpClass* _tmp2_;
	PhpClass* _tmp5_;
	LocalFunction* _tmp6_;
	LocalFunction* result;
#line 1095 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1095 "../src/main.vala"
	g_return_val_if_fail (class_name != NULL, NULL);
#line 1095 "../src/main.vala"
	g_return_val_if_fail (method_name != NULL, NULL);
#line 1096 "../src/main.vala"
	_tmp0_ = self->priv->php_classes;
#line 1096 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, class_name);
#line 1096 "../src/main.vala"
	php_class = (PhpClass*) _tmp1_;
#line 1097 "../src/main.vala"
	_tmp2_ = php_class;
#line 1097 "../src/main.vala"
	if (_tmp2_ == NULL) {
#line 12344 "main.c"
		GeeHashMap* _tmp3_;
		gpointer _tmp4_;
#line 1098 "../src/main.vala"
		_tmp3_ = self->priv->external_php_classes;
#line 1098 "../src/main.vala"
		_tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, class_name);
#line 1098 "../src/main.vala"
		_g_object_unref0 (php_class);
#line 1098 "../src/main.vala"
		php_class = (PhpClass*) _tmp4_;
#line 12355 "main.c"
	}
#line 1100 "../src/main.vala"
	_tmp5_ = php_class;
#line 1100 "../src/main.vala"
	_tmp6_ = php_to_vala_transpiler_find_class_method_in_class (self, _tmp5_, method_name);
#line 1100 "../src/main.vala"
	result = _tmp6_;
#line 1100 "../src/main.vala"
	_g_object_unref0 (php_class);
#line 1100 "../src/main.vala"
	return result;
#line 12367 "main.c"
}

static LocalFunction*
php_to_vala_transpiler_find_class_method_in_class (PhpToValaTranspiler* self,
                                                   PhpClass* php_class,
                                                   const gchar* method_name)
{
	const gchar* _tmp10_;
	LocalFunction* result;
#line 1103 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1103 "../src/main.vala"
	g_return_val_if_fail (method_name != NULL, NULL);
#line 1104 "../src/main.vala"
	if (php_class == NULL) {
#line 1105 "../src/main.vala"
		result = NULL;
#line 1105 "../src/main.vala"
		return result;
#line 12387 "main.c"
	}
	{
		GeeArrayList* _method_list = NULL;
		GeeArrayList* _tmp0_;
		gint _method_size = 0;
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _method_index = 0;
#line 1107 "../src/main.vala"
		_tmp0_ = php_class->methods;
#line 1107 "../src/main.vala"
		_method_list = _tmp0_;
#line 1107 "../src/main.vala"
		_tmp1_ = _method_list;
#line 1107 "../src/main.vala"
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 1107 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 1107 "../src/main.vala"
		_method_size = _tmp3_;
#line 1107 "../src/main.vala"
		_method_index = -1;
#line 1107 "../src/main.vala"
		while (TRUE) {
#line 12413 "main.c"
			gint _tmp4_;
			gint _tmp5_;
			LocalFunction* method = NULL;
			GeeArrayList* _tmp6_;
			gpointer _tmp7_;
			LocalFunction* _tmp8_;
			const gchar* _tmp9_;
#line 1107 "../src/main.vala"
			_method_index = _method_index + 1;
#line 1107 "../src/main.vala"
			_tmp4_ = _method_index;
#line 1107 "../src/main.vala"
			_tmp5_ = _method_size;
#line 1107 "../src/main.vala"
			if (!(_tmp4_ < _tmp5_)) {
#line 1107 "../src/main.vala"
				break;
#line 12431 "main.c"
			}
#line 1107 "../src/main.vala"
			_tmp6_ = _method_list;
#line 1107 "../src/main.vala"
			_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _method_index);
#line 1107 "../src/main.vala"
			method = (LocalFunction*) _tmp7_;
#line 1108 "../src/main.vala"
			_tmp8_ = method;
#line 1108 "../src/main.vala"
			_tmp9_ = _tmp8_->name;
#line 1108 "../src/main.vala"
			if (g_strcmp0 (_tmp9_, method_name) == 0) {
#line 1109 "../src/main.vala"
				result = method;
#line 1109 "../src/main.vala"
				return result;
#line 12449 "main.c"
			}
#line 1107 "../src/main.vala"
			_g_object_unref0 (method);
#line 12453 "main.c"
		}
	}
#line 1112 "../src/main.vala"
	_tmp10_ = php_class->extends_name;
#line 1112 "../src/main.vala"
	if (g_strcmp0 (_tmp10_, "") != 0) {
#line 12460 "main.c"
		PhpClass* parent = NULL;
		GeeHashMap* _tmp11_;
		const gchar* _tmp12_;
		gpointer _tmp13_;
		PhpClass* _tmp14_;
		PhpClass* _tmp18_;
		PhpClass* _tmp24_;
		LocalFunction* _tmp25_;
#line 1113 "../src/main.vala"
		_tmp11_ = self->priv->php_classes;
#line 1113 "../src/main.vala"
		_tmp12_ = php_class->extends_name;
#line 1113 "../src/main.vala"
		_tmp13_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp11_, _tmp12_);
#line 1113 "../src/main.vala"
		parent = (PhpClass*) _tmp13_;
#line 1114 "../src/main.vala"
		_tmp14_ = parent;
#line 1114 "../src/main.vala"
		if (_tmp14_ == NULL) {
#line 12481 "main.c"
			GeeHashMap* _tmp15_;
			const gchar* _tmp16_;
			gpointer _tmp17_;
#line 1115 "../src/main.vala"
			_tmp15_ = self->priv->external_php_classes;
#line 1115 "../src/main.vala"
			_tmp16_ = php_class->extends_name;
#line 1115 "../src/main.vala"
			_tmp17_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp15_, _tmp16_);
#line 1115 "../src/main.vala"
			_g_object_unref0 (parent);
#line 1115 "../src/main.vala"
			parent = (PhpClass*) _tmp17_;
#line 12495 "main.c"
		}
#line 1117 "../src/main.vala"
		_tmp18_ = parent;
#line 1117 "../src/main.vala"
		if (_tmp18_ == NULL) {
#line 12501 "main.c"
			GeeHashMap* _tmp19_;
			const gchar* _tmp20_;
			gchar* _tmp21_;
			gchar* _tmp22_;
			gpointer _tmp23_;
#line 1118 "../src/main.vala"
			_tmp19_ = self->priv->external_php_classes;
#line 1118 "../src/main.vala"
			_tmp20_ = php_class->extends_name;
#line 1118 "../src/main.vala"
			_tmp21_ = php_to_vala_transpiler_resolve_relative_php_class_name (self, php_class, _tmp20_);
#line 1118 "../src/main.vala"
			_tmp22_ = _tmp21_;
#line 1118 "../src/main.vala"
			_tmp23_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp19_, _tmp22_);
#line 1118 "../src/main.vala"
			_g_object_unref0 (parent);
#line 1118 "../src/main.vala"
			parent = (PhpClass*) _tmp23_;
#line 1118 "../src/main.vala"
			_g_free0 (_tmp22_);
#line 12523 "main.c"
		}
#line 1120 "../src/main.vala"
		_tmp24_ = parent;
#line 1120 "../src/main.vala"
		_tmp25_ = php_to_vala_transpiler_find_class_method_in_class (self, _tmp24_, method_name);
#line 1120 "../src/main.vala"
		result = _tmp25_;
#line 1120 "../src/main.vala"
		_g_object_unref0 (parent);
#line 1120 "../src/main.vala"
		return result;
#line 12535 "main.c"
	}
#line 1122 "../src/main.vala"
	result = NULL;
#line 1122 "../src/main.vala"
	return result;
#line 12541 "main.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 12565 "main.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 12573 "main.c"
	} else {
#line 1200 "glib-2.0.vapi"
		result = -1;
#line 1200 "glib-2.0.vapi"
		return result;
#line 12579 "main.c"
	}
}

static gchar*
php_to_vala_transpiler_resolve_relative_php_class_name (PhpToValaTranspiler* self,
                                                        PhpClass* php_class,
                                                        const gchar* relative_name)
{
	gchar* _tmp20_;
	gchar* result;
#line 1125 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1125 "../src/main.vala"
	g_return_val_if_fail (php_class != NULL, NULL);
#line 1125 "../src/main.vala"
	g_return_val_if_fail (relative_name != NULL, NULL);
#line 12596 "main.c"
	{
		GeeIterator* _key_it = NULL;
		GeeHashMap* _tmp0_;
		GeeSet* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeIterator* _tmp4_;
		GeeIterator* _tmp5_;
#line 1126 "../src/main.vala"
		_tmp0_ = self->priv->external_php_classes;
#line 1126 "../src/main.vala"
		_tmp1_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp0_);
#line 1126 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 1126 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 1126 "../src/main.vala"
		_tmp4_ = gee_iterable_iterator ((GeeIterable*) _tmp3_);
#line 1126 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 1126 "../src/main.vala"
		_g_object_unref0 (_tmp3_);
#line 1126 "../src/main.vala"
		_key_it = _tmp5_;
#line 1126 "../src/main.vala"
		while (TRUE) {
#line 12623 "main.c"
			GeeIterator* _tmp6_;
			gchar* key = NULL;
			GeeIterator* _tmp7_;
			gpointer _tmp8_;
			GeeHashMap* _tmp9_;
			const gchar* _tmp10_;
			gpointer _tmp11_;
			PhpClass* _tmp12_;
			gboolean _tmp13_;
#line 1126 "../src/main.vala"
			_tmp6_ = _key_it;
#line 1126 "../src/main.vala"
			if (!gee_iterator_next (_tmp6_)) {
#line 1126 "../src/main.vala"
				break;
#line 12639 "main.c"
			}
#line 1126 "../src/main.vala"
			_tmp7_ = _key_it;
#line 1126 "../src/main.vala"
			_tmp8_ = gee_iterator_get (_tmp7_);
#line 1126 "../src/main.vala"
			key = (gchar*) _tmp8_;
#line 1127 "../src/main.vala"
			_tmp9_ = self->priv->external_php_classes;
#line 1127 "../src/main.vala"
			_tmp10_ = key;
#line 1127 "../src/main.vala"
			_tmp11_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp9_, _tmp10_);
#line 1127 "../src/main.vala"
			_tmp12_ = (PhpClass*) _tmp11_;
#line 1127 "../src/main.vala"
			_tmp13_ = _tmp12_ == php_class;
#line 1127 "../src/main.vala"
			_g_object_unref0 (_tmp12_);
#line 1127 "../src/main.vala"
			if (_tmp13_) {
#line 12661 "main.c"
				gint slash = 0;
				const gchar* _tmp14_;
#line 1128 "../src/main.vala"
				_tmp14_ = key;
#line 1128 "../src/main.vala"
				slash = string_last_index_of (_tmp14_, "\\", 0);
#line 1129 "../src/main.vala"
				if (slash > 0) {
#line 12670 "main.c"
					const gchar* _tmp15_;
					gchar* _tmp16_;
					gchar* _tmp17_;
					gchar* _tmp18_;
					gchar* _tmp19_;
#line 1130 "../src/main.vala"
					_tmp15_ = key;
#line 1130 "../src/main.vala"
					_tmp16_ = string_substring (_tmp15_, (glong) 0, (glong) (slash + 1));
#line 1130 "../src/main.vala"
					_tmp17_ = _tmp16_;
#line 1130 "../src/main.vala"
					_tmp18_ = g_strconcat (_tmp17_, relative_name, NULL);
#line 1130 "../src/main.vala"
					_tmp19_ = _tmp18_;
#line 1130 "../src/main.vala"
					_g_free0 (_tmp17_);
#line 1130 "../src/main.vala"
					result = _tmp19_;
#line 1130 "../src/main.vala"
					_g_free0 (key);
#line 1130 "../src/main.vala"
					_g_object_unref0 (_key_it);
#line 1130 "../src/main.vala"
					return result;
#line 12696 "main.c"
				}
			}
#line 1126 "../src/main.vala"
			_g_free0 (key);
#line 12701 "main.c"
		}
#line 1126 "../src/main.vala"
		_g_object_unref0 (_key_it);
#line 12705 "main.c"
	}
#line 1134 "../src/main.vala"
	_tmp20_ = g_strdup (relative_name);
#line 1134 "../src/main.vala"
	result = _tmp20_;
#line 1134 "../src/main.vala"
	return result;
#line 12713 "main.c"
}

static gboolean
php_to_vala_transpiler_class_exists_for_php2vala (PhpToValaTranspiler* self,
                                                  const gchar* class_name)
{
	gboolean _tmp0_ = FALSE;
	GeeHashMap* _tmp1_;
	gboolean result;
#line 1137 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1137 "../src/main.vala"
	g_return_val_if_fail (class_name != NULL, FALSE);
#line 1138 "../src/main.vala"
	_tmp1_ = self->priv->php_classes;
#line 1138 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp1_, class_name)) {
#line 1138 "../src/main.vala"
		_tmp0_ = TRUE;
#line 12733 "main.c"
	} else {
		GeeHashMap* _tmp2_;
#line 1138 "../src/main.vala"
		_tmp2_ = self->priv->external_php_classes;
#line 1138 "../src/main.vala"
		_tmp0_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp2_, class_name);
#line 12740 "main.c"
	}
#line 1138 "../src/main.vala"
	result = _tmp0_;
#line 1138 "../src/main.vala"
	return result;
#line 12746 "main.c"
}

static gchar*
php_to_vala_transpiler_extract_php_namespace (const gchar* source)
{
	gchar** _tmp0_;
	gchar** _tmp1_;
	gchar* _tmp20_;
	gchar* result;
#line 1141 "../src/main.vala"
	g_return_val_if_fail (source != NULL, NULL);
#line 1142 "../src/main.vala"
	_tmp1_ = _tmp0_ = g_strsplit (source, "\n", 0);
#line 12760 "main.c"
	{
		gchar** raw_line_collection = NULL;
		gint raw_line_collection_length1 = 0;
		gint _raw_line_collection_size_ = 0;
		gint raw_line_it = 0;
#line 1142 "../src/main.vala"
		raw_line_collection = _tmp1_;
#line 1142 "../src/main.vala"
		raw_line_collection_length1 = _vala_array_length (_tmp0_);
#line 1142 "../src/main.vala"
		for (raw_line_it = 0; raw_line_it < raw_line_collection_length1; raw_line_it = raw_line_it + 1) {
#line 12772 "main.c"
			gchar* _tmp2_;
			gchar* raw_line = NULL;
#line 1142 "../src/main.vala"
			_tmp2_ = g_strdup (raw_line_collection[raw_line_it]);
#line 1142 "../src/main.vala"
			raw_line = _tmp2_;
#line 12779 "main.c"
			{
				gchar* line = NULL;
				const gchar* _tmp3_;
				gchar* _tmp4_;
				gboolean _tmp5_ = FALSE;
				const gchar* _tmp6_;
#line 1143 "../src/main.vala"
				_tmp3_ = raw_line;
#line 1143 "../src/main.vala"
				_tmp4_ = string_strip (_tmp3_);
#line 1143 "../src/main.vala"
				line = _tmp4_;
#line 1144 "../src/main.vala"
				_tmp6_ = line;
#line 1144 "../src/main.vala"
				if (g_str_has_prefix (_tmp6_, "namespace ")) {
#line 12796 "main.c"
					const gchar* _tmp7_;
#line 1144 "../src/main.vala"
					_tmp7_ = line;
#line 1144 "../src/main.vala"
					_tmp5_ = g_str_has_suffix (_tmp7_, ";");
#line 12802 "main.c"
				} else {
#line 1144 "../src/main.vala"
					_tmp5_ = FALSE;
#line 12806 "main.c"
				}
#line 1144 "../src/main.vala"
				if (_tmp5_) {
#line 12810 "main.c"
					const gchar* _tmp8_;
					gint _tmp9_;
					gint _tmp10_;
					const gchar* _tmp11_;
					gint _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
					gint _tmp15_;
					gchar* _tmp16_;
					gchar* _tmp17_;
					gchar* _tmp18_;
					gchar* _tmp19_;
#line 1145 "../src/main.vala"
					_tmp8_ = line;
#line 1145 "../src/main.vala"
					_tmp9_ = strlen ("namespace ");
#line 1145 "../src/main.vala"
					_tmp10_ = _tmp9_;
#line 1145 "../src/main.vala"
					_tmp11_ = line;
#line 1145 "../src/main.vala"
					_tmp12_ = strlen (_tmp11_);
#line 1145 "../src/main.vala"
					_tmp13_ = _tmp12_;
#line 1145 "../src/main.vala"
					_tmp14_ = strlen ("namespace ");
#line 1145 "../src/main.vala"
					_tmp15_ = _tmp14_;
#line 1145 "../src/main.vala"
					_tmp16_ = string_substring (_tmp8_, (glong) _tmp10_, (glong) ((_tmp13_ - _tmp15_) - 1));
#line 1145 "../src/main.vala"
					_tmp17_ = _tmp16_;
#line 1145 "../src/main.vala"
					_tmp18_ = string_strip (_tmp17_);
#line 1145 "../src/main.vala"
					_tmp19_ = _tmp18_;
#line 1145 "../src/main.vala"
					_g_free0 (_tmp17_);
#line 1145 "../src/main.vala"
					result = _tmp19_;
#line 1145 "../src/main.vala"
					_g_free0 (line);
#line 1145 "../src/main.vala"
					_g_free0 (raw_line);
#line 1145 "../src/main.vala"
					raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 1145 "../src/main.vala"
					return result;
#line 12859 "main.c"
				}
#line 1142 "../src/main.vala"
				_g_free0 (line);
#line 1142 "../src/main.vala"
				_g_free0 (raw_line);
#line 12865 "main.c"
			}
		}
#line 1142 "../src/main.vala"
		raw_line_collection = (_vala_array_free (raw_line_collection, raw_line_collection_length1, (GDestroyNotify) g_free), NULL);
#line 12870 "main.c"
	}
#line 1148 "../src/main.vala"
	_tmp20_ = g_strdup ("");
#line 1148 "../src/main.vala"
	result = _tmp20_;
#line 1148 "../src/main.vala"
	return result;
#line 12878 "main.c"
}

static gboolean
php_to_vala_transpiler_is_php_class_name (const gchar* class_name)
{
	gchar* _tmp0_ = NULL;
	gchar* clean = NULL;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gboolean result;
#line 1151 "../src/main.vala"
	g_return_val_if_fail (class_name != NULL, FALSE);
#line 1152 "../src/main.vala"
	if (g_str_has_prefix (class_name, "\\")) {
#line 12896 "main.c"
		gchar* _tmp1_;
#line 1152 "../src/main.vala"
		_tmp1_ = string_substring (class_name, (glong) 1, (glong) -1);
#line 1152 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1152 "../src/main.vala"
		_tmp0_ = _tmp1_;
#line 12904 "main.c"
	} else {
		gchar* _tmp2_;
#line 1152 "../src/main.vala"
		_tmp2_ = g_strdup (class_name);
#line 1152 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1152 "../src/main.vala"
		_tmp0_ = _tmp2_;
#line 12913 "main.c"
	}
#line 1152 "../src/main.vala"
	_tmp3_ = _tmp0_;
#line 1152 "../src/main.vala"
	_tmp0_ = NULL;
#line 1152 "../src/main.vala"
	clean = _tmp3_;
#line 1153 "../src/main.vala"
	_tmp4_ = clean;
#line 1153 "../src/main.vala"
	if (g_strcmp0 (_tmp4_, "") == 0) {
#line 1154 "../src/main.vala"
		result = FALSE;
#line 1154 "../src/main.vala"
		_g_free0 (clean);
#line 1154 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1154 "../src/main.vala"
		return result;
#line 12933 "main.c"
	}
#line 1156 "../src/main.vala"
	_tmp5_ = clean;
#line 1156 "../src/main.vala"
	_tmp7_ = _tmp6_ = g_strsplit (_tmp5_, "\\", 0);
#line 12939 "main.c"
	{
		gchar** part_collection = NULL;
		gint part_collection_length1 = 0;
		gint _part_collection_size_ = 0;
		gint part_it = 0;
#line 1156 "../src/main.vala"
		part_collection = _tmp7_;
#line 1156 "../src/main.vala"
		part_collection_length1 = _vala_array_length (_tmp6_);
#line 1156 "../src/main.vala"
		for (part_it = 0; part_it < part_collection_length1; part_it = part_it + 1) {
#line 12951 "main.c"
			gchar* _tmp8_;
			gchar* part = NULL;
#line 1156 "../src/main.vala"
			_tmp8_ = g_strdup (part_collection[part_it]);
#line 1156 "../src/main.vala"
			part = _tmp8_;
#line 12958 "main.c"
			{
				const gchar* _tmp9_;
#line 1157 "../src/main.vala"
				_tmp9_ = part;
#line 1157 "../src/main.vala"
				if (!php_to_vala_transpiler_is_identifier (_tmp9_)) {
#line 1158 "../src/main.vala"
					result = FALSE;
#line 1158 "../src/main.vala"
					_g_free0 (part);
#line 1158 "../src/main.vala"
					part_collection = (_vala_array_free (part_collection, part_collection_length1, (GDestroyNotify) g_free), NULL);
#line 1158 "../src/main.vala"
					_g_free0 (clean);
#line 1158 "../src/main.vala"
					_g_free0 (_tmp0_);
#line 1158 "../src/main.vala"
					return result;
#line 12977 "main.c"
				}
#line 1156 "../src/main.vala"
				_g_free0 (part);
#line 12981 "main.c"
			}
		}
#line 1156 "../src/main.vala"
		part_collection = (_vala_array_free (part_collection, part_collection_length1, (GDestroyNotify) g_free), NULL);
#line 12986 "main.c"
	}
#line 1161 "../src/main.vala"
	result = TRUE;
#line 1161 "../src/main.vala"
	_g_free0 (clean);
#line 1161 "../src/main.vala"
	_g_free0 (_tmp0_);
#line 1161 "../src/main.vala"
	return result;
#line 12996 "main.c"
}

static gchar*
php_to_vala_transpiler_php_class_name_to_vala (const gchar* class_name)
{
	gchar* _tmp0_ = NULL;
	gchar* _tmp3_;
	gchar* result;
#line 1164 "../src/main.vala"
	g_return_val_if_fail (class_name != NULL, NULL);
#line 1165 "../src/main.vala"
	if (g_str_has_prefix (class_name, "\\")) {
#line 13009 "main.c"
		gchar* _tmp1_;
#line 1165 "../src/main.vala"
		_tmp1_ = string_substring (class_name, (glong) 1, (glong) -1);
#line 1165 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1165 "../src/main.vala"
		_tmp0_ = _tmp1_;
#line 13017 "main.c"
	} else {
		gchar* _tmp2_;
#line 1165 "../src/main.vala"
		_tmp2_ = g_strdup (class_name);
#line 1165 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1165 "../src/main.vala"
		_tmp0_ = _tmp2_;
#line 13026 "main.c"
	}
#line 1165 "../src/main.vala"
	_tmp3_ = string_replace (_tmp0_, "\\", ".");
#line 1165 "../src/main.vala"
	result = _tmp3_;
#line 1165 "../src/main.vala"
	_g_free0 (_tmp0_);
#line 1165 "../src/main.vala"
	return result;
#line 13036 "main.c"
}

static void
php_to_vala_transpiler_validate_php_stub_argument_count (PhpToValaTranspiler* self,
                                                         LocalFunction* callable,
                                                         const gchar* args,
                                                         gint php_line_number,
                                                         const gchar* callable_name,
                                                         GError** error)
{
	gint _tmp0_ = 0;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	gint provided = 0;
	gint min_args = 0;
	gint max_args = 0;
	GeeArrayList* _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	gboolean _tmp22_ = FALSE;
	GError* _inner_error0_ = NULL;
#line 1168 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 1168 "../src/main.vala"
	g_return_if_fail (callable != NULL);
#line 1168 "../src/main.vala"
	g_return_if_fail (args != NULL);
#line 1168 "../src/main.vala"
	g_return_if_fail (callable_name != NULL);
#line 1169 "../src/main.vala"
	_tmp1_ = string_strip (args);
#line 1169 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 1169 "../src/main.vala"
	_tmp3_ = g_strcmp0 (_tmp2_, "") == 0;
#line 1169 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 1169 "../src/main.vala"
	if (_tmp3_) {
#line 1169 "../src/main.vala"
		_tmp0_ = 0;
#line 13079 "main.c"
	} else {
		GeeArrayList* _tmp4_;
		GeeArrayList* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
#line 1169 "../src/main.vala"
		_tmp4_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1169 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 1169 "../src/main.vala"
		_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
#line 1169 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 1169 "../src/main.vala"
		_tmp0_ = _tmp7_;
#line 1169 "../src/main.vala"
		_g_object_unref0 (_tmp5_);
#line 13097 "main.c"
	}
#line 1169 "../src/main.vala"
	provided = _tmp0_;
#line 1170 "../src/main.vala"
	min_args = 0;
#line 13103 "main.c"
	{
		GeeArrayList* _parameter_list = NULL;
		GeeArrayList* _tmp8_;
		gint _parameter_size = 0;
		GeeArrayList* _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		gint _parameter_index = 0;
#line 1171 "../src/main.vala"
		_tmp8_ = callable->parameters;
#line 1171 "../src/main.vala"
		_parameter_list = _tmp8_;
#line 1171 "../src/main.vala"
		_tmp9_ = _parameter_list;
#line 1171 "../src/main.vala"
		_tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
#line 1171 "../src/main.vala"
		_tmp11_ = _tmp10_;
#line 1171 "../src/main.vala"
		_parameter_size = _tmp11_;
#line 1171 "../src/main.vala"
		_parameter_index = -1;
#line 1171 "../src/main.vala"
		while (TRUE) {
#line 13128 "main.c"
			gint _tmp12_;
			gint _tmp13_;
			LocalParameter* parameter = NULL;
			GeeArrayList* _tmp14_;
			gpointer _tmp15_;
			LocalParameter* _tmp16_;
			const gchar* _tmp17_;
#line 1171 "../src/main.vala"
			_parameter_index = _parameter_index + 1;
#line 1171 "../src/main.vala"
			_tmp12_ = _parameter_index;
#line 1171 "../src/main.vala"
			_tmp13_ = _parameter_size;
#line 1171 "../src/main.vala"
			if (!(_tmp12_ < _tmp13_)) {
#line 1171 "../src/main.vala"
				break;
#line 13146 "main.c"
			}
#line 1171 "../src/main.vala"
			_tmp14_ = _parameter_list;
#line 1171 "../src/main.vala"
			_tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, _parameter_index);
#line 1171 "../src/main.vala"
			parameter = (LocalParameter*) _tmp15_;
#line 1172 "../src/main.vala"
			_tmp16_ = parameter;
#line 1172 "../src/main.vala"
			_tmp17_ = _tmp16_->default_value;
#line 1172 "../src/main.vala"
			if (_tmp17_ == NULL) {
#line 13160 "main.c"
				gint _tmp18_;
#line 1173 "../src/main.vala"
				_tmp18_ = min_args;
#line 1173 "../src/main.vala"
				min_args = _tmp18_ + 1;
#line 13166 "main.c"
			}
#line 1171 "../src/main.vala"
			_g_object_unref0 (parameter);
#line 13170 "main.c"
		}
	}
#line 1176 "../src/main.vala"
	_tmp19_ = callable->parameters;
#line 1176 "../src/main.vala"
	_tmp20_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp19_);
#line 1176 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 1176 "../src/main.vala"
	max_args = _tmp21_;
#line 1177 "../src/main.vala"
	if (provided < min_args) {
#line 1177 "../src/main.vala"
		_tmp22_ = TRUE;
#line 13185 "main.c"
	} else {
#line 1177 "../src/main.vala"
		_tmp22_ = provided > max_args;
#line 13189 "main.c"
	}
#line 1177 "../src/main.vala"
	if (_tmp22_) {
#line 13193 "main.c"
		gchar* _tmp23_;
		gchar* _tmp24_;
		GError* _tmp25_;
		GError* _tmp26_;
#line 1178 "../src/main.vala"
		_tmp23_ = php_to_vala_transpiler_source_file_for_line (self, php_line_number);
#line 1178 "../src/main.vala"
		_tmp24_ = _tmp23_;
#line 1178 "../src/main.vala"
		_tmp25_ = g_error_new (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Invalid argument count for '%s' at %s:%d: expected %d..%d, got %d", callable_name, _tmp24_, php_to_vala_transpiler_source_original_line_for_line (self, php_line_number), min_args, max_args, provided);
#line 1178 "../src/main.vala"
		_tmp26_ = _tmp25_;
#line 1178 "../src/main.vala"
		_g_free0 (_tmp24_);
#line 1178 "../src/main.vala"
		_inner_error0_ = _tmp26_;
#line 1178 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1178 "../src/main.vala"
		return;
#line 13214 "main.c"
	}
}

static gchar*
php_to_vala_transpiler_transpile_zval_variable_function_call (PhpToValaTranspiler* self,
                                                              const gchar* line,
                                                              gint php_line_number,
                                                              GError** error)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gchar* variable_name = NULL;
	gint _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_ = NULL;
	const gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1190 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1190 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1191 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 1191 "../src/main.vala"
		_tmp2_ = TRUE;
#line 13250 "main.c"
	} else {
#line 1191 "../src/main.vala"
		_tmp2_ = !g_str_has_suffix (line, "();");
#line 13254 "main.c"
	}
#line 1191 "../src/main.vala"
	if (_tmp2_) {
#line 1191 "../src/main.vala"
		_tmp1_ = TRUE;
#line 13260 "main.c"
	} else {
#line 1191 "../src/main.vala"
		_tmp1_ = string_index_of (line, "->", 0) >= 0;
#line 13264 "main.c"
	}
#line 1191 "../src/main.vala"
	if (_tmp1_) {
#line 1191 "../src/main.vala"
		_tmp0_ = TRUE;
#line 13270 "main.c"
	} else {
#line 1191 "../src/main.vala"
		_tmp0_ = string_index_of (line, "=", 0) >= 0;
#line 13274 "main.c"
	}
#line 1191 "../src/main.vala"
	if (_tmp0_) {
#line 1192 "../src/main.vala"
		result = NULL;
#line 1192 "../src/main.vala"
		return result;
#line 13282 "main.c"
	}
#line 1195 "../src/main.vala"
	_tmp3_ = strlen (line);
#line 1195 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 1195 "../src/main.vala"
	_tmp5_ = strlen ("();");
#line 1195 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 1195 "../src/main.vala"
	_tmp7_ = string_substring (line, (glong) 1, (glong) ((_tmp4_ - 1) - _tmp6_));
#line 1195 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1195 "../src/main.vala"
	_tmp9_ = string_strip (_tmp8_);
#line 1195 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 1195 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 1195 "../src/main.vala"
	variable_name = _tmp10_;
#line 1196 "../src/main.vala"
	_tmp12_ = variable_name;
#line 1196 "../src/main.vala"
	_tmp13_ = php_to_vala_transpiler_build_zval_dynamic_function_dispatch (self, _tmp12_, php_line_number, line, &_inner_error0_);
#line 1196 "../src/main.vala"
	_tmp11_ = _tmp13_;
#line 1196 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1196 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1196 "../src/main.vala"
		_g_free0 (variable_name);
#line 1196 "../src/main.vala"
		return NULL;
#line 13318 "main.c"
	}
#line 1196 "../src/main.vala"
	_tmp14_ = _tmp11_;
#line 1196 "../src/main.vala"
	_tmp11_ = NULL;
#line 1196 "../src/main.vala"
	result = _tmp14_;
#line 1196 "../src/main.vala"
	_g_free0 (_tmp11_);
#line 1196 "../src/main.vala"
	_g_free0 (variable_name);
#line 1196 "../src/main.vala"
	return result;
#line 13332 "main.c"
}

static gchar*
php_to_vala_transpiler_build_zval_dynamic_function_dispatch (PhpToValaTranspiler* self,
                                                             const gchar* variable_name,
                                                             gint php_line_number,
                                                             const gchar* source_line,
                                                             GError** error)
{
	GString* output = NULL;
	GString* _tmp1_;
	gchar* selector = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gboolean first = FALSE;
	GString* _tmp30_;
	GString* _tmp31_;
	const gchar* _tmp32_;
	gchar* _tmp33_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1199 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1199 "../src/main.vala"
	g_return_val_if_fail (variable_name != NULL, NULL);
#line 1199 "../src/main.vala"
	g_return_val_if_fail (source_line != NULL, NULL);
#line 1200 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (variable_name)) {
#line 13364 "main.c"
		GError* _tmp0_;
#line 1201 "../src/main.vala"
		_tmp0_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, source_line);
#line 1201 "../src/main.vala"
		_inner_error0_ = _tmp0_;
#line 1201 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1201 "../src/main.vala"
		return NULL;
#line 13374 "main.c"
	}
#line 1204 "../src/main.vala"
	_tmp1_ = g_string_new ("");
#line 1204 "../src/main.vala"
	output = _tmp1_;
#line 1205 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_replace_php_variables (variable_name);
#line 1205 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1205 "../src/main.vala"
	_tmp4_ = g_strdup_printf ("Php.zval_to_string (%s)", _tmp3_);
#line 1205 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 1205 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 1205 "../src/main.vala"
	selector = _tmp5_;
#line 1206 "../src/main.vala"
	first = TRUE;
#line 13394 "main.c"
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp6_;
		GeeSet* _tmp7_;
		GeeSet* _tmp8_;
		GeeSet* _tmp9_;
		GeeIterator* _tmp10_;
		GeeIterator* _tmp11_;
#line 1207 "../src/main.vala"
		_tmp6_ = self->local_functions;
#line 1207 "../src/main.vala"
		_tmp7_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp6_);
#line 1207 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 1207 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 1207 "../src/main.vala"
		_tmp10_ = gee_iterable_iterator ((GeeIterable*) _tmp9_);
#line 1207 "../src/main.vala"
		_tmp11_ = _tmp10_;
#line 1207 "../src/main.vala"
		_g_object_unref0 (_tmp9_);
#line 1207 "../src/main.vala"
		_function_name_it = _tmp11_;
#line 1207 "../src/main.vala"
		while (TRUE) {
#line 13421 "main.c"
			GeeIterator* _tmp12_;
			gchar* function_name = NULL;
			GeeIterator* _tmp13_;
			gpointer _tmp14_;
			LocalFunction* local_function = NULL;
			GeeHashMap* _tmp15_;
			const gchar* _tmp16_;
			gpointer _tmp17_;
			gboolean _tmp18_ = FALSE;
			LocalFunction* _tmp19_;
			const gchar* _tmp24_ = NULL;
			GString* _tmp25_;
			const gchar* _tmp26_;
			const gchar* _tmp27_;
			const gchar* _tmp28_;
#line 1207 "../src/main.vala"
			_tmp12_ = _function_name_it;
#line 1207 "../src/main.vala"
			if (!gee_iterator_next (_tmp12_)) {
#line 1207 "../src/main.vala"
				break;
#line 13443 "main.c"
			}
#line 1207 "../src/main.vala"
			_tmp13_ = _function_name_it;
#line 1207 "../src/main.vala"
			_tmp14_ = gee_iterator_get (_tmp13_);
#line 1207 "../src/main.vala"
			function_name = (gchar*) _tmp14_;
#line 1208 "../src/main.vala"
			_tmp15_ = self->local_functions;
#line 1208 "../src/main.vala"
			_tmp16_ = function_name;
#line 1208 "../src/main.vala"
			_tmp17_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp15_, _tmp16_);
#line 1208 "../src/main.vala"
			local_function = (LocalFunction*) _tmp17_;
#line 1209 "../src/main.vala"
			_tmp19_ = local_function;
#line 1209 "../src/main.vala"
			if (_tmp19_ == NULL) {
#line 1209 "../src/main.vala"
				_tmp18_ = TRUE;
#line 13465 "main.c"
			} else {
				LocalFunction* _tmp20_;
				GeeArrayList* _tmp21_;
				gint _tmp22_;
				gint _tmp23_;
#line 1209 "../src/main.vala"
				_tmp20_ = local_function;
#line 1209 "../src/main.vala"
				_tmp21_ = _tmp20_->parameters;
#line 1209 "../src/main.vala"
				_tmp22_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp21_);
#line 1209 "../src/main.vala"
				_tmp23_ = _tmp22_;
#line 1209 "../src/main.vala"
				_tmp18_ = _tmp23_ != 0;
#line 13481 "main.c"
			}
#line 1209 "../src/main.vala"
			if (_tmp18_) {
#line 1210 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1210 "../src/main.vala"
				_g_free0 (function_name);
#line 1210 "../src/main.vala"
				continue;
#line 13491 "main.c"
			}
#line 1214 "../src/main.vala"
			if (first) {
#line 1214 "../src/main.vala"
				_tmp24_ = "if";
#line 13497 "main.c"
			} else {
#line 1214 "../src/main.vala"
				_tmp24_ = "else if";
#line 13501 "main.c"
			}
#line 1212 "../src/main.vala"
			_tmp25_ = output;
#line 1212 "../src/main.vala"
			_tmp26_ = selector;
#line 1212 "../src/main.vala"
			_tmp27_ = function_name;
#line 1212 "../src/main.vala"
			_tmp28_ = function_name;
#line 1212 "../src/main.vala"
			g_string_append_printf (_tmp25_, "%s (%s == \"%s\") { %s (); }", _tmp24_, _tmp26_, _tmp27_, _tmp28_);
#line 1219 "../src/main.vala"
			first = FALSE;
#line 1207 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 1207 "../src/main.vala"
			_g_free0 (function_name);
#line 13519 "main.c"
		}
#line 1207 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 13523 "main.c"
	}
#line 1222 "../src/main.vala"
	if (first) {
#line 13527 "main.c"
		GError* _tmp29_;
#line 1223 "../src/main.vala"
		_tmp29_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, source_line);
#line 1223 "../src/main.vala"
		_inner_error0_ = _tmp29_;
#line 1223 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1223 "../src/main.vala"
		_g_free0 (selector);
#line 1223 "../src/main.vala"
		_g_string_free0 (output);
#line 1223 "../src/main.vala"
		return NULL;
#line 13541 "main.c"
	}
#line 1226 "../src/main.vala"
	_tmp30_ = output;
#line 1226 "../src/main.vala"
	g_string_append (_tmp30_, " else { }");
#line 1227 "../src/main.vala"
	_tmp31_ = output;
#line 1227 "../src/main.vala"
	_tmp32_ = _tmp31_->str;
#line 1227 "../src/main.vala"
	_tmp33_ = g_strdup (_tmp32_);
#line 1227 "../src/main.vala"
	result = _tmp33_;
#line 1227 "../src/main.vala"
	_g_free0 (selector);
#line 1227 "../src/main.vala"
	_g_string_free0 (output);
#line 1227 "../src/main.vala"
	return result;
#line 13561 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_for_init (PhpToValaTranspiler* self,
                                              const gchar* expression,
                                              gint php_line_number,
                                              GError** error)
{
	gint equals_index = 0;
	gchar* _tmp17_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1230 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1230 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1231 "../src/main.vala"
	equals_index = string_index_of (expression, "=", 0);
#line 1232 "../src/main.vala"
	if (equals_index > 0) {
#line 13582 "main.c"
		gchar* name = NULL;
		gchar* _tmp0_;
		gchar* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* value = NULL;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		GeeHashMap* _tmp10_;
		const gchar* _tmp11_;
		gchar* _tmp12_ = NULL;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
#line 1233 "../src/main.vala"
		_tmp0_ = string_substring (expression, (glong) 0, (glong) equals_index);
#line 1233 "../src/main.vala"
		_tmp1_ = _tmp0_;
#line 1233 "../src/main.vala"
		_tmp2_ = string_strip (_tmp1_);
#line 1233 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 1233 "../src/main.vala"
		_tmp4_ = php_to_vala_transpiler_replace_php_variables (_tmp3_);
#line 1233 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 1233 "../src/main.vala"
		_g_free0 (_tmp3_);
#line 1233 "../src/main.vala"
		_g_free0 (_tmp1_);
#line 1233 "../src/main.vala"
		name = _tmp5_;
#line 1234 "../src/main.vala"
		_tmp6_ = string_substring (expression, (glong) (equals_index + 1), (glong) -1);
#line 1234 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 1234 "../src/main.vala"
		_tmp8_ = string_strip (_tmp7_);
#line 1234 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 1234 "../src/main.vala"
		_g_free0 (_tmp7_);
#line 1234 "../src/main.vala"
		value = _tmp9_;
#line 1235 "../src/main.vala"
		_tmp10_ = self->variable_types;
#line 1235 "../src/main.vala"
		_tmp11_ = name;
#line 1235 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp10_, _tmp11_, "int");
#line 1236 "../src/main.vala"
		_tmp13_ = value;
#line 1236 "../src/main.vala"
		_tmp14_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp13_, php_line_number, &_inner_error0_);
#line 1236 "../src/main.vala"
		_tmp12_ = _tmp14_;
#line 1236 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1236 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1236 "../src/main.vala"
			_g_free0 (value);
#line 1236 "../src/main.vala"
			_g_free0 (name);
#line 1236 "../src/main.vala"
			return NULL;
#line 13654 "main.c"
		}
#line 1236 "../src/main.vala"
		_tmp15_ = name;
#line 1236 "../src/main.vala"
		_tmp16_ = g_strdup_printf ("int %s = Php.zval_to_int (%s)", _tmp15_, _tmp12_);
#line 1236 "../src/main.vala"
		result = _tmp16_;
#line 1236 "../src/main.vala"
		_g_free0 (_tmp12_);
#line 1236 "../src/main.vala"
		_g_free0 (value);
#line 1236 "../src/main.vala"
		_g_free0 (name);
#line 1236 "../src/main.vala"
		return result;
#line 13670 "main.c"
	}
#line 1238 "../src/main.vala"
	_tmp17_ = g_strdup (expression);
#line 1238 "../src/main.vala"
	result = _tmp17_;
#line 1238 "../src/main.vala"
	return result;
#line 13678 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_for_increment (PhpToValaTranspiler* self,
                                                   const gchar* expression,
                                                   gint php_line_number,
                                                   GError** error)
{
	gchar* converted = NULL;
	gchar* _tmp0_;
	gchar* result;
#line 1241 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1241 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1242 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_replace_php_variables (expression);
#line 1242 "../src/main.vala"
	converted = _tmp0_;
#line 1243 "../src/main.vala"
	result = converted;
#line 1243 "../src/main.vala"
	return result;
#line 13702 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_increment (PhpToValaTranspiler* self,
                                                 const gchar* line,
                                                 gint php_line_number,
                                                 GError** error)
{
	gboolean _tmp0_ = FALSE;
	gchar* name = NULL;
	gint _tmp1_;
	gint _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	GeeHashMap* _tmp12_;
	const gchar* _tmp13_;
	const gchar* _tmp23_ = NULL;
	gchar* helper = NULL;
	gchar* _tmp24_;
	const gchar* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	gchar* _tmp31_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1246 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1246 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1247 "../src/main.vala"
	if (!g_str_has_suffix (line, "++;")) {
#line 1247 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, "--;");
#line 13745 "main.c"
	} else {
#line 1247 "../src/main.vala"
		_tmp0_ = FALSE;
#line 13749 "main.c"
	}
#line 1247 "../src/main.vala"
	if (_tmp0_) {
#line 1248 "../src/main.vala"
		result = NULL;
#line 1248 "../src/main.vala"
		return result;
#line 13757 "main.c"
	}
#line 1250 "../src/main.vala"
	_tmp1_ = strlen (line);
#line 1250 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 1250 "../src/main.vala"
	_tmp3_ = string_substring (line, (glong) 0, (glong) (_tmp2_ - 3));
#line 1250 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 1250 "../src/main.vala"
	_tmp5_ = string_strip (_tmp4_);
#line 1250 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 1250 "../src/main.vala"
	_g_free0 (_tmp4_);
#line 1250 "../src/main.vala"
	name = _tmp6_;
#line 1251 "../src/main.vala"
	_tmp7_ = name;
#line 1251 "../src/main.vala"
	if (!g_str_has_prefix (_tmp7_, "$")) {
#line 1252 "../src/main.vala"
		result = NULL;
#line 1252 "../src/main.vala"
		_g_free0 (name);
#line 1252 "../src/main.vala"
		return result;
#line 13785 "main.c"
	}
#line 1254 "../src/main.vala"
	_tmp8_ = name;
#line 1254 "../src/main.vala"
	_tmp9_ = php_to_vala_transpiler_replace_php_variables (_tmp8_);
#line 1254 "../src/main.vala"
	_g_free0 (name);
#line 1254 "../src/main.vala"
	name = _tmp9_;
#line 1255 "../src/main.vala"
	_tmp10_ = name;
#line 1255 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp10_)) {
#line 13799 "main.c"
		GError* _tmp11_;
#line 1256 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1256 "../src/main.vala"
		_inner_error0_ = _tmp11_;
#line 1256 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1256 "../src/main.vala"
		_g_free0 (name);
#line 1256 "../src/main.vala"
		return NULL;
#line 13811 "main.c"
	}
#line 1258 "../src/main.vala"
	_tmp12_ = self->variable_types;
#line 1258 "../src/main.vala"
	_tmp13_ = name;
#line 1258 "../src/main.vala"
	if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp12_, _tmp13_)) {
#line 13819 "main.c"
		GeeHashMap* _tmp14_;
		const gchar* _tmp15_;
		const gchar* _tmp16_ = NULL;
		gchar* initial = NULL;
		gchar* _tmp17_;
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		const gchar* _tmp20_;
		const gchar* _tmp21_;
		gchar* _tmp22_;
#line 1259 "../src/main.vala"
		_tmp14_ = self->variable_types;
#line 1259 "../src/main.vala"
		_tmp15_ = name;
#line 1259 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp14_, _tmp15_, "Php.zval");
#line 1260 "../src/main.vala"
		if (g_str_has_suffix (line, "++;")) {
#line 1260 "../src/main.vala"
			_tmp16_ = "Php.zval.integer (1)";
#line 13840 "main.c"
		} else {
#line 1260 "../src/main.vala"
			_tmp16_ = "Php.zval.integer (-1)";
#line 13844 "main.c"
		}
#line 1260 "../src/main.vala"
		_tmp17_ = g_strdup (_tmp16_);
#line 1260 "../src/main.vala"
		initial = _tmp17_;
#line 1261 "../src/main.vala"
		_tmp18_ = name;
#line 1261 "../src/main.vala"
		_tmp19_ = string_to_string (_tmp18_);
#line 1261 "../src/main.vala"
		_tmp20_ = initial;
#line 1261 "../src/main.vala"
		_tmp21_ = string_to_string (_tmp20_);
#line 1261 "../src/main.vala"
		_tmp22_ = g_strconcat ("Php.zval ", _tmp19_, " = ", _tmp21_, ";", NULL);
#line 1261 "../src/main.vala"
		result = _tmp22_;
#line 1261 "../src/main.vala"
		_g_free0 (initial);
#line 1261 "../src/main.vala"
		_g_free0 (name);
#line 1261 "../src/main.vala"
		return result;
#line 13868 "main.c"
	}
#line 1263 "../src/main.vala"
	if (g_str_has_suffix (line, "++;")) {
#line 1263 "../src/main.vala"
		_tmp23_ = "Php.add_zval";
#line 13874 "main.c"
	} else {
#line 1263 "../src/main.vala"
		_tmp23_ = "Php.sub_zval";
#line 13878 "main.c"
	}
#line 1263 "../src/main.vala"
	_tmp24_ = g_strdup (_tmp23_);
#line 1263 "../src/main.vala"
	helper = _tmp24_;
#line 1264 "../src/main.vala"
	_tmp25_ = name;
#line 1264 "../src/main.vala"
	_tmp26_ = string_to_string (_tmp25_);
#line 1264 "../src/main.vala"
	_tmp27_ = helper;
#line 1264 "../src/main.vala"
	_tmp28_ = string_to_string (_tmp27_);
#line 1264 "../src/main.vala"
	_tmp29_ = name;
#line 1264 "../src/main.vala"
	_tmp30_ = string_to_string (_tmp29_);
#line 1264 "../src/main.vala"
	_tmp31_ = g_strconcat (_tmp26_, " = ", _tmp28_, " (", _tmp30_, ", Php.zval.integer (1));", NULL);
#line 1264 "../src/main.vala"
	result = _tmp31_;
#line 1264 "../src/main.vala"
	_g_free0 (helper);
#line 1264 "../src/main.vala"
	_g_free0 (name);
#line 1264 "../src/main.vala"
	return result;
#line 13906 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_list_assignment (PhpToValaTranspiler* self,
                                                       const gchar* line,
                                                       gint php_line_number,
                                                       GError** error)
{
	gboolean _tmp0_ = FALSE;
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp1_ = FALSE;
	gchar* rest = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* temp_name = NULL;
	gint _tmp11_;
	gchar* _tmp12_;
	GString* output = NULL;
	GString* _tmp13_;
	gchar* _tmp14_ = NULL;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	GString* _tmp22_;
	const gchar* _tmp23_;
	GeeArrayList* targets = NULL;
	gchar* _tmp24_;
	gchar* _tmp25_;
	GeeArrayList* _tmp26_;
	GeeArrayList* _tmp27_;
	GString* _tmp58_;
	const gchar* _tmp59_;
	gchar* _tmp60_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1267 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1267 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1268 "../src/main.vala"
	if (!g_str_has_prefix (line, "list(")) {
#line 1268 "../src/main.vala"
		_tmp0_ = !g_str_has_prefix (line, "list (");
#line 13960 "main.c"
	} else {
#line 1268 "../src/main.vala"
		_tmp0_ = FALSE;
#line 13964 "main.c"
	}
#line 1268 "../src/main.vala"
	if (_tmp0_) {
#line 1269 "../src/main.vala"
		result = NULL;
#line 1269 "../src/main.vala"
		return result;
#line 13972 "main.c"
	}
#line 1271 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 1272 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 1273 "../src/main.vala"
	if (open_index < 0) {
#line 1273 "../src/main.vala"
		_tmp1_ = TRUE;
#line 13982 "main.c"
	} else {
#line 1273 "../src/main.vala"
		_tmp1_ = close_index < 0;
#line 13986 "main.c"
	}
#line 1273 "../src/main.vala"
	if (_tmp1_) {
#line 13990 "main.c"
		GError* _tmp2_;
#line 1274 "../src/main.vala"
		_tmp2_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1274 "../src/main.vala"
		_inner_error0_ = _tmp2_;
#line 1274 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1274 "../src/main.vala"
		return NULL;
#line 14000 "main.c"
	}
#line 1277 "../src/main.vala"
	_tmp3_ = string_substring (line, (glong) (close_index + 1), (glong) -1);
#line 1277 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 1277 "../src/main.vala"
	_tmp5_ = string_strip (_tmp4_);
#line 1277 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 1277 "../src/main.vala"
	_tmp7_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp6_);
#line 1277 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1277 "../src/main.vala"
	_g_free0 (_tmp6_);
#line 1277 "../src/main.vala"
	_g_free0 (_tmp4_);
#line 1277 "../src/main.vala"
	rest = _tmp8_;
#line 1278 "../src/main.vala"
	_tmp9_ = rest;
#line 1278 "../src/main.vala"
	if (!g_str_has_prefix (_tmp9_, "=")) {
#line 14024 "main.c"
		GError* _tmp10_;
#line 1279 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1279 "../src/main.vala"
		_inner_error0_ = _tmp10_;
#line 1279 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1279 "../src/main.vala"
		_g_free0 (rest);
#line 1279 "../src/main.vala"
		return NULL;
#line 14036 "main.c"
	}
#line 1282 "../src/main.vala"
	_tmp11_ = self->priv->temp_variable_counter;
#line 1282 "../src/main.vala"
	self->priv->temp_variable_counter = _tmp11_ + 1;
#line 1282 "../src/main.vala"
	_tmp12_ = g_strdup_printf ("__php2vala_list_%d", _tmp11_);
#line 1282 "../src/main.vala"
	temp_name = _tmp12_;
#line 1283 "../src/main.vala"
	_tmp13_ = g_string_new ("");
#line 1283 "../src/main.vala"
	output = _tmp13_;
#line 1284 "../src/main.vala"
	_tmp15_ = rest;
#line 1284 "../src/main.vala"
	_tmp16_ = string_substring (_tmp15_, (glong) 1, (glong) -1);
#line 1284 "../src/main.vala"
	_tmp17_ = _tmp16_;
#line 1284 "../src/main.vala"
	_tmp18_ = string_strip (_tmp17_);
#line 1284 "../src/main.vala"
	_tmp19_ = _tmp18_;
#line 1284 "../src/main.vala"
	_tmp20_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp19_, php_line_number, &_inner_error0_);
#line 1284 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 1284 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 1284 "../src/main.vala"
	_g_free0 (_tmp17_);
#line 1284 "../src/main.vala"
	_tmp14_ = _tmp21_;
#line 1284 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1284 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1284 "../src/main.vala"
		_g_string_free0 (output);
#line 1284 "../src/main.vala"
		_g_free0 (temp_name);
#line 1284 "../src/main.vala"
		_g_free0 (rest);
#line 1284 "../src/main.vala"
		return NULL;
#line 14082 "main.c"
	}
#line 1284 "../src/main.vala"
	_tmp22_ = output;
#line 1284 "../src/main.vala"
	_tmp23_ = temp_name;
#line 1284 "../src/main.vala"
	g_string_append_printf (_tmp22_, "Php.zval %s = %s;", _tmp23_, _tmp14_);
#line 1286 "../src/main.vala"
	_tmp24_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 1286 "../src/main.vala"
	_tmp25_ = _tmp24_;
#line 1286 "../src/main.vala"
	_tmp26_ = php_to_vala_transpiler_split_top_level (self, _tmp25_, ',');
#line 1286 "../src/main.vala"
	_tmp27_ = _tmp26_;
#line 1286 "../src/main.vala"
	_g_free0 (_tmp25_);
#line 1286 "../src/main.vala"
	targets = _tmp27_;
#line 14102 "main.c"
	{
		gint i = 0;
#line 1287 "../src/main.vala"
		i = 0;
#line 14107 "main.c"
		{
			gboolean _tmp28_ = FALSE;
#line 1287 "../src/main.vala"
			_tmp28_ = TRUE;
#line 1287 "../src/main.vala"
			while (TRUE) {
#line 14114 "main.c"
				GeeArrayList* _tmp30_;
				gint _tmp31_;
				gint _tmp32_;
				gchar* target = NULL;
				GeeArrayList* _tmp33_;
				gpointer _tmp34_;
				gchar* _tmp35_;
				gchar* _tmp36_;
				gchar* _tmp37_;
				const gchar* _tmp38_;
				const gchar* _tmp39_;
				gchar* name = NULL;
				const gchar* _tmp41_;
				gchar* _tmp42_;
				const gchar* _tmp43_;
				gchar* value = NULL;
				const gchar* _tmp45_;
				gchar* _tmp46_;
				GString* _tmp47_;
				GeeHashMap* _tmp48_;
				const gchar* _tmp49_;
#line 1287 "../src/main.vala"
				if (!_tmp28_) {
#line 14138 "main.c"
					gint _tmp29_;
#line 1287 "../src/main.vala"
					_tmp29_ = i;
#line 1287 "../src/main.vala"
					i = _tmp29_ + 1;
#line 14144 "main.c"
				}
#line 1287 "../src/main.vala"
				_tmp28_ = FALSE;
#line 1287 "../src/main.vala"
				_tmp30_ = targets;
#line 1287 "../src/main.vala"
				_tmp31_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp30_);
#line 1287 "../src/main.vala"
				_tmp32_ = _tmp31_;
#line 1287 "../src/main.vala"
				if (!(i < _tmp32_)) {
#line 1287 "../src/main.vala"
					break;
#line 14158 "main.c"
				}
#line 1288 "../src/main.vala"
				_tmp33_ = targets;
#line 1288 "../src/main.vala"
				_tmp34_ = gee_abstract_list_get ((GeeAbstractList*) _tmp33_, i);
#line 1288 "../src/main.vala"
				_tmp35_ = (gchar*) _tmp34_;
#line 1288 "../src/main.vala"
				_tmp36_ = string_strip (_tmp35_);
#line 1288 "../src/main.vala"
				_tmp37_ = _tmp36_;
#line 1288 "../src/main.vala"
				_g_free0 (_tmp35_);
#line 1288 "../src/main.vala"
				target = _tmp37_;
#line 1289 "../src/main.vala"
				_tmp38_ = target;
#line 1289 "../src/main.vala"
				if (g_strcmp0 (_tmp38_, "") == 0) {
#line 1290 "../src/main.vala"
					_g_free0 (target);
#line 1290 "../src/main.vala"
					continue;
#line 14182 "main.c"
				}
#line 1292 "../src/main.vala"
				_tmp39_ = target;
#line 1292 "../src/main.vala"
				if (!g_str_has_prefix (_tmp39_, "$")) {
#line 14188 "main.c"
					GError* _tmp40_;
#line 1293 "../src/main.vala"
					_tmp40_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1293 "../src/main.vala"
					_inner_error0_ = _tmp40_;
#line 1293 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1293 "../src/main.vala"
					_g_free0 (target);
#line 1293 "../src/main.vala"
					_g_object_unref0 (targets);
#line 1293 "../src/main.vala"
					_g_free0 (_tmp14_);
#line 1293 "../src/main.vala"
					_g_string_free0 (output);
#line 1293 "../src/main.vala"
					_g_free0 (temp_name);
#line 1293 "../src/main.vala"
					_g_free0 (rest);
#line 1293 "../src/main.vala"
					return NULL;
#line 14210 "main.c"
				}
#line 1295 "../src/main.vala"
				_tmp41_ = target;
#line 1295 "../src/main.vala"
				_tmp42_ = php_to_vala_transpiler_replace_php_variables (_tmp41_);
#line 1295 "../src/main.vala"
				name = _tmp42_;
#line 1296 "../src/main.vala"
				_tmp43_ = name;
#line 1296 "../src/main.vala"
				if (!php_to_vala_transpiler_is_identifier (_tmp43_)) {
#line 14222 "main.c"
					GError* _tmp44_;
#line 1297 "../src/main.vala"
					_tmp44_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1297 "../src/main.vala"
					_inner_error0_ = _tmp44_;
#line 1297 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1297 "../src/main.vala"
					_g_free0 (name);
#line 1297 "../src/main.vala"
					_g_free0 (target);
#line 1297 "../src/main.vala"
					_g_object_unref0 (targets);
#line 1297 "../src/main.vala"
					_g_free0 (_tmp14_);
#line 1297 "../src/main.vala"
					_g_string_free0 (output);
#line 1297 "../src/main.vala"
					_g_free0 (temp_name);
#line 1297 "../src/main.vala"
					_g_free0 (rest);
#line 1297 "../src/main.vala"
					return NULL;
#line 14246 "main.c"
				}
#line 1299 "../src/main.vala"
				_tmp45_ = temp_name;
#line 1299 "../src/main.vala"
				_tmp46_ = g_strdup_printf ("Php.array_get (%s, Php.zval.integer (%d))", _tmp45_, i);
#line 1299 "../src/main.vala"
				value = _tmp46_;
#line 1300 "../src/main.vala"
				_tmp47_ = output;
#line 1300 "../src/main.vala"
				g_string_append (_tmp47_, "\n");
#line 1301 "../src/main.vala"
				_tmp48_ = self->variable_types;
#line 1301 "../src/main.vala"
				_tmp49_ = name;
#line 1301 "../src/main.vala"
				if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp48_, _tmp49_)) {
#line 14264 "main.c"
					GeeHashMap* _tmp50_;
					const gchar* _tmp51_;
					GString* _tmp52_;
					const gchar* _tmp53_;
					const gchar* _tmp54_;
#line 1302 "../src/main.vala"
					_tmp50_ = self->variable_types;
#line 1302 "../src/main.vala"
					_tmp51_ = name;
#line 1302 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp50_, _tmp51_, "Php.zval");
#line 1303 "../src/main.vala"
					_tmp52_ = output;
#line 1303 "../src/main.vala"
					_tmp53_ = name;
#line 1303 "../src/main.vala"
					_tmp54_ = value;
#line 1303 "../src/main.vala"
					g_string_append_printf (_tmp52_, "Php.zval %s = %s;", _tmp53_, _tmp54_);
#line 14284 "main.c"
				} else {
					GString* _tmp55_;
					const gchar* _tmp56_;
					const gchar* _tmp57_;
#line 1305 "../src/main.vala"
					_tmp55_ = output;
#line 1305 "../src/main.vala"
					_tmp56_ = name;
#line 1305 "../src/main.vala"
					_tmp57_ = value;
#line 1305 "../src/main.vala"
					g_string_append_printf (_tmp55_, "%s = %s;", _tmp56_, _tmp57_);
#line 14297 "main.c"
				}
#line 1287 "../src/main.vala"
				_g_free0 (value);
#line 1287 "../src/main.vala"
				_g_free0 (name);
#line 1287 "../src/main.vala"
				_g_free0 (target);
#line 14305 "main.c"
			}
		}
	}
#line 1309 "../src/main.vala"
	_tmp58_ = output;
#line 1309 "../src/main.vala"
	_tmp59_ = _tmp58_->str;
#line 1309 "../src/main.vala"
	_tmp60_ = g_strdup (_tmp59_);
#line 1309 "../src/main.vala"
	result = _tmp60_;
#line 1309 "../src/main.vala"
	_g_object_unref0 (targets);
#line 1309 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 1309 "../src/main.vala"
	_g_string_free0 (output);
#line 1309 "../src/main.vala"
	_g_free0 (temp_name);
#line 1309 "../src/main.vala"
	_g_free0 (rest);
#line 1309 "../src/main.vala"
	return result;
#line 14329 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_array_assignment (PhpToValaTranspiler* self,
                                                        const gchar* line,
                                                        gint php_line_number,
                                                        GError** error)
{
	gboolean _tmp0_ = FALSE;
	gint bracket_index = 0;
	gint equals_index = 0;
	gboolean _tmp1_ = FALSE;
	gchar* name = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* access = NULL;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* value = NULL;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	GeeArrayList* keys = NULL;
	const gchar* _tmp19_;
	GeeArrayList* _tmp20_;
	gchar* init = NULL;
	gchar* _tmp21_;
	GeeHashMap* _tmp22_;
	const gchar* _tmp23_;
	GeeArrayList* _tmp28_;
	gint _tmp29_;
	gint _tmp30_;
	GeeArrayList* _tmp57_;
	gint _tmp58_;
	gint _tmp59_;
	GError* _tmp94_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1312 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1312 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1313 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 1313 "../src/main.vala"
		_tmp0_ = TRUE;
#line 14386 "main.c"
	} else {
#line 1313 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 14390 "main.c"
	}
#line 1313 "../src/main.vala"
	if (_tmp0_) {
#line 1314 "../src/main.vala"
		result = NULL;
#line 1314 "../src/main.vala"
		return result;
#line 14398 "main.c"
	}
#line 1316 "../src/main.vala"
	bracket_index = string_index_of (line, "[", 0);
#line 1317 "../src/main.vala"
	equals_index = string_index_of (line, "=", 0);
#line 1318 "../src/main.vala"
	if (bracket_index <= 1) {
#line 1318 "../src/main.vala"
		_tmp1_ = TRUE;
#line 14408 "main.c"
	} else {
#line 1318 "../src/main.vala"
		_tmp1_ = equals_index <= bracket_index;
#line 14412 "main.c"
	}
#line 1318 "../src/main.vala"
	if (_tmp1_) {
#line 1319 "../src/main.vala"
		result = NULL;
#line 1319 "../src/main.vala"
		return result;
#line 14420 "main.c"
	}
#line 1321 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) 1, (glong) (bracket_index - 1));
#line 1321 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1321 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 1321 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 1321 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 1321 "../src/main.vala"
	name = _tmp5_;
#line 1322 "../src/main.vala"
	_tmp6_ = name;
#line 1322 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp6_)) {
#line 1323 "../src/main.vala"
		result = NULL;
#line 1323 "../src/main.vala"
		_g_free0 (name);
#line 1323 "../src/main.vala"
		return result;
#line 14444 "main.c"
	}
#line 1325 "../src/main.vala"
	_tmp7_ = string_substring (line, (glong) bracket_index, (glong) (equals_index - bracket_index));
#line 1325 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1325 "../src/main.vala"
	_tmp9_ = string_strip (_tmp8_);
#line 1325 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 1325 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 1325 "../src/main.vala"
	access = _tmp10_;
#line 1326 "../src/main.vala"
	_tmp11_ = string_substring (line, (glong) (equals_index + 1), (glong) -1);
#line 1326 "../src/main.vala"
	_tmp12_ = _tmp11_;
#line 1326 "../src/main.vala"
	_tmp13_ = string_strip (_tmp12_);
#line 1326 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 1326 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp14_);
#line 1326 "../src/main.vala"
	_tmp16_ = _tmp15_;
#line 1326 "../src/main.vala"
	_tmp17_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp16_, php_line_number, &_inner_error0_);
#line 1326 "../src/main.vala"
	_tmp18_ = _tmp17_;
#line 1326 "../src/main.vala"
	_g_free0 (_tmp16_);
#line 1326 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 1326 "../src/main.vala"
	_g_free0 (_tmp12_);
#line 1326 "../src/main.vala"
	value = _tmp18_;
#line 1326 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1326 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1326 "../src/main.vala"
		_g_free0 (access);
#line 1326 "../src/main.vala"
		_g_free0 (name);
#line 1326 "../src/main.vala"
		return NULL;
#line 14492 "main.c"
	}
#line 1327 "../src/main.vala"
	_tmp19_ = access;
#line 1327 "../src/main.vala"
	_tmp20_ = php_to_vala_transpiler_parse_zval_array_keys (self, _tmp19_, php_line_number, &_inner_error0_);
#line 1327 "../src/main.vala"
	keys = _tmp20_;
#line 1327 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1327 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1327 "../src/main.vala"
		_g_free0 (value);
#line 1327 "../src/main.vala"
		_g_free0 (access);
#line 1327 "../src/main.vala"
		_g_free0 (name);
#line 1327 "../src/main.vala"
		return NULL;
#line 14512 "main.c"
	}
#line 1328 "../src/main.vala"
	_tmp21_ = g_strdup ("");
#line 1328 "../src/main.vala"
	init = _tmp21_;
#line 1329 "../src/main.vala"
	_tmp22_ = self->variable_types;
#line 1329 "../src/main.vala"
	_tmp23_ = name;
#line 1329 "../src/main.vala"
	if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp22_, _tmp23_)) {
#line 14524 "main.c"
		GeeHashMap* _tmp24_;
		const gchar* _tmp25_;
		const gchar* _tmp26_;
		gchar* _tmp27_;
#line 1330 "../src/main.vala"
		_tmp24_ = self->variable_types;
#line 1330 "../src/main.vala"
		_tmp25_ = name;
#line 1330 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp24_, _tmp25_, "Php.zval");
#line 1331 "../src/main.vala"
		_tmp26_ = name;
#line 1331 "../src/main.vala"
		_tmp27_ = g_strdup_printf ("Php.zval %s = Php.array_new ();\n", _tmp26_);
#line 1331 "../src/main.vala"
		_g_free0 (init);
#line 1331 "../src/main.vala"
		init = _tmp27_;
#line 14543 "main.c"
	}
#line 1333 "../src/main.vala"
	_tmp28_ = keys;
#line 1333 "../src/main.vala"
	_tmp29_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp28_);
#line 1333 "../src/main.vala"
	_tmp30_ = _tmp29_;
#line 1333 "../src/main.vala"
	if (_tmp30_ == 1) {
#line 14553 "main.c"
		GeeArrayList* _tmp31_;
		gpointer _tmp32_;
		gchar* _tmp33_;
		gboolean _tmp34_;
		const gchar* _tmp44_;
		const gchar* _tmp45_;
		const gchar* _tmp46_;
		GeeArrayList* _tmp47_;
		gpointer _tmp48_;
		gchar* _tmp49_;
		const gchar* _tmp50_;
		const gchar* _tmp51_;
		const gchar* _tmp52_;
		gchar* _tmp53_;
		gchar* _tmp54_;
		gchar* _tmp55_;
		gchar* _tmp56_;
#line 1334 "../src/main.vala"
		_tmp31_ = keys;
#line 1334 "../src/main.vala"
		_tmp32_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, 0);
#line 1334 "../src/main.vala"
		_tmp33_ = (gchar*) _tmp32_;
#line 1334 "../src/main.vala"
		_tmp34_ = g_strcmp0 (_tmp33_, "") == 0;
#line 1334 "../src/main.vala"
		_g_free0 (_tmp33_);
#line 1334 "../src/main.vala"
		if (_tmp34_) {
#line 14583 "main.c"
			const gchar* _tmp35_;
			const gchar* _tmp36_;
			const gchar* _tmp37_;
			const gchar* _tmp38_;
			const gchar* _tmp39_;
			gchar* _tmp40_;
			gchar* _tmp41_;
			gchar* _tmp42_;
			gchar* _tmp43_;
#line 1335 "../src/main.vala"
			_tmp35_ = init;
#line 1335 "../src/main.vala"
			_tmp36_ = name;
#line 1335 "../src/main.vala"
			_tmp37_ = string_to_string (_tmp36_);
#line 1335 "../src/main.vala"
			_tmp38_ = value;
#line 1335 "../src/main.vala"
			_tmp39_ = string_to_string (_tmp38_);
#line 1335 "../src/main.vala"
			_tmp40_ = g_strconcat ("Php.array_append (", _tmp37_, ", ", _tmp39_, ");", NULL);
#line 1335 "../src/main.vala"
			_tmp41_ = _tmp40_;
#line 1335 "../src/main.vala"
			_tmp42_ = g_strconcat (_tmp35_, _tmp41_, NULL);
#line 1335 "../src/main.vala"
			_tmp43_ = _tmp42_;
#line 1335 "../src/main.vala"
			_g_free0 (_tmp41_);
#line 1335 "../src/main.vala"
			result = _tmp43_;
#line 1335 "../src/main.vala"
			_g_free0 (init);
#line 1335 "../src/main.vala"
			_g_object_unref0 (keys);
#line 1335 "../src/main.vala"
			_g_free0 (value);
#line 1335 "../src/main.vala"
			_g_free0 (access);
#line 1335 "../src/main.vala"
			_g_free0 (name);
#line 1335 "../src/main.vala"
			return result;
#line 14627 "main.c"
		}
#line 1337 "../src/main.vala"
		_tmp44_ = init;
#line 1337 "../src/main.vala"
		_tmp45_ = name;
#line 1337 "../src/main.vala"
		_tmp46_ = string_to_string (_tmp45_);
#line 1337 "../src/main.vala"
		_tmp47_ = keys;
#line 1337 "../src/main.vala"
		_tmp48_ = gee_abstract_list_get ((GeeAbstractList*) _tmp47_, 0);
#line 1337 "../src/main.vala"
		_tmp49_ = (gchar*) _tmp48_;
#line 1337 "../src/main.vala"
		_tmp50_ = string_to_string (_tmp49_);
#line 1337 "../src/main.vala"
		_tmp51_ = value;
#line 1337 "../src/main.vala"
		_tmp52_ = string_to_string (_tmp51_);
#line 1337 "../src/main.vala"
		_tmp53_ = g_strconcat ("Php.array_set (", _tmp46_, ", ", _tmp50_, ", ", _tmp52_, ");", NULL);
#line 1337 "../src/main.vala"
		_tmp54_ = _tmp53_;
#line 1337 "../src/main.vala"
		_tmp55_ = g_strconcat (_tmp44_, _tmp54_, NULL);
#line 1337 "../src/main.vala"
		_tmp56_ = _tmp55_;
#line 1337 "../src/main.vala"
		_g_free0 (_tmp54_);
#line 1337 "../src/main.vala"
		_g_free0 (_tmp49_);
#line 1337 "../src/main.vala"
		result = _tmp56_;
#line 1337 "../src/main.vala"
		_g_free0 (init);
#line 1337 "../src/main.vala"
		_g_object_unref0 (keys);
#line 1337 "../src/main.vala"
		_g_free0 (value);
#line 1337 "../src/main.vala"
		_g_free0 (access);
#line 1337 "../src/main.vala"
		_g_free0 (name);
#line 1337 "../src/main.vala"
		return result;
#line 14673 "main.c"
	}
#line 1339 "../src/main.vala"
	_tmp57_ = keys;
#line 1339 "../src/main.vala"
	_tmp58_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp57_);
#line 1339 "../src/main.vala"
	_tmp59_ = _tmp58_;
#line 1339 "../src/main.vala"
	if (_tmp59_ == 2) {
#line 14683 "main.c"
		GeeArrayList* _tmp60_;
		gpointer _tmp61_;
		gchar* _tmp62_;
		gboolean _tmp63_;
		const gchar* _tmp77_;
		const gchar* _tmp78_;
		const gchar* _tmp79_;
		GeeArrayList* _tmp80_;
		gpointer _tmp81_;
		gchar* _tmp82_;
		const gchar* _tmp83_;
		GeeArrayList* _tmp84_;
		gpointer _tmp85_;
		gchar* _tmp86_;
		const gchar* _tmp87_;
		const gchar* _tmp88_;
		const gchar* _tmp89_;
		gchar* _tmp90_;
		gchar* _tmp91_;
		gchar* _tmp92_;
		gchar* _tmp93_;
#line 1340 "../src/main.vala"
		_tmp60_ = keys;
#line 1340 "../src/main.vala"
		_tmp61_ = gee_abstract_list_get ((GeeAbstractList*) _tmp60_, 1);
#line 1340 "../src/main.vala"
		_tmp62_ = (gchar*) _tmp61_;
#line 1340 "../src/main.vala"
		_tmp63_ = g_strcmp0 (_tmp62_, "") == 0;
#line 1340 "../src/main.vala"
		_g_free0 (_tmp62_);
#line 1340 "../src/main.vala"
		if (_tmp63_) {
#line 14717 "main.c"
			const gchar* _tmp64_;
			const gchar* _tmp65_;
			const gchar* _tmp66_;
			GeeArrayList* _tmp67_;
			gpointer _tmp68_;
			gchar* _tmp69_;
			const gchar* _tmp70_;
			const gchar* _tmp71_;
			const gchar* _tmp72_;
			gchar* _tmp73_;
			gchar* _tmp74_;
			gchar* _tmp75_;
			gchar* _tmp76_;
#line 1341 "../src/main.vala"
			_tmp64_ = init;
#line 1341 "../src/main.vala"
			_tmp65_ = name;
#line 1341 "../src/main.vala"
			_tmp66_ = string_to_string (_tmp65_);
#line 1341 "../src/main.vala"
			_tmp67_ = keys;
#line 1341 "../src/main.vala"
			_tmp68_ = gee_abstract_list_get ((GeeAbstractList*) _tmp67_, 0);
#line 1341 "../src/main.vala"
			_tmp69_ = (gchar*) _tmp68_;
#line 1341 "../src/main.vala"
			_tmp70_ = string_to_string (_tmp69_);
#line 1341 "../src/main.vala"
			_tmp71_ = value;
#line 1341 "../src/main.vala"
			_tmp72_ = string_to_string (_tmp71_);
#line 1341 "../src/main.vala"
			_tmp73_ = g_strconcat ("Php.array_append (Php.array_ensure (", _tmp66_, ", ", _tmp70_, "), ", _tmp72_, ");", NULL);
#line 1341 "../src/main.vala"
			_tmp74_ = _tmp73_;
#line 1341 "../src/main.vala"
			_tmp75_ = g_strconcat (_tmp64_, _tmp74_, NULL);
#line 1341 "../src/main.vala"
			_tmp76_ = _tmp75_;
#line 1341 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 1341 "../src/main.vala"
			_g_free0 (_tmp69_);
#line 1341 "../src/main.vala"
			result = _tmp76_;
#line 1341 "../src/main.vala"
			_g_free0 (init);
#line 1341 "../src/main.vala"
			_g_object_unref0 (keys);
#line 1341 "../src/main.vala"
			_g_free0 (value);
#line 1341 "../src/main.vala"
			_g_free0 (access);
#line 1341 "../src/main.vala"
			_g_free0 (name);
#line 1341 "../src/main.vala"
			return result;
#line 14775 "main.c"
		}
#line 1343 "../src/main.vala"
		_tmp77_ = init;
#line 1343 "../src/main.vala"
		_tmp78_ = name;
#line 1343 "../src/main.vala"
		_tmp79_ = string_to_string (_tmp78_);
#line 1343 "../src/main.vala"
		_tmp80_ = keys;
#line 1343 "../src/main.vala"
		_tmp81_ = gee_abstract_list_get ((GeeAbstractList*) _tmp80_, 0);
#line 1343 "../src/main.vala"
		_tmp82_ = (gchar*) _tmp81_;
#line 1343 "../src/main.vala"
		_tmp83_ = string_to_string (_tmp82_);
#line 1343 "../src/main.vala"
		_tmp84_ = keys;
#line 1343 "../src/main.vala"
		_tmp85_ = gee_abstract_list_get ((GeeAbstractList*) _tmp84_, 1);
#line 1343 "../src/main.vala"
		_tmp86_ = (gchar*) _tmp85_;
#line 1343 "../src/main.vala"
		_tmp87_ = string_to_string (_tmp86_);
#line 1343 "../src/main.vala"
		_tmp88_ = value;
#line 1343 "../src/main.vala"
		_tmp89_ = string_to_string (_tmp88_);
#line 1343 "../src/main.vala"
		_tmp90_ = g_strconcat ("Php.array_set (Php.array_ensure (", _tmp79_, ", ", _tmp83_, "), ", _tmp87_, ", ", _tmp89_, ");", NULL);
#line 1343 "../src/main.vala"
		_tmp91_ = _tmp90_;
#line 1343 "../src/main.vala"
		_tmp92_ = g_strconcat (_tmp77_, _tmp91_, NULL);
#line 1343 "../src/main.vala"
		_tmp93_ = _tmp92_;
#line 1343 "../src/main.vala"
		_g_free0 (_tmp91_);
#line 1343 "../src/main.vala"
		_g_free0 (_tmp86_);
#line 1343 "../src/main.vala"
		_g_free0 (_tmp82_);
#line 1343 "../src/main.vala"
		result = _tmp93_;
#line 1343 "../src/main.vala"
		_g_free0 (init);
#line 1343 "../src/main.vala"
		_g_object_unref0 (keys);
#line 1343 "../src/main.vala"
		_g_free0 (value);
#line 1343 "../src/main.vala"
		_g_free0 (access);
#line 1343 "../src/main.vala"
		_g_free0 (name);
#line 1343 "../src/main.vala"
		return result;
#line 14831 "main.c"
	}
#line 1345 "../src/main.vala"
	_tmp94_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 1345 "../src/main.vala"
	_inner_error0_ = _tmp94_;
#line 1345 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 1345 "../src/main.vala"
	_g_free0 (init);
#line 1345 "../src/main.vala"
	_g_object_unref0 (keys);
#line 1345 "../src/main.vala"
	_g_free0 (value);
#line 1345 "../src/main.vala"
	_g_free0 (access);
#line 1345 "../src/main.vala"
	_g_free0 (name);
#line 1345 "../src/main.vala"
	return NULL;
#line 14851 "main.c"
}

static GeeArrayList*
php_to_vala_transpiler_parse_zval_array_keys (PhpToValaTranspiler* self,
                                              const gchar* access,
                                              gint php_line_number,
                                              GError** error)
{
	GeeArrayList* keys = NULL;
	GeeArrayList* _tmp0_;
	gint index = 0;
	GError* _inner_error0_ = NULL;
	GeeArrayList* result;
#line 1348 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1348 "../src/main.vala"
	g_return_val_if_fail (access != NULL, NULL);
#line 1349 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 1349 "../src/main.vala"
	keys = _tmp0_;
#line 1350 "../src/main.vala"
	index = 0;
#line 1351 "../src/main.vala"
	while (TRUE) {
#line 14877 "main.c"
		gint _tmp1_;
		gint _tmp2_;
		gint end = 0;
		gchar* key = NULL;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_ = NULL;
		const gchar* _tmp10_;
		GeeArrayList* _tmp14_;
#line 1351 "../src/main.vala"
		_tmp1_ = strlen (access);
#line 1351 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 1351 "../src/main.vala"
		if (!(index < _tmp2_)) {
#line 1351 "../src/main.vala"
			break;
#line 14897 "main.c"
		}
#line 1352 "../src/main.vala"
		if (string_get (access, (glong) index) != '[') {
#line 14901 "main.c"
			GError* _tmp3_;
#line 1353 "../src/main.vala"
			_tmp3_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, access);
#line 1353 "../src/main.vala"
			_inner_error0_ = _tmp3_;
#line 1353 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1353 "../src/main.vala"
			_g_object_unref0 (keys);
#line 1353 "../src/main.vala"
			return NULL;
#line 14913 "main.c"
		}
#line 1355 "../src/main.vala"
		end = php_to_vala_transpiler_find_matching_bracket (access, index);
#line 1356 "../src/main.vala"
		if (end < 0) {
#line 14919 "main.c"
			GError* _tmp4_;
#line 1357 "../src/main.vala"
			_tmp4_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, access);
#line 1357 "../src/main.vala"
			_inner_error0_ = _tmp4_;
#line 1357 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1357 "../src/main.vala"
			_g_object_unref0 (keys);
#line 1357 "../src/main.vala"
			return NULL;
#line 14931 "main.c"
		}
#line 1359 "../src/main.vala"
		_tmp5_ = string_substring (access, (glong) (index + 1), (glong) ((end - index) - 1));
#line 1359 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 1359 "../src/main.vala"
		_tmp7_ = string_strip (_tmp6_);
#line 1359 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 1359 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 1359 "../src/main.vala"
		key = _tmp8_;
#line 1360 "../src/main.vala"
		_tmp10_ = key;
#line 1360 "../src/main.vala"
		if (g_strcmp0 (_tmp10_, "") == 0) {
#line 14949 "main.c"
			gchar* _tmp11_;
#line 1360 "../src/main.vala"
			_tmp11_ = g_strdup ("");
#line 1360 "../src/main.vala"
			_g_free0 (_tmp9_);
#line 1360 "../src/main.vala"
			_tmp9_ = _tmp11_;
#line 14957 "main.c"
		} else {
			const gchar* _tmp12_;
			gchar* _tmp13_;
#line 1360 "../src/main.vala"
			_tmp12_ = key;
#line 1360 "../src/main.vala"
			_tmp13_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp12_, php_line_number, &_inner_error0_);
#line 1360 "../src/main.vala"
			_g_free0 (_tmp9_);
#line 1360 "../src/main.vala"
			_tmp9_ = _tmp13_;
#line 1360 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1360 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 1360 "../src/main.vala"
				_g_free0 (_tmp9_);
#line 1360 "../src/main.vala"
				_g_free0 (key);
#line 1360 "../src/main.vala"
				_g_object_unref0 (keys);
#line 1360 "../src/main.vala"
				return NULL;
#line 14981 "main.c"
			}
		}
#line 1360 "../src/main.vala"
		_tmp14_ = keys;
#line 1360 "../src/main.vala"
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp14_, _tmp9_);
#line 1361 "../src/main.vala"
		index = end + 1;
#line 1351 "../src/main.vala"
		_g_free0 (_tmp9_);
#line 1351 "../src/main.vala"
		_g_free0 (key);
#line 14994 "main.c"
	}
#line 1363 "../src/main.vala"
	result = keys;
#line 1363 "../src/main.vala"
	return result;
#line 15000 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_compound_assignment (PhpToValaTranspiler* self,
                                                           const gchar* line,
                                                           gint php_line_number,
                                                           GError** error)
{
	gboolean _tmp0_ = FALSE;
	gchar* clean = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar** operators = NULL;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar** _tmp9_;
	gint operators_length1;
	gint _operators_size_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1366 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1366 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 1367 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 1367 "../src/main.vala"
		_tmp0_ = TRUE;
#line 15035 "main.c"
	} else {
#line 1367 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 15039 "main.c"
	}
#line 1367 "../src/main.vala"
	if (_tmp0_) {
#line 1368 "../src/main.vala"
		result = NULL;
#line 1368 "../src/main.vala"
		return result;
#line 15047 "main.c"
	}
#line 1370 "../src/main.vala"
	_tmp1_ = string_substring (line, (glong) 1, (glong) -1);
#line 1370 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 1370 "../src/main.vala"
	_tmp3_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp2_);
#line 1370 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 1370 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 1370 "../src/main.vala"
	clean = _tmp4_;
#line 1371 "../src/main.vala"
	_tmp5_ = g_strdup ("/=");
#line 1371 "../src/main.vala"
	_tmp6_ = g_strdup ("*=");
#line 1371 "../src/main.vala"
	_tmp7_ = g_strdup ("+=");
#line 1371 "../src/main.vala"
	_tmp8_ = g_strdup ("-=");
#line 1371 "../src/main.vala"
	_tmp9_ = g_new0 (gchar*, 4 + 1);
#line 1371 "../src/main.vala"
	_tmp9_[0] = _tmp5_;
#line 1371 "../src/main.vala"
	_tmp9_[1] = _tmp6_;
#line 1371 "../src/main.vala"
	_tmp9_[2] = _tmp7_;
#line 1371 "../src/main.vala"
	_tmp9_[3] = _tmp8_;
#line 1371 "../src/main.vala"
	operators = _tmp9_;
#line 1371 "../src/main.vala"
	operators_length1 = 4;
#line 1371 "../src/main.vala"
	_operators_size_ = operators_length1;
#line 1372 "../src/main.vala"
	_tmp10_ = operators;
#line 1372 "../src/main.vala"
	_tmp10__length1 = operators_length1;
#line 15089 "main.c"
	{
		gchar** op_collection = NULL;
		gint op_collection_length1 = 0;
		gint _op_collection_size_ = 0;
		gint op_it = 0;
#line 1372 "../src/main.vala"
		op_collection = _tmp10_;
#line 1372 "../src/main.vala"
		op_collection_length1 = _tmp10__length1;
#line 1372 "../src/main.vala"
		for (op_it = 0; op_it < op_collection_length1; op_it = op_it + 1) {
#line 15101 "main.c"
			gchar* _tmp11_;
			gchar* op = NULL;
#line 1372 "../src/main.vala"
			_tmp11_ = g_strdup (op_collection[op_it]);
#line 1372 "../src/main.vala"
			op = _tmp11_;
#line 15108 "main.c"
			{
				gint index = 0;
				const gchar* _tmp12_;
				const gchar* _tmp13_;
				gchar* lhs = NULL;
				const gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				gchar* rhs = NULL;
				const gchar* _tmp21_;
				const gchar* _tmp22_;
				gint _tmp23_;
				gint _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
				gint bracket_index = 0;
				const gchar* _tmp31_;
				gchar* current = NULL;
				const gchar* _tmp83_;
				gchar* _tmp84_;
				gchar* _tmp85_;
				gchar* _tmp86_;
				gchar* _tmp87_;
				const gchar* _tmp88_ = NULL;
				const gchar* _tmp89_;
				gchar* op_name = NULL;
				gchar* _tmp92_;
				const gchar* _tmp93_;
				const gchar* _tmp95_;
				const gchar* _tmp107_;
				const gchar* _tmp108_;
				const gchar* _tmp109_;
				const gchar* _tmp110_;
				const gchar* _tmp111_;
				const gchar* _tmp112_;
				const gchar* _tmp113_;
				const gchar* _tmp114_;
				gchar* _tmp115_;
#line 1373 "../src/main.vala"
				_tmp12_ = clean;
#line 1373 "../src/main.vala"
				_tmp13_ = op;
#line 1373 "../src/main.vala"
				index = string_index_of (_tmp12_, _tmp13_, 0);
#line 1374 "../src/main.vala"
				if (index <= 0) {
#line 1375 "../src/main.vala"
					_g_free0 (op);
#line 1375 "../src/main.vala"
					continue;
#line 15167 "main.c"
				}
#line 1377 "../src/main.vala"
				_tmp14_ = clean;
#line 1377 "../src/main.vala"
				_tmp15_ = string_substring (_tmp14_, (glong) 0, (glong) index);
#line 1377 "../src/main.vala"
				_tmp16_ = _tmp15_;
#line 1377 "../src/main.vala"
				_tmp17_ = string_strip (_tmp16_);
#line 1377 "../src/main.vala"
				_tmp18_ = _tmp17_;
#line 1377 "../src/main.vala"
				_tmp19_ = php_to_vala_transpiler_replace_php_variables (_tmp18_);
#line 1377 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 1377 "../src/main.vala"
				_g_free0 (_tmp18_);
#line 1377 "../src/main.vala"
				_g_free0 (_tmp16_);
#line 1377 "../src/main.vala"
				lhs = _tmp20_;
#line 1378 "../src/main.vala"
				_tmp21_ = clean;
#line 1378 "../src/main.vala"
				_tmp22_ = op;
#line 1378 "../src/main.vala"
				_tmp23_ = strlen (_tmp22_);
#line 1378 "../src/main.vala"
				_tmp24_ = _tmp23_;
#line 1378 "../src/main.vala"
				_tmp25_ = string_substring (_tmp21_, (glong) (index + _tmp24_), (glong) -1);
#line 1378 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 1378 "../src/main.vala"
				_tmp27_ = string_strip (_tmp26_);
#line 1378 "../src/main.vala"
				_tmp28_ = _tmp27_;
#line 1378 "../src/main.vala"
				_tmp29_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp28_, php_line_number, &_inner_error0_);
#line 1378 "../src/main.vala"
				_tmp30_ = _tmp29_;
#line 1378 "../src/main.vala"
				_g_free0 (_tmp28_);
#line 1378 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 1378 "../src/main.vala"
				rhs = _tmp30_;
#line 1378 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1378 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1378 "../src/main.vala"
					_g_free0 (lhs);
#line 1378 "../src/main.vala"
					_g_free0 (op);
#line 1378 "../src/main.vala"
					operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1378 "../src/main.vala"
					_g_free0 (clean);
#line 1378 "../src/main.vala"
					return NULL;
#line 15229 "main.c"
				}
#line 1379 "../src/main.vala"
				_tmp31_ = lhs;
#line 1379 "../src/main.vala"
				bracket_index = string_index_of (_tmp31_, "[", 0);
#line 1380 "../src/main.vala"
				if (bracket_index > 0) {
#line 15237 "main.c"
					gchar* name = NULL;
					const gchar* _tmp32_;
					gchar* _tmp33_;
					GeeArrayList* keys = NULL;
					const gchar* _tmp34_;
					gchar* _tmp35_;
					gchar* _tmp36_;
					GeeArrayList* _tmp37_;
					GeeArrayList* _tmp38_;
					GeeArrayList* _tmp39_;
					gint _tmp40_;
					gint _tmp41_;
#line 1381 "../src/main.vala"
					_tmp32_ = lhs;
#line 1381 "../src/main.vala"
					_tmp33_ = string_substring (_tmp32_, (glong) 0, (glong) bracket_index);
#line 1381 "../src/main.vala"
					name = _tmp33_;
#line 1382 "../src/main.vala"
					_tmp34_ = lhs;
#line 1382 "../src/main.vala"
					_tmp35_ = string_substring (_tmp34_, (glong) bracket_index, (glong) -1);
#line 1382 "../src/main.vala"
					_tmp36_ = _tmp35_;
#line 1382 "../src/main.vala"
					_tmp37_ = php_to_vala_transpiler_parse_zval_array_keys (self, _tmp36_, php_line_number, &_inner_error0_);
#line 1382 "../src/main.vala"
					_tmp38_ = _tmp37_;
#line 1382 "../src/main.vala"
					_g_free0 (_tmp36_);
#line 1382 "../src/main.vala"
					keys = _tmp38_;
#line 1382 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1382 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 1382 "../src/main.vala"
						_g_free0 (name);
#line 1382 "../src/main.vala"
						_g_free0 (rhs);
#line 1382 "../src/main.vala"
						_g_free0 (lhs);
#line 1382 "../src/main.vala"
						_g_free0 (op);
#line 1382 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1382 "../src/main.vala"
						_g_free0 (clean);
#line 1382 "../src/main.vala"
						return NULL;
#line 15288 "main.c"
					}
#line 1383 "../src/main.vala"
					_tmp39_ = keys;
#line 1383 "../src/main.vala"
					_tmp40_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp39_);
#line 1383 "../src/main.vala"
					_tmp41_ = _tmp40_;
#line 1383 "../src/main.vala"
					if (_tmp41_ == 1) {
#line 15298 "main.c"
						gchar* current = NULL;
						const gchar* _tmp42_;
						GeeArrayList* _tmp43_;
						gpointer _tmp44_;
						gchar* _tmp45_;
						gchar* _tmp46_;
						gchar* _tmp47_;
						const gchar* _tmp48_ = NULL;
						const gchar* _tmp49_;
						gchar* op_name = NULL;
						gchar* _tmp52_;
						const gchar* _tmp53_;
						const gchar* _tmp69_;
						const gchar* _tmp70_;
						GeeArrayList* _tmp71_;
						gpointer _tmp72_;
						gchar* _tmp73_;
						const gchar* _tmp74_;
						const gchar* _tmp75_;
						const gchar* _tmp76_;
						const gchar* _tmp77_;
						const gchar* _tmp78_;
						const gchar* _tmp79_;
						const gchar* _tmp80_;
						gchar* _tmp81_;
						gchar* _tmp82_;
#line 1384 "../src/main.vala"
						_tmp42_ = name;
#line 1384 "../src/main.vala"
						_tmp43_ = keys;
#line 1384 "../src/main.vala"
						_tmp44_ = gee_abstract_list_get ((GeeAbstractList*) _tmp43_, 0);
#line 1384 "../src/main.vala"
						_tmp45_ = (gchar*) _tmp44_;
#line 1384 "../src/main.vala"
						_tmp46_ = g_strdup_printf ("Php.array_get (%s, %s)", _tmp42_, _tmp45_);
#line 1384 "../src/main.vala"
						_tmp47_ = _tmp46_;
#line 1384 "../src/main.vala"
						_g_free0 (_tmp45_);
#line 1384 "../src/main.vala"
						current = _tmp47_;
#line 1385 "../src/main.vala"
						_tmp49_ = op;
#line 1385 "../src/main.vala"
						if (g_strcmp0 (_tmp49_, "+=") == 0) {
#line 1385 "../src/main.vala"
							_tmp48_ = "Php.add_zval";
#line 15347 "main.c"
						} else {
							const gchar* _tmp50_ = NULL;
							const gchar* _tmp51_;
#line 1385 "../src/main.vala"
							_tmp51_ = op;
#line 1385 "../src/main.vala"
							if (g_strcmp0 (_tmp51_, "-=") == 0) {
#line 1385 "../src/main.vala"
								_tmp50_ = "Php.sub_zval";
#line 15357 "main.c"
							} else {
#line 1385 "../src/main.vala"
								_tmp50_ = "Php.mul_zval";
#line 15361 "main.c"
							}
#line 1385 "../src/main.vala"
							_tmp48_ = _tmp50_;
#line 15365 "main.c"
						}
#line 1385 "../src/main.vala"
						_tmp52_ = g_strdup (_tmp48_);
#line 1385 "../src/main.vala"
						op_name = _tmp52_;
#line 1386 "../src/main.vala"
						_tmp53_ = op;
#line 1386 "../src/main.vala"
						if (g_strcmp0 (_tmp53_, "/=") == 0) {
#line 15375 "main.c"
							const gchar* _tmp54_;
							const gchar* _tmp55_;
							GeeArrayList* _tmp56_;
							gpointer _tmp57_;
							gchar* _tmp58_;
							const gchar* _tmp59_;
							const gchar* _tmp60_;
							const gchar* _tmp61_;
							const gchar* _tmp62_;
							const gchar* _tmp63_;
							gchar* _tmp64_;
							gchar* _tmp65_;
							const gchar* _tmp66_;
							gchar* _tmp67_;
							gchar* _tmp68_;
#line 1387 "../src/main.vala"
							php_to_vala_transpiler_mark_function_used (self, "div");
#line 1388 "../src/main.vala"
							_tmp54_ = name;
#line 1388 "../src/main.vala"
							_tmp55_ = string_to_string (_tmp54_);
#line 1388 "../src/main.vala"
							_tmp56_ = keys;
#line 1388 "../src/main.vala"
							_tmp57_ = gee_abstract_list_get ((GeeAbstractList*) _tmp56_, 0);
#line 1388 "../src/main.vala"
							_tmp58_ = (gchar*) _tmp57_;
#line 1388 "../src/main.vala"
							_tmp59_ = string_to_string (_tmp58_);
#line 1388 "../src/main.vala"
							_tmp60_ = current;
#line 1388 "../src/main.vala"
							_tmp61_ = string_to_string (_tmp60_);
#line 1388 "../src/main.vala"
							_tmp62_ = rhs;
#line 1388 "../src/main.vala"
							_tmp63_ = string_to_string (_tmp62_);
#line 1388 "../src/main.vala"
							_tmp64_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1388 "../src/main.vala"
							_tmp65_ = _tmp64_;
#line 1388 "../src/main.vala"
							_tmp66_ = string_to_string (_tmp65_);
#line 1388 "../src/main.vala"
							_tmp67_ = g_strconcat ("Php.array_set (", _tmp55_, ", ", _tmp59_, ", Php.div_zval (", _tmp61_, ", ", _tmp63_, _tmp66_, "));", NULL);
#line 1388 "../src/main.vala"
							_tmp68_ = _tmp67_;
#line 1388 "../src/main.vala"
							_g_free0 (_tmp65_);
#line 1388 "../src/main.vala"
							_g_free0 (_tmp58_);
#line 1388 "../src/main.vala"
							result = _tmp68_;
#line 1388 "../src/main.vala"
							_g_free0 (op_name);
#line 1388 "../src/main.vala"
							_g_free0 (current);
#line 1388 "../src/main.vala"
							_g_object_unref0 (keys);
#line 1388 "../src/main.vala"
							_g_free0 (name);
#line 1388 "../src/main.vala"
							_g_free0 (rhs);
#line 1388 "../src/main.vala"
							_g_free0 (lhs);
#line 1388 "../src/main.vala"
							_g_free0 (op);
#line 1388 "../src/main.vala"
							operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1388 "../src/main.vala"
							_g_free0 (clean);
#line 1388 "../src/main.vala"
							return result;
#line 15449 "main.c"
						}
#line 1390 "../src/main.vala"
						_tmp69_ = name;
#line 1390 "../src/main.vala"
						_tmp70_ = string_to_string (_tmp69_);
#line 1390 "../src/main.vala"
						_tmp71_ = keys;
#line 1390 "../src/main.vala"
						_tmp72_ = gee_abstract_list_get ((GeeAbstractList*) _tmp71_, 0);
#line 1390 "../src/main.vala"
						_tmp73_ = (gchar*) _tmp72_;
#line 1390 "../src/main.vala"
						_tmp74_ = string_to_string (_tmp73_);
#line 1390 "../src/main.vala"
						_tmp75_ = op_name;
#line 1390 "../src/main.vala"
						_tmp76_ = string_to_string (_tmp75_);
#line 1390 "../src/main.vala"
						_tmp77_ = current;
#line 1390 "../src/main.vala"
						_tmp78_ = string_to_string (_tmp77_);
#line 1390 "../src/main.vala"
						_tmp79_ = rhs;
#line 1390 "../src/main.vala"
						_tmp80_ = string_to_string (_tmp79_);
#line 1390 "../src/main.vala"
						_tmp81_ = g_strconcat ("Php.array_set (", _tmp70_, ", ", _tmp74_, ", ", _tmp76_, " (", _tmp78_, ", ", _tmp80_, "));", NULL);
#line 1390 "../src/main.vala"
						_tmp82_ = _tmp81_;
#line 1390 "../src/main.vala"
						_g_free0 (_tmp73_);
#line 1390 "../src/main.vala"
						result = _tmp82_;
#line 1390 "../src/main.vala"
						_g_free0 (op_name);
#line 1390 "../src/main.vala"
						_g_free0 (current);
#line 1390 "../src/main.vala"
						_g_object_unref0 (keys);
#line 1390 "../src/main.vala"
						_g_free0 (name);
#line 1390 "../src/main.vala"
						_g_free0 (rhs);
#line 1390 "../src/main.vala"
						_g_free0 (lhs);
#line 1390 "../src/main.vala"
						_g_free0 (op);
#line 1390 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1390 "../src/main.vala"
						_g_free0 (clean);
#line 1390 "../src/main.vala"
						return result;
#line 15503 "main.c"
					}
#line 1380 "../src/main.vala"
					_g_object_unref0 (keys);
#line 1380 "../src/main.vala"
					_g_free0 (name);
#line 15509 "main.c"
				}
#line 1393 "../src/main.vala"
				_tmp83_ = lhs;
#line 1393 "../src/main.vala"
				_tmp84_ = g_strconcat ("$", _tmp83_, NULL);
#line 1393 "../src/main.vala"
				_tmp85_ = _tmp84_;
#line 1393 "../src/main.vala"
				_tmp86_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp85_, php_line_number, &_inner_error0_);
#line 1393 "../src/main.vala"
				_tmp87_ = _tmp86_;
#line 1393 "../src/main.vala"
				_g_free0 (_tmp85_);
#line 1393 "../src/main.vala"
				current = _tmp87_;
#line 1393 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1393 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1393 "../src/main.vala"
					_g_free0 (rhs);
#line 1393 "../src/main.vala"
					_g_free0 (lhs);
#line 1393 "../src/main.vala"
					_g_free0 (op);
#line 1393 "../src/main.vala"
					operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1393 "../src/main.vala"
					_g_free0 (clean);
#line 1393 "../src/main.vala"
					return NULL;
#line 15541 "main.c"
				}
#line 1394 "../src/main.vala"
				_tmp89_ = op;
#line 1394 "../src/main.vala"
				if (g_strcmp0 (_tmp89_, "+=") == 0) {
#line 1394 "../src/main.vala"
					_tmp88_ = "Php.add_zval";
#line 15549 "main.c"
				} else {
					const gchar* _tmp90_ = NULL;
					const gchar* _tmp91_;
#line 1394 "../src/main.vala"
					_tmp91_ = op;
#line 1394 "../src/main.vala"
					if (g_strcmp0 (_tmp91_, "-=") == 0) {
#line 1394 "../src/main.vala"
						_tmp90_ = "Php.sub_zval";
#line 15559 "main.c"
					} else {
#line 1394 "../src/main.vala"
						_tmp90_ = "Php.mul_zval";
#line 15563 "main.c"
					}
#line 1394 "../src/main.vala"
					_tmp88_ = _tmp90_;
#line 15567 "main.c"
				}
#line 1394 "../src/main.vala"
				_tmp92_ = g_strdup (_tmp88_);
#line 1394 "../src/main.vala"
				op_name = _tmp92_;
#line 1395 "../src/main.vala"
				_tmp93_ = op;
#line 1395 "../src/main.vala"
				if (g_strcmp0 (_tmp93_, "/=") == 0) {
#line 15577 "main.c"
					gchar* _tmp94_;
#line 1396 "../src/main.vala"
					_tmp94_ = g_strdup ("php2vala_div");
#line 1396 "../src/main.vala"
					_g_free0 (op_name);
#line 1396 "../src/main.vala"
					op_name = _tmp94_;
#line 15585 "main.c"
				}
#line 1398 "../src/main.vala"
				_tmp95_ = op;
#line 1398 "../src/main.vala"
				if (g_strcmp0 (_tmp95_, "/=") == 0) {
#line 15591 "main.c"
					const gchar* _tmp96_;
					const gchar* _tmp97_;
					const gchar* _tmp98_;
					const gchar* _tmp99_;
					const gchar* _tmp100_;
					const gchar* _tmp101_;
					gchar* _tmp102_;
					gchar* _tmp103_;
					const gchar* _tmp104_;
					gchar* _tmp105_;
					gchar* _tmp106_;
#line 1399 "../src/main.vala"
					php_to_vala_transpiler_mark_function_used (self, "div");
#line 1400 "../src/main.vala"
					_tmp96_ = lhs;
#line 1400 "../src/main.vala"
					_tmp97_ = string_to_string (_tmp96_);
#line 1400 "../src/main.vala"
					_tmp98_ = current;
#line 1400 "../src/main.vala"
					_tmp99_ = string_to_string (_tmp98_);
#line 1400 "../src/main.vala"
					_tmp100_ = rhs;
#line 1400 "../src/main.vala"
					_tmp101_ = string_to_string (_tmp100_);
#line 1400 "../src/main.vala"
					_tmp102_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1400 "../src/main.vala"
					_tmp103_ = _tmp102_;
#line 1400 "../src/main.vala"
					_tmp104_ = string_to_string (_tmp103_);
#line 1400 "../src/main.vala"
					_tmp105_ = g_strconcat (_tmp97_, " = Php.div_zval (", _tmp99_, ", ", _tmp101_, _tmp104_, ");", NULL);
#line 1400 "../src/main.vala"
					_tmp106_ = _tmp105_;
#line 1400 "../src/main.vala"
					_g_free0 (_tmp103_);
#line 1400 "../src/main.vala"
					result = _tmp106_;
#line 1400 "../src/main.vala"
					_g_free0 (op_name);
#line 1400 "../src/main.vala"
					_g_free0 (current);
#line 1400 "../src/main.vala"
					_g_free0 (rhs);
#line 1400 "../src/main.vala"
					_g_free0 (lhs);
#line 1400 "../src/main.vala"
					_g_free0 (op);
#line 1400 "../src/main.vala"
					operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1400 "../src/main.vala"
					_g_free0 (clean);
#line 1400 "../src/main.vala"
					return result;
#line 15647 "main.c"
				}
#line 1402 "../src/main.vala"
				_tmp107_ = lhs;
#line 1402 "../src/main.vala"
				_tmp108_ = string_to_string (_tmp107_);
#line 1402 "../src/main.vala"
				_tmp109_ = op_name;
#line 1402 "../src/main.vala"
				_tmp110_ = string_to_string (_tmp109_);
#line 1402 "../src/main.vala"
				_tmp111_ = current;
#line 1402 "../src/main.vala"
				_tmp112_ = string_to_string (_tmp111_);
#line 1402 "../src/main.vala"
				_tmp113_ = rhs;
#line 1402 "../src/main.vala"
				_tmp114_ = string_to_string (_tmp113_);
#line 1402 "../src/main.vala"
				_tmp115_ = g_strconcat (_tmp108_, " = ", _tmp110_, " (", _tmp112_, ", ", _tmp114_, ");", NULL);
#line 1402 "../src/main.vala"
				result = _tmp115_;
#line 1402 "../src/main.vala"
				_g_free0 (op_name);
#line 1402 "../src/main.vala"
				_g_free0 (current);
#line 1402 "../src/main.vala"
				_g_free0 (rhs);
#line 1402 "../src/main.vala"
				_g_free0 (lhs);
#line 1402 "../src/main.vala"
				_g_free0 (op);
#line 1402 "../src/main.vala"
				operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1402 "../src/main.vala"
				_g_free0 (clean);
#line 1402 "../src/main.vala"
				return result;
#line 15685 "main.c"
			}
		}
	}
#line 1404 "../src/main.vala"
	result = NULL;
#line 1404 "../src/main.vala"
	operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 1404 "../src/main.vala"
	_g_free0 (clean);
#line 1404 "../src/main.vala"
	return result;
#line 15697 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_zval_exit (PhpToValaTranspiler* self,
                                            const gchar* expression,
                                            gint php_line_number,
                                            const gchar* construct_name,
                                            GError** error)
{
	gchar* clean_expression = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean _tmp4_ = FALSE;
	gchar* function_name = NULL;
	gchar* _tmp51_;
	gchar* _tmp52_ = NULL;
	const gchar* _tmp53_;
	gchar* converted_expression = NULL;
	gchar* _tmp57_;
	gchar* call = NULL;
	const gchar* _tmp58_;
	const gchar* _tmp59_;
	gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	gchar* _tmp63_;
	gchar* status = NULL;
	const gchar* _tmp64_;
	gchar* _tmp65_;
	gchar* _tmp66_ = NULL;
	gchar* _tmp71_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1407 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1407 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1407 "../src/main.vala"
	g_return_val_if_fail (construct_name != NULL, NULL);
#line 1408 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_trim_trailing_semicolon (expression);
#line 1408 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 1408 "../src/main.vala"
	_tmp2_ = string_strip (_tmp1_);
#line 1408 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1408 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 1408 "../src/main.vala"
	clean_expression = _tmp3_;
#line 1409 "../src/main.vala"
	if (self->priv->optimize_local_vars) {
#line 1409 "../src/main.vala"
		_tmp4_ = TRUE;
#line 15755 "main.c"
	} else {
#line 1409 "../src/main.vala"
		_tmp4_ = self->priv->optimize_file_func_vars;
#line 15759 "main.c"
	}
#line 1409 "../src/main.vala"
	if (_tmp4_) {
#line 15763 "main.c"
		const gchar* _tmp5_ = NULL;
		gchar* static_base = NULL;
		gchar* _tmp6_;
		gchar* static_call = NULL;
		const gchar* _tmp7_;
		const gchar* _tmp44_;
#line 1410 "../src/main.vala"
		if (g_strcmp0 (construct_name, "die") == 0) {
#line 1410 "../src/main.vala"
			_tmp5_ = "die";
#line 15774 "main.c"
		} else {
#line 1410 "../src/main.vala"
			_tmp5_ = "exit";
#line 15778 "main.c"
		}
#line 1410 "../src/main.vala"
		_tmp6_ = g_strdup (_tmp5_);
#line 1410 "../src/main.vala"
		static_base = _tmp6_;
#line 1411 "../src/main.vala"
		static_call = NULL;
#line 1412 "../src/main.vala"
		_tmp7_ = clean_expression;
#line 1412 "../src/main.vala"
		if (g_strcmp0 (_tmp7_, "") == 0) {
#line 15790 "main.c"
			gchar* function_name = NULL;
			const gchar* _tmp8_;
			gchar* _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			const gchar* _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
#line 1413 "../src/main.vala"
			_tmp8_ = static_base;
#line 1413 "../src/main.vala"
			_tmp9_ = g_strconcat (_tmp8_, "_no_args", NULL);
#line 1413 "../src/main.vala"
			_tmp10_ = _tmp9_;
#line 1413 "../src/main.vala"
			_tmp11_ = php_to_vala_transpiler_map_php_function_name (self, _tmp10_, php_line_number, &_inner_error0_);
#line 1413 "../src/main.vala"
			_tmp12_ = _tmp11_;
#line 1413 "../src/main.vala"
			_g_free0 (_tmp10_);
#line 1413 "../src/main.vala"
			function_name = _tmp12_;
#line 1413 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1413 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 1413 "../src/main.vala"
				_g_free0 (static_call);
#line 1413 "../src/main.vala"
				_g_free0 (static_base);
#line 1413 "../src/main.vala"
				_g_free0 (clean_expression);
#line 1413 "../src/main.vala"
				return NULL;
#line 15829 "main.c"
			}
#line 1414 "../src/main.vala"
			_tmp13_ = function_name;
#line 1414 "../src/main.vala"
			_tmp14_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1414 "../src/main.vala"
			_tmp15_ = _tmp14_;
#line 1414 "../src/main.vala"
			_tmp16_ = string_substring (_tmp15_, (glong) 2, (glong) -1);
#line 1414 "../src/main.vala"
			_tmp17_ = _tmp16_;
#line 1414 "../src/main.vala"
			_tmp18_ = g_strdup_printf ("%s (%s)", _tmp13_, _tmp17_);
#line 1414 "../src/main.vala"
			_g_free0 (static_call);
#line 1414 "../src/main.vala"
			static_call = _tmp18_;
#line 1414 "../src/main.vala"
			_g_free0 (_tmp17_);
#line 1414 "../src/main.vala"
			_g_free0 (_tmp15_);
#line 1412 "../src/main.vala"
			_g_free0 (function_name);
#line 15853 "main.c"
		} else {
			GRegex* _tmp19_;
			const gchar* _tmp20_;
#line 1415 "../src/main.vala"
			_tmp19_ = self->priv->int_regex;
#line 1415 "../src/main.vala"
			_tmp20_ = clean_expression;
#line 1415 "../src/main.vala"
			if (g_regex_match (_tmp19_, _tmp20_, 0, NULL)) {
#line 15863 "main.c"
				gchar* function_name = NULL;
				const gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				gchar* _tmp24_;
				gchar* _tmp25_;
				const gchar* _tmp26_;
				const gchar* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
#line 1416 "../src/main.vala"
				_tmp21_ = static_base;
#line 1416 "../src/main.vala"
				_tmp22_ = g_strconcat (_tmp21_, "_int", NULL);
#line 1416 "../src/main.vala"
				_tmp23_ = _tmp22_;
#line 1416 "../src/main.vala"
				_tmp24_ = php_to_vala_transpiler_map_php_function_name (self, _tmp23_, php_line_number, &_inner_error0_);
#line 1416 "../src/main.vala"
				_tmp25_ = _tmp24_;
#line 1416 "../src/main.vala"
				_g_free0 (_tmp23_);
#line 1416 "../src/main.vala"
				function_name = _tmp25_;
#line 1416 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1416 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1416 "../src/main.vala"
					_g_free0 (static_call);
#line 1416 "../src/main.vala"
					_g_free0 (static_base);
#line 1416 "../src/main.vala"
					_g_free0 (clean_expression);
#line 1416 "../src/main.vala"
					return NULL;
#line 15901 "main.c"
				}
#line 1417 "../src/main.vala"
				_tmp26_ = function_name;
#line 1417 "../src/main.vala"
				_tmp27_ = clean_expression;
#line 1417 "../src/main.vala"
				_tmp28_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1417 "../src/main.vala"
				_tmp29_ = _tmp28_;
#line 1417 "../src/main.vala"
				_tmp30_ = g_strdup_printf ("%s (%s%s)", _tmp26_, _tmp27_, _tmp29_);
#line 1417 "../src/main.vala"
				_g_free0 (static_call);
#line 1417 "../src/main.vala"
				static_call = _tmp30_;
#line 1417 "../src/main.vala"
				_g_free0 (_tmp29_);
#line 1415 "../src/main.vala"
				_g_free0 (function_name);
#line 15921 "main.c"
			} else {
				const gchar* _tmp31_;
#line 1418 "../src/main.vala"
				_tmp31_ = clean_expression;
#line 1418 "../src/main.vala"
				if (php_to_vala_transpiler_is_string_literal (_tmp31_)) {
#line 15928 "main.c"
					gchar* function_name = NULL;
					const gchar* _tmp32_;
					gchar* _tmp33_;
					gchar* _tmp34_;
					gchar* _tmp35_;
					gchar* _tmp36_;
					gchar* _tmp37_ = NULL;
					const gchar* _tmp38_;
					gchar* _tmp39_;
					const gchar* _tmp40_;
					gchar* _tmp41_;
					gchar* _tmp42_;
					gchar* _tmp43_;
#line 1419 "../src/main.vala"
					_tmp32_ = static_base;
#line 1419 "../src/main.vala"
					_tmp33_ = g_strconcat (_tmp32_, "_string", NULL);
#line 1419 "../src/main.vala"
					_tmp34_ = _tmp33_;
#line 1419 "../src/main.vala"
					_tmp35_ = php_to_vala_transpiler_map_php_function_name (self, _tmp34_, php_line_number, &_inner_error0_);
#line 1419 "../src/main.vala"
					_tmp36_ = _tmp35_;
#line 1419 "../src/main.vala"
					_g_free0 (_tmp34_);
#line 1419 "../src/main.vala"
					function_name = _tmp36_;
#line 1419 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1419 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 1419 "../src/main.vala"
						_g_free0 (static_call);
#line 1419 "../src/main.vala"
						_g_free0 (static_base);
#line 1419 "../src/main.vala"
						_g_free0 (clean_expression);
#line 1419 "../src/main.vala"
						return NULL;
#line 15968 "main.c"
					}
#line 1422 "../src/main.vala"
					_tmp38_ = clean_expression;
#line 1422 "../src/main.vala"
					_tmp39_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp38_, php_line_number, &_inner_error0_);
#line 1422 "../src/main.vala"
					_tmp37_ = _tmp39_;
#line 1422 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1422 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 1422 "../src/main.vala"
						_g_free0 (function_name);
#line 1422 "../src/main.vala"
						_g_free0 (static_call);
#line 1422 "../src/main.vala"
						_g_free0 (static_base);
#line 1422 "../src/main.vala"
						_g_free0 (clean_expression);
#line 1422 "../src/main.vala"
						return NULL;
#line 15990 "main.c"
					}
#line 1420 "../src/main.vala"
					_tmp40_ = function_name;
#line 1420 "../src/main.vala"
					_tmp41_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1420 "../src/main.vala"
					_tmp42_ = _tmp41_;
#line 1420 "../src/main.vala"
					_tmp43_ = g_strdup_printf ("%s (Php.zval_to_string (%s)%s)", _tmp40_, _tmp37_, _tmp42_);
#line 1420 "../src/main.vala"
					_g_free0 (static_call);
#line 1420 "../src/main.vala"
					static_call = _tmp43_;
#line 1420 "../src/main.vala"
					_g_free0 (_tmp42_);
#line 1418 "../src/main.vala"
					_g_free0 (_tmp37_);
#line 1418 "../src/main.vala"
					_g_free0 (function_name);
#line 16010 "main.c"
				}
			}
		}
#line 1426 "../src/main.vala"
		_tmp44_ = static_call;
#line 1426 "../src/main.vala"
		if (_tmp44_ != NULL) {
#line 16018 "main.c"
			gchar* _tmp45_ = NULL;
			gchar* _tmp50_;
#line 1427 "../src/main.vala"
			if (self->transpiling_local_function) {
#line 16023 "main.c"
				const gchar* _tmp46_;
				gchar* _tmp47_;
#line 1428 "../src/main.vala"
				_tmp46_ = static_call;
#line 1428 "../src/main.vala"
				_tmp47_ = g_strdup_printf ("Process.exit (%s);", _tmp46_);
#line 1428 "../src/main.vala"
				_g_free0 (_tmp45_);
#line 1428 "../src/main.vala"
				_tmp45_ = _tmp47_;
#line 16034 "main.c"
			} else {
				const gchar* _tmp48_;
				gchar* _tmp49_;
#line 1429 "../src/main.vala"
				_tmp48_ = static_call;
#line 1429 "../src/main.vala"
				_tmp49_ = g_strdup_printf ("return %s;", _tmp48_);
#line 1429 "../src/main.vala"
				_g_free0 (_tmp45_);
#line 1429 "../src/main.vala"
				_tmp45_ = _tmp49_;
#line 16046 "main.c"
			}
#line 1427 "../src/main.vala"
			_tmp50_ = _tmp45_;
#line 1427 "../src/main.vala"
			_tmp45_ = NULL;
#line 1427 "../src/main.vala"
			result = _tmp50_;
#line 1427 "../src/main.vala"
			_g_free0 (_tmp45_);
#line 1427 "../src/main.vala"
			_g_free0 (static_call);
#line 1427 "../src/main.vala"
			_g_free0 (static_base);
#line 1427 "../src/main.vala"
			_g_free0 (clean_expression);
#line 1427 "../src/main.vala"
			return result;
#line 16064 "main.c"
		}
#line 1409 "../src/main.vala"
		_g_free0 (static_call);
#line 1409 "../src/main.vala"
		_g_free0 (static_base);
#line 16070 "main.c"
	}
#line 1433 "../src/main.vala"
	_tmp51_ = php_to_vala_transpiler_map_php_function_name (self, construct_name, php_line_number, &_inner_error0_);
#line 1433 "../src/main.vala"
	function_name = _tmp51_;
#line 1433 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1433 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1433 "../src/main.vala"
		_g_free0 (clean_expression);
#line 1433 "../src/main.vala"
		return NULL;
#line 16084 "main.c"
	}
#line 1434 "../src/main.vala"
	_tmp53_ = clean_expression;
#line 1434 "../src/main.vala"
	if (g_strcmp0 (_tmp53_, "") == 0) {
#line 16090 "main.c"
		gchar* _tmp54_;
#line 1434 "../src/main.vala"
		_tmp54_ = g_strdup ("Php.zval.null_value ()");
#line 1434 "../src/main.vala"
		_g_free0 (_tmp52_);
#line 1434 "../src/main.vala"
		_tmp52_ = _tmp54_;
#line 16098 "main.c"
	} else {
		const gchar* _tmp55_;
		gchar* _tmp56_;
#line 1434 "../src/main.vala"
		_tmp55_ = clean_expression;
#line 1434 "../src/main.vala"
		_tmp56_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp55_, php_line_number, &_inner_error0_);
#line 1434 "../src/main.vala"
		_g_free0 (_tmp52_);
#line 1434 "../src/main.vala"
		_tmp52_ = _tmp56_;
#line 1434 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1434 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1434 "../src/main.vala"
			_g_free0 (_tmp52_);
#line 1434 "../src/main.vala"
			_g_free0 (function_name);
#line 1434 "../src/main.vala"
			_g_free0 (clean_expression);
#line 1434 "../src/main.vala"
			return NULL;
#line 16122 "main.c"
		}
	}
#line 1434 "../src/main.vala"
	_tmp57_ = _tmp52_;
#line 1434 "../src/main.vala"
	_tmp52_ = NULL;
#line 1434 "../src/main.vala"
	converted_expression = _tmp57_;
#line 1435 "../src/main.vala"
	_tmp58_ = function_name;
#line 1435 "../src/main.vala"
	_tmp59_ = converted_expression;
#line 1435 "../src/main.vala"
	_tmp60_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1435 "../src/main.vala"
	_tmp61_ = _tmp60_;
#line 1435 "../src/main.vala"
	_tmp62_ = g_strdup_printf ("%s (%s%s)", _tmp58_, _tmp59_, _tmp61_);
#line 1435 "../src/main.vala"
	_tmp63_ = _tmp62_;
#line 1435 "../src/main.vala"
	_g_free0 (_tmp61_);
#line 1435 "../src/main.vala"
	call = _tmp63_;
#line 1436 "../src/main.vala"
	_tmp64_ = call;
#line 1436 "../src/main.vala"
	_tmp65_ = g_strdup_printf ("Php.zval_to_int (%s)", _tmp64_);
#line 1436 "../src/main.vala"
	status = _tmp65_;
#line 1437 "../src/main.vala"
	if (self->transpiling_local_function) {
#line 16155 "main.c"
		const gchar* _tmp67_;
		gchar* _tmp68_;
#line 1438 "../src/main.vala"
		_tmp67_ = status;
#line 1438 "../src/main.vala"
		_tmp68_ = g_strdup_printf ("Process.exit (%s);", _tmp67_);
#line 1438 "../src/main.vala"
		_g_free0 (_tmp66_);
#line 1438 "../src/main.vala"
		_tmp66_ = _tmp68_;
#line 16166 "main.c"
	} else {
		const gchar* _tmp69_;
		gchar* _tmp70_;
#line 1439 "../src/main.vala"
		_tmp69_ = status;
#line 1439 "../src/main.vala"
		_tmp70_ = g_strdup_printf ("return %s;", _tmp69_);
#line 1439 "../src/main.vala"
		_g_free0 (_tmp66_);
#line 1439 "../src/main.vala"
		_tmp66_ = _tmp70_;
#line 16178 "main.c"
	}
#line 1437 "../src/main.vala"
	_tmp71_ = _tmp66_;
#line 1437 "../src/main.vala"
	_tmp66_ = NULL;
#line 1437 "../src/main.vala"
	result = _tmp71_;
#line 1437 "../src/main.vala"
	_g_free0 (_tmp66_);
#line 1437 "../src/main.vala"
	_g_free0 (status);
#line 1437 "../src/main.vala"
	_g_free0 (call);
#line 1437 "../src/main.vala"
	_g_free0 (converted_expression);
#line 1437 "../src/main.vala"
	_g_free0 (_tmp52_);
#line 1437 "../src/main.vala"
	_g_free0 (function_name);
#line 1437 "../src/main.vala"
	_g_free0 (clean_expression);
#line 1437 "../src/main.vala"
	return result;
#line 16202 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_expression_no_throw (PhpToValaTranspiler* self,
                                                         const gchar* expression,
                                                         gint php_line_number)
{
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1442 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1442 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 16216 "main.c"
	{
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_;
		gchar* _tmp2_;
#line 1444 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_convert_zval_expression (self, expression, php_line_number, &_inner_error0_);
#line 1444 "../src/main.vala"
		_tmp0_ = _tmp1_;
#line 1444 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 16227 "main.c"
			goto __catch0_g_error;
		}
#line 1444 "../src/main.vala"
		_tmp2_ = _tmp0_;
#line 1444 "../src/main.vala"
		_tmp0_ = NULL;
#line 1444 "../src/main.vala"
		result = _tmp2_;
#line 1444 "../src/main.vala"
		_g_free0 (_tmp0_);
#line 1444 "../src/main.vala"
		return result;
#line 16240 "main.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		gchar* _tmp3_;
#line 1443 "../src/main.vala"
		g_clear_error (&_inner_error0_);
#line 1446 "../src/main.vala"
		_tmp3_ = g_strdup ("Php.zval.null_value ()");
#line 1446 "../src/main.vala"
		result = _tmp3_;
#line 1446 "../src/main.vala"
		return result;
#line 16254 "main.c"
	}
	__finally0:
#line 1443 "../src/main.vala"
	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 1443 "../src/main.vala"
	g_clear_error (&_inner_error0_);
#line 1443 "../src/main.vala"
	return NULL;
#line 16263 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_return_expression (PhpToValaTranspiler* self,
                                                       const gchar* expression,
                                                       gint php_line_number,
                                                       GError** error)
{
	gchar* converted = NULL;
	gchar* _tmp0_;
	gboolean _tmp1_ = FALSE;
	LocalFunction* local_function = NULL;
	GeeHashMap* _tmp4_;
	const gchar* _tmp5_;
	gpointer _tmp6_;
	gboolean _tmp7_ = FALSE;
	LocalFunction* _tmp8_;
	LocalFunction* _tmp11_;
	const gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	GQuark _tmp16_ = 0U;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label0 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label1 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label2 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label3 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label4 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label5 = 0;
#line 1461 "../src/main.vala"
	static GQuark _tmp15_label6 = 0;
#line 16300 "main.c"
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1450 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1450 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1451 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_convert_zval_expression (self, expression, php_line_number, &_inner_error0_);
#line 1451 "../src/main.vala"
	converted = _tmp0_;
#line 1451 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1451 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1451 "../src/main.vala"
		return NULL;
#line 16317 "main.c"
	}
#line 1452 "../src/main.vala"
	if (!self->transpiling_local_function) {
#line 1452 "../src/main.vala"
		_tmp1_ = TRUE;
#line 16323 "main.c"
	} else {
		GeeHashMap* _tmp2_;
		const gchar* _tmp3_;
#line 1452 "../src/main.vala"
		_tmp2_ = self->local_functions;
#line 1452 "../src/main.vala"
		_tmp3_ = self->current_local_function_name;
#line 1452 "../src/main.vala"
		_tmp1_ = !gee_abstract_map_has_key ((GeeAbstractMap*) _tmp2_, _tmp3_);
#line 16333 "main.c"
	}
#line 1452 "../src/main.vala"
	if (_tmp1_) {
#line 1453 "../src/main.vala"
		result = converted;
#line 1453 "../src/main.vala"
		return result;
#line 16341 "main.c"
	}
#line 1456 "../src/main.vala"
	_tmp4_ = self->local_functions;
#line 1456 "../src/main.vala"
	_tmp5_ = self->current_local_function_name;
#line 1456 "../src/main.vala"
	_tmp6_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp4_, _tmp5_);
#line 1456 "../src/main.vala"
	local_function = (LocalFunction*) _tmp6_;
#line 1457 "../src/main.vala"
	_tmp8_ = local_function;
#line 1457 "../src/main.vala"
	if (_tmp8_ == NULL) {
#line 1457 "../src/main.vala"
		_tmp7_ = TRUE;
#line 16357 "main.c"
	} else {
		LocalFunction* _tmp9_;
		const gchar* _tmp10_;
#line 1457 "../src/main.vala"
		_tmp9_ = local_function;
#line 1457 "../src/main.vala"
		_tmp10_ = _tmp9_->return_type;
#line 1457 "../src/main.vala"
		_tmp7_ = _tmp10_ == NULL;
#line 16367 "main.c"
	}
#line 1457 "../src/main.vala"
	if (_tmp7_) {
#line 1458 "../src/main.vala"
		result = converted;
#line 1458 "../src/main.vala"
		_g_object_unref0 (local_function);
#line 1458 "../src/main.vala"
		return result;
#line 16377 "main.c"
	}
#line 1461 "../src/main.vala"
	_tmp11_ = local_function;
#line 1461 "../src/main.vala"
	_tmp12_ = _tmp11_->return_type;
#line 1461 "../src/main.vala"
	_tmp13_ = g_utf8_strdown (_tmp12_, (gssize) -1);
#line 1461 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 1461 "../src/main.vala"
	_tmp16_ = (NULL == _tmp14_) ? 0 : g_quark_from_string (_tmp14_);
#line 1461 "../src/main.vala"
	g_free (_tmp14_);
#line 1461 "../src/main.vala"
	if ((_tmp16_ == ((0 != _tmp15_label0) ? _tmp15_label0 : (_tmp15_label0 = g_quark_from_static_string ("int")))) || (_tmp16_ == ((0 != _tmp15_label1) ? _tmp15_label1 : (_tmp15_label1 = g_quark_from_static_string ("integer"))))) {
#line 1461 "../src/main.vala"
		switch (0) {
#line 16395 "main.c"
			default:
			{
				const gchar* _tmp17_;
				gchar* _tmp18_;
#line 1464 "../src/main.vala"
				_tmp17_ = converted;
#line 1464 "../src/main.vala"
				_tmp18_ = g_strdup_printf ("Php.zval.integer (Php.zval_to_int (%s))", _tmp17_);
#line 1464 "../src/main.vala"
				result = _tmp18_;
#line 1464 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1464 "../src/main.vala"
				_g_free0 (converted);
#line 1464 "../src/main.vala"
				return result;
#line 16412 "main.c"
			}
		}
	} else if ((_tmp16_ == ((0 != _tmp15_label2) ? _tmp15_label2 : (_tmp15_label2 = g_quark_from_static_string ("float")))) || (_tmp16_ == ((0 != _tmp15_label3) ? _tmp15_label3 : (_tmp15_label3 = g_quark_from_static_string ("double"))))) {
#line 1461 "../src/main.vala"
		switch (0) {
#line 16418 "main.c"
			default:
			{
				const gchar* _tmp19_;
				gchar* _tmp20_;
#line 1467 "../src/main.vala"
				_tmp19_ = converted;
#line 1467 "../src/main.vala"
				_tmp20_ = g_strdup_printf ("Php.zval.double_number (Php.zval_to_double (%s))", _tmp19_);
#line 1467 "../src/main.vala"
				result = _tmp20_;
#line 1467 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1467 "../src/main.vala"
				_g_free0 (converted);
#line 1467 "../src/main.vala"
				return result;
#line 16435 "main.c"
			}
		}
	} else if (_tmp16_ == ((0 != _tmp15_label4) ? _tmp15_label4 : (_tmp15_label4 = g_quark_from_static_string ("string")))) {
#line 1461 "../src/main.vala"
		switch (0) {
#line 16441 "main.c"
			default:
			{
				const gchar* _tmp21_;
				gchar* _tmp22_;
#line 1469 "../src/main.vala"
				_tmp21_ = converted;
#line 1469 "../src/main.vala"
				_tmp22_ = g_strdup_printf ("Php.zval.string_value (Php.zval_to_string (%s))", _tmp21_);
#line 1469 "../src/main.vala"
				result = _tmp22_;
#line 1469 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1469 "../src/main.vala"
				_g_free0 (converted);
#line 1469 "../src/main.vala"
				return result;
#line 16458 "main.c"
			}
		}
	} else if ((_tmp16_ == ((0 != _tmp15_label5) ? _tmp15_label5 : (_tmp15_label5 = g_quark_from_static_string ("bool")))) || (_tmp16_ == ((0 != _tmp15_label6) ? _tmp15_label6 : (_tmp15_label6 = g_quark_from_static_string ("boolean"))))) {
#line 1461 "../src/main.vala"
		switch (0) {
#line 16464 "main.c"
			default:
			{
				const gchar* _tmp23_;
				gchar* _tmp24_;
#line 1472 "../src/main.vala"
				_tmp23_ = converted;
#line 1472 "../src/main.vala"
				_tmp24_ = g_strdup_printf ("Php.zval.boolean (Php.truthy (%s))", _tmp23_);
#line 1472 "../src/main.vala"
				result = _tmp24_;
#line 1472 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1472 "../src/main.vala"
				_g_free0 (converted);
#line 1472 "../src/main.vala"
				return result;
#line 16481 "main.c"
			}
		}
	} else {
#line 1461 "../src/main.vala"
		switch (0) {
#line 16487 "main.c"
			default:
			{
#line 1474 "../src/main.vala"
				result = converted;
#line 1474 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 1474 "../src/main.vala"
				return result;
#line 16496 "main.c"
			}
		}
	}
}

static gchar*
php_to_vala_transpiler_convert_zval_expression (PhpToValaTranspiler* self,
                                                const gchar* expression,
                                                gint php_line_number,
                                                GError** error)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	const gchar* _tmp8_;
	gboolean _tmp24_ = FALSE;
	gboolean _tmp25_ = FALSE;
	const gchar* _tmp26_;
	gchar* cast_expression = NULL;
	const gchar* _tmp36_;
	gchar* _tmp37_;
	const gchar* _tmp38_;
	gboolean _tmp39_ = FALSE;
	const gchar* _tmp40_;
	gboolean _tmp43_ = FALSE;
	const gchar* _tmp44_;
	gboolean _tmp47_ = FALSE;
	const gchar* _tmp48_;
	const gchar* _tmp51_;
	const gchar* _tmp53_;
	const gchar* _tmp55_;
	GRegex* _tmp61_;
	const gchar* _tmp62_;
	GRegex* _tmp65_;
	const gchar* _tmp66_;
	gboolean _tmp69_ = FALSE;
	gboolean _tmp70_ = FALSE;
	gboolean _tmp71_ = FALSE;
	const gchar* _tmp72_;
	gchar* binary = NULL;
	const gchar* _tmp89_;
	gchar* _tmp90_;
	const gchar* _tmp91_;
	gchar* _tmp92_ = NULL;
	const gchar* _tmp93_;
	gchar* _tmp94_;
	gchar* _tmp95_;
	const gchar* _tmp96_;
	gchar* _tmp97_ = NULL;
	const gchar* _tmp98_;
	gchar* _tmp99_;
	gchar* _tmp100_;
	const gchar* _tmp101_;
	gchar* _tmp102_ = NULL;
	const gchar* _tmp103_;
	gchar* _tmp104_;
	gchar* _tmp105_;
	const gchar* _tmp106_;
	gchar* _tmp107_ = NULL;
	const gchar* _tmp108_;
	gchar* _tmp109_;
	gchar* _tmp110_;
	const gchar* _tmp111_;
	const gchar* _tmp112_;
	gchar* class_constant = NULL;
	const gchar* _tmp117_;
	gchar* _tmp118_;
	const gchar* _tmp119_;
	GMatchInfo* match = NULL;
	GRegex* _tmp120_;
	const gchar* _tmp121_;
	GMatchInfo* _tmp122_ = NULL;
	gboolean _tmp123_;
	GeeHashMap* _tmp167_;
	const gchar* _tmp168_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1478 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1478 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1479 "../src/main.vala"
	_tmp0_ = string_strip (expression);
#line 1479 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 1479 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp1_);
#line 1479 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1479 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 1479 "../src/main.vala"
	_result_ = _tmp3_;
#line 1480 "../src/main.vala"
	_tmp4_ = _result_;
#line 1480 "../src/main.vala"
	if (g_strcmp0 (_tmp4_, "") == 0) {
#line 16599 "main.c"
		gchar* _tmp5_;
#line 1481 "../src/main.vala"
		_tmp5_ = g_strdup ("Php.zval.null_value ()");
#line 1481 "../src/main.vala"
		result = _tmp5_;
#line 1481 "../src/main.vala"
		_g_free0 (_result_);
#line 1481 "../src/main.vala"
		return result;
#line 16609 "main.c"
	}
#line 1483 "../src/main.vala"
	_tmp8_ = _result_;
#line 1483 "../src/main.vala"
	if (g_str_has_prefix (_tmp8_, "(")) {
#line 16615 "main.c"
		const gchar* _tmp9_;
#line 1483 "../src/main.vala"
		_tmp9_ = _result_;
#line 1483 "../src/main.vala"
		_tmp7_ = g_str_has_suffix (_tmp9_, ")");
#line 16621 "main.c"
	} else {
#line 1483 "../src/main.vala"
		_tmp7_ = FALSE;
#line 16625 "main.c"
	}
#line 1483 "../src/main.vala"
	if (_tmp7_) {
#line 16629 "main.c"
		const gchar* _tmp10_;
		const gchar* _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
#line 1483 "../src/main.vala"
		_tmp10_ = _result_;
#line 1483 "../src/main.vala"
		_tmp11_ = _result_;
#line 1483 "../src/main.vala"
		_tmp12_ = strlen (_tmp11_);
#line 1483 "../src/main.vala"
		_tmp13_ = _tmp12_;
#line 1483 "../src/main.vala"
		_tmp6_ = php_to_vala_transpiler_find_matching_paren (_tmp10_, 0) == (_tmp13_ - 1);
#line 16644 "main.c"
	} else {
#line 1483 "../src/main.vala"
		_tmp6_ = FALSE;
#line 16648 "main.c"
	}
#line 1483 "../src/main.vala"
	if (_tmp6_) {
#line 16652 "main.c"
		gchar* _tmp14_ = NULL;
		const gchar* _tmp15_;
		const gchar* _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
#line 1484 "../src/main.vala"
		_tmp15_ = _result_;
#line 1484 "../src/main.vala"
		_tmp16_ = _result_;
#line 1484 "../src/main.vala"
		_tmp17_ = strlen (_tmp16_);
#line 1484 "../src/main.vala"
		_tmp18_ = _tmp17_;
#line 1484 "../src/main.vala"
		_tmp19_ = string_substring (_tmp15_, (glong) 1, (glong) (_tmp18_ - 2));
#line 1484 "../src/main.vala"
		_tmp20_ = _tmp19_;
#line 1484 "../src/main.vala"
		_tmp21_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp20_, php_line_number, &_inner_error0_);
#line 1484 "../src/main.vala"
		_tmp22_ = _tmp21_;
#line 1484 "../src/main.vala"
		_g_free0 (_tmp20_);
#line 1484 "../src/main.vala"
		_tmp14_ = _tmp22_;
#line 1484 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1484 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1484 "../src/main.vala"
			_g_free0 (_result_);
#line 1484 "../src/main.vala"
			return NULL;
#line 16691 "main.c"
		}
#line 1484 "../src/main.vala"
		_tmp23_ = _tmp14_;
#line 1484 "../src/main.vala"
		_tmp14_ = NULL;
#line 1484 "../src/main.vala"
		result = _tmp23_;
#line 1484 "../src/main.vala"
		_g_free0 (_tmp14_);
#line 1484 "../src/main.vala"
		_g_free0 (_result_);
#line 1484 "../src/main.vala"
		return result;
#line 16705 "main.c"
	}
#line 1486 "../src/main.vala"
	_tmp26_ = _result_;
#line 1486 "../src/main.vala"
	if (g_str_has_prefix (_tmp26_, "[")) {
#line 16711 "main.c"
		const gchar* _tmp27_;
#line 1486 "../src/main.vala"
		_tmp27_ = _result_;
#line 1486 "../src/main.vala"
		_tmp25_ = g_str_has_suffix (_tmp27_, "]");
#line 16717 "main.c"
	} else {
#line 1486 "../src/main.vala"
		_tmp25_ = FALSE;
#line 16721 "main.c"
	}
#line 1486 "../src/main.vala"
	if (_tmp25_) {
#line 16725 "main.c"
		const gchar* _tmp28_;
		const gchar* _tmp29_;
		gint _tmp30_;
		gint _tmp31_;
#line 1486 "../src/main.vala"
		_tmp28_ = _result_;
#line 1486 "../src/main.vala"
		_tmp29_ = _result_;
#line 1486 "../src/main.vala"
		_tmp30_ = strlen (_tmp29_);
#line 1486 "../src/main.vala"
		_tmp31_ = _tmp30_;
#line 1486 "../src/main.vala"
		_tmp24_ = php_to_vala_transpiler_find_matching_bracket (_tmp28_, 0) == (_tmp31_ - 1);
#line 16740 "main.c"
	} else {
#line 1486 "../src/main.vala"
		_tmp24_ = FALSE;
#line 16744 "main.c"
	}
#line 1486 "../src/main.vala"
	if (_tmp24_) {
#line 16748 "main.c"
		gchar* _tmp32_ = NULL;
		const gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
#line 1487 "../src/main.vala"
		_tmp33_ = _result_;
#line 1487 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_convert_zval_short_array_expression (self, _tmp33_, php_line_number, &_inner_error0_);
#line 1487 "../src/main.vala"
		_tmp32_ = _tmp34_;
#line 1487 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1487 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1487 "../src/main.vala"
			_g_free0 (_result_);
#line 1487 "../src/main.vala"
			return NULL;
#line 16767 "main.c"
		}
#line 1487 "../src/main.vala"
		_tmp35_ = _tmp32_;
#line 1487 "../src/main.vala"
		_tmp32_ = NULL;
#line 1487 "../src/main.vala"
		result = _tmp35_;
#line 1487 "../src/main.vala"
		_g_free0 (_tmp32_);
#line 1487 "../src/main.vala"
		_g_free0 (_result_);
#line 1487 "../src/main.vala"
		return result;
#line 16781 "main.c"
	}
#line 1489 "../src/main.vala"
	_tmp36_ = _result_;
#line 1489 "../src/main.vala"
	_tmp37_ = php_to_vala_transpiler_convert_zval_cast_expression (self, _tmp36_, php_line_number, &_inner_error0_);
#line 1489 "../src/main.vala"
	cast_expression = _tmp37_;
#line 1489 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1489 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1489 "../src/main.vala"
		_g_free0 (_result_);
#line 1489 "../src/main.vala"
		return NULL;
#line 16797 "main.c"
	}
#line 1490 "../src/main.vala"
	_tmp38_ = cast_expression;
#line 1490 "../src/main.vala"
	if (_tmp38_ != NULL) {
#line 1491 "../src/main.vala"
		result = cast_expression;
#line 1491 "../src/main.vala"
		_g_free0 (_result_);
#line 1491 "../src/main.vala"
		return result;
#line 16809 "main.c"
	}
#line 1493 "../src/main.vala"
	_tmp40_ = _result_;
#line 1493 "../src/main.vala"
	if (g_strcmp0 (_tmp40_, "TRUE") == 0) {
#line 1493 "../src/main.vala"
		_tmp39_ = TRUE;
#line 16817 "main.c"
	} else {
		const gchar* _tmp41_;
#line 1493 "../src/main.vala"
		_tmp41_ = _result_;
#line 1493 "../src/main.vala"
		_tmp39_ = g_strcmp0 (_tmp41_, "true") == 0;
#line 16824 "main.c"
	}
#line 1493 "../src/main.vala"
	if (_tmp39_) {
#line 16828 "main.c"
		gchar* _tmp42_;
#line 1494 "../src/main.vala"
		_tmp42_ = g_strdup ("Php.zval.boolean (true)");
#line 1494 "../src/main.vala"
		result = _tmp42_;
#line 1494 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1494 "../src/main.vala"
		_g_free0 (_result_);
#line 1494 "../src/main.vala"
		return result;
#line 16840 "main.c"
	}
#line 1496 "../src/main.vala"
	_tmp44_ = _result_;
#line 1496 "../src/main.vala"
	if (g_strcmp0 (_tmp44_, "FALSE") == 0) {
#line 1496 "../src/main.vala"
		_tmp43_ = TRUE;
#line 16848 "main.c"
	} else {
		const gchar* _tmp45_;
#line 1496 "../src/main.vala"
		_tmp45_ = _result_;
#line 1496 "../src/main.vala"
		_tmp43_ = g_strcmp0 (_tmp45_, "false") == 0;
#line 16855 "main.c"
	}
#line 1496 "../src/main.vala"
	if (_tmp43_) {
#line 16859 "main.c"
		gchar* _tmp46_;
#line 1497 "../src/main.vala"
		_tmp46_ = g_strdup ("Php.zval.boolean (false)");
#line 1497 "../src/main.vala"
		result = _tmp46_;
#line 1497 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1497 "../src/main.vala"
		_g_free0 (_result_);
#line 1497 "../src/main.vala"
		return result;
#line 16871 "main.c"
	}
#line 1499 "../src/main.vala"
	_tmp48_ = _result_;
#line 1499 "../src/main.vala"
	if (g_strcmp0 (_tmp48_, "NULL") == 0) {
#line 1499 "../src/main.vala"
		_tmp47_ = TRUE;
#line 16879 "main.c"
	} else {
		const gchar* _tmp49_;
#line 1499 "../src/main.vala"
		_tmp49_ = _result_;
#line 1499 "../src/main.vala"
		_tmp47_ = g_strcmp0 (_tmp49_, "null") == 0;
#line 16886 "main.c"
	}
#line 1499 "../src/main.vala"
	if (_tmp47_) {
#line 16890 "main.c"
		gchar* _tmp50_;
#line 1500 "../src/main.vala"
		_tmp50_ = g_strdup ("Php.zval.null_value ()");
#line 1500 "../src/main.vala"
		result = _tmp50_;
#line 1500 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1500 "../src/main.vala"
		_g_free0 (_result_);
#line 1500 "../src/main.vala"
		return result;
#line 16902 "main.c"
	}
#line 1502 "../src/main.vala"
	_tmp51_ = _result_;
#line 1502 "../src/main.vala"
	if (g_strcmp0 (_tmp51_, "PHP_EOL") == 0) {
#line 16908 "main.c"
		gchar* _tmp52_;
#line 1503 "../src/main.vala"
		_tmp52_ = g_strdup ("Php.zval.string_value (\"\\n\")");
#line 1503 "../src/main.vala"
		result = _tmp52_;
#line 1503 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1503 "../src/main.vala"
		_g_free0 (_result_);
#line 1503 "../src/main.vala"
		return result;
#line 16920 "main.c"
	}
#line 1505 "../src/main.vala"
	_tmp53_ = _result_;
#line 1505 "../src/main.vala"
	if (g_strcmp0 (_tmp53_, "TOKEN_PARSE") == 0) {
#line 16926 "main.c"
		gchar* _tmp54_;
#line 1506 "../src/main.vala"
		_tmp54_ = g_strdup ("Php.zval.integer (1)");
#line 1506 "../src/main.vala"
		result = _tmp54_;
#line 1506 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1506 "../src/main.vala"
		_g_free0 (_result_);
#line 1506 "../src/main.vala"
		return result;
#line 16938 "main.c"
	}
#line 1508 "../src/main.vala"
	_tmp55_ = _result_;
#line 1508 "../src/main.vala"
	if (php_to_vala_transpiler_is_string_literal (_tmp55_)) {
#line 16944 "main.c"
		const gchar* _tmp56_;
		gchar* _tmp57_;
		gchar* _tmp58_;
		gchar* _tmp59_;
		gchar* _tmp60_;
#line 1509 "../src/main.vala"
		_tmp56_ = _result_;
#line 1509 "../src/main.vala"
		_tmp57_ = php_to_vala_transpiler_convert_string_literal (_tmp56_);
#line 1509 "../src/main.vala"
		_tmp58_ = _tmp57_;
#line 1509 "../src/main.vala"
		_tmp59_ = g_strdup_printf ("Php.zval.string_value (%s)", _tmp58_);
#line 1509 "../src/main.vala"
		_tmp60_ = _tmp59_;
#line 1509 "../src/main.vala"
		_g_free0 (_tmp58_);
#line 1509 "../src/main.vala"
		result = _tmp60_;
#line 1509 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1509 "../src/main.vala"
		_g_free0 (_result_);
#line 1509 "../src/main.vala"
		return result;
#line 16970 "main.c"
	}
#line 1511 "../src/main.vala"
	_tmp61_ = self->priv->int_regex;
#line 1511 "../src/main.vala"
	_tmp62_ = _result_;
#line 1511 "../src/main.vala"
	if (g_regex_match (_tmp61_, _tmp62_, 0, NULL)) {
#line 16978 "main.c"
		const gchar* _tmp63_;
		gchar* _tmp64_;
#line 1512 "../src/main.vala"
		_tmp63_ = _result_;
#line 1512 "../src/main.vala"
		_tmp64_ = g_strdup_printf ("Php.zval.integer (%s)", _tmp63_);
#line 1512 "../src/main.vala"
		result = _tmp64_;
#line 1512 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1512 "../src/main.vala"
		_g_free0 (_result_);
#line 1512 "../src/main.vala"
		return result;
#line 16993 "main.c"
	}
#line 1514 "../src/main.vala"
	_tmp65_ = self->priv->double_regex;
#line 1514 "../src/main.vala"
	_tmp66_ = _result_;
#line 1514 "../src/main.vala"
	if (g_regex_match (_tmp65_, _tmp66_, 0, NULL)) {
#line 17001 "main.c"
		const gchar* _tmp67_;
		gchar* _tmp68_;
#line 1515 "../src/main.vala"
		_tmp67_ = _result_;
#line 1515 "../src/main.vala"
		_tmp68_ = g_strdup_printf ("Php.zval.double_number (%s)", _tmp67_);
#line 1515 "../src/main.vala"
		result = _tmp68_;
#line 1515 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1515 "../src/main.vala"
		_g_free0 (_result_);
#line 1515 "../src/main.vala"
		return result;
#line 17016 "main.c"
	}
#line 1517 "../src/main.vala"
	_tmp72_ = _result_;
#line 1517 "../src/main.vala"
	if (g_str_has_prefix (_tmp72_, "-")) {
#line 17022 "main.c"
		const gchar* _tmp73_;
		gint _tmp74_;
		gint _tmp75_;
#line 1517 "../src/main.vala"
		_tmp73_ = _result_;
#line 1517 "../src/main.vala"
		_tmp74_ = strlen (_tmp73_);
#line 1517 "../src/main.vala"
		_tmp75_ = _tmp74_;
#line 1517 "../src/main.vala"
		_tmp71_ = _tmp75_ > 1;
#line 17034 "main.c"
	} else {
#line 1517 "../src/main.vala"
		_tmp71_ = FALSE;
#line 17038 "main.c"
	}
#line 1517 "../src/main.vala"
	if (_tmp71_) {
#line 17042 "main.c"
		GRegex* _tmp76_;
		const gchar* _tmp77_;
#line 1517 "../src/main.vala"
		_tmp76_ = self->priv->double_regex;
#line 1517 "../src/main.vala"
		_tmp77_ = _result_;
#line 1517 "../src/main.vala"
		_tmp70_ = !g_regex_match (_tmp76_, _tmp77_, 0, NULL);
#line 17051 "main.c"
	} else {
#line 1517 "../src/main.vala"
		_tmp70_ = FALSE;
#line 17055 "main.c"
	}
#line 1517 "../src/main.vala"
	if (_tmp70_) {
#line 17059 "main.c"
		GRegex* _tmp78_;
		const gchar* _tmp79_;
#line 1517 "../src/main.vala"
		_tmp78_ = self->priv->int_regex;
#line 1517 "../src/main.vala"
		_tmp79_ = _result_;
#line 1517 "../src/main.vala"
		_tmp69_ = !g_regex_match (_tmp78_, _tmp79_, 0, NULL);
#line 17068 "main.c"
	} else {
#line 1517 "../src/main.vala"
		_tmp69_ = FALSE;
#line 17072 "main.c"
	}
#line 1517 "../src/main.vala"
	if (_tmp69_) {
#line 17076 "main.c"
		gchar* _tmp80_ = NULL;
		const gchar* _tmp81_;
		gchar* _tmp82_;
		gchar* _tmp83_;
		gchar* _tmp84_;
		gchar* _tmp85_;
		gchar* _tmp86_;
		gchar* _tmp87_;
		gchar* _tmp88_;
#line 1518 "../src/main.vala"
		_tmp81_ = _result_;
#line 1518 "../src/main.vala"
		_tmp82_ = string_substring (_tmp81_, (glong) 1, (glong) -1);
#line 1518 "../src/main.vala"
		_tmp83_ = _tmp82_;
#line 1518 "../src/main.vala"
		_tmp84_ = string_strip (_tmp83_);
#line 1518 "../src/main.vala"
		_tmp85_ = _tmp84_;
#line 1518 "../src/main.vala"
		_tmp86_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp85_, php_line_number, &_inner_error0_);
#line 1518 "../src/main.vala"
		_tmp87_ = _tmp86_;
#line 1518 "../src/main.vala"
		_g_free0 (_tmp85_);
#line 1518 "../src/main.vala"
		_g_free0 (_tmp83_);
#line 1518 "../src/main.vala"
		_tmp80_ = _tmp87_;
#line 1518 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1518 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1518 "../src/main.vala"
			_g_free0 (cast_expression);
#line 1518 "../src/main.vala"
			_g_free0 (_result_);
#line 1518 "../src/main.vala"
			return NULL;
#line 17116 "main.c"
		}
#line 1518 "../src/main.vala"
		_tmp88_ = g_strdup_printf ("Php.neg_zval (%s)", _tmp80_);
#line 1518 "../src/main.vala"
		result = _tmp88_;
#line 1518 "../src/main.vala"
		_g_free0 (_tmp80_);
#line 1518 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1518 "../src/main.vala"
		_g_free0 (_result_);
#line 1518 "../src/main.vala"
		return result;
#line 17130 "main.c"
	}
#line 1520 "../src/main.vala"
	_tmp89_ = _result_;
#line 1520 "../src/main.vala"
	_tmp90_ = php_to_vala_transpiler_convert_zval_binary_expression (self, _tmp89_, '.', "Php.concat", php_line_number, &_inner_error0_);
#line 1520 "../src/main.vala"
	binary = _tmp90_;
#line 1520 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1520 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1520 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1520 "../src/main.vala"
		_g_free0 (_result_);
#line 1520 "../src/main.vala"
		return NULL;
#line 17148 "main.c"
	}
#line 1521 "../src/main.vala"
	_tmp91_ = binary;
#line 1521 "../src/main.vala"
	if (_tmp91_ != NULL) {
#line 1521 "../src/main.vala"
		result = binary;
#line 1521 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1521 "../src/main.vala"
		_g_free0 (_result_);
#line 1521 "../src/main.vala"
		return result;
#line 17162 "main.c"
	}
#line 1522 "../src/main.vala"
	_tmp93_ = _result_;
#line 1522 "../src/main.vala"
	_tmp94_ = php_to_vala_transpiler_convert_zval_binary_expression (self, _tmp93_, '+', "Php.add_zval", php_line_number, &_inner_error0_);
#line 1522 "../src/main.vala"
	_tmp92_ = _tmp94_;
#line 1522 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1522 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1522 "../src/main.vala"
		_g_free0 (binary);
#line 1522 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1522 "../src/main.vala"
		_g_free0 (_result_);
#line 1522 "../src/main.vala"
		return NULL;
#line 17182 "main.c"
	}
#line 1522 "../src/main.vala"
	_tmp95_ = _tmp92_;
#line 1522 "../src/main.vala"
	_tmp92_ = NULL;
#line 1522 "../src/main.vala"
	_g_free0 (binary);
#line 1522 "../src/main.vala"
	binary = _tmp95_;
#line 1523 "../src/main.vala"
	_tmp96_ = binary;
#line 1523 "../src/main.vala"
	if (_tmp96_ != NULL) {
#line 1523 "../src/main.vala"
		result = binary;
#line 1523 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1523 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1523 "../src/main.vala"
		_g_free0 (_result_);
#line 1523 "../src/main.vala"
		return result;
#line 17206 "main.c"
	}
#line 1524 "../src/main.vala"
	_tmp98_ = _result_;
#line 1524 "../src/main.vala"
	_tmp99_ = php_to_vala_transpiler_convert_zval_binary_expression (self, _tmp98_, '-', "Php.sub_zval", php_line_number, &_inner_error0_);
#line 1524 "../src/main.vala"
	_tmp97_ = _tmp99_;
#line 1524 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1524 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1524 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1524 "../src/main.vala"
		_g_free0 (binary);
#line 1524 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1524 "../src/main.vala"
		_g_free0 (_result_);
#line 1524 "../src/main.vala"
		return NULL;
#line 17228 "main.c"
	}
#line 1524 "../src/main.vala"
	_tmp100_ = _tmp97_;
#line 1524 "../src/main.vala"
	_tmp97_ = NULL;
#line 1524 "../src/main.vala"
	_g_free0 (binary);
#line 1524 "../src/main.vala"
	binary = _tmp100_;
#line 1525 "../src/main.vala"
	_tmp101_ = binary;
#line 1525 "../src/main.vala"
	if (_tmp101_ != NULL) {
#line 1525 "../src/main.vala"
		result = binary;
#line 1525 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1525 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1525 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1525 "../src/main.vala"
		_g_free0 (_result_);
#line 1525 "../src/main.vala"
		return result;
#line 17254 "main.c"
	}
#line 1526 "../src/main.vala"
	_tmp103_ = _result_;
#line 1526 "../src/main.vala"
	_tmp104_ = php_to_vala_transpiler_convert_zval_binary_expression (self, _tmp103_, '*', "Php.mul_zval", php_line_number, &_inner_error0_);
#line 1526 "../src/main.vala"
	_tmp102_ = _tmp104_;
#line 1526 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1526 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1526 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1526 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1526 "../src/main.vala"
		_g_free0 (binary);
#line 1526 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1526 "../src/main.vala"
		_g_free0 (_result_);
#line 1526 "../src/main.vala"
		return NULL;
#line 17278 "main.c"
	}
#line 1526 "../src/main.vala"
	_tmp105_ = _tmp102_;
#line 1526 "../src/main.vala"
	_tmp102_ = NULL;
#line 1526 "../src/main.vala"
	_g_free0 (binary);
#line 1526 "../src/main.vala"
	binary = _tmp105_;
#line 1527 "../src/main.vala"
	_tmp106_ = binary;
#line 1527 "../src/main.vala"
	if (_tmp106_ != NULL) {
#line 1527 "../src/main.vala"
		result = binary;
#line 1527 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1527 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1527 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1527 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1527 "../src/main.vala"
		_g_free0 (_result_);
#line 1527 "../src/main.vala"
		return result;
#line 17306 "main.c"
	}
#line 1528 "../src/main.vala"
	_tmp108_ = _result_;
#line 1528 "../src/main.vala"
	_tmp109_ = php_to_vala_transpiler_convert_zval_division_expression (self, _tmp108_, php_line_number, &_inner_error0_);
#line 1528 "../src/main.vala"
	_tmp107_ = _tmp109_;
#line 1528 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1528 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1528 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1528 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1528 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1528 "../src/main.vala"
		_g_free0 (binary);
#line 1528 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1528 "../src/main.vala"
		_g_free0 (_result_);
#line 1528 "../src/main.vala"
		return NULL;
#line 17332 "main.c"
	}
#line 1528 "../src/main.vala"
	_tmp110_ = _tmp107_;
#line 1528 "../src/main.vala"
	_tmp107_ = NULL;
#line 1528 "../src/main.vala"
	_g_free0 (binary);
#line 1528 "../src/main.vala"
	binary = _tmp110_;
#line 1529 "../src/main.vala"
	_tmp111_ = binary;
#line 1529 "../src/main.vala"
	if (_tmp111_ != NULL) {
#line 1529 "../src/main.vala"
		result = binary;
#line 1529 "../src/main.vala"
		_g_free0 (_tmp107_);
#line 1529 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1529 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1529 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1529 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1529 "../src/main.vala"
		_g_free0 (_result_);
#line 1529 "../src/main.vala"
		return result;
#line 17362 "main.c"
	}
#line 1530 "../src/main.vala"
	_tmp112_ = _result_;
#line 1530 "../src/main.vala"
	if (g_str_has_prefix (_tmp112_, "$")) {
#line 17368 "main.c"
		gchar* _tmp113_ = NULL;
		const gchar* _tmp114_;
		gchar* _tmp115_;
		gchar* _tmp116_;
#line 1531 "../src/main.vala"
		_tmp114_ = _result_;
#line 1531 "../src/main.vala"
		_tmp115_ = php_to_vala_transpiler_convert_zval_variable_or_access (self, _tmp114_, php_line_number, &_inner_error0_);
#line 1531 "../src/main.vala"
		_tmp113_ = _tmp115_;
#line 1531 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1531 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1531 "../src/main.vala"
			_g_free0 (_tmp107_);
#line 1531 "../src/main.vala"
			_g_free0 (_tmp102_);
#line 1531 "../src/main.vala"
			_g_free0 (_tmp97_);
#line 1531 "../src/main.vala"
			_g_free0 (_tmp92_);
#line 1531 "../src/main.vala"
			_g_free0 (binary);
#line 1531 "../src/main.vala"
			_g_free0 (cast_expression);
#line 1531 "../src/main.vala"
			_g_free0 (_result_);
#line 1531 "../src/main.vala"
			return NULL;
#line 17399 "main.c"
		}
#line 1531 "../src/main.vala"
		_tmp116_ = _tmp113_;
#line 1531 "../src/main.vala"
		_tmp113_ = NULL;
#line 1531 "../src/main.vala"
		result = _tmp116_;
#line 1531 "../src/main.vala"
		_g_free0 (_tmp113_);
#line 1531 "../src/main.vala"
		_g_free0 (_tmp107_);
#line 1531 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1531 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1531 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1531 "../src/main.vala"
		_g_free0 (binary);
#line 1531 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1531 "../src/main.vala"
		_g_free0 (_result_);
#line 1531 "../src/main.vala"
		return result;
#line 17425 "main.c"
	}
#line 1533 "../src/main.vala"
	_tmp117_ = _result_;
#line 1533 "../src/main.vala"
	_tmp118_ = php_to_vala_transpiler_convert_zval_class_constant (self, _tmp117_);
#line 1533 "../src/main.vala"
	class_constant = _tmp118_;
#line 1534 "../src/main.vala"
	_tmp119_ = class_constant;
#line 1534 "../src/main.vala"
	if (_tmp119_ != NULL) {
#line 1535 "../src/main.vala"
		result = class_constant;
#line 1535 "../src/main.vala"
		_g_free0 (_tmp107_);
#line 1535 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1535 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1535 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1535 "../src/main.vala"
		_g_free0 (binary);
#line 1535 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1535 "../src/main.vala"
		_g_free0 (_result_);
#line 1535 "../src/main.vala"
		return result;
#line 17455 "main.c"
	}
#line 1538 "../src/main.vala"
	_tmp120_ = self->priv->function_expression_regex;
#line 1538 "../src/main.vala"
	_tmp121_ = _result_;
#line 1538 "../src/main.vala"
	_tmp123_ = g_regex_match (_tmp120_, _tmp121_, 0, &_tmp122_);
#line 1538 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 1538 "../src/main.vala"
	match = _tmp122_;
#line 1538 "../src/main.vala"
	if (_tmp123_) {
#line 17469 "main.c"
		gchar* function_name = NULL;
		GMatchInfo* _tmp124_;
		gchar* _tmp125_;
		gchar* args = NULL;
		GMatchInfo* _tmp126_;
		gchar* _tmp127_;
		gchar* _tmp128_;
		gchar* _tmp129_;
		gchar* _tmp130_;
		GeeHashMap* _tmp131_;
		const gchar* _tmp132_;
		GeeHashMap* _tmp143_;
		const gchar* _tmp144_;
		gchar* _tmp162_ = NULL;
		const gchar* _tmp163_;
		const gchar* _tmp164_;
		gchar* _tmp165_;
		gchar* _tmp166_;
#line 1539 "../src/main.vala"
		_tmp124_ = match;
#line 1539 "../src/main.vala"
		_tmp125_ = g_match_info_fetch (_tmp124_, 1);
#line 1539 "../src/main.vala"
		function_name = _tmp125_;
#line 1540 "../src/main.vala"
		_tmp126_ = match;
#line 1540 "../src/main.vala"
		_tmp127_ = g_match_info_fetch (_tmp126_, 2);
#line 1540 "../src/main.vala"
		_tmp128_ = _tmp127_;
#line 1540 "../src/main.vala"
		_tmp129_ = string_strip (_tmp128_);
#line 1540 "../src/main.vala"
		_tmp130_ = _tmp129_;
#line 1540 "../src/main.vala"
		_g_free0 (_tmp128_);
#line 1540 "../src/main.vala"
		args = _tmp130_;
#line 1541 "../src/main.vala"
		_tmp131_ = self->local_functions;
#line 1541 "../src/main.vala"
		_tmp132_ = function_name;
#line 1541 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp131_, _tmp132_)) {
#line 17514 "main.c"
			gchar* _tmp133_ = NULL;
			const gchar* _tmp134_;
			gchar* _tmp135_;
			const gchar* _tmp136_;
			gchar* _tmp137_;
			gchar* _tmp138_;
			gchar* _tmp139_;
			gchar* _tmp140_;
			gchar* _tmp141_;
			gchar* _tmp142_;
#line 1542 "../src/main.vala"
			_tmp134_ = args;
#line 1542 "../src/main.vala"
			_tmp135_ = php_to_vala_transpiler_convert_zval_argument_list (self, _tmp134_, php_line_number, &_inner_error0_);
#line 1542 "../src/main.vala"
			_tmp133_ = _tmp135_;
#line 1542 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1542 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 1542 "../src/main.vala"
				_g_free0 (args);
#line 1542 "../src/main.vala"
				_g_free0 (function_name);
#line 1542 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 1542 "../src/main.vala"
				_g_free0 (class_constant);
#line 1542 "../src/main.vala"
				_g_free0 (_tmp107_);
#line 1542 "../src/main.vala"
				_g_free0 (_tmp102_);
#line 1542 "../src/main.vala"
				_g_free0 (_tmp97_);
#line 1542 "../src/main.vala"
				_g_free0 (_tmp92_);
#line 1542 "../src/main.vala"
				_g_free0 (binary);
#line 1542 "../src/main.vala"
				_g_free0 (cast_expression);
#line 1542 "../src/main.vala"
				_g_free0 (_result_);
#line 1542 "../src/main.vala"
				return NULL;
#line 17559 "main.c"
			}
#line 1542 "../src/main.vala"
			_tmp136_ = function_name;
#line 1542 "../src/main.vala"
			_tmp137_ = g_strconcat (_tmp136_, " (", NULL);
#line 1542 "../src/main.vala"
			_tmp138_ = _tmp137_;
#line 1542 "../src/main.vala"
			_tmp139_ = g_strconcat (_tmp138_, _tmp133_, NULL);
#line 1542 "../src/main.vala"
			_tmp140_ = _tmp139_;
#line 1542 "../src/main.vala"
			_tmp141_ = g_strconcat (_tmp140_, ")", NULL);
#line 1542 "../src/main.vala"
			_tmp142_ = _tmp141_;
#line 1542 "../src/main.vala"
			_g_free0 (_tmp140_);
#line 1542 "../src/main.vala"
			_g_free0 (_tmp138_);
#line 1542 "../src/main.vala"
			result = _tmp142_;
#line 1542 "../src/main.vala"
			_g_free0 (_tmp133_);
#line 1542 "../src/main.vala"
			_g_free0 (args);
#line 1542 "../src/main.vala"
			_g_free0 (function_name);
#line 1542 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 1542 "../src/main.vala"
			_g_free0 (class_constant);
#line 1542 "../src/main.vala"
			_g_free0 (_tmp107_);
#line 1542 "../src/main.vala"
			_g_free0 (_tmp102_);
#line 1542 "../src/main.vala"
			_g_free0 (_tmp97_);
#line 1542 "../src/main.vala"
			_g_free0 (_tmp92_);
#line 1542 "../src/main.vala"
			_g_free0 (binary);
#line 1542 "../src/main.vala"
			_g_free0 (cast_expression);
#line 1542 "../src/main.vala"
			_g_free0 (_result_);
#line 1542 "../src/main.vala"
			return result;
#line 17607 "main.c"
		}
#line 1544 "../src/main.vala"
		_tmp143_ = self->priv->external_functions;
#line 1544 "../src/main.vala"
		_tmp144_ = function_name;
#line 1544 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp143_, _tmp144_)) {
#line 17615 "main.c"
			LocalFunction* external_function = NULL;
			GeeHashMap* _tmp145_;
			const gchar* _tmp146_;
			gpointer _tmp147_;
			LocalFunction* _tmp148_;
			gchar* _tmp152_ = NULL;
			const gchar* _tmp153_;
			gchar* _tmp154_;
			const gchar* _tmp155_;
			gchar* _tmp156_;
			gchar* _tmp157_;
			gchar* _tmp158_;
			gchar* _tmp159_;
			gchar* _tmp160_;
			gchar* _tmp161_;
#line 1545 "../src/main.vala"
			_tmp145_ = self->priv->external_functions;
#line 1545 "../src/main.vala"
			_tmp146_ = function_name;
#line 1545 "../src/main.vala"
			_tmp147_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp145_, _tmp146_);
#line 1545 "../src/main.vala"
			external_function = (LocalFunction*) _tmp147_;
#line 1546 "../src/main.vala"
			_tmp148_ = external_function;
#line 1546 "../src/main.vala"
			if (_tmp148_ != NULL) {
#line 17643 "main.c"
				LocalFunction* _tmp149_;
				const gchar* _tmp150_;
				const gchar* _tmp151_;
#line 1547 "../src/main.vala"
				_tmp149_ = external_function;
#line 1547 "../src/main.vala"
				_tmp150_ = args;
#line 1547 "../src/main.vala"
				_tmp151_ = function_name;
#line 1547 "../src/main.vala"
				php_to_vala_transpiler_validate_php_stub_argument_count (self, _tmp149_, _tmp150_, php_line_number, _tmp151_, &_inner_error0_);
#line 1547 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1547 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1547 "../src/main.vala"
					_g_object_unref0 (external_function);
#line 1547 "../src/main.vala"
					_g_free0 (args);
#line 1547 "../src/main.vala"
					_g_free0 (function_name);
#line 1547 "../src/main.vala"
					_g_match_info_unref0 (match);
#line 1547 "../src/main.vala"
					_g_free0 (class_constant);
#line 1547 "../src/main.vala"
					_g_free0 (_tmp107_);
#line 1547 "../src/main.vala"
					_g_free0 (_tmp102_);
#line 1547 "../src/main.vala"
					_g_free0 (_tmp97_);
#line 1547 "../src/main.vala"
					_g_free0 (_tmp92_);
#line 1547 "../src/main.vala"
					_g_free0 (binary);
#line 1547 "../src/main.vala"
					_g_free0 (cast_expression);
#line 1547 "../src/main.vala"
					_g_free0 (_result_);
#line 1547 "../src/main.vala"
					return NULL;
#line 17685 "main.c"
				}
			}
#line 1549 "../src/main.vala"
			_tmp153_ = args;
#line 1549 "../src/main.vala"
			_tmp154_ = php_to_vala_transpiler_convert_zval_argument_list (self, _tmp153_, php_line_number, &_inner_error0_);
#line 1549 "../src/main.vala"
			_tmp152_ = _tmp154_;
#line 1549 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1549 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 1549 "../src/main.vala"
				_g_object_unref0 (external_function);
#line 1549 "../src/main.vala"
				_g_free0 (args);
#line 1549 "../src/main.vala"
				_g_free0 (function_name);
#line 1549 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 1549 "../src/main.vala"
				_g_free0 (class_constant);
#line 1549 "../src/main.vala"
				_g_free0 (_tmp107_);
#line 1549 "../src/main.vala"
				_g_free0 (_tmp102_);
#line 1549 "../src/main.vala"
				_g_free0 (_tmp97_);
#line 1549 "../src/main.vala"
				_g_free0 (_tmp92_);
#line 1549 "../src/main.vala"
				_g_free0 (binary);
#line 1549 "../src/main.vala"
				_g_free0 (cast_expression);
#line 1549 "../src/main.vala"
				_g_free0 (_result_);
#line 1549 "../src/main.vala"
				return NULL;
#line 17724 "main.c"
			}
#line 1549 "../src/main.vala"
			_tmp155_ = function_name;
#line 1549 "../src/main.vala"
			_tmp156_ = g_strconcat (_tmp155_, " (", NULL);
#line 1549 "../src/main.vala"
			_tmp157_ = _tmp156_;
#line 1549 "../src/main.vala"
			_tmp158_ = g_strconcat (_tmp157_, _tmp152_, NULL);
#line 1549 "../src/main.vala"
			_tmp159_ = _tmp158_;
#line 1549 "../src/main.vala"
			_tmp160_ = g_strconcat (_tmp159_, ")", NULL);
#line 1549 "../src/main.vala"
			_tmp161_ = _tmp160_;
#line 1549 "../src/main.vala"
			_g_free0 (_tmp159_);
#line 1549 "../src/main.vala"
			_g_free0 (_tmp157_);
#line 1549 "../src/main.vala"
			result = _tmp161_;
#line 1549 "../src/main.vala"
			_g_free0 (_tmp152_);
#line 1549 "../src/main.vala"
			_g_object_unref0 (external_function);
#line 1549 "../src/main.vala"
			_g_free0 (args);
#line 1549 "../src/main.vala"
			_g_free0 (function_name);
#line 1549 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 1549 "../src/main.vala"
			_g_free0 (class_constant);
#line 1549 "../src/main.vala"
			_g_free0 (_tmp107_);
#line 1549 "../src/main.vala"
			_g_free0 (_tmp102_);
#line 1549 "../src/main.vala"
			_g_free0 (_tmp97_);
#line 1549 "../src/main.vala"
			_g_free0 (_tmp92_);
#line 1549 "../src/main.vala"
			_g_free0 (binary);
#line 1549 "../src/main.vala"
			_g_free0 (cast_expression);
#line 1549 "../src/main.vala"
			_g_free0 (_result_);
#line 1549 "../src/main.vala"
			return result;
#line 17774 "main.c"
		}
#line 1551 "../src/main.vala"
		_tmp163_ = function_name;
#line 1551 "../src/main.vala"
		_tmp164_ = args;
#line 1551 "../src/main.vala"
		_tmp165_ = php_to_vala_transpiler_convert_zval_function_call (self, _tmp163_, _tmp164_, php_line_number, &_inner_error0_);
#line 1551 "../src/main.vala"
		_tmp162_ = _tmp165_;
#line 1551 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1551 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1551 "../src/main.vala"
			_g_free0 (args);
#line 1551 "../src/main.vala"
			_g_free0 (function_name);
#line 1551 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 1551 "../src/main.vala"
			_g_free0 (class_constant);
#line 1551 "../src/main.vala"
			_g_free0 (_tmp107_);
#line 1551 "../src/main.vala"
			_g_free0 (_tmp102_);
#line 1551 "../src/main.vala"
			_g_free0 (_tmp97_);
#line 1551 "../src/main.vala"
			_g_free0 (_tmp92_);
#line 1551 "../src/main.vala"
			_g_free0 (binary);
#line 1551 "../src/main.vala"
			_g_free0 (cast_expression);
#line 1551 "../src/main.vala"
			_g_free0 (_result_);
#line 1551 "../src/main.vala"
			return NULL;
#line 17812 "main.c"
		}
#line 1551 "../src/main.vala"
		_tmp166_ = _tmp162_;
#line 1551 "../src/main.vala"
		_tmp162_ = NULL;
#line 1551 "../src/main.vala"
		result = _tmp166_;
#line 1551 "../src/main.vala"
		_g_free0 (_tmp162_);
#line 1551 "../src/main.vala"
		_g_free0 (args);
#line 1551 "../src/main.vala"
		_g_free0 (function_name);
#line 1551 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 1551 "../src/main.vala"
		_g_free0 (class_constant);
#line 1551 "../src/main.vala"
		_g_free0 (_tmp107_);
#line 1551 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1551 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1551 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1551 "../src/main.vala"
		_g_free0 (binary);
#line 1551 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1551 "../src/main.vala"
		_g_free0 (_result_);
#line 1551 "../src/main.vala"
		return result;
#line 17846 "main.c"
	}
#line 1553 "../src/main.vala"
	_tmp167_ = self->variable_types;
#line 1553 "../src/main.vala"
	_tmp168_ = _result_;
#line 1553 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp167_, _tmp168_)) {
#line 17854 "main.c"
		gchar* _tmp169_ = NULL;
		GeeHashMap* _tmp170_;
		const gchar* _tmp171_;
		gpointer _tmp172_;
		gchar* _tmp173_;
		gboolean _tmp174_;
		gchar* _tmp179_;
#line 1554 "../src/main.vala"
		_tmp170_ = self->variable_types;
#line 1554 "../src/main.vala"
		_tmp171_ = _result_;
#line 1554 "../src/main.vala"
		_tmp172_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp170_, _tmp171_);
#line 1554 "../src/main.vala"
		_tmp173_ = (gchar*) _tmp172_;
#line 1554 "../src/main.vala"
		_tmp174_ = g_strcmp0 (_tmp173_, "int") == 0;
#line 1554 "../src/main.vala"
		_g_free0 (_tmp173_);
#line 1554 "../src/main.vala"
		if (_tmp174_) {
#line 17876 "main.c"
			const gchar* _tmp175_;
			gchar* _tmp176_;
#line 1554 "../src/main.vala"
			_tmp175_ = _result_;
#line 1554 "../src/main.vala"
			_tmp176_ = g_strdup_printf ("Php.zval.integer (%s)", _tmp175_);
#line 1554 "../src/main.vala"
			_g_free0 (_tmp169_);
#line 1554 "../src/main.vala"
			_tmp169_ = _tmp176_;
#line 17887 "main.c"
		} else {
			const gchar* _tmp177_;
			gchar* _tmp178_;
#line 1554 "../src/main.vala"
			_tmp177_ = _result_;
#line 1554 "../src/main.vala"
			_tmp178_ = g_strdup (_tmp177_);
#line 1554 "../src/main.vala"
			_g_free0 (_tmp169_);
#line 1554 "../src/main.vala"
			_tmp169_ = _tmp178_;
#line 17899 "main.c"
		}
#line 1554 "../src/main.vala"
		_tmp179_ = _tmp169_;
#line 1554 "../src/main.vala"
		_tmp169_ = NULL;
#line 1554 "../src/main.vala"
		result = _tmp179_;
#line 1554 "../src/main.vala"
		_g_free0 (_tmp169_);
#line 1554 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 1554 "../src/main.vala"
		_g_free0 (class_constant);
#line 1554 "../src/main.vala"
		_g_free0 (_tmp107_);
#line 1554 "../src/main.vala"
		_g_free0 (_tmp102_);
#line 1554 "../src/main.vala"
		_g_free0 (_tmp97_);
#line 1554 "../src/main.vala"
		_g_free0 (_tmp92_);
#line 1554 "../src/main.vala"
		_g_free0 (binary);
#line 1554 "../src/main.vala"
		_g_free0 (cast_expression);
#line 1554 "../src/main.vala"
		_g_free0 (_result_);
#line 1554 "../src/main.vala"
		return result;
#line 17929 "main.c"
	}
#line 1556 "../src/main.vala"
	result = _result_;
#line 1556 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 1556 "../src/main.vala"
	_g_free0 (class_constant);
#line 1556 "../src/main.vala"
	_g_free0 (_tmp107_);
#line 1556 "../src/main.vala"
	_g_free0 (_tmp102_);
#line 1556 "../src/main.vala"
	_g_free0 (_tmp97_);
#line 1556 "../src/main.vala"
	_g_free0 (_tmp92_);
#line 1556 "../src/main.vala"
	_g_free0 (binary);
#line 1556 "../src/main.vala"
	_g_free0 (cast_expression);
#line 1556 "../src/main.vala"
	return result;
#line 17951 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_class_constant (PhpToValaTranspiler* self,
                                                    const gchar* expression)
{
	gint index = 0;
	gchar* class_name = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* constant_name = NULL;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gboolean _tmp8_ = FALSE;
	const gchar* _tmp9_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* result;
#line 1559 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1559 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1560 "../src/main.vala"
	index = string_index_of (expression, "::", 0);
#line 1561 "../src/main.vala"
	if (index <= 0) {
#line 1562 "../src/main.vala"
		result = NULL;
#line 1562 "../src/main.vala"
		return result;
#line 17991 "main.c"
	}
#line 1564 "../src/main.vala"
	_tmp0_ = string_substring (expression, (glong) 0, (glong) index);
#line 1564 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 1564 "../src/main.vala"
	_tmp2_ = string_strip (_tmp1_);
#line 1564 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1564 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 1564 "../src/main.vala"
	class_name = _tmp3_;
#line 1565 "../src/main.vala"
	_tmp4_ = string_substring (expression, (glong) (index + 2), (glong) -1);
#line 1565 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 1565 "../src/main.vala"
	_tmp6_ = string_strip (_tmp5_);
#line 1565 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 1565 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 1565 "../src/main.vala"
	constant_name = _tmp7_;
#line 1566 "../src/main.vala"
	_tmp9_ = class_name;
#line 1566 "../src/main.vala"
	if (!php_to_vala_transpiler_is_php_class_name (_tmp9_)) {
#line 1566 "../src/main.vala"
		_tmp8_ = TRUE;
#line 18023 "main.c"
	} else {
		const gchar* _tmp10_;
#line 1566 "../src/main.vala"
		_tmp10_ = constant_name;
#line 1566 "../src/main.vala"
		_tmp8_ = !php_to_vala_transpiler_is_identifier (_tmp10_);
#line 18030 "main.c"
	}
#line 1566 "../src/main.vala"
	if (_tmp8_) {
#line 1567 "../src/main.vala"
		result = NULL;
#line 1567 "../src/main.vala"
		_g_free0 (constant_name);
#line 1567 "../src/main.vala"
		_g_free0 (class_name);
#line 1567 "../src/main.vala"
		return result;
#line 18042 "main.c"
	}
#line 1569 "../src/main.vala"
	_tmp11_ = class_name;
#line 1569 "../src/main.vala"
	if (!php_to_vala_transpiler_class_exists_for_php2vala (self, _tmp11_)) {
#line 1570 "../src/main.vala"
		result = NULL;
#line 1570 "../src/main.vala"
		_g_free0 (constant_name);
#line 1570 "../src/main.vala"
		_g_free0 (class_name);
#line 1570 "../src/main.vala"
		return result;
#line 18056 "main.c"
	}
#line 1572 "../src/main.vala"
	_tmp12_ = class_name;
#line 1572 "../src/main.vala"
	_tmp13_ = php_to_vala_transpiler_php_class_name_to_vala (_tmp12_);
#line 1572 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 1572 "../src/main.vala"
	_tmp15_ = constant_name;
#line 1572 "../src/main.vala"
	_tmp16_ = g_strdup_printf ("Php.zval.string_value (%s.%s)", _tmp14_, _tmp15_);
#line 1572 "../src/main.vala"
	_tmp17_ = _tmp16_;
#line 1572 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 1572 "../src/main.vala"
	result = _tmp17_;
#line 1572 "../src/main.vala"
	_g_free0 (constant_name);
#line 1572 "../src/main.vala"
	_g_free0 (class_name);
#line 1572 "../src/main.vala"
	return result;
#line 18080 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_binary_expression (PhpToValaTranspiler* self,
                                                       const gchar* expression,
                                                       gchar op,
                                                       const gchar* helper_name,
                                                       gint php_line_number,
                                                       GError** error)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gchar* _result_ = NULL;
	GeeArrayList* _tmp4_;
	gpointer _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1575 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1575 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1575 "../src/main.vala"
	g_return_val_if_fail (helper_name != NULL, NULL);
#line 1576 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_split_top_level (self, expression, op);
#line 1576 "../src/main.vala"
	parts = _tmp0_;
#line 1577 "../src/main.vala"
	_tmp1_ = parts;
#line 1577 "../src/main.vala"
	_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 1577 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1577 "../src/main.vala"
	if (_tmp3_ <= 1) {
#line 1578 "../src/main.vala"
		result = NULL;
#line 1578 "../src/main.vala"
		_g_object_unref0 (parts);
#line 1578 "../src/main.vala"
		return result;
#line 18130 "main.c"
	}
#line 1580 "../src/main.vala"
	_tmp4_ = parts;
#line 1580 "../src/main.vala"
	_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _tmp4_, 0);
#line 1580 "../src/main.vala"
	_tmp6_ = (gchar*) _tmp5_;
#line 1580 "../src/main.vala"
	_tmp7_ = string_strip (_tmp6_);
#line 1580 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1580 "../src/main.vala"
	_tmp9_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp8_, php_line_number, &_inner_error0_);
#line 1580 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 1580 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 1580 "../src/main.vala"
	_g_free0 (_tmp6_);
#line 1580 "../src/main.vala"
	_result_ = _tmp10_;
#line 1580 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1580 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1580 "../src/main.vala"
		_g_object_unref0 (parts);
#line 1580 "../src/main.vala"
		return NULL;
#line 18160 "main.c"
	}
	{
		gint i = 0;
#line 1581 "../src/main.vala"
		i = 1;
#line 18166 "main.c"
		{
			gboolean _tmp11_ = FALSE;
#line 1581 "../src/main.vala"
			_tmp11_ = TRUE;
#line 1581 "../src/main.vala"
			while (TRUE) {
#line 18173 "main.c"
				GeeArrayList* _tmp13_;
				gint _tmp14_;
				gint _tmp15_;
				gboolean _tmp16_ = FALSE;
				gchar* _tmp23_ = NULL;
				GeeArrayList* _tmp24_;
				gpointer _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
				const gchar* _tmp31_;
				gchar* _tmp32_;
#line 1581 "../src/main.vala"
				if (!_tmp11_) {
#line 18190 "main.c"
					gint _tmp12_;
#line 1581 "../src/main.vala"
					_tmp12_ = i;
#line 1581 "../src/main.vala"
					i = _tmp12_ + 1;
#line 18196 "main.c"
				}
#line 1581 "../src/main.vala"
				_tmp11_ = FALSE;
#line 1581 "../src/main.vala"
				_tmp13_ = parts;
#line 1581 "../src/main.vala"
				_tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
#line 1581 "../src/main.vala"
				_tmp15_ = _tmp14_;
#line 1581 "../src/main.vala"
				if (!(i < _tmp15_)) {
#line 1581 "../src/main.vala"
					break;
#line 18210 "main.c"
				}
#line 1582 "../src/main.vala"
				if (op == '.') {
#line 18214 "main.c"
					GeeArrayList* _tmp17_;
					gpointer _tmp18_;
					gchar* _tmp19_;
					GeeArrayList* _tmp20_;
					gpointer _tmp21_;
					gchar* _tmp22_;
#line 1582 "../src/main.vala"
					_tmp17_ = parts;
#line 1582 "../src/main.vala"
					_tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, i - 1);
#line 1582 "../src/main.vala"
					_tmp19_ = (gchar*) _tmp18_;
#line 1582 "../src/main.vala"
					_tmp20_ = parts;
#line 1582 "../src/main.vala"
					_tmp21_ = gee_abstract_list_get ((GeeAbstractList*) _tmp20_, i);
#line 1582 "../src/main.vala"
					_tmp22_ = (gchar*) _tmp21_;
#line 1582 "../src/main.vala"
					_tmp16_ = php_to_vala_transpiler_is_decimal_concat_false_positive (_tmp19_, _tmp22_);
#line 1582 "../src/main.vala"
					_g_free0 (_tmp22_);
#line 1582 "../src/main.vala"
					_g_free0 (_tmp19_);
#line 18239 "main.c"
				} else {
#line 1582 "../src/main.vala"
					_tmp16_ = FALSE;
#line 18243 "main.c"
				}
#line 1582 "../src/main.vala"
				if (_tmp16_) {
#line 1583 "../src/main.vala"
					result = NULL;
#line 1583 "../src/main.vala"
					_g_free0 (_result_);
#line 1583 "../src/main.vala"
					_g_object_unref0 (parts);
#line 1583 "../src/main.vala"
					return result;
#line 18255 "main.c"
				}
#line 1585 "../src/main.vala"
				_tmp24_ = parts;
#line 1585 "../src/main.vala"
				_tmp25_ = gee_abstract_list_get ((GeeAbstractList*) _tmp24_, i);
#line 1585 "../src/main.vala"
				_tmp26_ = (gchar*) _tmp25_;
#line 1585 "../src/main.vala"
				_tmp27_ = string_strip (_tmp26_);
#line 1585 "../src/main.vala"
				_tmp28_ = _tmp27_;
#line 1585 "../src/main.vala"
				_tmp29_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp28_, php_line_number, &_inner_error0_);
#line 1585 "../src/main.vala"
				_tmp30_ = _tmp29_;
#line 1585 "../src/main.vala"
				_g_free0 (_tmp28_);
#line 1585 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 1585 "../src/main.vala"
				_tmp23_ = _tmp30_;
#line 1585 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1585 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1585 "../src/main.vala"
					_g_free0 (_result_);
#line 1585 "../src/main.vala"
					_g_object_unref0 (parts);
#line 1585 "../src/main.vala"
					return NULL;
#line 18287 "main.c"
				}
#line 1585 "../src/main.vala"
				_tmp31_ = _result_;
#line 1585 "../src/main.vala"
				_tmp32_ = g_strdup_printf ("%s (%s, %s)", helper_name, _tmp31_, _tmp23_);
#line 1585 "../src/main.vala"
				_g_free0 (_result_);
#line 1585 "../src/main.vala"
				_result_ = _tmp32_;
#line 1581 "../src/main.vala"
				_g_free0 (_tmp23_);
#line 18299 "main.c"
			}
		}
	}
#line 1587 "../src/main.vala"
	result = _result_;
#line 1587 "../src/main.vala"
	_g_object_unref0 (parts);
#line 1587 "../src/main.vala"
	return result;
#line 18309 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_short_array_expression (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            gint php_line_number,
                                                            GError** error)
{
	gchar* inner = NULL;
	gint _tmp0_;
	gint _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	GeeArrayList* values = NULL;
	GeeArrayList* _tmp8_;
	GeeArrayList* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1590 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1590 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1591 "../src/main.vala"
	_tmp0_ = strlen (expression);
#line 1591 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 1591 "../src/main.vala"
	_tmp2_ = string_substring (expression, (glong) 1, (glong) (_tmp1_ - 2));
#line 1591 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1591 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 1591 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 1591 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 1591 "../src/main.vala"
	inner = _tmp5_;
#line 1592 "../src/main.vala"
	_tmp6_ = inner;
#line 1592 "../src/main.vala"
	if (g_strcmp0 (_tmp6_, "") == 0) {
#line 18359 "main.c"
		gchar* _tmp7_;
#line 1593 "../src/main.vala"
		_tmp7_ = g_strdup ("Php.array_new ()");
#line 1593 "../src/main.vala"
		result = _tmp7_;
#line 1593 "../src/main.vala"
		_g_free0 (inner);
#line 1593 "../src/main.vala"
		return result;
#line 18369 "main.c"
	}
#line 1596 "../src/main.vala"
	_tmp8_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 1596 "../src/main.vala"
	values = _tmp8_;
#line 18375 "main.c"
	{
		GeeArrayList* _raw_part_list = NULL;
		const gchar* _tmp9_;
		GeeArrayList* _tmp10_;
		gint _raw_part_size = 0;
		GeeArrayList* _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
		gint _raw_part_index = 0;
#line 1597 "../src/main.vala"
		_tmp9_ = inner;
#line 1597 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_split_top_level (self, _tmp9_, ',');
#line 1597 "../src/main.vala"
		_raw_part_list = _tmp10_;
#line 1597 "../src/main.vala"
		_tmp11_ = _raw_part_list;
#line 1597 "../src/main.vala"
		_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
#line 1597 "../src/main.vala"
		_tmp13_ = _tmp12_;
#line 1597 "../src/main.vala"
		_raw_part_size = _tmp13_;
#line 1597 "../src/main.vala"
		_raw_part_index = -1;
#line 1597 "../src/main.vala"
		while (TRUE) {
#line 18403 "main.c"
			gint _tmp14_;
			gint _tmp15_;
			gchar* raw_part = NULL;
			GeeArrayList* _tmp16_;
			gpointer _tmp17_;
			gchar* part = NULL;
			const gchar* _tmp18_;
			gchar* _tmp19_;
			const gchar* _tmp20_;
			gchar* _tmp21_ = NULL;
			const gchar* _tmp22_;
			gchar* _tmp23_;
			GeeArrayList* _tmp24_;
#line 1597 "../src/main.vala"
			_raw_part_index = _raw_part_index + 1;
#line 1597 "../src/main.vala"
			_tmp14_ = _raw_part_index;
#line 1597 "../src/main.vala"
			_tmp15_ = _raw_part_size;
#line 1597 "../src/main.vala"
			if (!(_tmp14_ < _tmp15_)) {
#line 1597 "../src/main.vala"
				break;
#line 18427 "main.c"
			}
#line 1597 "../src/main.vala"
			_tmp16_ = _raw_part_list;
#line 1597 "../src/main.vala"
			_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _raw_part_index);
#line 1597 "../src/main.vala"
			raw_part = (gchar*) _tmp17_;
#line 1598 "../src/main.vala"
			_tmp18_ = raw_part;
#line 1598 "../src/main.vala"
			_tmp19_ = string_strip (_tmp18_);
#line 1598 "../src/main.vala"
			part = _tmp19_;
#line 1599 "../src/main.vala"
			_tmp20_ = part;
#line 1599 "../src/main.vala"
			if (g_strcmp0 (_tmp20_, "") == 0) {
#line 1600 "../src/main.vala"
				_g_free0 (part);
#line 1600 "../src/main.vala"
				_g_free0 (raw_part);
#line 1600 "../src/main.vala"
				continue;
#line 18451 "main.c"
			}
#line 1602 "../src/main.vala"
			_tmp22_ = part;
#line 1602 "../src/main.vala"
			_tmp23_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp22_, php_line_number, &_inner_error0_);
#line 1602 "../src/main.vala"
			_tmp21_ = _tmp23_;
#line 1602 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1602 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 1602 "../src/main.vala"
				_g_free0 (part);
#line 1602 "../src/main.vala"
				_g_free0 (raw_part);
#line 1602 "../src/main.vala"
				_g_object_unref0 (_raw_part_list);
#line 1602 "../src/main.vala"
				_g_object_unref0 (values);
#line 1602 "../src/main.vala"
				_g_free0 (inner);
#line 1602 "../src/main.vala"
				return NULL;
#line 18475 "main.c"
			}
#line 1602 "../src/main.vala"
			_tmp24_ = values;
#line 1602 "../src/main.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _tmp21_);
#line 1597 "../src/main.vala"
			_g_free0 (_tmp21_);
#line 1597 "../src/main.vala"
			_g_free0 (part);
#line 1597 "../src/main.vala"
			_g_free0 (raw_part);
#line 18487 "main.c"
		}
#line 1597 "../src/main.vala"
		_g_object_unref0 (_raw_part_list);
#line 18491 "main.c"
	}
#line 1605 "../src/main.vala"
	_tmp25_ = values;
#line 1605 "../src/main.vala"
	_tmp26_ = php_to_vala_transpiler_join_strings (_tmp25_, ", ");
#line 1605 "../src/main.vala"
	_tmp27_ = _tmp26_;
#line 1605 "../src/main.vala"
	_tmp28_ = g_strdup_printf ("Php.array_from_values_zval ({ %s })", _tmp27_);
#line 1605 "../src/main.vala"
	_tmp29_ = _tmp28_;
#line 1605 "../src/main.vala"
	_g_free0 (_tmp27_);
#line 1605 "../src/main.vala"
	result = _tmp29_;
#line 1605 "../src/main.vala"
	_g_object_unref0 (values);
#line 1605 "../src/main.vala"
	_g_free0 (inner);
#line 1605 "../src/main.vala"
	return result;
#line 18513 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_cast_expression (PhpToValaTranspiler* self,
                                                     const gchar* expression,
                                                     gint php_line_number,
                                                     GError** error)
{
	gchar** casts = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar** _tmp7_;
	gint casts_length1;
	gint _casts_size_;
	gchar** _tmp8_;
	gint _tmp8__length1;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1608 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1608 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1609 "../src/main.vala"
	_tmp0_ = g_strdup ("float");
#line 1609 "../src/main.vala"
	_tmp1_ = g_strdup ("double");
#line 1609 "../src/main.vala"
	_tmp2_ = g_strdup ("int");
#line 1609 "../src/main.vala"
	_tmp3_ = g_strdup ("integer");
#line 1609 "../src/main.vala"
	_tmp4_ = g_strdup ("string");
#line 1609 "../src/main.vala"
	_tmp5_ = g_strdup ("bool");
#line 1609 "../src/main.vala"
	_tmp6_ = g_strdup ("boolean");
#line 1609 "../src/main.vala"
	_tmp7_ = g_new0 (gchar*, 7 + 1);
#line 1609 "../src/main.vala"
	_tmp7_[0] = _tmp0_;
#line 1609 "../src/main.vala"
	_tmp7_[1] = _tmp1_;
#line 1609 "../src/main.vala"
	_tmp7_[2] = _tmp2_;
#line 1609 "../src/main.vala"
	_tmp7_[3] = _tmp3_;
#line 1609 "../src/main.vala"
	_tmp7_[4] = _tmp4_;
#line 1609 "../src/main.vala"
	_tmp7_[5] = _tmp5_;
#line 1609 "../src/main.vala"
	_tmp7_[6] = _tmp6_;
#line 1609 "../src/main.vala"
	casts = _tmp7_;
#line 1609 "../src/main.vala"
	casts_length1 = 7;
#line 1609 "../src/main.vala"
	_casts_size_ = casts_length1;
#line 1610 "../src/main.vala"
	_tmp8_ = casts;
#line 1610 "../src/main.vala"
	_tmp8__length1 = casts_length1;
#line 18581 "main.c"
	{
		gchar** cast_name_collection = NULL;
		gint cast_name_collection_length1 = 0;
		gint _cast_name_collection_size_ = 0;
		gint cast_name_it = 0;
#line 1610 "../src/main.vala"
		cast_name_collection = _tmp8_;
#line 1610 "../src/main.vala"
		cast_name_collection_length1 = _tmp8__length1;
#line 1610 "../src/main.vala"
		for (cast_name_it = 0; cast_name_it < cast_name_collection_length1; cast_name_it = cast_name_it + 1) {
#line 18593 "main.c"
			gchar* _tmp9_;
			gchar* cast_name = NULL;
#line 1610 "../src/main.vala"
			_tmp9_ = g_strdup (cast_name_collection[cast_name_it]);
#line 1610 "../src/main.vala"
			cast_name = _tmp9_;
#line 18600 "main.c"
			{
				gchar* prefix = NULL;
				const gchar* _tmp10_;
				gchar* _tmp11_;
				gchar* _tmp12_;
				gchar* _tmp13_;
				gchar* _tmp14_;
				const gchar* _tmp15_;
				gchar* inner = NULL;
				const gchar* _tmp16_;
				gint _tmp17_;
				gint _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				gchar* _tmp24_;
				const gchar* _tmp25_;
				const gchar* _tmp26_;
				GQuark _tmp28_ = 0U;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label0 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label1 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label2 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label3 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label4 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label5 = 0;
#line 1617 "../src/main.vala"
				static GQuark _tmp27_label6 = 0;
#line 1611 "../src/main.vala"
				_tmp10_ = cast_name;
#line 1611 "../src/main.vala"
				_tmp11_ = g_strconcat ("(", _tmp10_, NULL);
#line 1611 "../src/main.vala"
				_tmp12_ = _tmp11_;
#line 1611 "../src/main.vala"
				_tmp13_ = g_strconcat (_tmp12_, ")", NULL);
#line 1611 "../src/main.vala"
				_tmp14_ = _tmp13_;
#line 1611 "../src/main.vala"
				_g_free0 (_tmp12_);
#line 1611 "../src/main.vala"
				prefix = _tmp14_;
#line 1612 "../src/main.vala"
				_tmp15_ = prefix;
#line 1612 "../src/main.vala"
				if (!g_str_has_prefix (expression, _tmp15_)) {
#line 1613 "../src/main.vala"
					_g_free0 (prefix);
#line 1613 "../src/main.vala"
					_g_free0 (cast_name);
#line 1613 "../src/main.vala"
					continue;
#line 18660 "main.c"
				}
#line 1616 "../src/main.vala"
				_tmp16_ = prefix;
#line 1616 "../src/main.vala"
				_tmp17_ = strlen (_tmp16_);
#line 1616 "../src/main.vala"
				_tmp18_ = _tmp17_;
#line 1616 "../src/main.vala"
				_tmp19_ = string_substring (expression, (glong) _tmp18_, (glong) -1);
#line 1616 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 1616 "../src/main.vala"
				_tmp21_ = string_strip (_tmp20_);
#line 1616 "../src/main.vala"
				_tmp22_ = _tmp21_;
#line 1616 "../src/main.vala"
				_tmp23_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp22_, php_line_number, &_inner_error0_);
#line 1616 "../src/main.vala"
				_tmp24_ = _tmp23_;
#line 1616 "../src/main.vala"
				_g_free0 (_tmp22_);
#line 1616 "../src/main.vala"
				_g_free0 (_tmp20_);
#line 1616 "../src/main.vala"
				inner = _tmp24_;
#line 1616 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1616 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1616 "../src/main.vala"
					_g_free0 (prefix);
#line 1616 "../src/main.vala"
					_g_free0 (cast_name);
#line 1616 "../src/main.vala"
					casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1616 "../src/main.vala"
					return NULL;
#line 18698 "main.c"
				}
#line 1617 "../src/main.vala"
				_tmp25_ = cast_name;
#line 1617 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 1617 "../src/main.vala"
				_tmp28_ = (NULL == _tmp26_) ? 0 : g_quark_from_string (_tmp26_);
#line 1617 "../src/main.vala"
				if ((_tmp28_ == ((0 != _tmp27_label0) ? _tmp27_label0 : (_tmp27_label0 = g_quark_from_static_string ("float")))) || (_tmp28_ == ((0 != _tmp27_label1) ? _tmp27_label1 : (_tmp27_label1 = g_quark_from_static_string ("double"))))) {
#line 1617 "../src/main.vala"
					switch (0) {
#line 18710 "main.c"
						default:
						{
							const gchar* _tmp29_;
							gchar* _tmp30_;
#line 1620 "../src/main.vala"
							_tmp29_ = inner;
#line 1620 "../src/main.vala"
							_tmp30_ = g_strdup_printf ("Php.zval.double_number (Php.zval_to_double (%s))", _tmp29_);
#line 1620 "../src/main.vala"
							result = _tmp30_;
#line 1620 "../src/main.vala"
							_g_free0 (inner);
#line 1620 "../src/main.vala"
							_g_free0 (prefix);
#line 1620 "../src/main.vala"
							_g_free0 (cast_name);
#line 1620 "../src/main.vala"
							casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1620 "../src/main.vala"
							return result;
#line 18731 "main.c"
						}
					}
				} else if ((_tmp28_ == ((0 != _tmp27_label2) ? _tmp27_label2 : (_tmp27_label2 = g_quark_from_static_string ("int")))) || (_tmp28_ == ((0 != _tmp27_label3) ? _tmp27_label3 : (_tmp27_label3 = g_quark_from_static_string ("integer"))))) {
#line 1617 "../src/main.vala"
					switch (0) {
#line 18737 "main.c"
						default:
						{
							const gchar* _tmp31_;
							gchar* _tmp32_;
#line 1623 "../src/main.vala"
							_tmp31_ = inner;
#line 1623 "../src/main.vala"
							_tmp32_ = g_strdup_printf ("Php.zval.integer (Php.zval_to_int (%s))", _tmp31_);
#line 1623 "../src/main.vala"
							result = _tmp32_;
#line 1623 "../src/main.vala"
							_g_free0 (inner);
#line 1623 "../src/main.vala"
							_g_free0 (prefix);
#line 1623 "../src/main.vala"
							_g_free0 (cast_name);
#line 1623 "../src/main.vala"
							casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1623 "../src/main.vala"
							return result;
#line 18758 "main.c"
						}
					}
				} else if (_tmp28_ == ((0 != _tmp27_label4) ? _tmp27_label4 : (_tmp27_label4 = g_quark_from_static_string ("string")))) {
#line 1617 "../src/main.vala"
					switch (0) {
#line 18764 "main.c"
						default:
						{
							const gchar* _tmp33_;
							gchar* _tmp34_;
#line 1625 "../src/main.vala"
							_tmp33_ = inner;
#line 1625 "../src/main.vala"
							_tmp34_ = g_strdup_printf ("Php.zval.string_value (Php.zval_to_string (%s))", _tmp33_);
#line 1625 "../src/main.vala"
							result = _tmp34_;
#line 1625 "../src/main.vala"
							_g_free0 (inner);
#line 1625 "../src/main.vala"
							_g_free0 (prefix);
#line 1625 "../src/main.vala"
							_g_free0 (cast_name);
#line 1625 "../src/main.vala"
							casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1625 "../src/main.vala"
							return result;
#line 18785 "main.c"
						}
					}
				} else if ((_tmp28_ == ((0 != _tmp27_label5) ? _tmp27_label5 : (_tmp27_label5 = g_quark_from_static_string ("bool")))) || (_tmp28_ == ((0 != _tmp27_label6) ? _tmp27_label6 : (_tmp27_label6 = g_quark_from_static_string ("boolean"))))) {
#line 1617 "../src/main.vala"
					switch (0) {
#line 18791 "main.c"
						default:
						{
							const gchar* _tmp35_;
							gchar* _tmp36_;
#line 1628 "../src/main.vala"
							_tmp35_ = inner;
#line 1628 "../src/main.vala"
							_tmp36_ = g_strdup_printf ("Php.zval.boolean (Php.truthy (%s))", _tmp35_);
#line 1628 "../src/main.vala"
							result = _tmp36_;
#line 1628 "../src/main.vala"
							_g_free0 (inner);
#line 1628 "../src/main.vala"
							_g_free0 (prefix);
#line 1628 "../src/main.vala"
							_g_free0 (cast_name);
#line 1628 "../src/main.vala"
							casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1628 "../src/main.vala"
							return result;
#line 18812 "main.c"
						}
					}
				} else {
#line 1617 "../src/main.vala"
					switch (0) {
#line 18818 "main.c"
						default:
						{
#line 1630 "../src/main.vala"
							result = NULL;
#line 1630 "../src/main.vala"
							_g_free0 (inner);
#line 1630 "../src/main.vala"
							_g_free0 (prefix);
#line 1630 "../src/main.vala"
							_g_free0 (cast_name);
#line 1630 "../src/main.vala"
							casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1630 "../src/main.vala"
							return result;
#line 18833 "main.c"
						}
					}
				}
#line 1610 "../src/main.vala"
				_g_free0 (inner);
#line 1610 "../src/main.vala"
				_g_free0 (prefix);
#line 1610 "../src/main.vala"
				_g_free0 (cast_name);
#line 18843 "main.c"
			}
		}
	}
#line 1634 "../src/main.vala"
	result = NULL;
#line 1634 "../src/main.vala"
	casts = (_vala_array_free (casts, casts_length1, (GDestroyNotify) g_free), NULL);
#line 1634 "../src/main.vala"
	return result;
#line 18853 "main.c"
}

static gboolean
php_to_vala_transpiler_is_decimal_concat_false_positive (const gchar* left,
                                                         const gchar* right)
{
	gchar* l = NULL;
	gchar* _tmp0_;
	gchar* r = NULL;
	gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	const gchar* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gboolean result;
#line 1637 "../src/main.vala"
	g_return_val_if_fail (left != NULL, FALSE);
#line 1637 "../src/main.vala"
	g_return_val_if_fail (right != NULL, FALSE);
#line 1638 "../src/main.vala"
	_tmp0_ = string_strip (left);
#line 1638 "../src/main.vala"
	l = _tmp0_;
#line 1639 "../src/main.vala"
	_tmp1_ = string_strip (right);
#line 1639 "../src/main.vala"
	r = _tmp1_;
#line 1640 "../src/main.vala"
	_tmp5_ = l;
#line 1640 "../src/main.vala"
	_tmp6_ = strlen (_tmp5_);
#line 1640 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 1640 "../src/main.vala"
	if (_tmp7_ > 0) {
#line 18891 "main.c"
		const gchar* _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
#line 1640 "../src/main.vala"
		_tmp8_ = r;
#line 1640 "../src/main.vala"
		_tmp9_ = strlen (_tmp8_);
#line 1640 "../src/main.vala"
		_tmp10_ = _tmp9_;
#line 1640 "../src/main.vala"
		_tmp4_ = _tmp10_ > 0;
#line 18903 "main.c"
	} else {
#line 1640 "../src/main.vala"
		_tmp4_ = FALSE;
#line 18907 "main.c"
	}
#line 1640 "../src/main.vala"
	if (_tmp4_) {
#line 18911 "main.c"
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		gint _tmp13_;
		gint _tmp14_;
#line 1640 "../src/main.vala"
		_tmp11_ = l;
#line 1640 "../src/main.vala"
		_tmp12_ = l;
#line 1640 "../src/main.vala"
		_tmp13_ = strlen (_tmp12_);
#line 1640 "../src/main.vala"
		_tmp14_ = _tmp13_;
#line 1640 "../src/main.vala"
		_tmp3_ = g_ascii_isdigit (string_get (_tmp11_, (glong) (_tmp14_ - 1)));
#line 18926 "main.c"
	} else {
#line 1640 "../src/main.vala"
		_tmp3_ = FALSE;
#line 18930 "main.c"
	}
#line 1640 "../src/main.vala"
	if (_tmp3_) {
#line 18934 "main.c"
		const gchar* _tmp15_;
#line 1640 "../src/main.vala"
		_tmp15_ = r;
#line 1640 "../src/main.vala"
		_tmp2_ = g_ascii_isdigit (string_get (_tmp15_, (glong) 0));
#line 18940 "main.c"
	} else {
#line 1640 "../src/main.vala"
		_tmp2_ = FALSE;
#line 18944 "main.c"
	}
#line 1640 "../src/main.vala"
	result = _tmp2_;
#line 1640 "../src/main.vala"
	_g_free0 (r);
#line 1640 "../src/main.vala"
	_g_free0 (l);
#line 1640 "../src/main.vala"
	return result;
#line 18954 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_division_expression (PhpToValaTranspiler* self,
                                                         const gchar* expression,
                                                         gint php_line_number,
                                                         GError** error)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gchar* _result_ = NULL;
	GeeArrayList* _tmp4_;
	gpointer _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1643 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1643 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1644 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_split_division (expression);
#line 1644 "../src/main.vala"
	parts = _tmp0_;
#line 1645 "../src/main.vala"
	_tmp1_ = parts;
#line 1645 "../src/main.vala"
	_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 1645 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 1645 "../src/main.vala"
	if (_tmp3_ <= 1) {
#line 1646 "../src/main.vala"
		result = NULL;
#line 1646 "../src/main.vala"
		_g_object_unref0 (parts);
#line 1646 "../src/main.vala"
		return result;
#line 19000 "main.c"
	}
#line 1648 "../src/main.vala"
	php_to_vala_transpiler_mark_function_used (self, "div");
#line 1649 "../src/main.vala"
	_tmp4_ = parts;
#line 1649 "../src/main.vala"
	_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _tmp4_, 0);
#line 1649 "../src/main.vala"
	_tmp6_ = (gchar*) _tmp5_;
#line 1649 "../src/main.vala"
	_tmp7_ = string_strip (_tmp6_);
#line 1649 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 1649 "../src/main.vala"
	_tmp9_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp8_, php_line_number, &_inner_error0_);
#line 1649 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 1649 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 1649 "../src/main.vala"
	_g_free0 (_tmp6_);
#line 1649 "../src/main.vala"
	_result_ = _tmp10_;
#line 1649 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1649 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1649 "../src/main.vala"
		_g_object_unref0 (parts);
#line 1649 "../src/main.vala"
		return NULL;
#line 19032 "main.c"
	}
	{
		gint i = 0;
#line 1650 "../src/main.vala"
		i = 1;
#line 19038 "main.c"
		{
			gboolean _tmp11_ = FALSE;
#line 1650 "../src/main.vala"
			_tmp11_ = TRUE;
#line 1650 "../src/main.vala"
			while (TRUE) {
#line 19045 "main.c"
				GeeArrayList* _tmp13_;
				gint _tmp14_;
				gint _tmp15_;
				gchar* _tmp16_ = NULL;
				GeeArrayList* _tmp17_;
				gpointer _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				const gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
#line 1650 "../src/main.vala"
				if (!_tmp11_) {
#line 19063 "main.c"
					gint _tmp12_;
#line 1650 "../src/main.vala"
					_tmp12_ = i;
#line 1650 "../src/main.vala"
					i = _tmp12_ + 1;
#line 19069 "main.c"
				}
#line 1650 "../src/main.vala"
				_tmp11_ = FALSE;
#line 1650 "../src/main.vala"
				_tmp13_ = parts;
#line 1650 "../src/main.vala"
				_tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
#line 1650 "../src/main.vala"
				_tmp15_ = _tmp14_;
#line 1650 "../src/main.vala"
				if (!(i < _tmp15_)) {
#line 1650 "../src/main.vala"
					break;
#line 19083 "main.c"
				}
#line 1653 "../src/main.vala"
				_tmp17_ = parts;
#line 1653 "../src/main.vala"
				_tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, i);
#line 1653 "../src/main.vala"
				_tmp19_ = (gchar*) _tmp18_;
#line 1653 "../src/main.vala"
				_tmp20_ = string_strip (_tmp19_);
#line 1653 "../src/main.vala"
				_tmp21_ = _tmp20_;
#line 1653 "../src/main.vala"
				_tmp22_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp21_, php_line_number, &_inner_error0_);
#line 1653 "../src/main.vala"
				_tmp23_ = _tmp22_;
#line 1653 "../src/main.vala"
				_g_free0 (_tmp21_);
#line 1653 "../src/main.vala"
				_g_free0 (_tmp19_);
#line 1653 "../src/main.vala"
				_tmp16_ = _tmp23_;
#line 1653 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1653 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1653 "../src/main.vala"
					_g_free0 (_result_);
#line 1653 "../src/main.vala"
					_g_object_unref0 (parts);
#line 1653 "../src/main.vala"
					return NULL;
#line 19115 "main.c"
				}
#line 1651 "../src/main.vala"
				_tmp24_ = _result_;
#line 1651 "../src/main.vala"
				_tmp25_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1651 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 1651 "../src/main.vala"
				_tmp27_ = g_strdup_printf ("Php.div_zval (%s, %s%s)", _tmp24_, _tmp16_, _tmp26_);
#line 1651 "../src/main.vala"
				_g_free0 (_result_);
#line 1651 "../src/main.vala"
				_result_ = _tmp27_;
#line 1651 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 1650 "../src/main.vala"
				_g_free0 (_tmp16_);
#line 19133 "main.c"
			}
		}
	}
#line 1657 "../src/main.vala"
	result = _result_;
#line 1657 "../src/main.vala"
	_g_object_unref0 (parts);
#line 1657 "../src/main.vala"
	return result;
#line 19143 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_variable_or_access (PhpToValaTranspiler* self,
                                                        const gchar* expression,
                                                        gint php_line_number,
                                                        GError** error)
{
	gchar* no_dollar = NULL;
	gchar* _tmp0_;
	gint bracket_index = 0;
	const gchar* _tmp17_;
	gchar* name = NULL;
	const gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* current = NULL;
	const gchar* _tmp29_;
	gchar* _tmp30_;
	GeeArrayList* keys = NULL;
	const gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	GeeArrayList* _tmp34_;
	GeeArrayList* _tmp35_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1660 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1660 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 1661 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_replace_php_variables (expression);
#line 1661 "../src/main.vala"
	no_dollar = _tmp0_;
#line 19178 "main.c"
	{
		GeeIterator* _name_it = NULL;
		GeeHashMap* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeSet* _tmp4_;
		GeeIterator* _tmp5_;
		GeeIterator* _tmp6_;
#line 1662 "../src/main.vala"
		_tmp1_ = self->variable_aliases;
#line 1662 "../src/main.vala"
		_tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
#line 1662 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 1662 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 1662 "../src/main.vala"
		_tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
#line 1662 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 1662 "../src/main.vala"
		_g_object_unref0 (_tmp4_);
#line 1662 "../src/main.vala"
		_name_it = _tmp6_;
#line 1662 "../src/main.vala"
		while (TRUE) {
#line 19205 "main.c"
			GeeIterator* _tmp7_;
			gchar* name = NULL;
			GeeIterator* _tmp8_;
			gpointer _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			GeeHashMap* _tmp12_;
			const gchar* _tmp13_;
			gpointer _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
#line 1662 "../src/main.vala"
			_tmp7_ = _name_it;
#line 1662 "../src/main.vala"
			if (!gee_iterator_next (_tmp7_)) {
#line 1662 "../src/main.vala"
				break;
#line 19223 "main.c"
			}
#line 1662 "../src/main.vala"
			_tmp8_ = _name_it;
#line 1662 "../src/main.vala"
			_tmp9_ = gee_iterator_get (_tmp8_);
#line 1662 "../src/main.vala"
			name = (gchar*) _tmp9_;
#line 1663 "../src/main.vala"
			_tmp10_ = no_dollar;
#line 1663 "../src/main.vala"
			_tmp11_ = name;
#line 1663 "../src/main.vala"
			_tmp12_ = self->variable_aliases;
#line 1663 "../src/main.vala"
			_tmp13_ = name;
#line 1663 "../src/main.vala"
			_tmp14_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp13_);
#line 1663 "../src/main.vala"
			_tmp15_ = (gchar*) _tmp14_;
#line 1663 "../src/main.vala"
			_tmp16_ = php_to_vala_transpiler_replace_identifier_token (_tmp10_, _tmp11_, _tmp15_);
#line 1663 "../src/main.vala"
			_g_free0 (no_dollar);
#line 1663 "../src/main.vala"
			no_dollar = _tmp16_;
#line 1663 "../src/main.vala"
			_g_free0 (_tmp15_);
#line 1662 "../src/main.vala"
			_g_free0 (name);
#line 19253 "main.c"
		}
#line 1662 "../src/main.vala"
		_g_object_unref0 (_name_it);
#line 19257 "main.c"
	}
#line 1665 "../src/main.vala"
	_tmp17_ = no_dollar;
#line 1665 "../src/main.vala"
	bracket_index = string_index_of (_tmp17_, "[", 0);
#line 1666 "../src/main.vala"
	if (bracket_index < 0) {
#line 19265 "main.c"
		gboolean _tmp18_ = FALSE;
		GeeHashMap* _tmp19_;
		const gchar* _tmp20_;
#line 1667 "../src/main.vala"
		_tmp19_ = self->variable_types;
#line 1667 "../src/main.vala"
		_tmp20_ = no_dollar;
#line 1667 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp19_, _tmp20_)) {
#line 19275 "main.c"
			GeeHashMap* _tmp21_;
			const gchar* _tmp22_;
			gpointer _tmp23_;
			gchar* _tmp24_;
#line 1667 "../src/main.vala"
			_tmp21_ = self->variable_types;
#line 1667 "../src/main.vala"
			_tmp22_ = no_dollar;
#line 1667 "../src/main.vala"
			_tmp23_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp21_, _tmp22_);
#line 1667 "../src/main.vala"
			_tmp24_ = (gchar*) _tmp23_;
#line 1667 "../src/main.vala"
			_tmp18_ = g_strcmp0 (_tmp24_, "int") == 0;
#line 1667 "../src/main.vala"
			_g_free0 (_tmp24_);
#line 19292 "main.c"
		} else {
#line 1667 "../src/main.vala"
			_tmp18_ = FALSE;
#line 19296 "main.c"
		}
#line 1667 "../src/main.vala"
		if (_tmp18_) {
#line 19300 "main.c"
			const gchar* _tmp25_;
			gchar* _tmp26_;
#line 1668 "../src/main.vala"
			_tmp25_ = no_dollar;
#line 1668 "../src/main.vala"
			_tmp26_ = g_strdup_printf ("Php.zval.integer (%s)", _tmp25_);
#line 1668 "../src/main.vala"
			result = _tmp26_;
#line 1668 "../src/main.vala"
			_g_free0 (no_dollar);
#line 1668 "../src/main.vala"
			return result;
#line 19313 "main.c"
		}
#line 1670 "../src/main.vala"
		result = no_dollar;
#line 1670 "../src/main.vala"
		return result;
#line 19319 "main.c"
	}
#line 1672 "../src/main.vala"
	_tmp27_ = no_dollar;
#line 1672 "../src/main.vala"
	_tmp28_ = string_substring (_tmp27_, (glong) 0, (glong) bracket_index);
#line 1672 "../src/main.vala"
	name = _tmp28_;
#line 1673 "../src/main.vala"
	_tmp29_ = name;
#line 1673 "../src/main.vala"
	_tmp30_ = g_strdup (_tmp29_);
#line 1673 "../src/main.vala"
	current = _tmp30_;
#line 1674 "../src/main.vala"
	_tmp31_ = no_dollar;
#line 1674 "../src/main.vala"
	_tmp32_ = string_substring (_tmp31_, (glong) bracket_index, (glong) -1);
#line 1674 "../src/main.vala"
	_tmp33_ = _tmp32_;
#line 1674 "../src/main.vala"
	_tmp34_ = php_to_vala_transpiler_parse_zval_array_keys (self, _tmp33_, php_line_number, &_inner_error0_);
#line 1674 "../src/main.vala"
	_tmp35_ = _tmp34_;
#line 1674 "../src/main.vala"
	_g_free0 (_tmp33_);
#line 1674 "../src/main.vala"
	keys = _tmp35_;
#line 1674 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1674 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1674 "../src/main.vala"
		_g_free0 (current);
#line 1674 "../src/main.vala"
		_g_free0 (name);
#line 1674 "../src/main.vala"
		_g_free0 (no_dollar);
#line 1674 "../src/main.vala"
		return NULL;
#line 19359 "main.c"
	}
	{
		GeeArrayList* _key_list = NULL;
		GeeArrayList* _tmp36_;
		gint _key_size = 0;
		GeeArrayList* _tmp37_;
		gint _tmp38_;
		gint _tmp39_;
		gint _key_index = 0;
#line 1675 "../src/main.vala"
		_tmp36_ = keys;
#line 1675 "../src/main.vala"
		_key_list = _tmp36_;
#line 1675 "../src/main.vala"
		_tmp37_ = _key_list;
#line 1675 "../src/main.vala"
		_tmp38_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp37_);
#line 1675 "../src/main.vala"
		_tmp39_ = _tmp38_;
#line 1675 "../src/main.vala"
		_key_size = _tmp39_;
#line 1675 "../src/main.vala"
		_key_index = -1;
#line 1675 "../src/main.vala"
		while (TRUE) {
#line 19385 "main.c"
			gint _tmp40_;
			gint _tmp41_;
			gchar* key = NULL;
			GeeArrayList* _tmp42_;
			gpointer _tmp43_;
			const gchar* _tmp44_ = NULL;
			const gchar* _tmp45_;
			const gchar* _tmp47_;
			gchar* _tmp48_;
#line 1675 "../src/main.vala"
			_key_index = _key_index + 1;
#line 1675 "../src/main.vala"
			_tmp40_ = _key_index;
#line 1675 "../src/main.vala"
			_tmp41_ = _key_size;
#line 1675 "../src/main.vala"
			if (!(_tmp40_ < _tmp41_)) {
#line 1675 "../src/main.vala"
				break;
#line 19405 "main.c"
			}
#line 1675 "../src/main.vala"
			_tmp42_ = _key_list;
#line 1675 "../src/main.vala"
			_tmp43_ = gee_abstract_list_get ((GeeAbstractList*) _tmp42_, _key_index);
#line 1675 "../src/main.vala"
			key = (gchar*) _tmp43_;
#line 1676 "../src/main.vala"
			_tmp45_ = key;
#line 1676 "../src/main.vala"
			if (g_strcmp0 (_tmp45_, "") == 0) {
#line 1676 "../src/main.vala"
				_tmp44_ = "Php.zval.null_value ()";
#line 19419 "main.c"
			} else {
				const gchar* _tmp46_;
#line 1676 "../src/main.vala"
				_tmp46_ = key;
#line 1676 "../src/main.vala"
				_tmp44_ = _tmp46_;
#line 19426 "main.c"
			}
#line 1676 "../src/main.vala"
			_tmp47_ = current;
#line 1676 "../src/main.vala"
			_tmp48_ = g_strdup_printf ("Php.array_get (%s, %s)", _tmp47_, _tmp44_);
#line 1676 "../src/main.vala"
			_g_free0 (current);
#line 1676 "../src/main.vala"
			current = _tmp48_;
#line 1675 "../src/main.vala"
			_g_free0 (key);
#line 19438 "main.c"
		}
	}
#line 1678 "../src/main.vala"
	result = current;
#line 1678 "../src/main.vala"
	_g_object_unref0 (keys);
#line 1678 "../src/main.vala"
	_g_free0 (name);
#line 1678 "../src/main.vala"
	_g_free0 (no_dollar);
#line 1678 "../src/main.vala"
	return result;
#line 19451 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_function_call (PhpToValaTranspiler* self,
                                                   const gchar* function_name,
                                                   const gchar* args,
                                                   gint php_line_number,
                                                   GError** error)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp3_;
	GQuark _tmp5_ = 0U;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label0 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label1 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label2 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label3 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label4 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label5 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label6 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label7 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label8 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label9 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label10 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label11 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label12 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label13 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label14 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label15 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label16 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label17 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label18 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label19 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label20 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label21 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label22 = 0;
#line 1689 "../src/main.vala"
	static GQuark _tmp4_label23 = 0;
#line 19512 "main.c"
	gchar* runtime_function_name = NULL;
	gchar* _tmp212_;
	FunctionBinding* binding = NULL;
	const gchar* _tmp213_;
	FunctionBinding* _tmp214_;
	FunctionBinding* _tmp215_;
	GError* _tmp233_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1681 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1681 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 1681 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 1682 "../src/main.vala"
	if (self->priv->optimize_local_vars) {
#line 1682 "../src/main.vala"
		_tmp0_ = TRUE;
#line 19532 "main.c"
	} else {
#line 1682 "../src/main.vala"
		_tmp0_ = self->priv->optimize_file_func_vars;
#line 19536 "main.c"
	}
#line 1682 "../src/main.vala"
	if (_tmp0_) {
#line 19540 "main.c"
		gchar* static_call = NULL;
		gchar* _tmp1_;
		const gchar* _tmp2_;
#line 1683 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_convert_zval_function_call_via_static_embed (self, function_name, args, php_line_number, &_inner_error0_);
#line 1683 "../src/main.vala"
		static_call = _tmp1_;
#line 1683 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1683 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1683 "../src/main.vala"
			return NULL;
#line 19554 "main.c"
		}
#line 1684 "../src/main.vala"
		_tmp2_ = static_call;
#line 1684 "../src/main.vala"
		if (_tmp2_ != NULL) {
#line 1685 "../src/main.vala"
			result = static_call;
#line 1685 "../src/main.vala"
			return result;
#line 19564 "main.c"
		}
#line 1682 "../src/main.vala"
		_g_free0 (static_call);
#line 19568 "main.c"
	}
#line 1689 "../src/main.vala"
	_tmp3_ = function_name;
#line 1689 "../src/main.vala"
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 1689 "../src/main.vala"
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("array")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19578 "main.c"
			default:
			{
				gchar* _tmp6_;
				gchar* _tmp7_;
				gboolean _tmp8_;
				gchar* _tmp10_ = NULL;
				gchar* _tmp11_;
				gchar* _tmp12_;
#line 1691 "../src/main.vala"
				_tmp6_ = string_strip (args);
#line 1691 "../src/main.vala"
				_tmp7_ = _tmp6_;
#line 1691 "../src/main.vala"
				_tmp8_ = g_strcmp0 (_tmp7_, "") == 0;
#line 1691 "../src/main.vala"
				_g_free0 (_tmp7_);
#line 1691 "../src/main.vala"
				if (_tmp8_) {
#line 19597 "main.c"
					gchar* _tmp9_;
#line 1692 "../src/main.vala"
					_tmp9_ = g_strdup ("Php.array_new ()");
#line 1692 "../src/main.vala"
					result = _tmp9_;
#line 1692 "../src/main.vala"
					return result;
#line 19605 "main.c"
				}
#line 1694 "../src/main.vala"
				_tmp11_ = php_to_vala_transpiler_convert_zval_array_function_expression (self, args, php_line_number, &_inner_error0_);
#line 1694 "../src/main.vala"
				_tmp10_ = _tmp11_;
#line 1694 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1694 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1694 "../src/main.vala"
					return NULL;
#line 19617 "main.c"
				}
#line 1694 "../src/main.vala"
				_tmp12_ = _tmp10_;
#line 1694 "../src/main.vala"
				_tmp10_ = NULL;
#line 1694 "../src/main.vala"
				result = _tmp12_;
#line 1694 "../src/main.vala"
				_g_free0 (_tmp10_);
#line 1694 "../src/main.vala"
				return result;
#line 19629 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("shell_exec")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19635 "main.c"
			default:
			{
				gchar* _tmp13_ = NULL;
				gchar* _tmp14_;
				gchar* _tmp15_ = NULL;
				gchar* _tmp16_;
				gchar* _tmp17_;
#line 1696 "../src/main.vala"
				_tmp14_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1696 "../src/main.vala"
				_tmp13_ = _tmp14_;
#line 1696 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1696 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1696 "../src/main.vala"
					return NULL;
#line 19653 "main.c"
				}
#line 1696 "../src/main.vala"
				_tmp16_ = php_to_vala_transpiler_embed_generated_zval_call (self, "shell_exec", _tmp13_, php_line_number, &_inner_error0_);
#line 1696 "../src/main.vala"
				_tmp15_ = _tmp16_;
#line 1696 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1696 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1696 "../src/main.vala"
					_g_free0 (_tmp13_);
#line 1696 "../src/main.vala"
					return NULL;
#line 19667 "main.c"
				}
#line 1696 "../src/main.vala"
				_tmp17_ = _tmp15_;
#line 1696 "../src/main.vala"
				_tmp15_ = NULL;
#line 1696 "../src/main.vala"
				result = _tmp17_;
#line 1696 "../src/main.vala"
				_g_free0 (_tmp15_);
#line 1696 "../src/main.vala"
				_g_free0 (_tmp13_);
#line 1696 "../src/main.vala"
				return result;
#line 19681 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("file_get_contents")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19687 "main.c"
			default:
			{
				gchar* _tmp18_ = NULL;
				gchar* _tmp19_;
				gchar* _tmp20_ = NULL;
				gchar* _tmp21_;
				gchar* _tmp22_;
#line 1698 "../src/main.vala"
				_tmp19_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1698 "../src/main.vala"
				_tmp18_ = _tmp19_;
#line 1698 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1698 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1698 "../src/main.vala"
					return NULL;
#line 19705 "main.c"
				}
#line 1698 "../src/main.vala"
				_tmp21_ = php_to_vala_transpiler_embed_generated_zval_call (self, "file_get_contents", _tmp18_, php_line_number, &_inner_error0_);
#line 1698 "../src/main.vala"
				_tmp20_ = _tmp21_;
#line 1698 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1698 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1698 "../src/main.vala"
					_g_free0 (_tmp18_);
#line 1698 "../src/main.vala"
					return NULL;
#line 19719 "main.c"
				}
#line 1698 "../src/main.vala"
				_tmp22_ = _tmp20_;
#line 1698 "../src/main.vala"
				_tmp20_ = NULL;
#line 1698 "../src/main.vala"
				result = _tmp22_;
#line 1698 "../src/main.vala"
				_g_free0 (_tmp20_);
#line 1698 "../src/main.vala"
				_g_free0 (_tmp18_);
#line 1698 "../src/main.vala"
				return result;
#line 19733 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("var_dump")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19739 "main.c"
			default:
			{
				gchar* _tmp23_ = NULL;
				gchar* _tmp24_;
				gchar* _tmp25_ = NULL;
				gchar* _tmp26_;
				gchar* _tmp27_;
#line 1700 "../src/main.vala"
				_tmp24_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1700 "../src/main.vala"
				_tmp23_ = _tmp24_;
#line 1700 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1700 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1700 "../src/main.vala"
					return NULL;
#line 19757 "main.c"
				}
#line 1700 "../src/main.vala"
				_tmp26_ = php_to_vala_transpiler_embed_generated_zval_call (self, "var_dump", _tmp23_, php_line_number, &_inner_error0_);
#line 1700 "../src/main.vala"
				_tmp25_ = _tmp26_;
#line 1700 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1700 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1700 "../src/main.vala"
					_g_free0 (_tmp23_);
#line 1700 "../src/main.vala"
					return NULL;
#line 19771 "main.c"
				}
#line 1700 "../src/main.vala"
				_tmp27_ = _tmp25_;
#line 1700 "../src/main.vala"
				_tmp25_ = NULL;
#line 1700 "../src/main.vala"
				result = _tmp27_;
#line 1700 "../src/main.vala"
				_g_free0 (_tmp25_);
#line 1700 "../src/main.vala"
				_g_free0 (_tmp23_);
#line 1700 "../src/main.vala"
				return result;
#line 19785 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("print_r")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19791 "main.c"
			default:
			{
				gchar* converted_print_r_args = NULL;
				gchar* _tmp28_;
				GeeArrayList* _tmp29_;
				GeeArrayList* _tmp30_;
				gint _tmp31_;
				gint _tmp32_;
				gboolean _tmp33_;
				gchar* _tmp36_ = NULL;
				const gchar* _tmp37_;
				gchar* _tmp38_;
				gchar* _tmp39_;
#line 1702 "../src/main.vala"
				_tmp28_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1702 "../src/main.vala"
				converted_print_r_args = _tmp28_;
#line 1702 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1702 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1702 "../src/main.vala"
					return NULL;
#line 19815 "main.c"
				}
#line 1703 "../src/main.vala"
				_tmp29_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1703 "../src/main.vala"
				_tmp30_ = _tmp29_;
#line 1703 "../src/main.vala"
				_tmp31_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp30_);
#line 1703 "../src/main.vala"
				_tmp32_ = _tmp31_;
#line 1703 "../src/main.vala"
				_tmp33_ = _tmp32_ == 1;
#line 1703 "../src/main.vala"
				_g_object_unref0 (_tmp30_);
#line 1703 "../src/main.vala"
				if (_tmp33_) {
#line 19831 "main.c"
					const gchar* _tmp34_;
					gchar* _tmp35_;
#line 1704 "../src/main.vala"
					_tmp34_ = converted_print_r_args;
#line 1704 "../src/main.vala"
					_tmp35_ = g_strconcat (_tmp34_, ", Php.zval.boolean (false)", NULL);
#line 1704 "../src/main.vala"
					_g_free0 (converted_print_r_args);
#line 1704 "../src/main.vala"
					converted_print_r_args = _tmp35_;
#line 19842 "main.c"
				}
#line 1706 "../src/main.vala"
				_tmp37_ = converted_print_r_args;
#line 1706 "../src/main.vala"
				_tmp38_ = php_to_vala_transpiler_embed_generated_zval_call (self, "print_r", _tmp37_, php_line_number, &_inner_error0_);
#line 1706 "../src/main.vala"
				_tmp36_ = _tmp38_;
#line 1706 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1706 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1706 "../src/main.vala"
					_g_free0 (converted_print_r_args);
#line 1706 "../src/main.vala"
					return NULL;
#line 19858 "main.c"
				}
#line 1706 "../src/main.vala"
				_tmp39_ = _tmp36_;
#line 1706 "../src/main.vala"
				_tmp36_ = NULL;
#line 1706 "../src/main.vala"
				result = _tmp39_;
#line 1706 "../src/main.vala"
				_g_free0 (_tmp36_);
#line 1706 "../src/main.vala"
				_g_free0 (converted_print_r_args);
#line 1706 "../src/main.vala"
				return result;
#line 19872 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("phpinfo")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19878 "main.c"
			default:
			{
				gchar* _tmp40_;
				gchar* _tmp41_;
				gboolean _tmp42_;
				gchar* _tmp44_ = NULL;
				gchar* _tmp45_;
				gchar* _tmp46_;
#line 1708 "../src/main.vala"
				_tmp40_ = string_strip (args);
#line 1708 "../src/main.vala"
				_tmp41_ = _tmp40_;
#line 1708 "../src/main.vala"
				_tmp42_ = g_strcmp0 (_tmp41_, "") != 0;
#line 1708 "../src/main.vala"
				_g_free0 (_tmp41_);
#line 1708 "../src/main.vala"
				if (_tmp42_) {
#line 19897 "main.c"
					GError* _tmp43_;
#line 1709 "../src/main.vala"
					_tmp43_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 1709 "../src/main.vala"
					_inner_error0_ = _tmp43_;
#line 1709 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1709 "../src/main.vala"
					return NULL;
#line 19907 "main.c"
				}
#line 1711 "../src/main.vala"
				_tmp45_ = php_to_vala_transpiler_embed_generated_zval_call (self, "phpinfo", "", php_line_number, &_inner_error0_);
#line 1711 "../src/main.vala"
				_tmp44_ = _tmp45_;
#line 1711 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1711 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1711 "../src/main.vala"
					return NULL;
#line 19919 "main.c"
				}
#line 1711 "../src/main.vala"
				_tmp46_ = _tmp44_;
#line 1711 "../src/main.vala"
				_tmp44_ = NULL;
#line 1711 "../src/main.vala"
				result = _tmp46_;
#line 1711 "../src/main.vala"
				_g_free0 (_tmp44_);
#line 1711 "../src/main.vala"
				return result;
#line 19931 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label6) ? _tmp4_label6 : (_tmp4_label6 = g_quark_from_static_string ("json_last_error_msg")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19937 "main.c"
			default:
			{
				gchar* _tmp47_;
				gchar* _tmp48_;
				gboolean _tmp49_;
				gchar* _tmp51_ = NULL;
				gchar* _tmp52_;
				gchar* _tmp53_;
#line 1713 "../src/main.vala"
				_tmp47_ = string_strip (args);
#line 1713 "../src/main.vala"
				_tmp48_ = _tmp47_;
#line 1713 "../src/main.vala"
				_tmp49_ = g_strcmp0 (_tmp48_, "") != 0;
#line 1713 "../src/main.vala"
				_g_free0 (_tmp48_);
#line 1713 "../src/main.vala"
				if (_tmp49_) {
#line 19956 "main.c"
					GError* _tmp50_;
#line 1714 "../src/main.vala"
					_tmp50_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 1714 "../src/main.vala"
					_inner_error0_ = _tmp50_;
#line 1714 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1714 "../src/main.vala"
					return NULL;
#line 19966 "main.c"
				}
#line 1716 "../src/main.vala"
				_tmp52_ = php_to_vala_transpiler_embed_generated_zval_call (self, "json_last_error_msg", "", php_line_number, &_inner_error0_);
#line 1716 "../src/main.vala"
				_tmp51_ = _tmp52_;
#line 1716 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1716 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1716 "../src/main.vala"
					return NULL;
#line 19978 "main.c"
				}
#line 1716 "../src/main.vala"
				_tmp53_ = _tmp51_;
#line 1716 "../src/main.vala"
				_tmp51_ = NULL;
#line 1716 "../src/main.vala"
				result = _tmp53_;
#line 1716 "../src/main.vala"
				_g_free0 (_tmp51_);
#line 1716 "../src/main.vala"
				return result;
#line 19990 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label7) ? _tmp4_label7 : (_tmp4_label7 = g_quark_from_static_string ("token_get_all")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 19996 "main.c"
			default:
			{
				GeeArrayList* token_args = NULL;
				GeeArrayList* _tmp54_;
				gboolean _tmp55_ = FALSE;
				GeeArrayList* _tmp56_;
				gint _tmp57_;
				gint _tmp58_;
				gchar* token_source = NULL;
				GeeArrayList* _tmp63_;
				gpointer _tmp64_;
				gchar* _tmp65_;
				gchar* _tmp66_;
				gchar* _tmp67_;
				gchar* _tmp68_;
				gchar* _tmp69_;
				gchar* _tmp70_ = NULL;
				GeeArrayList* _tmp71_;
				gint _tmp72_;
				gint _tmp73_;
				gchar* token_parse = NULL;
				gchar* _tmp84_;
				gchar* _tmp85_ = NULL;
				const gchar* _tmp86_;
				const gchar* _tmp87_;
				gchar* _tmp88_;
				gchar* _tmp89_;
				gchar* _tmp90_;
				gchar* _tmp91_;
				gchar* _tmp92_;
#line 1718 "../src/main.vala"
				_tmp54_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1718 "../src/main.vala"
				token_args = _tmp54_;
#line 1719 "../src/main.vala"
				_tmp56_ = token_args;
#line 1719 "../src/main.vala"
				_tmp57_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp56_);
#line 1719 "../src/main.vala"
				_tmp58_ = _tmp57_;
#line 1719 "../src/main.vala"
				if (_tmp58_ < 1) {
#line 1719 "../src/main.vala"
					_tmp55_ = TRUE;
#line 20041 "main.c"
				} else {
					GeeArrayList* _tmp59_;
					gint _tmp60_;
					gint _tmp61_;
#line 1719 "../src/main.vala"
					_tmp59_ = token_args;
#line 1719 "../src/main.vala"
					_tmp60_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp59_);
#line 1719 "../src/main.vala"
					_tmp61_ = _tmp60_;
#line 1719 "../src/main.vala"
					_tmp55_ = _tmp61_ > 2;
#line 20054 "main.c"
				}
#line 1719 "../src/main.vala"
				if (_tmp55_) {
#line 20058 "main.c"
					GError* _tmp62_;
#line 1720 "../src/main.vala"
					_tmp62_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 1720 "../src/main.vala"
					_inner_error0_ = _tmp62_;
#line 1720 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1720 "../src/main.vala"
					_g_object_unref0 (token_args);
#line 1720 "../src/main.vala"
					return NULL;
#line 20070 "main.c"
				}
#line 1722 "../src/main.vala"
				_tmp63_ = token_args;
#line 1722 "../src/main.vala"
				_tmp64_ = gee_abstract_list_get ((GeeAbstractList*) _tmp63_, 0);
#line 1722 "../src/main.vala"
				_tmp65_ = (gchar*) _tmp64_;
#line 1722 "../src/main.vala"
				_tmp66_ = string_strip (_tmp65_);
#line 1722 "../src/main.vala"
				_tmp67_ = _tmp66_;
#line 1722 "../src/main.vala"
				_tmp68_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp67_, php_line_number, &_inner_error0_);
#line 1722 "../src/main.vala"
				_tmp69_ = _tmp68_;
#line 1722 "../src/main.vala"
				_g_free0 (_tmp67_);
#line 1722 "../src/main.vala"
				_g_free0 (_tmp65_);
#line 1722 "../src/main.vala"
				token_source = _tmp69_;
#line 1722 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1722 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1722 "../src/main.vala"
					_g_object_unref0 (token_args);
#line 1722 "../src/main.vala"
					return NULL;
#line 20100 "main.c"
				}
#line 1723 "../src/main.vala"
				_tmp71_ = token_args;
#line 1723 "../src/main.vala"
				_tmp72_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp71_);
#line 1723 "../src/main.vala"
				_tmp73_ = _tmp72_;
#line 1723 "../src/main.vala"
				if (_tmp73_ == 2) {
#line 20110 "main.c"
					gchar* _tmp74_ = NULL;
					GeeArrayList* _tmp75_;
					gpointer _tmp76_;
					gchar* _tmp77_;
					gchar* _tmp78_;
					gchar* _tmp79_;
					gchar* _tmp80_;
					gchar* _tmp81_;
					gchar* _tmp82_;
#line 1723 "../src/main.vala"
					_tmp75_ = token_args;
#line 1723 "../src/main.vala"
					_tmp76_ = gee_abstract_list_get ((GeeAbstractList*) _tmp75_, 1);
#line 1723 "../src/main.vala"
					_tmp77_ = (gchar*) _tmp76_;
#line 1723 "../src/main.vala"
					_tmp78_ = string_strip (_tmp77_);
#line 1723 "../src/main.vala"
					_tmp79_ = _tmp78_;
#line 1723 "../src/main.vala"
					_tmp80_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp79_, php_line_number, &_inner_error0_);
#line 1723 "../src/main.vala"
					_tmp81_ = _tmp80_;
#line 1723 "../src/main.vala"
					_g_free0 (_tmp79_);
#line 1723 "../src/main.vala"
					_g_free0 (_tmp77_);
#line 1723 "../src/main.vala"
					_tmp74_ = _tmp81_;
#line 1723 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1723 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 1723 "../src/main.vala"
						_g_free0 (_tmp70_);
#line 1723 "../src/main.vala"
						_g_free0 (token_source);
#line 1723 "../src/main.vala"
						_g_object_unref0 (token_args);
#line 1723 "../src/main.vala"
						return NULL;
#line 20152 "main.c"
					}
#line 1723 "../src/main.vala"
					_tmp82_ = g_strdup_printf ("Php.truthy (%s)", _tmp74_);
#line 1723 "../src/main.vala"
					_g_free0 (_tmp70_);
#line 1723 "../src/main.vala"
					_tmp70_ = _tmp82_;
#line 1723 "../src/main.vala"
					_g_free0 (_tmp74_);
#line 20162 "main.c"
				} else {
					gchar* _tmp83_;
#line 1723 "../src/main.vala"
					_tmp83_ = g_strdup ("false");
#line 1723 "../src/main.vala"
					_g_free0 (_tmp70_);
#line 1723 "../src/main.vala"
					_tmp70_ = _tmp83_;
#line 20171 "main.c"
				}
#line 1723 "../src/main.vala"
				_tmp84_ = _tmp70_;
#line 1723 "../src/main.vala"
				_tmp70_ = NULL;
#line 1723 "../src/main.vala"
				token_parse = _tmp84_;
#line 1724 "../src/main.vala"
				_tmp86_ = token_source;
#line 1724 "../src/main.vala"
				_tmp87_ = token_parse;
#line 1724 "../src/main.vala"
				_tmp88_ = g_strdup_printf ("%s, Php.zval.boolean (%s)", _tmp86_, _tmp87_);
#line 1724 "../src/main.vala"
				_tmp89_ = _tmp88_;
#line 1724 "../src/main.vala"
				_tmp90_ = php_to_vala_transpiler_embed_generated_zval_call (self, "token_get_all", _tmp89_, php_line_number, &_inner_error0_);
#line 1724 "../src/main.vala"
				_tmp91_ = _tmp90_;
#line 1724 "../src/main.vala"
				_g_free0 (_tmp89_);
#line 1724 "../src/main.vala"
				_tmp85_ = _tmp91_;
#line 1724 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1724 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1724 "../src/main.vala"
					_g_free0 (token_parse);
#line 1724 "../src/main.vala"
					_g_free0 (_tmp70_);
#line 1724 "../src/main.vala"
					_g_free0 (token_source);
#line 1724 "../src/main.vala"
					_g_object_unref0 (token_args);
#line 1724 "../src/main.vala"
					return NULL;
#line 20209 "main.c"
				}
#line 1724 "../src/main.vala"
				_tmp92_ = _tmp85_;
#line 1724 "../src/main.vala"
				_tmp85_ = NULL;
#line 1724 "../src/main.vala"
				result = _tmp92_;
#line 1724 "../src/main.vala"
				_g_free0 (_tmp85_);
#line 1724 "../src/main.vala"
				_g_free0 (token_parse);
#line 1724 "../src/main.vala"
				_g_free0 (_tmp70_);
#line 1724 "../src/main.vala"
				_g_free0 (token_source);
#line 1724 "../src/main.vala"
				_g_object_unref0 (token_args);
#line 1724 "../src/main.vala"
				return result;
#line 20229 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label8) ? _tmp4_label8 : (_tmp4_label8 = g_quark_from_static_string ("token_name")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20235 "main.c"
			default:
			{
				gchar* _tmp93_ = NULL;
				gchar* _tmp94_;
				gchar* _tmp95_ = NULL;
				gchar* _tmp96_;
				gchar* _tmp97_;
#line 1726 "../src/main.vala"
				_tmp94_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1726 "../src/main.vala"
				_tmp93_ = _tmp94_;
#line 1726 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1726 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1726 "../src/main.vala"
					return NULL;
#line 20253 "main.c"
				}
#line 1726 "../src/main.vala"
				_tmp96_ = php_to_vala_transpiler_embed_generated_zval_call (self, "token_name", _tmp93_, php_line_number, &_inner_error0_);
#line 1726 "../src/main.vala"
				_tmp95_ = _tmp96_;
#line 1726 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1726 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1726 "../src/main.vala"
					_g_free0 (_tmp93_);
#line 1726 "../src/main.vala"
					return NULL;
#line 20267 "main.c"
				}
#line 1726 "../src/main.vala"
				_tmp97_ = _tmp95_;
#line 1726 "../src/main.vala"
				_tmp95_ = NULL;
#line 1726 "../src/main.vala"
				result = _tmp97_;
#line 1726 "../src/main.vala"
				_g_free0 (_tmp95_);
#line 1726 "../src/main.vala"
				_g_free0 (_tmp93_);
#line 1726 "../src/main.vala"
				return result;
#line 20281 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label9) ? _tmp4_label9 : (_tmp4_label9 = g_quark_from_static_string ("explode")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20287 "main.c"
			default:
			{
				gchar* _tmp98_ = NULL;
				gchar* _tmp99_;
				gchar* _tmp100_ = NULL;
				gchar* _tmp101_;
				gchar* _tmp102_;
#line 1728 "../src/main.vala"
				_tmp99_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1728 "../src/main.vala"
				_tmp98_ = _tmp99_;
#line 1728 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1728 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1728 "../src/main.vala"
					return NULL;
#line 20305 "main.c"
				}
#line 1728 "../src/main.vala"
				_tmp101_ = php_to_vala_transpiler_embed_generated_zval_call (self, "explode", _tmp98_, php_line_number, &_inner_error0_);
#line 1728 "../src/main.vala"
				_tmp100_ = _tmp101_;
#line 1728 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1728 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1728 "../src/main.vala"
					_g_free0 (_tmp98_);
#line 1728 "../src/main.vala"
					return NULL;
#line 20319 "main.c"
				}
#line 1728 "../src/main.vala"
				_tmp102_ = _tmp100_;
#line 1728 "../src/main.vala"
				_tmp100_ = NULL;
#line 1728 "../src/main.vala"
				result = _tmp102_;
#line 1728 "../src/main.vala"
				_g_free0 (_tmp100_);
#line 1728 "../src/main.vala"
				_g_free0 (_tmp98_);
#line 1728 "../src/main.vala"
				return result;
#line 20333 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label10) ? _tmp4_label10 : (_tmp4_label10 = g_quark_from_static_string ("trim")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20339 "main.c"
			default:
			{
				gchar* _tmp103_ = NULL;
				gchar* _tmp104_;
				gchar* _tmp105_ = NULL;
				gchar* _tmp106_;
				gchar* _tmp107_;
#line 1730 "../src/main.vala"
				_tmp104_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1730 "../src/main.vala"
				_tmp103_ = _tmp104_;
#line 1730 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1730 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1730 "../src/main.vala"
					return NULL;
#line 20357 "main.c"
				}
#line 1730 "../src/main.vala"
				_tmp106_ = php_to_vala_transpiler_embed_generated_zval_call (self, "trim", _tmp103_, php_line_number, &_inner_error0_);
#line 1730 "../src/main.vala"
				_tmp105_ = _tmp106_;
#line 1730 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1730 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1730 "../src/main.vala"
					_g_free0 (_tmp103_);
#line 1730 "../src/main.vala"
					return NULL;
#line 20371 "main.c"
				}
#line 1730 "../src/main.vala"
				_tmp107_ = _tmp105_;
#line 1730 "../src/main.vala"
				_tmp105_ = NULL;
#line 1730 "../src/main.vala"
				result = _tmp107_;
#line 1730 "../src/main.vala"
				_g_free0 (_tmp105_);
#line 1730 "../src/main.vala"
				_g_free0 (_tmp103_);
#line 1730 "../src/main.vala"
				return result;
#line 20385 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label11) ? _tmp4_label11 : (_tmp4_label11 = g_quark_from_static_string ("str_replace")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20391 "main.c"
			default:
			{
				gchar* _tmp108_ = NULL;
				gchar* _tmp109_;
				gchar* _tmp110_ = NULL;
				gchar* _tmp111_;
				gchar* _tmp112_;
#line 1732 "../src/main.vala"
				_tmp109_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1732 "../src/main.vala"
				_tmp108_ = _tmp109_;
#line 1732 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1732 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1732 "../src/main.vala"
					return NULL;
#line 20409 "main.c"
				}
#line 1732 "../src/main.vala"
				_tmp111_ = php_to_vala_transpiler_embed_generated_zval_call (self, "str_replace", _tmp108_, php_line_number, &_inner_error0_);
#line 1732 "../src/main.vala"
				_tmp110_ = _tmp111_;
#line 1732 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1732 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1732 "../src/main.vala"
					_g_free0 (_tmp108_);
#line 1732 "../src/main.vala"
					return NULL;
#line 20423 "main.c"
				}
#line 1732 "../src/main.vala"
				_tmp112_ = _tmp110_;
#line 1732 "../src/main.vala"
				_tmp110_ = NULL;
#line 1732 "../src/main.vala"
				result = _tmp112_;
#line 1732 "../src/main.vala"
				_g_free0 (_tmp110_);
#line 1732 "../src/main.vala"
				_g_free0 (_tmp108_);
#line 1732 "../src/main.vala"
				return result;
#line 20437 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label12) ? _tmp4_label12 : (_tmp4_label12 = g_quark_from_static_string ("number_format")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20443 "main.c"
			default:
			{
				GeeArrayList* number_format_args = NULL;
				GeeArrayList* _tmp113_;
				gchar* converted_number_format_args = NULL;
				gchar* _tmp114_;
				GeeArrayList* _tmp115_;
				gint _tmp116_;
				gint _tmp117_;
				gchar* _tmp130_ = NULL;
				const gchar* _tmp131_;
				gchar* _tmp132_;
				gchar* _tmp133_;
#line 1734 "../src/main.vala"
				_tmp113_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1734 "../src/main.vala"
				number_format_args = _tmp113_;
#line 1735 "../src/main.vala"
				_tmp114_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1735 "../src/main.vala"
				converted_number_format_args = _tmp114_;
#line 1735 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1735 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1735 "../src/main.vala"
					_g_object_unref0 (number_format_args);
#line 1735 "../src/main.vala"
					return NULL;
#line 20473 "main.c"
				}
#line 1736 "../src/main.vala"
				_tmp115_ = number_format_args;
#line 1736 "../src/main.vala"
				_tmp116_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp115_);
#line 1736 "../src/main.vala"
				_tmp117_ = _tmp116_;
#line 1736 "../src/main.vala"
				if (_tmp117_ == 1) {
#line 20483 "main.c"
					const gchar* _tmp118_;
					gchar* _tmp119_;
#line 1737 "../src/main.vala"
					_tmp118_ = converted_number_format_args;
#line 1737 "../src/main.vala"
					_tmp119_ = g_strconcat (_tmp118_, ", Php.zval.integer (0), Php.zval.string_value (\".\"), Php.zval.string" \
"_value (\",\")", NULL);
#line 1737 "../src/main.vala"
					_g_free0 (converted_number_format_args);
#line 1737 "../src/main.vala"
					converted_number_format_args = _tmp119_;
#line 20494 "main.c"
				} else {
					GeeArrayList* _tmp120_;
					gint _tmp121_;
					gint _tmp122_;
#line 1738 "../src/main.vala"
					_tmp120_ = number_format_args;
#line 1738 "../src/main.vala"
					_tmp121_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp120_);
#line 1738 "../src/main.vala"
					_tmp122_ = _tmp121_;
#line 1738 "../src/main.vala"
					if (_tmp122_ == 2) {
#line 20507 "main.c"
						const gchar* _tmp123_;
						gchar* _tmp124_;
#line 1739 "../src/main.vala"
						_tmp123_ = converted_number_format_args;
#line 1739 "../src/main.vala"
						_tmp124_ = g_strconcat (_tmp123_, ", Php.zval.string_value (\".\"), Php.zval.string_value (\",\")", NULL);
#line 1739 "../src/main.vala"
						_g_free0 (converted_number_format_args);
#line 1739 "../src/main.vala"
						converted_number_format_args = _tmp124_;
#line 20518 "main.c"
					} else {
						GeeArrayList* _tmp125_;
						gint _tmp126_;
						gint _tmp127_;
#line 1740 "../src/main.vala"
						_tmp125_ = number_format_args;
#line 1740 "../src/main.vala"
						_tmp126_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp125_);
#line 1740 "../src/main.vala"
						_tmp127_ = _tmp126_;
#line 1740 "../src/main.vala"
						if (_tmp127_ == 3) {
#line 20531 "main.c"
							const gchar* _tmp128_;
							gchar* _tmp129_;
#line 1741 "../src/main.vala"
							_tmp128_ = converted_number_format_args;
#line 1741 "../src/main.vala"
							_tmp129_ = g_strconcat (_tmp128_, ", Php.zval.string_value (\",\")", NULL);
#line 1741 "../src/main.vala"
							_g_free0 (converted_number_format_args);
#line 1741 "../src/main.vala"
							converted_number_format_args = _tmp129_;
#line 20542 "main.c"
						}
					}
				}
#line 1743 "../src/main.vala"
				_tmp131_ = converted_number_format_args;
#line 1743 "../src/main.vala"
				_tmp132_ = php_to_vala_transpiler_embed_generated_zval_call (self, "number_format", _tmp131_, php_line_number, &_inner_error0_);
#line 1743 "../src/main.vala"
				_tmp130_ = _tmp132_;
#line 1743 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1743 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1743 "../src/main.vala"
					_g_free0 (converted_number_format_args);
#line 1743 "../src/main.vala"
					_g_object_unref0 (number_format_args);
#line 1743 "../src/main.vala"
					return NULL;
#line 20562 "main.c"
				}
#line 1743 "../src/main.vala"
				_tmp133_ = _tmp130_;
#line 1743 "../src/main.vala"
				_tmp130_ = NULL;
#line 1743 "../src/main.vala"
				result = _tmp133_;
#line 1743 "../src/main.vala"
				_g_free0 (_tmp130_);
#line 1743 "../src/main.vala"
				_g_free0 (converted_number_format_args);
#line 1743 "../src/main.vala"
				_g_object_unref0 (number_format_args);
#line 1743 "../src/main.vala"
				return result;
#line 20578 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label13) ? _tmp4_label13 : (_tmp4_label13 = g_quark_from_static_string ("substr")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20584 "main.c"
			default:
			{
				GeeArrayList* substr_args = NULL;
				GeeArrayList* _tmp134_;
				gchar* converted_substr_args = NULL;
				gchar* _tmp135_;
				GeeArrayList* _tmp136_;
				gint _tmp137_;
				gint _tmp138_;
				gchar* _tmp141_ = NULL;
				const gchar* _tmp142_;
				gchar* _tmp143_;
				gchar* _tmp144_;
#line 1745 "../src/main.vala"
				_tmp134_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1745 "../src/main.vala"
				substr_args = _tmp134_;
#line 1746 "../src/main.vala"
				_tmp135_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1746 "../src/main.vala"
				converted_substr_args = _tmp135_;
#line 1746 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1746 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1746 "../src/main.vala"
					_g_object_unref0 (substr_args);
#line 1746 "../src/main.vala"
					return NULL;
#line 20614 "main.c"
				}
#line 1747 "../src/main.vala"
				_tmp136_ = substr_args;
#line 1747 "../src/main.vala"
				_tmp137_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp136_);
#line 1747 "../src/main.vala"
				_tmp138_ = _tmp137_;
#line 1747 "../src/main.vala"
				if (_tmp138_ == 2) {
#line 20624 "main.c"
					const gchar* _tmp139_;
					gchar* _tmp140_;
#line 1748 "../src/main.vala"
					_tmp139_ = converted_substr_args;
#line 1748 "../src/main.vala"
					_tmp140_ = g_strconcat (_tmp139_, ", Php.zval.integer (2147483647)", NULL);
#line 1748 "../src/main.vala"
					_g_free0 (converted_substr_args);
#line 1748 "../src/main.vala"
					converted_substr_args = _tmp140_;
#line 20635 "main.c"
				}
#line 1750 "../src/main.vala"
				_tmp142_ = converted_substr_args;
#line 1750 "../src/main.vala"
				_tmp143_ = php_to_vala_transpiler_embed_generated_zval_call (self, "substr", _tmp142_, php_line_number, &_inner_error0_);
#line 1750 "../src/main.vala"
				_tmp141_ = _tmp143_;
#line 1750 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1750 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1750 "../src/main.vala"
					_g_free0 (converted_substr_args);
#line 1750 "../src/main.vala"
					_g_object_unref0 (substr_args);
#line 1750 "../src/main.vala"
					return NULL;
#line 20653 "main.c"
				}
#line 1750 "../src/main.vala"
				_tmp144_ = _tmp141_;
#line 1750 "../src/main.vala"
				_tmp141_ = NULL;
#line 1750 "../src/main.vala"
				result = _tmp144_;
#line 1750 "../src/main.vala"
				_g_free0 (_tmp141_);
#line 1750 "../src/main.vala"
				_g_free0 (converted_substr_args);
#line 1750 "../src/main.vala"
				_g_object_unref0 (substr_args);
#line 1750 "../src/main.vala"
				return result;
#line 20669 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label14) ? _tmp4_label14 : (_tmp4_label14 = g_quark_from_static_string ("strlen")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20675 "main.c"
			default:
			{
				gchar* _tmp145_ = NULL;
				gchar* _tmp146_;
				gchar* _tmp147_ = NULL;
				gchar* _tmp148_;
				gchar* _tmp149_;
#line 1752 "../src/main.vala"
				_tmp146_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1752 "../src/main.vala"
				_tmp145_ = _tmp146_;
#line 1752 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1752 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1752 "../src/main.vala"
					return NULL;
#line 20693 "main.c"
				}
#line 1752 "../src/main.vala"
				_tmp148_ = php_to_vala_transpiler_embed_generated_zval_call (self, "strlen", _tmp145_, php_line_number, &_inner_error0_);
#line 1752 "../src/main.vala"
				_tmp147_ = _tmp148_;
#line 1752 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1752 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1752 "../src/main.vala"
					_g_free0 (_tmp145_);
#line 1752 "../src/main.vala"
					return NULL;
#line 20707 "main.c"
				}
#line 1752 "../src/main.vala"
				_tmp149_ = _tmp147_;
#line 1752 "../src/main.vala"
				_tmp147_ = NULL;
#line 1752 "../src/main.vala"
				result = _tmp149_;
#line 1752 "../src/main.vala"
				_g_free0 (_tmp147_);
#line 1752 "../src/main.vala"
				_g_free0 (_tmp145_);
#line 1752 "../src/main.vala"
				return result;
#line 20721 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label15) ? _tmp4_label15 : (_tmp4_label15 = g_quark_from_static_string ("stripos")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20727 "main.c"
			default:
			{
				gchar* _tmp150_ = NULL;
				gchar* _tmp151_;
				gchar* _tmp152_ = NULL;
				gchar* _tmp153_;
				gchar* _tmp154_;
#line 1754 "../src/main.vala"
				_tmp151_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1754 "../src/main.vala"
				_tmp150_ = _tmp151_;
#line 1754 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1754 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1754 "../src/main.vala"
					return NULL;
#line 20745 "main.c"
				}
#line 1754 "../src/main.vala"
				_tmp153_ = php_to_vala_transpiler_embed_generated_zval_call (self, "stripos", _tmp150_, php_line_number, &_inner_error0_);
#line 1754 "../src/main.vala"
				_tmp152_ = _tmp153_;
#line 1754 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1754 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1754 "../src/main.vala"
					_g_free0 (_tmp150_);
#line 1754 "../src/main.vala"
					return NULL;
#line 20759 "main.c"
				}
#line 1754 "../src/main.vala"
				_tmp154_ = _tmp152_;
#line 1754 "../src/main.vala"
				_tmp152_ = NULL;
#line 1754 "../src/main.vala"
				result = _tmp154_;
#line 1754 "../src/main.vala"
				_g_free0 (_tmp152_);
#line 1754 "../src/main.vala"
				_g_free0 (_tmp150_);
#line 1754 "../src/main.vala"
				return result;
#line 20773 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label16) ? _tmp4_label16 : (_tmp4_label16 = g_quark_from_static_string ("round")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20779 "main.c"
			default:
			{
				GeeArrayList* round_args = NULL;
				GeeArrayList* _tmp155_;
				gchar* converted_round_args = NULL;
				gchar* _tmp156_;
				GeeArrayList* _tmp157_;
				gint _tmp158_;
				gint _tmp159_;
				gchar* _tmp162_ = NULL;
				const gchar* _tmp163_;
				gchar* _tmp164_;
				gchar* _tmp165_;
#line 1756 "../src/main.vala"
				_tmp155_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1756 "../src/main.vala"
				round_args = _tmp155_;
#line 1757 "../src/main.vala"
				_tmp156_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1757 "../src/main.vala"
				converted_round_args = _tmp156_;
#line 1757 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1757 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1757 "../src/main.vala"
					_g_object_unref0 (round_args);
#line 1757 "../src/main.vala"
					return NULL;
#line 20809 "main.c"
				}
#line 1758 "../src/main.vala"
				_tmp157_ = round_args;
#line 1758 "../src/main.vala"
				_tmp158_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp157_);
#line 1758 "../src/main.vala"
				_tmp159_ = _tmp158_;
#line 1758 "../src/main.vala"
				if (_tmp159_ == 1) {
#line 20819 "main.c"
					const gchar* _tmp160_;
					gchar* _tmp161_;
#line 1759 "../src/main.vala"
					_tmp160_ = converted_round_args;
#line 1759 "../src/main.vala"
					_tmp161_ = g_strconcat (_tmp160_, ", Php.zval.integer (0)", NULL);
#line 1759 "../src/main.vala"
					_g_free0 (converted_round_args);
#line 1759 "../src/main.vala"
					converted_round_args = _tmp161_;
#line 20830 "main.c"
				}
#line 1761 "../src/main.vala"
				_tmp163_ = converted_round_args;
#line 1761 "../src/main.vala"
				_tmp164_ = php_to_vala_transpiler_embed_generated_zval_call (self, "round", _tmp163_, php_line_number, &_inner_error0_);
#line 1761 "../src/main.vala"
				_tmp162_ = _tmp164_;
#line 1761 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1761 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1761 "../src/main.vala"
					_g_free0 (converted_round_args);
#line 1761 "../src/main.vala"
					_g_object_unref0 (round_args);
#line 1761 "../src/main.vala"
					return NULL;
#line 20848 "main.c"
				}
#line 1761 "../src/main.vala"
				_tmp165_ = _tmp162_;
#line 1761 "../src/main.vala"
				_tmp162_ = NULL;
#line 1761 "../src/main.vala"
				result = _tmp165_;
#line 1761 "../src/main.vala"
				_g_free0 (_tmp162_);
#line 1761 "../src/main.vala"
				_g_free0 (converted_round_args);
#line 1761 "../src/main.vala"
				_g_object_unref0 (round_args);
#line 1761 "../src/main.vala"
				return result;
#line 20864 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label17) ? _tmp4_label17 : (_tmp4_label17 = g_quark_from_static_string ("microtime")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20870 "main.c"
			default:
			{
				gchar* converted_microtime_args = NULL;
				gchar* _tmp166_;
				gchar* _tmp167_;
				gchar* _tmp168_;
				gboolean _tmp169_;
				gchar* _tmp171_ = NULL;
				const gchar* _tmp172_;
				gchar* _tmp173_;
				gchar* _tmp174_;
#line 1763 "../src/main.vala"
				_tmp166_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1763 "../src/main.vala"
				converted_microtime_args = _tmp166_;
#line 1763 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1763 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1763 "../src/main.vala"
					return NULL;
#line 20892 "main.c"
				}
#line 1764 "../src/main.vala"
				_tmp167_ = string_strip (args);
#line 1764 "../src/main.vala"
				_tmp168_ = _tmp167_;
#line 1764 "../src/main.vala"
				_tmp169_ = g_strcmp0 (_tmp168_, "") == 0;
#line 1764 "../src/main.vala"
				_g_free0 (_tmp168_);
#line 1764 "../src/main.vala"
				if (_tmp169_) {
#line 20904 "main.c"
					gchar* _tmp170_;
#line 1765 "../src/main.vala"
					_tmp170_ = g_strdup ("Php.zval.boolean (false)");
#line 1765 "../src/main.vala"
					_g_free0 (converted_microtime_args);
#line 1765 "../src/main.vala"
					converted_microtime_args = _tmp170_;
#line 20912 "main.c"
				}
#line 1767 "../src/main.vala"
				_tmp172_ = converted_microtime_args;
#line 1767 "../src/main.vala"
				_tmp173_ = php_to_vala_transpiler_embed_generated_zval_call (self, "microtime", _tmp172_, php_line_number, &_inner_error0_);
#line 1767 "../src/main.vala"
				_tmp171_ = _tmp173_;
#line 1767 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1767 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1767 "../src/main.vala"
					_g_free0 (converted_microtime_args);
#line 1767 "../src/main.vala"
					return NULL;
#line 20928 "main.c"
				}
#line 1767 "../src/main.vala"
				_tmp174_ = _tmp171_;
#line 1767 "../src/main.vala"
				_tmp171_ = NULL;
#line 1767 "../src/main.vala"
				result = _tmp174_;
#line 1767 "../src/main.vala"
				_g_free0 (_tmp171_);
#line 1767 "../src/main.vala"
				_g_free0 (converted_microtime_args);
#line 1767 "../src/main.vala"
				return result;
#line 20942 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label18) ? _tmp4_label18 : (_tmp4_label18 = g_quark_from_static_string ("floor")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 20948 "main.c"
			default:
			{
				gchar* _tmp175_ = NULL;
				gchar* _tmp176_;
				gchar* _tmp177_ = NULL;
				gchar* _tmp178_;
				gchar* _tmp179_;
#line 1769 "../src/main.vala"
				_tmp176_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1769 "../src/main.vala"
				_tmp175_ = _tmp176_;
#line 1769 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1769 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1769 "../src/main.vala"
					return NULL;
#line 20966 "main.c"
				}
#line 1769 "../src/main.vala"
				_tmp178_ = php_to_vala_transpiler_embed_generated_zval_call (self, "floor", _tmp175_, php_line_number, &_inner_error0_);
#line 1769 "../src/main.vala"
				_tmp177_ = _tmp178_;
#line 1769 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1769 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1769 "../src/main.vala"
					_g_free0 (_tmp175_);
#line 1769 "../src/main.vala"
					return NULL;
#line 20980 "main.c"
				}
#line 1769 "../src/main.vala"
				_tmp179_ = _tmp177_;
#line 1769 "../src/main.vala"
				_tmp177_ = NULL;
#line 1769 "../src/main.vala"
				result = _tmp179_;
#line 1769 "../src/main.vala"
				_g_free0 (_tmp177_);
#line 1769 "../src/main.vala"
				_g_free0 (_tmp175_);
#line 1769 "../src/main.vala"
				return result;
#line 20994 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label19) ? _tmp4_label19 : (_tmp4_label19 = g_quark_from_static_string ("count")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 21000 "main.c"
			default:
			{
				gchar* _tmp180_ = NULL;
				gchar* _tmp181_;
				gchar* _tmp182_ = NULL;
				gchar* _tmp183_;
				gchar* _tmp184_;
#line 1771 "../src/main.vala"
				_tmp181_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1771 "../src/main.vala"
				_tmp180_ = _tmp181_;
#line 1771 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1771 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1771 "../src/main.vala"
					return NULL;
#line 21018 "main.c"
				}
#line 1771 "../src/main.vala"
				_tmp183_ = php_to_vala_transpiler_embed_generated_zval_call (self, "count", _tmp180_, php_line_number, &_inner_error0_);
#line 1771 "../src/main.vala"
				_tmp182_ = _tmp183_;
#line 1771 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1771 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1771 "../src/main.vala"
					_g_free0 (_tmp180_);
#line 1771 "../src/main.vala"
					return NULL;
#line 21032 "main.c"
				}
#line 1771 "../src/main.vala"
				_tmp184_ = _tmp182_;
#line 1771 "../src/main.vala"
				_tmp182_ = NULL;
#line 1771 "../src/main.vala"
				result = _tmp184_;
#line 1771 "../src/main.vala"
				_g_free0 (_tmp182_);
#line 1771 "../src/main.vala"
				_g_free0 (_tmp180_);
#line 1771 "../src/main.vala"
				return result;
#line 21046 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label20) ? _tmp4_label20 : (_tmp4_label20 = g_quark_from_static_string ("isset")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 21052 "main.c"
			default:
			{
				gchar* _tmp185_ = NULL;
				gchar* _tmp186_;
				gchar* _tmp187_;
				gchar* _tmp188_;
				gchar* _tmp189_;
				gchar* _tmp190_;
#line 1773 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "isset");
#line 1774 "../src/main.vala"
				_tmp186_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1774 "../src/main.vala"
				_tmp185_ = _tmp186_;
#line 1774 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1774 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1774 "../src/main.vala"
					return NULL;
#line 21073 "main.c"
				}
#line 1774 "../src/main.vala"
				_tmp187_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1774 "../src/main.vala"
				_tmp188_ = _tmp187_;
#line 1774 "../src/main.vala"
				_tmp189_ = g_strdup_printf ("Php.isset_value_zval (%s%s)", _tmp185_, _tmp188_);
#line 1774 "../src/main.vala"
				_tmp190_ = _tmp189_;
#line 1774 "../src/main.vala"
				_g_free0 (_tmp188_);
#line 1774 "../src/main.vala"
				result = _tmp190_;
#line 1774 "../src/main.vala"
				_g_free0 (_tmp185_);
#line 1774 "../src/main.vala"
				return result;
#line 21091 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label21) ? _tmp4_label21 : (_tmp4_label21 = g_quark_from_static_string ("flush")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 21097 "main.c"
			default:
			{
				gchar* _tmp191_ = NULL;
				gchar* _tmp192_;
				gchar* _tmp193_;
#line 1776 "../src/main.vala"
				_tmp192_ = php_to_vala_transpiler_embed_generated_zval_call (self, "flush", "", php_line_number, &_inner_error0_);
#line 1776 "../src/main.vala"
				_tmp191_ = _tmp192_;
#line 1776 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1776 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1776 "../src/main.vala"
					return NULL;
#line 21113 "main.c"
				}
#line 1776 "../src/main.vala"
				_tmp193_ = _tmp191_;
#line 1776 "../src/main.vala"
				_tmp191_ = NULL;
#line 1776 "../src/main.vala"
				result = _tmp193_;
#line 1776 "../src/main.vala"
				_g_free0 (_tmp191_);
#line 1776 "../src/main.vala"
				return result;
#line 21125 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label22) ? _tmp4_label22 : (_tmp4_label22 = g_quark_from_static_string ("empty")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 21131 "main.c"
			default:
			{
				gchar* _tmp194_ = NULL;
				gchar* _tmp195_;
				gchar* _tmp196_;
				gchar* _tmp197_;
				gchar* _tmp198_;
				gchar* _tmp199_;
#line 1778 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "empty");
#line 1779 "../src/main.vala"
				_tmp195_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1779 "../src/main.vala"
				_tmp194_ = _tmp195_;
#line 1779 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1779 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1779 "../src/main.vala"
					return NULL;
#line 21152 "main.c"
				}
#line 1779 "../src/main.vala"
				_tmp196_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1779 "../src/main.vala"
				_tmp197_ = _tmp196_;
#line 1779 "../src/main.vala"
				_tmp198_ = g_strdup_printf ("Php.empty_value_zval (%s%s)", _tmp194_, _tmp197_);
#line 1779 "../src/main.vala"
				_tmp199_ = _tmp198_;
#line 1779 "../src/main.vala"
				_g_free0 (_tmp197_);
#line 1779 "../src/main.vala"
				result = _tmp199_;
#line 1779 "../src/main.vala"
				_g_free0 (_tmp194_);
#line 1779 "../src/main.vala"
				return result;
#line 21170 "main.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label23) ? _tmp4_label23 : (_tmp4_label23 = g_quark_from_static_string ("class_exists")))) {
#line 1689 "../src/main.vala"
		switch (0) {
#line 21176 "main.c"
			default:
			{
				gchar* converted_class_args = NULL;
				gchar* _tmp200_;
				GeeArrayList* _tmp201_;
				GeeArrayList* _tmp202_;
				gint _tmp203_;
				gint _tmp204_;
				gboolean _tmp205_;
				gchar* _tmp208_ = NULL;
				const gchar* _tmp209_;
				gchar* _tmp210_;
				gchar* _tmp211_;
#line 1781 "../src/main.vala"
				_tmp200_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1781 "../src/main.vala"
				converted_class_args = _tmp200_;
#line 1781 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1781 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1781 "../src/main.vala"
					return NULL;
#line 21200 "main.c"
				}
#line 1782 "../src/main.vala"
				_tmp201_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1782 "../src/main.vala"
				_tmp202_ = _tmp201_;
#line 1782 "../src/main.vala"
				_tmp203_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp202_);
#line 1782 "../src/main.vala"
				_tmp204_ = _tmp203_;
#line 1782 "../src/main.vala"
				_tmp205_ = _tmp204_ == 1;
#line 1782 "../src/main.vala"
				_g_object_unref0 (_tmp202_);
#line 1782 "../src/main.vala"
				if (_tmp205_) {
#line 21216 "main.c"
					const gchar* _tmp206_;
					gchar* _tmp207_;
#line 1783 "../src/main.vala"
					_tmp206_ = converted_class_args;
#line 1783 "../src/main.vala"
					_tmp207_ = g_strconcat (_tmp206_, ", Php.zval.boolean (true)", NULL);
#line 1783 "../src/main.vala"
					_g_free0 (converted_class_args);
#line 1783 "../src/main.vala"
					converted_class_args = _tmp207_;
#line 21227 "main.c"
				}
#line 1785 "../src/main.vala"
				_tmp209_ = converted_class_args;
#line 1785 "../src/main.vala"
				_tmp210_ = php_to_vala_transpiler_embed_generated_zval_call (self, "class_exists", _tmp209_, php_line_number, &_inner_error0_);
#line 1785 "../src/main.vala"
				_tmp208_ = _tmp210_;
#line 1785 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1785 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1785 "../src/main.vala"
					_g_free0 (converted_class_args);
#line 1785 "../src/main.vala"
					return NULL;
#line 21243 "main.c"
				}
#line 1785 "../src/main.vala"
				_tmp211_ = _tmp208_;
#line 1785 "../src/main.vala"
				_tmp208_ = NULL;
#line 1785 "../src/main.vala"
				result = _tmp211_;
#line 1785 "../src/main.vala"
				_g_free0 (_tmp208_);
#line 1785 "../src/main.vala"
				_g_free0 (converted_class_args);
#line 1785 "../src/main.vala"
				return result;
#line 21257 "main.c"
			}
		}
	}
#line 1787 "../src/main.vala"
	_tmp212_ = g_strconcat (function_name, "_zval", NULL);
#line 1787 "../src/main.vala"
	runtime_function_name = _tmp212_;
#line 1788 "../src/main.vala"
	_tmp213_ = runtime_function_name;
#line 1788 "../src/main.vala"
	_tmp214_ = php_to_vala_transpiler_resolve_zval_runtime_binding (self, function_name, _tmp213_);
#line 1788 "../src/main.vala"
	binding = _tmp214_;
#line 1789 "../src/main.vala"
	_tmp215_ = binding;
#line 1789 "../src/main.vala"
	if (_tmp215_ != NULL) {
#line 21275 "main.c"
		const gchar* _tmp216_;
		gchar* converted_args = NULL;
		gchar* _tmp217_;
		gchar* _tmp218_ = NULL;
		const gchar* _tmp219_;
		FunctionBinding* _tmp223_;
		const gchar* _tmp224_;
		gchar* _tmp225_;
		gchar* _tmp226_;
		gchar* _tmp227_;
		gchar* _tmp228_;
		gchar* _tmp229_;
		gchar* _tmp230_;
		gchar* _tmp231_;
		gchar* _tmp232_;
#line 1790 "../src/main.vala"
		_tmp216_ = runtime_function_name;
#line 1790 "../src/main.vala"
		php_to_vala_transpiler_mark_function_used (self, _tmp216_);
#line 1791 "../src/main.vala"
		_tmp217_ = php_to_vala_transpiler_convert_zval_argument_list (self, args, php_line_number, &_inner_error0_);
#line 1791 "../src/main.vala"
		converted_args = _tmp217_;
#line 1791 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1791 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 1791 "../src/main.vala"
			_g_object_unref0 (binding);
#line 1791 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 1791 "../src/main.vala"
			return NULL;
#line 21309 "main.c"
		}
#line 1795 "../src/main.vala"
		_tmp219_ = converted_args;
#line 1795 "../src/main.vala"
		if (g_strcmp0 (_tmp219_, "") == 0) {
#line 21315 "main.c"
			gchar* _tmp220_;
#line 1795 "../src/main.vala"
			_tmp220_ = g_strdup ("");
#line 1795 "../src/main.vala"
			_g_free0 (_tmp218_);
#line 1795 "../src/main.vala"
			_tmp218_ = _tmp220_;
#line 21323 "main.c"
		} else {
			const gchar* _tmp221_;
			gchar* _tmp222_;
#line 1795 "../src/main.vala"
			_tmp221_ = converted_args;
#line 1795 "../src/main.vala"
			_tmp222_ = g_strconcat (", ", _tmp221_, NULL);
#line 1795 "../src/main.vala"
			_g_free0 (_tmp218_);
#line 1795 "../src/main.vala"
			_tmp218_ = _tmp222_;
#line 21335 "main.c"
		}
#line 1792 "../src/main.vala"
		_tmp223_ = binding;
#line 1792 "../src/main.vala"
		_tmp224_ = runtime_function_name;
#line 1792 "../src/main.vala"
		_tmp225_ = function_binding_call_name (_tmp223_, _tmp224_);
#line 1792 "../src/main.vala"
		_tmp226_ = _tmp225_;
#line 1792 "../src/main.vala"
		_tmp227_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1792 "../src/main.vala"
		_tmp228_ = _tmp227_;
#line 1792 "../src/main.vala"
		_tmp229_ = string_substring (_tmp228_, (glong) 2, (glong) -1);
#line 1792 "../src/main.vala"
		_tmp230_ = _tmp229_;
#line 1792 "../src/main.vala"
		_tmp231_ = g_strdup_printf ("%s (%s%s)", _tmp226_, _tmp230_, _tmp218_);
#line 1792 "../src/main.vala"
		_tmp232_ = _tmp231_;
#line 1792 "../src/main.vala"
		_g_free0 (_tmp230_);
#line 1792 "../src/main.vala"
		_g_free0 (_tmp228_);
#line 1792 "../src/main.vala"
		_g_free0 (_tmp226_);
#line 1792 "../src/main.vala"
		result = _tmp232_;
#line 1792 "../src/main.vala"
		_g_free0 (_tmp218_);
#line 1792 "../src/main.vala"
		_g_free0 (converted_args);
#line 1792 "../src/main.vala"
		_g_object_unref0 (binding);
#line 1792 "../src/main.vala"
		_g_free0 (runtime_function_name);
#line 1792 "../src/main.vala"
		return result;
#line 21375 "main.c"
	}
#line 1798 "../src/main.vala"
	_tmp233_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 1798 "../src/main.vala"
	_inner_error0_ = _tmp233_;
#line 1798 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 1798 "../src/main.vala"
	_g_object_unref0 (binding);
#line 1798 "../src/main.vala"
	_g_free0 (runtime_function_name);
#line 1798 "../src/main.vala"
	return NULL;
#line 21389 "main.c"
}

static gchar*
php_to_vala_transpiler_embed_generated_zval_call (PhpToValaTranspiler* self,
                                                  const gchar* function_name,
                                                  const gchar* converted_args,
                                                  gint php_line_number,
                                                  GError** error)
{
	gchar* runtime_function_name = NULL;
	gchar* _tmp0_;
	FunctionBinding* binding = NULL;
	const gchar* _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* _tmp3_;
	const gchar* _tmp5_;
	gchar* _tmp6_ = NULL;
	FunctionBinding* _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1801 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1801 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 1801 "../src/main.vala"
	g_return_val_if_fail (converted_args != NULL, NULL);
#line 1802 "../src/main.vala"
	_tmp0_ = g_strconcat (function_name, "_zval", NULL);
#line 1802 "../src/main.vala"
	runtime_function_name = _tmp0_;
#line 1803 "../src/main.vala"
	_tmp1_ = runtime_function_name;
#line 1803 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_resolve_zval_runtime_binding (self, function_name, _tmp1_);
#line 1803 "../src/main.vala"
	binding = _tmp2_;
#line 1804 "../src/main.vala"
	_tmp3_ = binding;
#line 1804 "../src/main.vala"
	if (_tmp3_ == NULL) {
#line 21439 "main.c"
		GError* _tmp4_;
#line 1805 "../src/main.vala"
		_tmp4_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 1805 "../src/main.vala"
		_inner_error0_ = _tmp4_;
#line 1805 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 1805 "../src/main.vala"
		_g_object_unref0 (binding);
#line 1805 "../src/main.vala"
		_g_free0 (runtime_function_name);
#line 1805 "../src/main.vala"
		return NULL;
#line 21453 "main.c"
	}
#line 1807 "../src/main.vala"
	_tmp5_ = runtime_function_name;
#line 1807 "../src/main.vala"
	php_to_vala_transpiler_mark_function_used (self, _tmp5_);
#line 1811 "../src/main.vala"
	if (g_strcmp0 (converted_args, "") == 0) {
#line 21461 "main.c"
		gchar* _tmp7_;
#line 1811 "../src/main.vala"
		_tmp7_ = g_strdup ("");
#line 1811 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 1811 "../src/main.vala"
		_tmp6_ = _tmp7_;
#line 21469 "main.c"
	} else {
		gchar* _tmp8_;
#line 1811 "../src/main.vala"
		_tmp8_ = g_strconcat (", ", converted_args, NULL);
#line 1811 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 1811 "../src/main.vala"
		_tmp6_ = _tmp8_;
#line 21478 "main.c"
	}
#line 1808 "../src/main.vala"
	_tmp9_ = binding;
#line 1808 "../src/main.vala"
	_tmp10_ = runtime_function_name;
#line 1808 "../src/main.vala"
	_tmp11_ = function_binding_call_name (_tmp9_, _tmp10_);
#line 1808 "../src/main.vala"
	_tmp12_ = _tmp11_;
#line 1808 "../src/main.vala"
	_tmp13_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1808 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 1808 "../src/main.vala"
	_tmp15_ = string_substring (_tmp14_, (glong) 2, (glong) -1);
#line 1808 "../src/main.vala"
	_tmp16_ = _tmp15_;
#line 1808 "../src/main.vala"
	_tmp17_ = g_strdup_printf ("%s (%s%s)", _tmp12_, _tmp16_, _tmp6_);
#line 1808 "../src/main.vala"
	_tmp18_ = _tmp17_;
#line 1808 "../src/main.vala"
	_g_free0 (_tmp16_);
#line 1808 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 1808 "../src/main.vala"
	_g_free0 (_tmp12_);
#line 1808 "../src/main.vala"
	result = _tmp18_;
#line 1808 "../src/main.vala"
	_g_free0 (_tmp6_);
#line 1808 "../src/main.vala"
	_g_object_unref0 (binding);
#line 1808 "../src/main.vala"
	_g_free0 (runtime_function_name);
#line 1808 "../src/main.vala"
	return result;
#line 21516 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_function_call_via_static_embed (PhpToValaTranspiler* self,
                                                                    const gchar* function_name,
                                                                    const gchar* args,
                                                                    gint php_line_number,
                                                                    GError** error)
{
	gchar* loc = NULL;
	gchar* _tmp0_;
	GeeArrayList* raw_args = NULL;
	GeeArrayList* _tmp1_;
	GeeArrayList* zargs = NULL;
	GeeArrayList* _tmp2_;
	const gchar* _tmp18_;
	GQuark _tmp20_ = 0U;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label0 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label1 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label2 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label3 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label4 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label5 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label6 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label7 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label8 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label9 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label10 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label11 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label12 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label13 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label14 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label15 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label16 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label17 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label18 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label19 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label20 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label21 = 0;
#line 1829 "../src/main.vala"
	static GQuark _tmp19_label22 = 0;
#line 21580 "main.c"
	const gchar* _tmp21_;
	GQuark _tmp23_ = 0U;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label0 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label1 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label2 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label3 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label4 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label5 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label6 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label7 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label8 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label9 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label10 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label11 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label12 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label13 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label14 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label15 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label16 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label17 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label18 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label19 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label20 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label21 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label22 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label23 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label24 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label25 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label26 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label27 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label28 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label29 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label30 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label31 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label32 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label33 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label34 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label35 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label36 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label37 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label38 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label39 = 0;
#line 1856 "../src/main.vala"
	static GQuark _tmp22_label40 = 0;
#line 21665 "main.c"
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 1815 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1815 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 1815 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 1816 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 1816 "../src/main.vala"
	loc = _tmp0_;
#line 1817 "../src/main.vala"
	_tmp1_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 1817 "../src/main.vala"
	raw_args = _tmp1_;
#line 1818 "../src/main.vala"
	_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 1818 "../src/main.vala"
	zargs = _tmp2_;
#line 21686 "main.c"
	{
		GeeArrayList* _raw_arg_list = NULL;
		GeeArrayList* _tmp3_;
		gint _raw_arg_size = 0;
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _raw_arg_index = 0;
#line 1819 "../src/main.vala"
		_tmp3_ = raw_args;
#line 1819 "../src/main.vala"
		_raw_arg_list = _tmp3_;
#line 1819 "../src/main.vala"
		_tmp4_ = _raw_arg_list;
#line 1819 "../src/main.vala"
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
#line 1819 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 1819 "../src/main.vala"
		_raw_arg_size = _tmp6_;
#line 1819 "../src/main.vala"
		_raw_arg_index = -1;
#line 1819 "../src/main.vala"
		while (TRUE) {
#line 21711 "main.c"
			gint _tmp7_;
			gint _tmp8_;
			gchar* raw_arg = NULL;
			GeeArrayList* _tmp9_;
			gpointer _tmp10_;
			gchar* clean_arg = NULL;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			const gchar* _tmp13_;
#line 1819 "../src/main.vala"
			_raw_arg_index = _raw_arg_index + 1;
#line 1819 "../src/main.vala"
			_tmp7_ = _raw_arg_index;
#line 1819 "../src/main.vala"
			_tmp8_ = _raw_arg_size;
#line 1819 "../src/main.vala"
			if (!(_tmp7_ < _tmp8_)) {
#line 1819 "../src/main.vala"
				break;
#line 21731 "main.c"
			}
#line 1819 "../src/main.vala"
			_tmp9_ = _raw_arg_list;
#line 1819 "../src/main.vala"
			_tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _raw_arg_index);
#line 1819 "../src/main.vala"
			raw_arg = (gchar*) _tmp10_;
#line 1820 "../src/main.vala"
			_tmp11_ = raw_arg;
#line 1820 "../src/main.vala"
			_tmp12_ = string_strip (_tmp11_);
#line 1820 "../src/main.vala"
			clean_arg = _tmp12_;
#line 1821 "../src/main.vala"
			_tmp13_ = clean_arg;
#line 1821 "../src/main.vala"
			if (g_strcmp0 (_tmp13_, "") != 0) {
#line 21749 "main.c"
				gchar* _tmp14_ = NULL;
				const gchar* _tmp15_;
				gchar* _tmp16_;
				GeeArrayList* _tmp17_;
#line 1822 "../src/main.vala"
				_tmp15_ = clean_arg;
#line 1822 "../src/main.vala"
				_tmp16_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp15_, php_line_number, &_inner_error0_);
#line 1822 "../src/main.vala"
				_tmp14_ = _tmp16_;
#line 1822 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1822 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1822 "../src/main.vala"
					_g_free0 (clean_arg);
#line 1822 "../src/main.vala"
					_g_free0 (raw_arg);
#line 1822 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1822 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1822 "../src/main.vala"
					_g_free0 (loc);
#line 1822 "../src/main.vala"
					return NULL;
#line 21776 "main.c"
				}
#line 1822 "../src/main.vala"
				_tmp17_ = zargs;
#line 1822 "../src/main.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, _tmp14_);
#line 1821 "../src/main.vala"
				_g_free0 (_tmp14_);
#line 21784 "main.c"
			}
#line 1819 "../src/main.vala"
			_g_free0 (clean_arg);
#line 1819 "../src/main.vala"
			_g_free0 (raw_arg);
#line 21790 "main.c"
		}
	}
#line 1829 "../src/main.vala"
	_tmp18_ = function_name;
#line 1829 "../src/main.vala"
	_tmp20_ = (NULL == _tmp18_) ? 0 : g_quark_from_string (_tmp18_);
#line 1829 "../src/main.vala"
	if (((((((((((((((((((((((_tmp20_ == ((0 != _tmp19_label0) ? _tmp19_label0 : (_tmp19_label0 = g_quark_from_static_string ("json_encode")))) || (_tmp20_ == ((0 != _tmp19_label1) ? _tmp19_label1 : (_tmp19_label1 = g_quark_from_static_string ("serialize"))))) || (_tmp20_ == ((0 != _tmp19_label2) ? _tmp19_label2 : (_tmp19_label2 = g_quark_from_static_string ("print_r"))))) || (_tmp20_ == ((0 != _tmp19_label3) ? _tmp19_label3 : (_tmp19_label3 = g_quark_from_static_string ("var_dump"))))) || (_tmp20_ == ((0 != _tmp19_label4) ? _tmp19_label4 : (_tmp19_label4 = g_quark_from_static_string ("var_export"))))) || (_tmp20_ == ((0 != _tmp19_label5) ? _tmp19_label5 : (_tmp19_label5 = g_quark_from_static_string ("count"))))) || (_tmp20_ == ((0 != _tmp19_label6) ? _tmp19_label6 : (_tmp19_label6 = g_quark_from_static_string ("is_array"))))) || (_tmp20_ == ((0 != _tmp19_label7) ? _tmp19_label7 : (_tmp19_label7 = g_quark_from_static_string ("is_object"))))) || (_tmp20_ == ((0 != _tmp19_label8) ? _tmp19_label8 : (_tmp19_label8 = g_quark_from_static_string ("is_null"))))) || (_tmp20_ == ((0 != _tmp19_label9) ? _tmp19_label9 : (_tmp19_label9 = g_quark_from_static_string ("is_string"))))) || (_tmp20_ == ((0 != _tmp19_label10) ? _tmp19_label10 : (_tmp19_label10 = g_quark_from_static_string ("is_int"))))) || (_tmp20_ == ((0 != _tmp19_label11) ? _tmp19_label11 : (_tmp19_label11 = g_quark_from_static_string ("is_integer"))))) || (_tmp20_ == ((0 != _tmp19_label12) ? _tmp19_label12 : (_tmp19_label12 = g_quark_from_static_string ("is_long"))))) || (_tmp20_ == ((0 != _tmp19_label13) ? _tmp19_label13 : (_tmp19_label13 = g_quark_from_static_string ("is_float"))))) || (_tmp20_ == ((0 != _tmp19_label14) ? _tmp19_label14 : (_tmp19_label14 = g_quark_from_static_string ("is_double"))))) || (_tmp20_ == ((0 != _tmp19_label15) ? _tmp19_label15 : (_tmp19_label15 = g_quark_from_static_string ("is_real"))))) || (_tmp20_ == ((0 != _tmp19_label16) ? _tmp19_label16 : (_tmp19_label16 = g_quark_from_static_string ("is_bool"))))) || (_tmp20_ == ((0 != _tmp19_label17) ? _tmp19_label17 : (_tmp19_label17 = g_quark_from_static_string ("is_numeric"))))) || (_tmp20_ == ((0 != _tmp19_label18) ? _tmp19_label18 : (_tmp19_label18 = g_quark_from_static_string ("gettype"))))) || (_tmp20_ == ((0 != _tmp19_label19) ? _tmp19_label19 : (_tmp19_label19 = g_quark_from_static_string ("explode"))))) || (_tmp20_ == ((0 != _tmp19_label20) ? _tmp19_label20 : (_tmp19_label20 = g_quark_from_static_string ("strval"))))) || (_tmp20_ == ((0 != _tmp19_label21) ? _tmp19_label21 : (_tmp19_label21 = g_quark_from_static_string ("intval"))))) || (_tmp20_ == ((0 != _tmp19_label22) ? _tmp19_label22 : (_tmp19_label22 = g_quark_from_static_string ("boolval"))))) {
#line 1829 "../src/main.vala"
		switch (0) {
#line 21801 "main.c"
			default:
			{
#line 1853 "../src/main.vala"
				result = NULL;
#line 1853 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1853 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1853 "../src/main.vala"
				_g_free0 (loc);
#line 1853 "../src/main.vala"
				return result;
#line 21814 "main.c"
			}
		}
	}
#line 1856 "../src/main.vala"
	_tmp21_ = function_name;
#line 1856 "../src/main.vala"
	_tmp23_ = (NULL == _tmp21_) ? 0 : g_quark_from_string (_tmp21_);
#line 1856 "../src/main.vala"
	if (((_tmp23_ == ((0 != _tmp22_label0) ? _tmp22_label0 : (_tmp22_label0 = g_quark_from_static_string ("shell_exec")))) || (_tmp23_ == ((0 != _tmp22_label1) ? _tmp22_label1 : (_tmp22_label1 = g_quark_from_static_string ("exec"))))) || (_tmp23_ == ((0 != _tmp22_label2) ? _tmp22_label2 : (_tmp22_label2 = g_quark_from_static_string ("file_get_contents"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 21826 "main.c"
			default:
			{
				GeeArrayList* _tmp24_;
				gint _tmp25_;
				gint _tmp26_;
				gchar* static_name_string = NULL;
				gchar* _tmp27_;
				const gchar* _tmp28_;
				const gchar* _tmp29_;
				GeeArrayList* _tmp30_;
				gpointer _tmp31_;
				gchar* _tmp32_;
				const gchar* _tmp33_;
				gchar* _tmp34_;
				gchar* _tmp35_;
#line 1860 "../src/main.vala"
				_tmp24_ = zargs;
#line 1860 "../src/main.vala"
				_tmp25_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp24_);
#line 1860 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 1860 "../src/main.vala"
				if (_tmp26_ != 1) {
#line 1861 "../src/main.vala"
					result = NULL;
#line 1861 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1861 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1861 "../src/main.vala"
					_g_free0 (loc);
#line 1861 "../src/main.vala"
					return result;
#line 21860 "main.c"
				}
#line 1863 "../src/main.vala"
				_tmp27_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1863 "../src/main.vala"
				static_name_string = _tmp27_;
#line 1864 "../src/main.vala"
				_tmp28_ = static_name_string;
#line 1864 "../src/main.vala"
				if (_tmp28_ == NULL) {
#line 1865 "../src/main.vala"
					result = NULL;
#line 1865 "../src/main.vala"
					_g_free0 (static_name_string);
#line 1865 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1865 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1865 "../src/main.vala"
					_g_free0 (loc);
#line 1865 "../src/main.vala"
					return result;
#line 21882 "main.c"
				}
#line 1867 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1868 "../src/main.vala"
				_tmp29_ = static_name_string;
#line 1868 "../src/main.vala"
				_tmp30_ = zargs;
#line 1868 "../src/main.vala"
				_tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp30_, 0);
#line 1868 "../src/main.vala"
				_tmp32_ = (gchar*) _tmp31_;
#line 1868 "../src/main.vala"
				_tmp33_ = loc;
#line 1868 "../src/main.vala"
				_tmp34_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_string (%s)%s))", _tmp29_, _tmp32_, _tmp33_);
#line 1868 "../src/main.vala"
				_tmp35_ = _tmp34_;
#line 1868 "../src/main.vala"
				_g_free0 (_tmp32_);
#line 1868 "../src/main.vala"
				result = _tmp35_;
#line 1868 "../src/main.vala"
				_g_free0 (static_name_string);
#line 1868 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1868 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1868 "../src/main.vala"
				_g_free0 (loc);
#line 1868 "../src/main.vala"
				return result;
#line 21914 "main.c"
			}
		}
	} else if ((((_tmp23_ == ((0 != _tmp22_label3) ? _tmp22_label3 : (_tmp22_label3 = g_quark_from_static_string ("trim")))) || (_tmp23_ == ((0 != _tmp22_label4) ? _tmp22_label4 : (_tmp22_label4 = g_quark_from_static_string ("ltrim"))))) || (_tmp23_ == ((0 != _tmp22_label5) ? _tmp22_label5 : (_tmp22_label5 = g_quark_from_static_string ("rtrim"))))) || (_tmp23_ == ((0 != _tmp22_label6) ? _tmp22_label6 : (_tmp22_label6 = g_quark_from_static_string ("strval"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 21920 "main.c"
			default:
			{
				GeeArrayList* _tmp36_;
				gint _tmp37_;
				gint _tmp38_;
				gchar* static_name_string_1 = NULL;
				gchar* _tmp39_;
				const gchar* _tmp40_;
				const gchar* _tmp41_;
				GeeArrayList* _tmp42_;
				gpointer _tmp43_;
				gchar* _tmp44_;
				const gchar* _tmp45_;
				gchar* _tmp46_;
				gchar* _tmp47_;
#line 1873 "../src/main.vala"
				_tmp36_ = zargs;
#line 1873 "../src/main.vala"
				_tmp37_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp36_);
#line 1873 "../src/main.vala"
				_tmp38_ = _tmp37_;
#line 1873 "../src/main.vala"
				if (_tmp38_ != 1) {
#line 1874 "../src/main.vala"
					result = NULL;
#line 1874 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1874 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1874 "../src/main.vala"
					_g_free0 (loc);
#line 1874 "../src/main.vala"
					return result;
#line 21954 "main.c"
				}
#line 1876 "../src/main.vala"
				_tmp39_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1876 "../src/main.vala"
				static_name_string_1 = _tmp39_;
#line 1877 "../src/main.vala"
				_tmp40_ = static_name_string_1;
#line 1877 "../src/main.vala"
				if (_tmp40_ == NULL) {
#line 1878 "../src/main.vala"
					result = NULL;
#line 1878 "../src/main.vala"
					_g_free0 (static_name_string_1);
#line 1878 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1878 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1878 "../src/main.vala"
					_g_free0 (loc);
#line 1878 "../src/main.vala"
					return result;
#line 21976 "main.c"
				}
#line 1880 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1881 "../src/main.vala"
				_tmp41_ = static_name_string_1;
#line 1881 "../src/main.vala"
				_tmp42_ = zargs;
#line 1881 "../src/main.vala"
				_tmp43_ = gee_abstract_list_get ((GeeAbstractList*) _tmp42_, 0);
#line 1881 "../src/main.vala"
				_tmp44_ = (gchar*) _tmp43_;
#line 1881 "../src/main.vala"
				_tmp45_ = loc;
#line 1881 "../src/main.vala"
				_tmp46_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_string (%s)%s))", _tmp41_, _tmp44_, _tmp45_);
#line 1881 "../src/main.vala"
				_tmp47_ = _tmp46_;
#line 1881 "../src/main.vala"
				_g_free0 (_tmp44_);
#line 1881 "../src/main.vala"
				result = _tmp47_;
#line 1881 "../src/main.vala"
				_g_free0 (static_name_string_1);
#line 1881 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1881 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1881 "../src/main.vala"
				_g_free0 (loc);
#line 1881 "../src/main.vala"
				return result;
#line 22008 "main.c"
			}
		}
	} else if ((_tmp23_ == ((0 != _tmp22_label7) ? _tmp22_label7 : (_tmp22_label7 = g_quark_from_static_string ("strlen")))) || (_tmp23_ == ((0 != _tmp22_label8) ? _tmp22_label8 : (_tmp22_label8 = g_quark_from_static_string ("intval"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22014 "main.c"
			default:
			{
				GeeArrayList* _tmp48_;
				gint _tmp49_;
				gint _tmp50_;
				gchar* static_name_int = NULL;
				gchar* _tmp51_;
				const gchar* _tmp52_;
				gchar* _tmp53_ = NULL;
				const gchar* _tmp60_;
				const gchar* _tmp61_;
				gchar* _tmp62_;
#line 1884 "../src/main.vala"
				_tmp48_ = zargs;
#line 1884 "../src/main.vala"
				_tmp49_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp48_);
#line 1884 "../src/main.vala"
				_tmp50_ = _tmp49_;
#line 1884 "../src/main.vala"
				if (_tmp50_ != 1) {
#line 1885 "../src/main.vala"
					result = NULL;
#line 1885 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1885 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1885 "../src/main.vala"
					_g_free0 (loc);
#line 1885 "../src/main.vala"
					return result;
#line 22045 "main.c"
				}
#line 1887 "../src/main.vala"
				_tmp51_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1887 "../src/main.vala"
				static_name_int = _tmp51_;
#line 1888 "../src/main.vala"
				_tmp52_ = static_name_int;
#line 1888 "../src/main.vala"
				if (_tmp52_ == NULL) {
#line 1889 "../src/main.vala"
					result = NULL;
#line 1889 "../src/main.vala"
					_g_free0 (static_name_int);
#line 1889 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1889 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1889 "../src/main.vala"
					_g_free0 (loc);
#line 1889 "../src/main.vala"
					return result;
#line 22067 "main.c"
				}
#line 1891 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1894 "../src/main.vala"
				if (g_strcmp0 (function_name, "strlen") == 0) {
#line 22073 "main.c"
					GeeArrayList* _tmp54_;
					gpointer _tmp55_;
					gchar* _tmp56_;
					gchar* _tmp57_;
#line 1894 "../src/main.vala"
					_tmp54_ = zargs;
#line 1894 "../src/main.vala"
					_tmp55_ = gee_abstract_list_get ((GeeAbstractList*) _tmp54_, 0);
#line 1894 "../src/main.vala"
					_tmp56_ = (gchar*) _tmp55_;
#line 1894 "../src/main.vala"
					_tmp57_ = g_strdup_printf ("Php.zval_to_string (%s)", _tmp56_);
#line 1894 "../src/main.vala"
					_g_free0 (_tmp53_);
#line 1894 "../src/main.vala"
					_tmp53_ = _tmp57_;
#line 1894 "../src/main.vala"
					_g_free0 (_tmp56_);
#line 22092 "main.c"
				} else {
					GeeArrayList* _tmp58_;
					gpointer _tmp59_;
#line 1894 "../src/main.vala"
					_tmp58_ = zargs;
#line 1894 "../src/main.vala"
					_tmp59_ = gee_abstract_list_get ((GeeAbstractList*) _tmp58_, 0);
#line 1894 "../src/main.vala"
					_g_free0 (_tmp53_);
#line 1894 "../src/main.vala"
					_tmp53_ = (gchar*) _tmp59_;
#line 22104 "main.c"
				}
#line 1892 "../src/main.vala"
				_tmp60_ = static_name_int;
#line 1892 "../src/main.vala"
				_tmp61_ = loc;
#line 1892 "../src/main.vala"
				_tmp62_ = g_strdup_printf ("Php.zval.integer (%s (%s%s))", _tmp60_, _tmp53_, _tmp61_);
#line 1892 "../src/main.vala"
				result = _tmp62_;
#line 1892 "../src/main.vala"
				_g_free0 (_tmp53_);
#line 1892 "../src/main.vala"
				_g_free0 (static_name_int);
#line 1892 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1892 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1892 "../src/main.vala"
				_g_free0 (loc);
#line 1892 "../src/main.vala"
				return result;
#line 22126 "main.c"
			}
		}
	} else if (((((((((((((_tmp23_ == ((0 != _tmp22_label9) ? _tmp22_label9 : (_tmp22_label9 = g_quark_from_static_string ("boolval")))) || (_tmp23_ == ((0 != _tmp22_label10) ? _tmp22_label10 : (_tmp22_label10 = g_quark_from_static_string ("is_array"))))) || (_tmp23_ == ((0 != _tmp22_label11) ? _tmp22_label11 : (_tmp22_label11 = g_quark_from_static_string ("is_object"))))) || (_tmp23_ == ((0 != _tmp22_label12) ? _tmp22_label12 : (_tmp22_label12 = g_quark_from_static_string ("is_null"))))) || (_tmp23_ == ((0 != _tmp22_label13) ? _tmp22_label13 : (_tmp22_label13 = g_quark_from_static_string ("is_string"))))) || (_tmp23_ == ((0 != _tmp22_label14) ? _tmp22_label14 : (_tmp22_label14 = g_quark_from_static_string ("is_int"))))) || (_tmp23_ == ((0 != _tmp22_label15) ? _tmp22_label15 : (_tmp22_label15 = g_quark_from_static_string ("is_integer"))))) || (_tmp23_ == ((0 != _tmp22_label16) ? _tmp22_label16 : (_tmp22_label16 = g_quark_from_static_string ("is_long"))))) || (_tmp23_ == ((0 != _tmp22_label17) ? _tmp22_label17 : (_tmp22_label17 = g_quark_from_static_string ("is_float"))))) || (_tmp23_ == ((0 != _tmp22_label18) ? _tmp22_label18 : (_tmp22_label18 = g_quark_from_static_string ("is_double"))))) || (_tmp23_ == ((0 != _tmp22_label19) ? _tmp22_label19 : (_tmp22_label19 = g_quark_from_static_string ("is_real"))))) || (_tmp23_ == ((0 != _tmp22_label20) ? _tmp22_label20 : (_tmp22_label20 = g_quark_from_static_string ("is_bool"))))) || (_tmp23_ == ((0 != _tmp22_label21) ? _tmp22_label21 : (_tmp22_label21 = g_quark_from_static_string ("is_numeric"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22132 "main.c"
			default:
			{
				GeeArrayList* _tmp63_;
				gint _tmp64_;
				gint _tmp65_;
				gchar* static_name_bool = NULL;
				gchar* _tmp66_;
				const gchar* _tmp67_;
				const gchar* _tmp68_;
				GeeArrayList* _tmp69_;
				gpointer _tmp70_;
				gchar* _tmp71_;
				const gchar* _tmp72_;
				gchar* _tmp73_;
				gchar* _tmp74_;
#line 1910 "../src/main.vala"
				_tmp63_ = zargs;
#line 1910 "../src/main.vala"
				_tmp64_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp63_);
#line 1910 "../src/main.vala"
				_tmp65_ = _tmp64_;
#line 1910 "../src/main.vala"
				if (_tmp65_ != 1) {
#line 1911 "../src/main.vala"
					result = NULL;
#line 1911 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1911 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1911 "../src/main.vala"
					_g_free0 (loc);
#line 1911 "../src/main.vala"
					return result;
#line 22166 "main.c"
				}
#line 1913 "../src/main.vala"
				_tmp66_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1913 "../src/main.vala"
				static_name_bool = _tmp66_;
#line 1914 "../src/main.vala"
				_tmp67_ = static_name_bool;
#line 1914 "../src/main.vala"
				if (_tmp67_ == NULL) {
#line 1915 "../src/main.vala"
					result = NULL;
#line 1915 "../src/main.vala"
					_g_free0 (static_name_bool);
#line 1915 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1915 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1915 "../src/main.vala"
					_g_free0 (loc);
#line 1915 "../src/main.vala"
					return result;
#line 22188 "main.c"
				}
#line 1917 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1918 "../src/main.vala"
				_tmp68_ = static_name_bool;
#line 1918 "../src/main.vala"
				_tmp69_ = zargs;
#line 1918 "../src/main.vala"
				_tmp70_ = gee_abstract_list_get ((GeeAbstractList*) _tmp69_, 0);
#line 1918 "../src/main.vala"
				_tmp71_ = (gchar*) _tmp70_;
#line 1918 "../src/main.vala"
				_tmp72_ = loc;
#line 1918 "../src/main.vala"
				_tmp73_ = g_strdup_printf ("Php.zval.boolean (%s (%s%s))", _tmp68_, _tmp71_, _tmp72_);
#line 1918 "../src/main.vala"
				_tmp74_ = _tmp73_;
#line 1918 "../src/main.vala"
				_g_free0 (_tmp71_);
#line 1918 "../src/main.vala"
				result = _tmp74_;
#line 1918 "../src/main.vala"
				_g_free0 (static_name_bool);
#line 1918 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1918 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1918 "../src/main.vala"
				_g_free0 (loc);
#line 1918 "../src/main.vala"
				return result;
#line 22220 "main.c"
			}
		}
	} else if (((_tmp23_ == ((0 != _tmp22_label22) ? _tmp22_label22 : (_tmp22_label22 = g_quark_from_static_string ("gettype")))) || (_tmp23_ == ((0 != _tmp22_label23) ? _tmp22_label23 : (_tmp22_label23 = g_quark_from_static_string ("json_encode"))))) || (_tmp23_ == ((0 != _tmp22_label24) ? _tmp22_label24 : (_tmp22_label24 = g_quark_from_static_string ("serialize"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22226 "main.c"
			default:
			{
				GeeArrayList* _tmp75_;
				gint _tmp76_;
				gint _tmp77_;
				gchar* static_name_mixed = NULL;
				gchar* _tmp78_;
				const gchar* _tmp79_;
				const gchar* _tmp80_;
				GeeArrayList* _tmp81_;
				gpointer _tmp82_;
				gchar* _tmp83_;
				const gchar* _tmp84_;
				gchar* _tmp85_;
				gchar* _tmp86_;
#line 1922 "../src/main.vala"
				_tmp75_ = zargs;
#line 1922 "../src/main.vala"
				_tmp76_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp75_);
#line 1922 "../src/main.vala"
				_tmp77_ = _tmp76_;
#line 1922 "../src/main.vala"
				if (_tmp77_ != 1) {
#line 1923 "../src/main.vala"
					result = NULL;
#line 1923 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1923 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1923 "../src/main.vala"
					_g_free0 (loc);
#line 1923 "../src/main.vala"
					return result;
#line 22260 "main.c"
				}
#line 1925 "../src/main.vala"
				_tmp78_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1925 "../src/main.vala"
				static_name_mixed = _tmp78_;
#line 1926 "../src/main.vala"
				_tmp79_ = static_name_mixed;
#line 1926 "../src/main.vala"
				if (_tmp79_ == NULL) {
#line 1927 "../src/main.vala"
					result = NULL;
#line 1927 "../src/main.vala"
					_g_free0 (static_name_mixed);
#line 1927 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1927 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1927 "../src/main.vala"
					_g_free0 (loc);
#line 1927 "../src/main.vala"
					return result;
#line 22282 "main.c"
				}
#line 1929 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1930 "../src/main.vala"
				_tmp80_ = static_name_mixed;
#line 1930 "../src/main.vala"
				_tmp81_ = zargs;
#line 1930 "../src/main.vala"
				_tmp82_ = gee_abstract_list_get ((GeeAbstractList*) _tmp81_, 0);
#line 1930 "../src/main.vala"
				_tmp83_ = (gchar*) _tmp82_;
#line 1930 "../src/main.vala"
				_tmp84_ = loc;
#line 1930 "../src/main.vala"
				_tmp85_ = g_strdup_printf ("Php.zval.string_value (%s (%s%s))", _tmp80_, _tmp83_, _tmp84_);
#line 1930 "../src/main.vala"
				_tmp86_ = _tmp85_;
#line 1930 "../src/main.vala"
				_g_free0 (_tmp83_);
#line 1930 "../src/main.vala"
				result = _tmp86_;
#line 1930 "../src/main.vala"
				_g_free0 (static_name_mixed);
#line 1930 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1930 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1930 "../src/main.vala"
				_g_free0 (loc);
#line 1930 "../src/main.vala"
				return result;
#line 22314 "main.c"
			}
		}
	} else if ((_tmp23_ == ((0 != _tmp22_label25) ? _tmp22_label25 : (_tmp22_label25 = g_quark_from_static_string ("json_last_error_msg")))) || (_tmp23_ == ((0 != _tmp22_label26) ? _tmp22_label26 : (_tmp22_label26 = g_quark_from_static_string ("phpinfo"))))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22320 "main.c"
			default:
			{
				GeeArrayList* _tmp87_;
				gint _tmp88_;
				gint _tmp89_;
				gchar* static_name_no_args = NULL;
				gchar* _tmp90_;
				const gchar* _tmp91_;
				const gchar* _tmp92_;
				const gchar* _tmp93_;
				gchar* _tmp94_;
				gchar* _tmp95_;
				gchar* _tmp96_;
				gchar* _tmp97_;
#line 1933 "../src/main.vala"
				_tmp87_ = zargs;
#line 1933 "../src/main.vala"
				_tmp88_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp87_);
#line 1933 "../src/main.vala"
				_tmp89_ = _tmp88_;
#line 1933 "../src/main.vala"
				if (_tmp89_ != 0) {
#line 1934 "../src/main.vala"
					result = NULL;
#line 1934 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1934 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1934 "../src/main.vala"
					_g_free0 (loc);
#line 1934 "../src/main.vala"
					return result;
#line 22353 "main.c"
				}
#line 1936 "../src/main.vala"
				_tmp90_ = php_to_vala_transpiler_resolve_static_call_name (self, function_name);
#line 1936 "../src/main.vala"
				static_name_no_args = _tmp90_;
#line 1937 "../src/main.vala"
				_tmp91_ = static_name_no_args;
#line 1937 "../src/main.vala"
				if (_tmp91_ == NULL) {
#line 1938 "../src/main.vala"
					result = NULL;
#line 1938 "../src/main.vala"
					_g_free0 (static_name_no_args);
#line 1938 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1938 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1938 "../src/main.vala"
					_g_free0 (loc);
#line 1938 "../src/main.vala"
					return result;
#line 22375 "main.c"
				}
#line 1940 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, function_name);
#line 1941 "../src/main.vala"
				_tmp92_ = static_name_no_args;
#line 1941 "../src/main.vala"
				_tmp93_ = loc;
#line 1941 "../src/main.vala"
				_tmp94_ = string_substring (_tmp93_, (glong) 2, (glong) -1);
#line 1941 "../src/main.vala"
				_tmp95_ = _tmp94_;
#line 1941 "../src/main.vala"
				_tmp96_ = g_strdup_printf ("Php.zval.string_value (%s (%s))", _tmp92_, _tmp95_);
#line 1941 "../src/main.vala"
				_tmp97_ = _tmp96_;
#line 1941 "../src/main.vala"
				_g_free0 (_tmp95_);
#line 1941 "../src/main.vala"
				result = _tmp97_;
#line 1941 "../src/main.vala"
				_g_free0 (static_name_no_args);
#line 1941 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1941 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1941 "../src/main.vala"
				_g_free0 (loc);
#line 1941 "../src/main.vala"
				return result;
#line 22405 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label27) ? _tmp22_label27 : (_tmp22_label27 = g_quark_from_static_string ("token_get_all")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22411 "main.c"
			default:
			{
				gboolean _tmp98_ = FALSE;
				GeeArrayList* _tmp99_;
				gint _tmp100_;
				gint _tmp101_;
				gchar* _tmp105_ = NULL;
				GeeArrayList* _tmp106_;
				gint _tmp107_;
				gint _tmp108_;
				gchar* token_parse = NULL;
				gchar* _tmp114_;
				const gchar* _tmp115_;
				gchar* _tmp116_;
				gchar* _tmp117_;
				GeeArrayList* _tmp118_;
				gpointer _tmp119_;
				gchar* _tmp120_;
				const gchar* _tmp121_;
				gchar* _tmp122_;
				gchar* _tmp123_;
#line 1943 "../src/main.vala"
				_tmp99_ = zargs;
#line 1943 "../src/main.vala"
				_tmp100_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp99_);
#line 1943 "../src/main.vala"
				_tmp101_ = _tmp100_;
#line 1943 "../src/main.vala"
				if (_tmp101_ < 1) {
#line 1943 "../src/main.vala"
					_tmp98_ = TRUE;
#line 22443 "main.c"
				} else {
					GeeArrayList* _tmp102_;
					gint _tmp103_;
					gint _tmp104_;
#line 1943 "../src/main.vala"
					_tmp102_ = zargs;
#line 1943 "../src/main.vala"
					_tmp103_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp102_);
#line 1943 "../src/main.vala"
					_tmp104_ = _tmp103_;
#line 1943 "../src/main.vala"
					_tmp98_ = _tmp104_ > 2;
#line 22456 "main.c"
				}
#line 1943 "../src/main.vala"
				if (_tmp98_) {
#line 1944 "../src/main.vala"
					result = NULL;
#line 1944 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1944 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1944 "../src/main.vala"
					_g_free0 (loc);
#line 1944 "../src/main.vala"
					return result;
#line 22470 "main.c"
				}
#line 1946 "../src/main.vala"
				php_to_vala_transpiler_note_embed_zval_fallback (self, "token_get_all", "token_get_all_zval");
#line 1947 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "token_get_all_zval");
#line 1948 "../src/main.vala"
				_tmp106_ = zargs;
#line 1948 "../src/main.vala"
				_tmp107_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp106_);
#line 1948 "../src/main.vala"
				_tmp108_ = _tmp107_;
#line 1948 "../src/main.vala"
				if (_tmp108_ == 2) {
#line 22484 "main.c"
					GeeArrayList* _tmp109_;
					gpointer _tmp110_;
					gchar* _tmp111_;
					gchar* _tmp112_;
#line 1948 "../src/main.vala"
					_tmp109_ = zargs;
#line 1948 "../src/main.vala"
					_tmp110_ = gee_abstract_list_get ((GeeAbstractList*) _tmp109_, 1);
#line 1948 "../src/main.vala"
					_tmp111_ = (gchar*) _tmp110_;
#line 1948 "../src/main.vala"
					_tmp112_ = g_strdup_printf ("Php.truthy (%s)", _tmp111_);
#line 1948 "../src/main.vala"
					_g_free0 (_tmp105_);
#line 1948 "../src/main.vala"
					_tmp105_ = _tmp112_;
#line 1948 "../src/main.vala"
					_g_free0 (_tmp111_);
#line 22503 "main.c"
				} else {
					gchar* _tmp113_;
#line 1948 "../src/main.vala"
					_tmp113_ = g_strdup ("false");
#line 1948 "../src/main.vala"
					_g_free0 (_tmp105_);
#line 1948 "../src/main.vala"
					_tmp105_ = _tmp113_;
#line 22512 "main.c"
				}
#line 1948 "../src/main.vala"
				_tmp114_ = _tmp105_;
#line 1948 "../src/main.vala"
				_tmp105_ = NULL;
#line 1948 "../src/main.vala"
				token_parse = _tmp114_;
#line 1949 "../src/main.vala"
				_tmp115_ = loc;
#line 1949 "../src/main.vala"
				_tmp116_ = string_substring (_tmp115_, (glong) 2, (glong) -1);
#line 1949 "../src/main.vala"
				_tmp117_ = _tmp116_;
#line 1949 "../src/main.vala"
				_tmp118_ = zargs;
#line 1949 "../src/main.vala"
				_tmp119_ = gee_abstract_list_get ((GeeAbstractList*) _tmp118_, 0);
#line 1949 "../src/main.vala"
				_tmp120_ = (gchar*) _tmp119_;
#line 1949 "../src/main.vala"
				_tmp121_ = token_parse;
#line 1949 "../src/main.vala"
				_tmp122_ = g_strdup_printf ("PhpEmbed.token_get_all_zval (%s, %s, Php.zval.boolean (%s))", _tmp117_, _tmp120_, _tmp121_);
#line 1949 "../src/main.vala"
				_tmp123_ = _tmp122_;
#line 1949 "../src/main.vala"
				_g_free0 (_tmp120_);
#line 1949 "../src/main.vala"
				_g_free0 (_tmp117_);
#line 1949 "../src/main.vala"
				result = _tmp123_;
#line 1949 "../src/main.vala"
				_g_free0 (token_parse);
#line 1949 "../src/main.vala"
				_g_free0 (_tmp105_);
#line 1949 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1949 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1949 "../src/main.vala"
				_g_free0 (loc);
#line 1949 "../src/main.vala"
				return result;
#line 22556 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label28) ? _tmp22_label28 : (_tmp22_label28 = g_quark_from_static_string ("token_name")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22562 "main.c"
			default:
			{
				GeeArrayList* _tmp124_;
				gint _tmp125_;
				gint _tmp126_;
				gchar* token_name_static = NULL;
				gchar* _tmp127_;
				const gchar* _tmp128_;
				const gchar* _tmp129_;
				GeeArrayList* _tmp130_;
				gpointer _tmp131_;
				gchar* _tmp132_;
				const gchar* _tmp133_;
				gchar* _tmp134_;
				gchar* _tmp135_;
#line 1951 "../src/main.vala"
				_tmp124_ = zargs;
#line 1951 "../src/main.vala"
				_tmp125_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp124_);
#line 1951 "../src/main.vala"
				_tmp126_ = _tmp125_;
#line 1951 "../src/main.vala"
				if (_tmp126_ != 1) {
#line 1952 "../src/main.vala"
					result = NULL;
#line 1952 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1952 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1952 "../src/main.vala"
					_g_free0 (loc);
#line 1952 "../src/main.vala"
					return result;
#line 22596 "main.c"
				}
#line 1954 "../src/main.vala"
				_tmp127_ = php_to_vala_transpiler_resolve_static_call_name (self, "token_name");
#line 1954 "../src/main.vala"
				token_name_static = _tmp127_;
#line 1955 "../src/main.vala"
				_tmp128_ = token_name_static;
#line 1955 "../src/main.vala"
				if (_tmp128_ == NULL) {
#line 1956 "../src/main.vala"
					result = NULL;
#line 1956 "../src/main.vala"
					_g_free0 (token_name_static);
#line 1956 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1956 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1956 "../src/main.vala"
					_g_free0 (loc);
#line 1956 "../src/main.vala"
					return result;
#line 22618 "main.c"
				}
#line 1958 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "token_name");
#line 1959 "../src/main.vala"
				_tmp129_ = token_name_static;
#line 1959 "../src/main.vala"
				_tmp130_ = zargs;
#line 1959 "../src/main.vala"
				_tmp131_ = gee_abstract_list_get ((GeeAbstractList*) _tmp130_, 0);
#line 1959 "../src/main.vala"
				_tmp132_ = (gchar*) _tmp131_;
#line 1959 "../src/main.vala"
				_tmp133_ = loc;
#line 1959 "../src/main.vala"
				_tmp134_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_int (%s)%s))", _tmp129_, _tmp132_, _tmp133_);
#line 1959 "../src/main.vala"
				_tmp135_ = _tmp134_;
#line 1959 "../src/main.vala"
				_g_free0 (_tmp132_);
#line 1959 "../src/main.vala"
				result = _tmp135_;
#line 1959 "../src/main.vala"
				_g_free0 (token_name_static);
#line 1959 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1959 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1959 "../src/main.vala"
				_g_free0 (loc);
#line 1959 "../src/main.vala"
				return result;
#line 22650 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label29) ? _tmp22_label29 : (_tmp22_label29 = g_quark_from_static_string ("round")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22656 "main.c"
			default:
			{
				gboolean _tmp136_ = FALSE;
				GeeArrayList* _tmp137_;
				gint _tmp138_;
				gint _tmp139_;
				gchar* round_name = NULL;
				gchar* _tmp143_;
				gchar* _tmp144_ = NULL;
				GeeArrayList* _tmp145_;
				gint _tmp146_;
				gint _tmp147_;
				gchar* precision = NULL;
				gchar* _tmp153_;
				const gchar* _tmp154_;
				GeeArrayList* _tmp155_;
				gpointer _tmp156_;
				gchar* _tmp157_;
				const gchar* _tmp158_;
				gchar* _tmp159_;
				gchar* _tmp160_;
				const gchar* _tmp161_;
				gchar* _tmp162_;
				gchar* _tmp163_;
#line 1961 "../src/main.vala"
				_tmp137_ = zargs;
#line 1961 "../src/main.vala"
				_tmp138_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp137_);
#line 1961 "../src/main.vala"
				_tmp139_ = _tmp138_;
#line 1961 "../src/main.vala"
				if (_tmp139_ < 1) {
#line 1961 "../src/main.vala"
					_tmp136_ = TRUE;
#line 22691 "main.c"
				} else {
					GeeArrayList* _tmp140_;
					gint _tmp141_;
					gint _tmp142_;
#line 1961 "../src/main.vala"
					_tmp140_ = zargs;
#line 1961 "../src/main.vala"
					_tmp141_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp140_);
#line 1961 "../src/main.vala"
					_tmp142_ = _tmp141_;
#line 1961 "../src/main.vala"
					_tmp136_ = _tmp142_ > 2;
#line 22704 "main.c"
				}
#line 1961 "../src/main.vala"
				if (_tmp136_) {
#line 1962 "../src/main.vala"
					result = NULL;
#line 1962 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1962 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1962 "../src/main.vala"
					_g_free0 (loc);
#line 1962 "../src/main.vala"
					return result;
#line 22718 "main.c"
				}
#line 1964 "../src/main.vala"
				_tmp143_ = php_to_vala_transpiler_map_php_function_name (self, "round", php_line_number, &_inner_error0_);
#line 1964 "../src/main.vala"
				round_name = _tmp143_;
#line 1964 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1964 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1964 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1964 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1964 "../src/main.vala"
					_g_free0 (loc);
#line 1964 "../src/main.vala"
					return NULL;
#line 22736 "main.c"
				}
#line 1965 "../src/main.vala"
				_tmp145_ = zargs;
#line 1965 "../src/main.vala"
				_tmp146_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp145_);
#line 1965 "../src/main.vala"
				_tmp147_ = _tmp146_;
#line 1965 "../src/main.vala"
				if (_tmp147_ >= 2) {
#line 22746 "main.c"
					GeeArrayList* _tmp148_;
					gpointer _tmp149_;
					gchar* _tmp150_;
					gchar* _tmp151_;
#line 1965 "../src/main.vala"
					_tmp148_ = zargs;
#line 1965 "../src/main.vala"
					_tmp149_ = gee_abstract_list_get ((GeeAbstractList*) _tmp148_, 1);
#line 1965 "../src/main.vala"
					_tmp150_ = (gchar*) _tmp149_;
#line 1965 "../src/main.vala"
					_tmp151_ = g_strdup_printf ("Php.zval_to_int (%s)", _tmp150_);
#line 1965 "../src/main.vala"
					_g_free0 (_tmp144_);
#line 1965 "../src/main.vala"
					_tmp144_ = _tmp151_;
#line 1965 "../src/main.vala"
					_g_free0 (_tmp150_);
#line 22765 "main.c"
				} else {
					gchar* _tmp152_;
#line 1965 "../src/main.vala"
					_tmp152_ = g_strdup ("0");
#line 1965 "../src/main.vala"
					_g_free0 (_tmp144_);
#line 1965 "../src/main.vala"
					_tmp144_ = _tmp152_;
#line 22774 "main.c"
				}
#line 1965 "../src/main.vala"
				_tmp153_ = _tmp144_;
#line 1965 "../src/main.vala"
				_tmp144_ = NULL;
#line 1965 "../src/main.vala"
				precision = _tmp153_;
#line 1966 "../src/main.vala"
				_tmp154_ = round_name;
#line 1966 "../src/main.vala"
				_tmp155_ = zargs;
#line 1966 "../src/main.vala"
				_tmp156_ = gee_abstract_list_get ((GeeAbstractList*) _tmp155_, 0);
#line 1966 "../src/main.vala"
				_tmp157_ = (gchar*) _tmp156_;
#line 1966 "../src/main.vala"
				_tmp158_ = precision;
#line 1966 "../src/main.vala"
				_tmp159_ = php_to_vala_transpiler_enum_prefix_for_function (self, "round");
#line 1966 "../src/main.vala"
				_tmp160_ = _tmp159_;
#line 1966 "../src/main.vala"
				_tmp161_ = loc;
#line 1966 "../src/main.vala"
				_tmp162_ = g_strdup_printf ("Php.zval.double_number (%s (Php.zval_to_double (%s), %s, %s.RoundMode." \
"HALF_UP%s))", _tmp154_, _tmp157_, _tmp158_, _tmp160_, _tmp161_);
#line 1966 "../src/main.vala"
				_tmp163_ = _tmp162_;
#line 1966 "../src/main.vala"
				_g_free0 (_tmp160_);
#line 1966 "../src/main.vala"
				_g_free0 (_tmp157_);
#line 1966 "../src/main.vala"
				result = _tmp163_;
#line 1966 "../src/main.vala"
				_g_free0 (precision);
#line 1966 "../src/main.vala"
				_g_free0 (_tmp144_);
#line 1966 "../src/main.vala"
				_g_free0 (round_name);
#line 1966 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1966 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1966 "../src/main.vala"
				_g_free0 (loc);
#line 1966 "../src/main.vala"
				return result;
#line 22822 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label30) ? _tmp22_label30 : (_tmp22_label30 = g_quark_from_static_string ("floor")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22828 "main.c"
			default:
			{
				GeeArrayList* _tmp164_;
				gint _tmp165_;
				gint _tmp166_;
				gchar* floor_name = NULL;
				gchar* _tmp167_;
				const gchar* _tmp168_;
				GeeArrayList* _tmp169_;
				gpointer _tmp170_;
				gchar* _tmp171_;
				const gchar* _tmp172_;
				gchar* _tmp173_;
				gchar* _tmp174_;
#line 1974 "../src/main.vala"
				_tmp164_ = zargs;
#line 1974 "../src/main.vala"
				_tmp165_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp164_);
#line 1974 "../src/main.vala"
				_tmp166_ = _tmp165_;
#line 1974 "../src/main.vala"
				if (_tmp166_ != 1) {
#line 1975 "../src/main.vala"
					result = NULL;
#line 1975 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1975 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1975 "../src/main.vala"
					_g_free0 (loc);
#line 1975 "../src/main.vala"
					return result;
#line 22861 "main.c"
				}
#line 1977 "../src/main.vala"
				_tmp167_ = php_to_vala_transpiler_map_php_function_name (self, "floor", php_line_number, &_inner_error0_);
#line 1977 "../src/main.vala"
				floor_name = _tmp167_;
#line 1977 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1977 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 1977 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1977 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1977 "../src/main.vala"
					_g_free0 (loc);
#line 1977 "../src/main.vala"
					return NULL;
#line 22879 "main.c"
				}
#line 1978 "../src/main.vala"
				_tmp168_ = floor_name;
#line 1978 "../src/main.vala"
				_tmp169_ = zargs;
#line 1978 "../src/main.vala"
				_tmp170_ = gee_abstract_list_get ((GeeAbstractList*) _tmp169_, 0);
#line 1978 "../src/main.vala"
				_tmp171_ = (gchar*) _tmp170_;
#line 1978 "../src/main.vala"
				_tmp172_ = loc;
#line 1978 "../src/main.vala"
				_tmp173_ = g_strdup_printf ("Php.zval.double_number (%s (Php.zval_to_double (%s)%s))", _tmp168_, _tmp171_, _tmp172_);
#line 1978 "../src/main.vala"
				_tmp174_ = _tmp173_;
#line 1978 "../src/main.vala"
				_g_free0 (_tmp171_);
#line 1978 "../src/main.vala"
				result = _tmp174_;
#line 1978 "../src/main.vala"
				_g_free0 (floor_name);
#line 1978 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1978 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1978 "../src/main.vala"
				_g_free0 (loc);
#line 1978 "../src/main.vala"
				return result;
#line 22909 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label31) ? _tmp22_label31 : (_tmp22_label31 = g_quark_from_static_string ("microtime")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 22915 "main.c"
			default:
			{
				GeeArrayList* _tmp175_;
				gint _tmp176_;
				gint _tmp177_;
				gchar* _tmp178_ = NULL;
				GeeArrayList* _tmp179_;
				gint _tmp180_;
				gint _tmp181_;
				gchar* microtime_arg = NULL;
				gchar* _tmp185_;
				const gchar* _tmp186_;
				gchar* _tmp187_;
				gchar* _tmp188_;
				const gchar* _tmp189_;
				gchar* _tmp190_;
				gchar* _tmp191_;
#line 1980 "../src/main.vala"
				_tmp175_ = zargs;
#line 1980 "../src/main.vala"
				_tmp176_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp175_);
#line 1980 "../src/main.vala"
				_tmp177_ = _tmp176_;
#line 1980 "../src/main.vala"
				if (_tmp177_ > 1) {
#line 1981 "../src/main.vala"
					result = NULL;
#line 1981 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1981 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1981 "../src/main.vala"
					_g_free0 (loc);
#line 1981 "../src/main.vala"
					return result;
#line 22951 "main.c"
				}
#line 1983 "../src/main.vala"
				_tmp179_ = zargs;
#line 1983 "../src/main.vala"
				_tmp180_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp179_);
#line 1983 "../src/main.vala"
				_tmp181_ = _tmp180_;
#line 1983 "../src/main.vala"
				if (_tmp181_ == 1) {
#line 22961 "main.c"
					GeeArrayList* _tmp182_;
					gpointer _tmp183_;
#line 1983 "../src/main.vala"
					_tmp182_ = zargs;
#line 1983 "../src/main.vala"
					_tmp183_ = gee_abstract_list_get ((GeeAbstractList*) _tmp182_, 0);
#line 1983 "../src/main.vala"
					_g_free0 (_tmp178_);
#line 1983 "../src/main.vala"
					_tmp178_ = (gchar*) _tmp183_;
#line 22972 "main.c"
				} else {
					gchar* _tmp184_;
#line 1983 "../src/main.vala"
					_tmp184_ = g_strdup ("Php.zval.boolean (false)");
#line 1983 "../src/main.vala"
					_g_free0 (_tmp178_);
#line 1983 "../src/main.vala"
					_tmp178_ = _tmp184_;
#line 22981 "main.c"
				}
#line 1983 "../src/main.vala"
				_tmp185_ = _tmp178_;
#line 1983 "../src/main.vala"
				_tmp178_ = NULL;
#line 1983 "../src/main.vala"
				microtime_arg = _tmp185_;
#line 1984 "../src/main.vala"
				php_to_vala_transpiler_note_embed_zval_fallback (self, "microtime", "microtime_zval");
#line 1985 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "microtime_zval");
#line 1986 "../src/main.vala"
				_tmp186_ = loc;
#line 1986 "../src/main.vala"
				_tmp187_ = string_substring (_tmp186_, (glong) 2, (glong) -1);
#line 1986 "../src/main.vala"
				_tmp188_ = _tmp187_;
#line 1986 "../src/main.vala"
				_tmp189_ = microtime_arg;
#line 1986 "../src/main.vala"
				_tmp190_ = g_strdup_printf ("PhpEmbed.microtime_zval (%s, %s)", _tmp188_, _tmp189_);
#line 1986 "../src/main.vala"
				_tmp191_ = _tmp190_;
#line 1986 "../src/main.vala"
				_g_free0 (_tmp188_);
#line 1986 "../src/main.vala"
				result = _tmp191_;
#line 1986 "../src/main.vala"
				_g_free0 (microtime_arg);
#line 1986 "../src/main.vala"
				_g_free0 (_tmp178_);
#line 1986 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1986 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1986 "../src/main.vala"
				_g_free0 (loc);
#line 1986 "../src/main.vala"
				return result;
#line 23021 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label32) ? _tmp22_label32 : (_tmp22_label32 = g_quark_from_static_string ("count")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23027 "main.c"
			default:
			{
				GeeArrayList* _tmp192_;
				gint _tmp193_;
				gint _tmp194_;
				gchar* count_static = NULL;
				gchar* _tmp195_;
				const gchar* _tmp196_;
				const gchar* _tmp197_;
				GeeArrayList* _tmp198_;
				gpointer _tmp199_;
				gchar* _tmp200_;
				const gchar* _tmp201_;
				gchar* _tmp202_;
				gchar* _tmp203_;
#line 1988 "../src/main.vala"
				_tmp192_ = zargs;
#line 1988 "../src/main.vala"
				_tmp193_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp192_);
#line 1988 "../src/main.vala"
				_tmp194_ = _tmp193_;
#line 1988 "../src/main.vala"
				if (_tmp194_ != 1) {
#line 1989 "../src/main.vala"
					result = NULL;
#line 1989 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1989 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1989 "../src/main.vala"
					_g_free0 (loc);
#line 1989 "../src/main.vala"
					return result;
#line 23061 "main.c"
				}
#line 1991 "../src/main.vala"
				_tmp195_ = php_to_vala_transpiler_resolve_static_call_name (self, "count");
#line 1991 "../src/main.vala"
				count_static = _tmp195_;
#line 1992 "../src/main.vala"
				_tmp196_ = count_static;
#line 1992 "../src/main.vala"
				if (_tmp196_ == NULL) {
#line 1993 "../src/main.vala"
					result = NULL;
#line 1993 "../src/main.vala"
					_g_free0 (count_static);
#line 1993 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1993 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1993 "../src/main.vala"
					_g_free0 (loc);
#line 1993 "../src/main.vala"
					return result;
#line 23083 "main.c"
				}
#line 1995 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "count");
#line 1996 "../src/main.vala"
				_tmp197_ = count_static;
#line 1996 "../src/main.vala"
				_tmp198_ = zargs;
#line 1996 "../src/main.vala"
				_tmp199_ = gee_abstract_list_get ((GeeAbstractList*) _tmp198_, 0);
#line 1996 "../src/main.vala"
				_tmp200_ = (gchar*) _tmp199_;
#line 1996 "../src/main.vala"
				_tmp201_ = loc;
#line 1996 "../src/main.vala"
				_tmp202_ = g_strdup_printf ("Php.zval.integer (%s (%s%s))", _tmp197_, _tmp200_, _tmp201_);
#line 1996 "../src/main.vala"
				_tmp203_ = _tmp202_;
#line 1996 "../src/main.vala"
				_g_free0 (_tmp200_);
#line 1996 "../src/main.vala"
				result = _tmp203_;
#line 1996 "../src/main.vala"
				_g_free0 (count_static);
#line 1996 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 1996 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 1996 "../src/main.vala"
				_g_free0 (loc);
#line 1996 "../src/main.vala"
				return result;
#line 23115 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label33) ? _tmp22_label33 : (_tmp22_label33 = g_quark_from_static_string ("isset")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23121 "main.c"
			default:
			{
				GeeArrayList* _tmp204_;
				gint _tmp205_;
				gint _tmp206_;
				GeeArrayList* _tmp207_;
				gpointer _tmp208_;
				gchar* _tmp209_;
				const gchar* _tmp210_;
				gchar* _tmp211_;
				gchar* _tmp212_;
#line 1998 "../src/main.vala"
				_tmp204_ = zargs;
#line 1998 "../src/main.vala"
				_tmp205_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp204_);
#line 1998 "../src/main.vala"
				_tmp206_ = _tmp205_;
#line 1998 "../src/main.vala"
				if (_tmp206_ != 1) {
#line 1999 "../src/main.vala"
					result = NULL;
#line 1999 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 1999 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 1999 "../src/main.vala"
					_g_free0 (loc);
#line 1999 "../src/main.vala"
					return result;
#line 23151 "main.c"
				}
#line 2001 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "isset");
#line 2002 "../src/main.vala"
				_tmp207_ = zargs;
#line 2002 "../src/main.vala"
				_tmp208_ = gee_abstract_list_get ((GeeAbstractList*) _tmp207_, 0);
#line 2002 "../src/main.vala"
				_tmp209_ = (gchar*) _tmp208_;
#line 2002 "../src/main.vala"
				_tmp210_ = loc;
#line 2002 "../src/main.vala"
				_tmp211_ = g_strdup_printf ("Php.zval.boolean (Php.isset_value_static (%s%s))", _tmp209_, _tmp210_);
#line 2002 "../src/main.vala"
				_tmp212_ = _tmp211_;
#line 2002 "../src/main.vala"
				_g_free0 (_tmp209_);
#line 2002 "../src/main.vala"
				result = _tmp212_;
#line 2002 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2002 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2002 "../src/main.vala"
				_g_free0 (loc);
#line 2002 "../src/main.vala"
				return result;
#line 23179 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label34) ? _tmp22_label34 : (_tmp22_label34 = g_quark_from_static_string ("flush")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23185 "main.c"
			default:
			{
				GeeArrayList* _tmp213_;
				gint _tmp214_;
				gint _tmp215_;
				gchar* flush_name = NULL;
				gchar* _tmp216_;
				const gchar* _tmp217_;
				const gchar* _tmp218_;
				gchar* _tmp219_;
				gchar* _tmp220_;
				gchar* _tmp221_;
				gchar* _tmp222_;
#line 2004 "../src/main.vala"
				_tmp213_ = zargs;
#line 2004 "../src/main.vala"
				_tmp214_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp213_);
#line 2004 "../src/main.vala"
				_tmp215_ = _tmp214_;
#line 2004 "../src/main.vala"
				if (_tmp215_ != 0) {
#line 2005 "../src/main.vala"
					result = NULL;
#line 2005 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2005 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2005 "../src/main.vala"
					_g_free0 (loc);
#line 2005 "../src/main.vala"
					return result;
#line 23217 "main.c"
				}
#line 2007 "../src/main.vala"
				_tmp216_ = php_to_vala_transpiler_map_php_function_name (self, "flush", php_line_number, &_inner_error0_);
#line 2007 "../src/main.vala"
				flush_name = _tmp216_;
#line 2007 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2007 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2007 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2007 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2007 "../src/main.vala"
					_g_free0 (loc);
#line 2007 "../src/main.vala"
					return NULL;
#line 23235 "main.c"
				}
#line 2008 "../src/main.vala"
				_tmp217_ = flush_name;
#line 2008 "../src/main.vala"
				_tmp218_ = loc;
#line 2008 "../src/main.vala"
				_tmp219_ = string_substring (_tmp218_, (glong) 2, (glong) -1);
#line 2008 "../src/main.vala"
				_tmp220_ = _tmp219_;
#line 2008 "../src/main.vala"
				_tmp221_ = g_strdup_printf ("Php.zval.boolean (%s (%s))", _tmp217_, _tmp220_);
#line 2008 "../src/main.vala"
				_tmp222_ = _tmp221_;
#line 2008 "../src/main.vala"
				_g_free0 (_tmp220_);
#line 2008 "../src/main.vala"
				result = _tmp222_;
#line 2008 "../src/main.vala"
				_g_free0 (flush_name);
#line 2008 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2008 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2008 "../src/main.vala"
				_g_free0 (loc);
#line 2008 "../src/main.vala"
				return result;
#line 23263 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label35) ? _tmp22_label35 : (_tmp22_label35 = g_quark_from_static_string ("empty")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23269 "main.c"
			default:
			{
				GeeArrayList* _tmp223_;
				gint _tmp224_;
				gint _tmp225_;
				GeeArrayList* _tmp226_;
				gpointer _tmp227_;
				gchar* _tmp228_;
				const gchar* _tmp229_;
				gchar* _tmp230_;
				gchar* _tmp231_;
#line 2010 "../src/main.vala"
				_tmp223_ = zargs;
#line 2010 "../src/main.vala"
				_tmp224_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp223_);
#line 2010 "../src/main.vala"
				_tmp225_ = _tmp224_;
#line 2010 "../src/main.vala"
				if (_tmp225_ != 1) {
#line 2011 "../src/main.vala"
					result = NULL;
#line 2011 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2011 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2011 "../src/main.vala"
					_g_free0 (loc);
#line 2011 "../src/main.vala"
					return result;
#line 23299 "main.c"
				}
#line 2013 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "empty");
#line 2014 "../src/main.vala"
				_tmp226_ = zargs;
#line 2014 "../src/main.vala"
				_tmp227_ = gee_abstract_list_get ((GeeAbstractList*) _tmp226_, 0);
#line 2014 "../src/main.vala"
				_tmp228_ = (gchar*) _tmp227_;
#line 2014 "../src/main.vala"
				_tmp229_ = loc;
#line 2014 "../src/main.vala"
				_tmp230_ = g_strdup_printf ("Php.zval.boolean (Php.empty_value_static (%s%s))", _tmp228_, _tmp229_);
#line 2014 "../src/main.vala"
				_tmp231_ = _tmp230_;
#line 2014 "../src/main.vala"
				_g_free0 (_tmp228_);
#line 2014 "../src/main.vala"
				result = _tmp231_;
#line 2014 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2014 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2014 "../src/main.vala"
				_g_free0 (loc);
#line 2014 "../src/main.vala"
				return result;
#line 23327 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label36) ? _tmp22_label36 : (_tmp22_label36 = g_quark_from_static_string ("class_exists")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23333 "main.c"
			default:
			{
				gboolean _tmp232_ = FALSE;
				GeeArrayList* _tmp233_;
				gint _tmp234_;
				gint _tmp235_;
				gchar* class_exists_static = NULL;
				gchar* _tmp239_;
				const gchar* _tmp240_;
				gchar* _tmp241_ = NULL;
				GeeArrayList* _tmp242_;
				gint _tmp243_;
				gint _tmp244_;
				gchar* autoload = NULL;
				gchar* _tmp250_;
				const gchar* _tmp251_;
				GeeArrayList* _tmp252_;
				gpointer _tmp253_;
				gchar* _tmp254_;
				const gchar* _tmp255_;
				const gchar* _tmp256_;
				gchar* _tmp257_;
				gchar* _tmp258_;
#line 2016 "../src/main.vala"
				_tmp233_ = zargs;
#line 2016 "../src/main.vala"
				_tmp234_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp233_);
#line 2016 "../src/main.vala"
				_tmp235_ = _tmp234_;
#line 2016 "../src/main.vala"
				if (_tmp235_ < 1) {
#line 2016 "../src/main.vala"
					_tmp232_ = TRUE;
#line 23367 "main.c"
				} else {
					GeeArrayList* _tmp236_;
					gint _tmp237_;
					gint _tmp238_;
#line 2016 "../src/main.vala"
					_tmp236_ = zargs;
#line 2016 "../src/main.vala"
					_tmp237_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp236_);
#line 2016 "../src/main.vala"
					_tmp238_ = _tmp237_;
#line 2016 "../src/main.vala"
					_tmp232_ = _tmp238_ > 2;
#line 23380 "main.c"
				}
#line 2016 "../src/main.vala"
				if (_tmp232_) {
#line 2017 "../src/main.vala"
					result = NULL;
#line 2017 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2017 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2017 "../src/main.vala"
					_g_free0 (loc);
#line 2017 "../src/main.vala"
					return result;
#line 23394 "main.c"
				}
#line 2019 "../src/main.vala"
				_tmp239_ = php_to_vala_transpiler_resolve_static_call_name (self, "class_exists");
#line 2019 "../src/main.vala"
				class_exists_static = _tmp239_;
#line 2020 "../src/main.vala"
				_tmp240_ = class_exists_static;
#line 2020 "../src/main.vala"
				if (_tmp240_ == NULL) {
#line 2021 "../src/main.vala"
					result = NULL;
#line 2021 "../src/main.vala"
					_g_free0 (class_exists_static);
#line 2021 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2021 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2021 "../src/main.vala"
					_g_free0 (loc);
#line 2021 "../src/main.vala"
					return result;
#line 23416 "main.c"
				}
#line 2023 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "class_exists");
#line 2024 "../src/main.vala"
				_tmp242_ = zargs;
#line 2024 "../src/main.vala"
				_tmp243_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp242_);
#line 2024 "../src/main.vala"
				_tmp244_ = _tmp243_;
#line 2024 "../src/main.vala"
				if (_tmp244_ == 2) {
#line 23428 "main.c"
					GeeArrayList* _tmp245_;
					gpointer _tmp246_;
					gchar* _tmp247_;
					gchar* _tmp248_;
#line 2024 "../src/main.vala"
					_tmp245_ = zargs;
#line 2024 "../src/main.vala"
					_tmp246_ = gee_abstract_list_get ((GeeAbstractList*) _tmp245_, 1);
#line 2024 "../src/main.vala"
					_tmp247_ = (gchar*) _tmp246_;
#line 2024 "../src/main.vala"
					_tmp248_ = g_strdup_printf ("Php.truthy (%s)", _tmp247_);
#line 2024 "../src/main.vala"
					_g_free0 (_tmp241_);
#line 2024 "../src/main.vala"
					_tmp241_ = _tmp248_;
#line 2024 "../src/main.vala"
					_g_free0 (_tmp247_);
#line 23447 "main.c"
				} else {
					gchar* _tmp249_;
#line 2024 "../src/main.vala"
					_tmp249_ = g_strdup ("true");
#line 2024 "../src/main.vala"
					_g_free0 (_tmp241_);
#line 2024 "../src/main.vala"
					_tmp241_ = _tmp249_;
#line 23456 "main.c"
				}
#line 2024 "../src/main.vala"
				_tmp250_ = _tmp241_;
#line 2024 "../src/main.vala"
				_tmp241_ = NULL;
#line 2024 "../src/main.vala"
				autoload = _tmp250_;
#line 2025 "../src/main.vala"
				_tmp251_ = class_exists_static;
#line 2025 "../src/main.vala"
				_tmp252_ = zargs;
#line 2025 "../src/main.vala"
				_tmp253_ = gee_abstract_list_get ((GeeAbstractList*) _tmp252_, 0);
#line 2025 "../src/main.vala"
				_tmp254_ = (gchar*) _tmp253_;
#line 2025 "../src/main.vala"
				_tmp255_ = autoload;
#line 2025 "../src/main.vala"
				_tmp256_ = loc;
#line 2025 "../src/main.vala"
				_tmp257_ = g_strdup_printf ("Php.zval.boolean (%s (Php.zval_to_string (%s), %s%s))", _tmp251_, _tmp254_, _tmp255_, _tmp256_);
#line 2025 "../src/main.vala"
				_tmp258_ = _tmp257_;
#line 2025 "../src/main.vala"
				_g_free0 (_tmp254_);
#line 2025 "../src/main.vala"
				result = _tmp258_;
#line 2025 "../src/main.vala"
				_g_free0 (autoload);
#line 2025 "../src/main.vala"
				_g_free0 (_tmp241_);
#line 2025 "../src/main.vala"
				_g_free0 (class_exists_static);
#line 2025 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2025 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2025 "../src/main.vala"
				_g_free0 (loc);
#line 2025 "../src/main.vala"
				return result;
#line 23498 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label37) ? _tmp22_label37 : (_tmp22_label37 = g_quark_from_static_string ("substr")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23504 "main.c"
			default:
			{
				gboolean _tmp259_ = FALSE;
				GeeArrayList* _tmp260_;
				gint _tmp261_;
				gint _tmp262_;
				gchar* substr_static = NULL;
				gchar* _tmp266_;
				const gchar* _tmp267_;
				gchar* _tmp268_ = NULL;
				GeeArrayList* _tmp269_;
				gint _tmp270_;
				gint _tmp271_;
				gchar* length = NULL;
				gchar* _tmp277_;
				const gchar* _tmp278_;
				GeeArrayList* _tmp279_;
				gpointer _tmp280_;
				gchar* _tmp281_;
				GeeArrayList* _tmp282_;
				gpointer _tmp283_;
				gchar* _tmp284_;
				const gchar* _tmp285_;
				const gchar* _tmp286_;
				gchar* _tmp287_;
				gchar* _tmp288_;
#line 2027 "../src/main.vala"
				_tmp260_ = zargs;
#line 2027 "../src/main.vala"
				_tmp261_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp260_);
#line 2027 "../src/main.vala"
				_tmp262_ = _tmp261_;
#line 2027 "../src/main.vala"
				if (_tmp262_ < 2) {
#line 2027 "../src/main.vala"
					_tmp259_ = TRUE;
#line 23541 "main.c"
				} else {
					GeeArrayList* _tmp263_;
					gint _tmp264_;
					gint _tmp265_;
#line 2027 "../src/main.vala"
					_tmp263_ = zargs;
#line 2027 "../src/main.vala"
					_tmp264_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp263_);
#line 2027 "../src/main.vala"
					_tmp265_ = _tmp264_;
#line 2027 "../src/main.vala"
					_tmp259_ = _tmp265_ > 3;
#line 23554 "main.c"
				}
#line 2027 "../src/main.vala"
				if (_tmp259_) {
#line 2028 "../src/main.vala"
					result = NULL;
#line 2028 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2028 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2028 "../src/main.vala"
					_g_free0 (loc);
#line 2028 "../src/main.vala"
					return result;
#line 23568 "main.c"
				}
#line 2030 "../src/main.vala"
				_tmp266_ = php_to_vala_transpiler_resolve_static_call_name (self, "substr");
#line 2030 "../src/main.vala"
				substr_static = _tmp266_;
#line 2031 "../src/main.vala"
				_tmp267_ = substr_static;
#line 2031 "../src/main.vala"
				if (_tmp267_ == NULL) {
#line 2032 "../src/main.vala"
					result = NULL;
#line 2032 "../src/main.vala"
					_g_free0 (substr_static);
#line 2032 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2032 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2032 "../src/main.vala"
					_g_free0 (loc);
#line 2032 "../src/main.vala"
					return result;
#line 23590 "main.c"
				}
#line 2034 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "substr");
#line 2035 "../src/main.vala"
				_tmp269_ = zargs;
#line 2035 "../src/main.vala"
				_tmp270_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp269_);
#line 2035 "../src/main.vala"
				_tmp271_ = _tmp270_;
#line 2035 "../src/main.vala"
				if (_tmp271_ == 3) {
#line 23602 "main.c"
					GeeArrayList* _tmp272_;
					gpointer _tmp273_;
					gchar* _tmp274_;
					gchar* _tmp275_;
#line 2035 "../src/main.vala"
					_tmp272_ = zargs;
#line 2035 "../src/main.vala"
					_tmp273_ = gee_abstract_list_get ((GeeAbstractList*) _tmp272_, 2);
#line 2035 "../src/main.vala"
					_tmp274_ = (gchar*) _tmp273_;
#line 2035 "../src/main.vala"
					_tmp275_ = g_strdup_printf ("Php.zval_to_int (%s)", _tmp274_);
#line 2035 "../src/main.vala"
					_g_free0 (_tmp268_);
#line 2035 "../src/main.vala"
					_tmp268_ = _tmp275_;
#line 2035 "../src/main.vala"
					_g_free0 (_tmp274_);
#line 23621 "main.c"
				} else {
					gchar* _tmp276_;
#line 2035 "../src/main.vala"
					_tmp276_ = g_strdup ("2147483647");
#line 2035 "../src/main.vala"
					_g_free0 (_tmp268_);
#line 2035 "../src/main.vala"
					_tmp268_ = _tmp276_;
#line 23630 "main.c"
				}
#line 2035 "../src/main.vala"
				_tmp277_ = _tmp268_;
#line 2035 "../src/main.vala"
				_tmp268_ = NULL;
#line 2035 "../src/main.vala"
				length = _tmp277_;
#line 2036 "../src/main.vala"
				_tmp278_ = substr_static;
#line 2036 "../src/main.vala"
				_tmp279_ = zargs;
#line 2036 "../src/main.vala"
				_tmp280_ = gee_abstract_list_get ((GeeAbstractList*) _tmp279_, 0);
#line 2036 "../src/main.vala"
				_tmp281_ = (gchar*) _tmp280_;
#line 2036 "../src/main.vala"
				_tmp282_ = zargs;
#line 2036 "../src/main.vala"
				_tmp283_ = gee_abstract_list_get ((GeeAbstractList*) _tmp282_, 1);
#line 2036 "../src/main.vala"
				_tmp284_ = (gchar*) _tmp283_;
#line 2036 "../src/main.vala"
				_tmp285_ = length;
#line 2036 "../src/main.vala"
				_tmp286_ = loc;
#line 2036 "../src/main.vala"
				_tmp287_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_string (%s), Php.zval_to_int (%" \
"s), %s%s))", _tmp278_, _tmp281_, _tmp284_, _tmp285_, _tmp286_);
#line 2036 "../src/main.vala"
				_tmp288_ = _tmp287_;
#line 2036 "../src/main.vala"
				_g_free0 (_tmp284_);
#line 2036 "../src/main.vala"
				_g_free0 (_tmp281_);
#line 2036 "../src/main.vala"
				result = _tmp288_;
#line 2036 "../src/main.vala"
				_g_free0 (length);
#line 2036 "../src/main.vala"
				_g_free0 (_tmp268_);
#line 2036 "../src/main.vala"
				_g_free0 (substr_static);
#line 2036 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2036 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2036 "../src/main.vala"
				_g_free0 (loc);
#line 2036 "../src/main.vala"
				return result;
#line 23680 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label38) ? _tmp22_label38 : (_tmp22_label38 = g_quark_from_static_string ("number_format")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23686 "main.c"
			default:
			{
				gboolean _tmp289_ = FALSE;
				GeeArrayList* _tmp290_;
				gint _tmp291_;
				gint _tmp292_;
				gchar* number_format_name = NULL;
				gchar* _tmp296_;
				gchar* _tmp297_ = NULL;
				GeeArrayList* _tmp298_;
				gint _tmp299_;
				gint _tmp300_;
				gchar* decimals = NULL;
				gchar* _tmp306_;
				gchar* _tmp307_ = NULL;
				GeeArrayList* _tmp308_;
				gint _tmp309_;
				gint _tmp310_;
				gchar* dec_point = NULL;
				gchar* _tmp316_;
				gchar* _tmp317_ = NULL;
				GeeArrayList* _tmp318_;
				gint _tmp319_;
				gint _tmp320_;
				gchar* thousands_sep = NULL;
				gchar* _tmp326_;
				const gchar* _tmp327_;
				GeeArrayList* _tmp328_;
				gpointer _tmp329_;
				gchar* _tmp330_;
				const gchar* _tmp331_;
				const gchar* _tmp332_;
				const gchar* _tmp333_;
				const gchar* _tmp334_;
				gchar* _tmp335_;
				gchar* _tmp336_;
#line 2038 "../src/main.vala"
				_tmp290_ = zargs;
#line 2038 "../src/main.vala"
				_tmp291_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp290_);
#line 2038 "../src/main.vala"
				_tmp292_ = _tmp291_;
#line 2038 "../src/main.vala"
				if (_tmp292_ < 1) {
#line 2038 "../src/main.vala"
					_tmp289_ = TRUE;
#line 23733 "main.c"
				} else {
					GeeArrayList* _tmp293_;
					gint _tmp294_;
					gint _tmp295_;
#line 2038 "../src/main.vala"
					_tmp293_ = zargs;
#line 2038 "../src/main.vala"
					_tmp294_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp293_);
#line 2038 "../src/main.vala"
					_tmp295_ = _tmp294_;
#line 2038 "../src/main.vala"
					_tmp289_ = _tmp295_ > 4;
#line 23746 "main.c"
				}
#line 2038 "../src/main.vala"
				if (_tmp289_) {
#line 2039 "../src/main.vala"
					result = NULL;
#line 2039 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2039 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2039 "../src/main.vala"
					_g_free0 (loc);
#line 2039 "../src/main.vala"
					return result;
#line 23760 "main.c"
				}
#line 2041 "../src/main.vala"
				_tmp296_ = php_to_vala_transpiler_map_php_function_name (self, "number_format", php_line_number, &_inner_error0_);
#line 2041 "../src/main.vala"
				number_format_name = _tmp296_;
#line 2041 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2041 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2041 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2041 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2041 "../src/main.vala"
					_g_free0 (loc);
#line 2041 "../src/main.vala"
					return NULL;
#line 23778 "main.c"
				}
#line 2042 "../src/main.vala"
				_tmp298_ = zargs;
#line 2042 "../src/main.vala"
				_tmp299_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp298_);
#line 2042 "../src/main.vala"
				_tmp300_ = _tmp299_;
#line 2042 "../src/main.vala"
				if (_tmp300_ >= 2) {
#line 23788 "main.c"
					GeeArrayList* _tmp301_;
					gpointer _tmp302_;
					gchar* _tmp303_;
					gchar* _tmp304_;
#line 2042 "../src/main.vala"
					_tmp301_ = zargs;
#line 2042 "../src/main.vala"
					_tmp302_ = gee_abstract_list_get ((GeeAbstractList*) _tmp301_, 1);
#line 2042 "../src/main.vala"
					_tmp303_ = (gchar*) _tmp302_;
#line 2042 "../src/main.vala"
					_tmp304_ = g_strdup_printf ("Php.zval_to_int (%s)", _tmp303_);
#line 2042 "../src/main.vala"
					_g_free0 (_tmp297_);
#line 2042 "../src/main.vala"
					_tmp297_ = _tmp304_;
#line 2042 "../src/main.vala"
					_g_free0 (_tmp303_);
#line 23807 "main.c"
				} else {
					gchar* _tmp305_;
#line 2042 "../src/main.vala"
					_tmp305_ = g_strdup ("0");
#line 2042 "../src/main.vala"
					_g_free0 (_tmp297_);
#line 2042 "../src/main.vala"
					_tmp297_ = _tmp305_;
#line 23816 "main.c"
				}
#line 2042 "../src/main.vala"
				_tmp306_ = _tmp297_;
#line 2042 "../src/main.vala"
				_tmp297_ = NULL;
#line 2042 "../src/main.vala"
				decimals = _tmp306_;
#line 2043 "../src/main.vala"
				_tmp308_ = zargs;
#line 2043 "../src/main.vala"
				_tmp309_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp308_);
#line 2043 "../src/main.vala"
				_tmp310_ = _tmp309_;
#line 2043 "../src/main.vala"
				if (_tmp310_ >= 3) {
#line 23832 "main.c"
					GeeArrayList* _tmp311_;
					gpointer _tmp312_;
					gchar* _tmp313_;
					gchar* _tmp314_;
#line 2043 "../src/main.vala"
					_tmp311_ = zargs;
#line 2043 "../src/main.vala"
					_tmp312_ = gee_abstract_list_get ((GeeAbstractList*) _tmp311_, 2);
#line 2043 "../src/main.vala"
					_tmp313_ = (gchar*) _tmp312_;
#line 2043 "../src/main.vala"
					_tmp314_ = g_strdup_printf ("Php.zval_to_string (%s)", _tmp313_);
#line 2043 "../src/main.vala"
					_g_free0 (_tmp307_);
#line 2043 "../src/main.vala"
					_tmp307_ = _tmp314_;
#line 2043 "../src/main.vala"
					_g_free0 (_tmp313_);
#line 23851 "main.c"
				} else {
					gchar* _tmp315_;
#line 2043 "../src/main.vala"
					_tmp315_ = g_strdup ("\".\"");
#line 2043 "../src/main.vala"
					_g_free0 (_tmp307_);
#line 2043 "../src/main.vala"
					_tmp307_ = _tmp315_;
#line 23860 "main.c"
				}
#line 2043 "../src/main.vala"
				_tmp316_ = _tmp307_;
#line 2043 "../src/main.vala"
				_tmp307_ = NULL;
#line 2043 "../src/main.vala"
				dec_point = _tmp316_;
#line 2044 "../src/main.vala"
				_tmp318_ = zargs;
#line 2044 "../src/main.vala"
				_tmp319_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp318_);
#line 2044 "../src/main.vala"
				_tmp320_ = _tmp319_;
#line 2044 "../src/main.vala"
				if (_tmp320_ >= 4) {
#line 23876 "main.c"
					GeeArrayList* _tmp321_;
					gpointer _tmp322_;
					gchar* _tmp323_;
					gchar* _tmp324_;
#line 2044 "../src/main.vala"
					_tmp321_ = zargs;
#line 2044 "../src/main.vala"
					_tmp322_ = gee_abstract_list_get ((GeeAbstractList*) _tmp321_, 3);
#line 2044 "../src/main.vala"
					_tmp323_ = (gchar*) _tmp322_;
#line 2044 "../src/main.vala"
					_tmp324_ = g_strdup_printf ("Php.zval_to_string (%s)", _tmp323_);
#line 2044 "../src/main.vala"
					_g_free0 (_tmp317_);
#line 2044 "../src/main.vala"
					_tmp317_ = _tmp324_;
#line 2044 "../src/main.vala"
					_g_free0 (_tmp323_);
#line 23895 "main.c"
				} else {
					gchar* _tmp325_;
#line 2044 "../src/main.vala"
					_tmp325_ = g_strdup ("\",\"");
#line 2044 "../src/main.vala"
					_g_free0 (_tmp317_);
#line 2044 "../src/main.vala"
					_tmp317_ = _tmp325_;
#line 23904 "main.c"
				}
#line 2044 "../src/main.vala"
				_tmp326_ = _tmp317_;
#line 2044 "../src/main.vala"
				_tmp317_ = NULL;
#line 2044 "../src/main.vala"
				thousands_sep = _tmp326_;
#line 2045 "../src/main.vala"
				_tmp327_ = number_format_name;
#line 2045 "../src/main.vala"
				_tmp328_ = zargs;
#line 2045 "../src/main.vala"
				_tmp329_ = gee_abstract_list_get ((GeeAbstractList*) _tmp328_, 0);
#line 2045 "../src/main.vala"
				_tmp330_ = (gchar*) _tmp329_;
#line 2045 "../src/main.vala"
				_tmp331_ = decimals;
#line 2045 "../src/main.vala"
				_tmp332_ = dec_point;
#line 2045 "../src/main.vala"
				_tmp333_ = thousands_sep;
#line 2045 "../src/main.vala"
				_tmp334_ = loc;
#line 2045 "../src/main.vala"
				_tmp335_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_double (%s), %s, %s, %s%s))", _tmp327_, _tmp330_, _tmp331_, _tmp332_, _tmp333_, _tmp334_);
#line 2045 "../src/main.vala"
				_tmp336_ = _tmp335_;
#line 2045 "../src/main.vala"
				_g_free0 (_tmp330_);
#line 2045 "../src/main.vala"
				result = _tmp336_;
#line 2045 "../src/main.vala"
				_g_free0 (thousands_sep);
#line 2045 "../src/main.vala"
				_g_free0 (_tmp317_);
#line 2045 "../src/main.vala"
				_g_free0 (dec_point);
#line 2045 "../src/main.vala"
				_g_free0 (_tmp307_);
#line 2045 "../src/main.vala"
				_g_free0 (decimals);
#line 2045 "../src/main.vala"
				_g_free0 (_tmp297_);
#line 2045 "../src/main.vala"
				_g_free0 (number_format_name);
#line 2045 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2045 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2045 "../src/main.vala"
				_g_free0 (loc);
#line 2045 "../src/main.vala"
				return result;
#line 23958 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label39) ? _tmp22_label39 : (_tmp22_label39 = g_quark_from_static_string ("str_replace")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 23964 "main.c"
			default:
			{
				GeeArrayList* _tmp337_;
				gint _tmp338_;
				gint _tmp339_;
				gchar* str_replace_static = NULL;
				gchar* _tmp340_;
				const gchar* _tmp341_;
				const gchar* _tmp342_;
				GeeArrayList* _tmp343_;
				gpointer _tmp344_;
				gchar* _tmp345_;
				GeeArrayList* _tmp346_;
				gpointer _tmp347_;
				gchar* _tmp348_;
				GeeArrayList* _tmp349_;
				gpointer _tmp350_;
				gchar* _tmp351_;
				const gchar* _tmp352_;
				gchar* _tmp353_;
				gchar* _tmp354_;
#line 2047 "../src/main.vala"
				_tmp337_ = zargs;
#line 2047 "../src/main.vala"
				_tmp338_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp337_);
#line 2047 "../src/main.vala"
				_tmp339_ = _tmp338_;
#line 2047 "../src/main.vala"
				if (_tmp339_ != 3) {
#line 2048 "../src/main.vala"
					result = NULL;
#line 2048 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2048 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2048 "../src/main.vala"
					_g_free0 (loc);
#line 2048 "../src/main.vala"
					return result;
#line 24004 "main.c"
				}
#line 2050 "../src/main.vala"
				_tmp340_ = php_to_vala_transpiler_resolve_static_call_name (self, "str_replace");
#line 2050 "../src/main.vala"
				str_replace_static = _tmp340_;
#line 2051 "../src/main.vala"
				_tmp341_ = str_replace_static;
#line 2051 "../src/main.vala"
				if (_tmp341_ == NULL) {
#line 2052 "../src/main.vala"
					result = NULL;
#line 2052 "../src/main.vala"
					_g_free0 (str_replace_static);
#line 2052 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2052 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2052 "../src/main.vala"
					_g_free0 (loc);
#line 2052 "../src/main.vala"
					return result;
#line 24026 "main.c"
				}
#line 2054 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "str_replace");
#line 2055 "../src/main.vala"
				_tmp342_ = str_replace_static;
#line 2055 "../src/main.vala"
				_tmp343_ = zargs;
#line 2055 "../src/main.vala"
				_tmp344_ = gee_abstract_list_get ((GeeAbstractList*) _tmp343_, 0);
#line 2055 "../src/main.vala"
				_tmp345_ = (gchar*) _tmp344_;
#line 2055 "../src/main.vala"
				_tmp346_ = zargs;
#line 2055 "../src/main.vala"
				_tmp347_ = gee_abstract_list_get ((GeeAbstractList*) _tmp346_, 1);
#line 2055 "../src/main.vala"
				_tmp348_ = (gchar*) _tmp347_;
#line 2055 "../src/main.vala"
				_tmp349_ = zargs;
#line 2055 "../src/main.vala"
				_tmp350_ = gee_abstract_list_get ((GeeAbstractList*) _tmp349_, 2);
#line 2055 "../src/main.vala"
				_tmp351_ = (gchar*) _tmp350_;
#line 2055 "../src/main.vala"
				_tmp352_ = loc;
#line 2055 "../src/main.vala"
				_tmp353_ = g_strdup_printf ("Php.zval.string_value (%s (Php.zval_to_string (%s), Php.zval_to_string" \
" (%s), Php.zval_to_string (%s)%s))", _tmp342_, _tmp345_, _tmp348_, _tmp351_, _tmp352_);
#line 2055 "../src/main.vala"
				_tmp354_ = _tmp353_;
#line 2055 "../src/main.vala"
				_g_free0 (_tmp351_);
#line 2055 "../src/main.vala"
				_g_free0 (_tmp348_);
#line 2055 "../src/main.vala"
				_g_free0 (_tmp345_);
#line 2055 "../src/main.vala"
				result = _tmp354_;
#line 2055 "../src/main.vala"
				_g_free0 (str_replace_static);
#line 2055 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2055 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2055 "../src/main.vala"
				_g_free0 (loc);
#line 2055 "../src/main.vala"
				return result;
#line 24074 "main.c"
			}
		}
	} else if (_tmp23_ == ((0 != _tmp22_label40) ? _tmp22_label40 : (_tmp22_label40 = g_quark_from_static_string ("stripos")))) {
#line 1856 "../src/main.vala"
		switch (0) {
#line 24080 "main.c"
			default:
			{
				GeeArrayList* _tmp355_;
				gint _tmp356_;
				gint _tmp357_;
				gchar* stripos_static = NULL;
				gchar* _tmp358_;
				const gchar* _tmp359_;
				const gchar* _tmp360_;
				GeeArrayList* _tmp361_;
				gpointer _tmp362_;
				gchar* _tmp363_;
				GeeArrayList* _tmp364_;
				gpointer _tmp365_;
				gchar* _tmp366_;
				const gchar* _tmp367_;
				gchar* _tmp368_;
				gchar* _tmp369_;
#line 2057 "../src/main.vala"
				_tmp355_ = zargs;
#line 2057 "../src/main.vala"
				_tmp356_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp355_);
#line 2057 "../src/main.vala"
				_tmp357_ = _tmp356_;
#line 2057 "../src/main.vala"
				if (_tmp357_ != 2) {
#line 2058 "../src/main.vala"
					result = NULL;
#line 2058 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2058 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2058 "../src/main.vala"
					_g_free0 (loc);
#line 2058 "../src/main.vala"
					return result;
#line 24117 "main.c"
				}
#line 2060 "../src/main.vala"
				_tmp358_ = php_to_vala_transpiler_resolve_static_call_name (self, "stripos");
#line 2060 "../src/main.vala"
				stripos_static = _tmp358_;
#line 2061 "../src/main.vala"
				_tmp359_ = stripos_static;
#line 2061 "../src/main.vala"
				if (_tmp359_ == NULL) {
#line 2062 "../src/main.vala"
					result = NULL;
#line 2062 "../src/main.vala"
					_g_free0 (stripos_static);
#line 2062 "../src/main.vala"
					_g_object_unref0 (zargs);
#line 2062 "../src/main.vala"
					_g_object_unref0 (raw_args);
#line 2062 "../src/main.vala"
					_g_free0 (loc);
#line 2062 "../src/main.vala"
					return result;
#line 24139 "main.c"
				}
#line 2064 "../src/main.vala"
				php_to_vala_transpiler_mark_function_used (self, "stripos");
#line 2065 "../src/main.vala"
				_tmp360_ = stripos_static;
#line 2065 "../src/main.vala"
				_tmp361_ = zargs;
#line 2065 "../src/main.vala"
				_tmp362_ = gee_abstract_list_get ((GeeAbstractList*) _tmp361_, 0);
#line 2065 "../src/main.vala"
				_tmp363_ = (gchar*) _tmp362_;
#line 2065 "../src/main.vala"
				_tmp364_ = zargs;
#line 2065 "../src/main.vala"
				_tmp365_ = gee_abstract_list_get ((GeeAbstractList*) _tmp364_, 1);
#line 2065 "../src/main.vala"
				_tmp366_ = (gchar*) _tmp365_;
#line 2065 "../src/main.vala"
				_tmp367_ = loc;
#line 2065 "../src/main.vala"
				_tmp368_ = g_strdup_printf ("Php.zval.integer (%s (Php.zval_to_string (%s), Php.zval_to_string (%s)" \
"%s))", _tmp360_, _tmp363_, _tmp366_, _tmp367_);
#line 2065 "../src/main.vala"
				_tmp369_ = _tmp368_;
#line 2065 "../src/main.vala"
				_g_free0 (_tmp366_);
#line 2065 "../src/main.vala"
				_g_free0 (_tmp363_);
#line 2065 "../src/main.vala"
				result = _tmp369_;
#line 2065 "../src/main.vala"
				_g_free0 (stripos_static);
#line 2065 "../src/main.vala"
				_g_object_unref0 (zargs);
#line 2065 "../src/main.vala"
				_g_object_unref0 (raw_args);
#line 2065 "../src/main.vala"
				_g_free0 (loc);
#line 2065 "../src/main.vala"
				return result;
#line 24179 "main.c"
			}
		}
	}
#line 2068 "../src/main.vala"
	result = NULL;
#line 2068 "../src/main.vala"
	_g_object_unref0 (zargs);
#line 2068 "../src/main.vala"
	_g_object_unref0 (raw_args);
#line 2068 "../src/main.vala"
	_g_free0 (loc);
#line 2068 "../src/main.vala"
	return result;
#line 24193 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_array_function_expression (PhpToValaTranspiler* self,
                                                               const gchar* args,
                                                               gint php_line_number,
                                                               GError** error)
{
	GeeArrayList* values = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2071 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2071 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 2072 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 2072 "../src/main.vala"
	values = _tmp0_;
#line 24219 "main.c"
	{
		GeeArrayList* _raw_part_list = NULL;
		GeeArrayList* _tmp1_;
		gint _raw_part_size = 0;
		GeeArrayList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _raw_part_index = 0;
#line 2073 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 2073 "../src/main.vala"
		_raw_part_list = _tmp1_;
#line 2073 "../src/main.vala"
		_tmp2_ = _raw_part_list;
#line 2073 "../src/main.vala"
		_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
#line 2073 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 2073 "../src/main.vala"
		_raw_part_size = _tmp4_;
#line 2073 "../src/main.vala"
		_raw_part_index = -1;
#line 2073 "../src/main.vala"
		while (TRUE) {
#line 24244 "main.c"
			gint _tmp5_;
			gint _tmp6_;
			gchar* raw_part = NULL;
			GeeArrayList* _tmp7_;
			gpointer _tmp8_;
			gchar* part = NULL;
			const gchar* _tmp9_;
			gchar* _tmp10_;
			const gchar* _tmp11_;
			gchar* _tmp12_ = NULL;
			const gchar* _tmp13_;
			gchar* _tmp14_;
			GeeArrayList* _tmp15_;
#line 2073 "../src/main.vala"
			_raw_part_index = _raw_part_index + 1;
#line 2073 "../src/main.vala"
			_tmp5_ = _raw_part_index;
#line 2073 "../src/main.vala"
			_tmp6_ = _raw_part_size;
#line 2073 "../src/main.vala"
			if (!(_tmp5_ < _tmp6_)) {
#line 2073 "../src/main.vala"
				break;
#line 24268 "main.c"
			}
#line 2073 "../src/main.vala"
			_tmp7_ = _raw_part_list;
#line 2073 "../src/main.vala"
			_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _raw_part_index);
#line 2073 "../src/main.vala"
			raw_part = (gchar*) _tmp8_;
#line 2074 "../src/main.vala"
			_tmp9_ = raw_part;
#line 2074 "../src/main.vala"
			_tmp10_ = string_strip (_tmp9_);
#line 2074 "../src/main.vala"
			part = _tmp10_;
#line 2075 "../src/main.vala"
			_tmp11_ = part;
#line 2075 "../src/main.vala"
			if (g_strcmp0 (_tmp11_, "") == 0) {
#line 2076 "../src/main.vala"
				_g_free0 (part);
#line 2076 "../src/main.vala"
				_g_free0 (raw_part);
#line 2076 "../src/main.vala"
				continue;
#line 24292 "main.c"
			}
#line 2078 "../src/main.vala"
			_tmp13_ = part;
#line 2078 "../src/main.vala"
			_tmp14_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp13_, php_line_number, &_inner_error0_);
#line 2078 "../src/main.vala"
			_tmp12_ = _tmp14_;
#line 2078 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2078 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 2078 "../src/main.vala"
				_g_free0 (part);
#line 2078 "../src/main.vala"
				_g_free0 (raw_part);
#line 2078 "../src/main.vala"
				_g_object_unref0 (_raw_part_list);
#line 2078 "../src/main.vala"
				_g_object_unref0 (values);
#line 2078 "../src/main.vala"
				return NULL;
#line 24314 "main.c"
			}
#line 2078 "../src/main.vala"
			_tmp15_ = values;
#line 2078 "../src/main.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp15_, _tmp12_);
#line 2073 "../src/main.vala"
			_g_free0 (_tmp12_);
#line 2073 "../src/main.vala"
			_g_free0 (part);
#line 2073 "../src/main.vala"
			_g_free0 (raw_part);
#line 24326 "main.c"
		}
#line 2073 "../src/main.vala"
		_g_object_unref0 (_raw_part_list);
#line 24330 "main.c"
	}
#line 2080 "../src/main.vala"
	_tmp16_ = values;
#line 2080 "../src/main.vala"
	_tmp17_ = php_to_vala_transpiler_join_strings (_tmp16_, ", ");
#line 2080 "../src/main.vala"
	_tmp18_ = _tmp17_;
#line 2080 "../src/main.vala"
	_tmp19_ = g_strdup_printf ("Php.array_from_values_zval ({ %s })", _tmp18_);
#line 2080 "../src/main.vala"
	_tmp20_ = _tmp19_;
#line 2080 "../src/main.vala"
	_g_free0 (_tmp18_);
#line 2080 "../src/main.vala"
	result = _tmp20_;
#line 2080 "../src/main.vala"
	_g_object_unref0 (values);
#line 2080 "../src/main.vala"
	return result;
#line 24350 "main.c"
}

static gchar*
php_to_vala_transpiler_join_strings (GeeArrayList* values,
                                     const gchar* separator)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* result;
#line 2083 "../src/main.vala"
	g_return_val_if_fail (values != NULL, NULL);
#line 2083 "../src/main.vala"
	g_return_val_if_fail (separator != NULL, NULL);
#line 2084 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 2084 "../src/main.vala"
	output = _tmp0_;
#line 24371 "main.c"
	{
		GeeArrayList* _value_list = NULL;
		gint _value_size = 0;
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _value_index = 0;
#line 2085 "../src/main.vala"
		_value_list = values;
#line 2085 "../src/main.vala"
		_tmp1_ = _value_list;
#line 2085 "../src/main.vala"
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 2085 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 2085 "../src/main.vala"
		_value_size = _tmp3_;
#line 2085 "../src/main.vala"
		_value_index = -1;
#line 2085 "../src/main.vala"
		while (TRUE) {
#line 24393 "main.c"
			gint _tmp4_;
			gint _tmp5_;
			gchar* value = NULL;
			GeeArrayList* _tmp6_;
			gpointer _tmp7_;
			GString* _tmp8_;
			GString* _tmp10_;
			const gchar* _tmp11_;
#line 2085 "../src/main.vala"
			_value_index = _value_index + 1;
#line 2085 "../src/main.vala"
			_tmp4_ = _value_index;
#line 2085 "../src/main.vala"
			_tmp5_ = _value_size;
#line 2085 "../src/main.vala"
			if (!(_tmp4_ < _tmp5_)) {
#line 2085 "../src/main.vala"
				break;
#line 24412 "main.c"
			}
#line 2085 "../src/main.vala"
			_tmp6_ = _value_list;
#line 2085 "../src/main.vala"
			_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _value_index);
#line 2085 "../src/main.vala"
			value = (gchar*) _tmp7_;
#line 2086 "../src/main.vala"
			_tmp8_ = output;
#line 2086 "../src/main.vala"
			if (_tmp8_->len > ((gssize) 0)) {
#line 24424 "main.c"
				GString* _tmp9_;
#line 2087 "../src/main.vala"
				_tmp9_ = output;
#line 2087 "../src/main.vala"
				g_string_append (_tmp9_, separator);
#line 24430 "main.c"
			}
#line 2089 "../src/main.vala"
			_tmp10_ = output;
#line 2089 "../src/main.vala"
			_tmp11_ = value;
#line 2089 "../src/main.vala"
			g_string_append (_tmp10_, _tmp11_);
#line 2085 "../src/main.vala"
			_g_free0 (value);
#line 24440 "main.c"
		}
	}
#line 2091 "../src/main.vala"
	_tmp12_ = output;
#line 2091 "../src/main.vala"
	_tmp13_ = _tmp12_->str;
#line 2091 "../src/main.vala"
	_tmp14_ = g_strdup (_tmp13_);
#line 2091 "../src/main.vala"
	result = _tmp14_;
#line 2091 "../src/main.vala"
	_g_string_free0 (output);
#line 2091 "../src/main.vala"
	return result;
#line 24455 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_argument_list (PhpToValaTranspiler* self,
                                                   const gchar* args,
                                                   gint php_line_number,
                                                   GError** error)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	GString* converted = NULL;
	GString* _tmp4_;
	GString* _tmp22_;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2094 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2094 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 2095 "../src/main.vala"
	_tmp0_ = string_strip (args);
#line 2095 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2095 "../src/main.vala"
	_tmp2_ = g_strcmp0 (_tmp1_, "") == 0;
#line 2095 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 2095 "../src/main.vala"
	if (_tmp2_) {
#line 24488 "main.c"
		gchar* _tmp3_;
#line 2096 "../src/main.vala"
		_tmp3_ = g_strdup ("");
#line 2096 "../src/main.vala"
		result = _tmp3_;
#line 2096 "../src/main.vala"
		return result;
#line 24496 "main.c"
	}
#line 2098 "../src/main.vala"
	_tmp4_ = g_string_new ("");
#line 2098 "../src/main.vala"
	converted = _tmp4_;
#line 24502 "main.c"
	{
		GeeArrayList* _arg_list = NULL;
		GeeArrayList* _tmp5_;
		gint _arg_size = 0;
		GeeArrayList* _tmp6_;
		gint _tmp7_;
		gint _tmp8_;
		gint _arg_index = 0;
#line 2099 "../src/main.vala"
		_tmp5_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 2099 "../src/main.vala"
		_arg_list = _tmp5_;
#line 2099 "../src/main.vala"
		_tmp6_ = _arg_list;
#line 2099 "../src/main.vala"
		_tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
#line 2099 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 2099 "../src/main.vala"
		_arg_size = _tmp8_;
#line 2099 "../src/main.vala"
		_arg_index = -1;
#line 2099 "../src/main.vala"
		while (TRUE) {
#line 24527 "main.c"
			gint _tmp9_;
			gint _tmp10_;
			gchar* arg = NULL;
			GeeArrayList* _tmp11_;
			gpointer _tmp12_;
			GString* _tmp13_;
			gchar* _tmp15_ = NULL;
			const gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
			GString* _tmp21_;
#line 2099 "../src/main.vala"
			_arg_index = _arg_index + 1;
#line 2099 "../src/main.vala"
			_tmp9_ = _arg_index;
#line 2099 "../src/main.vala"
			_tmp10_ = _arg_size;
#line 2099 "../src/main.vala"
			if (!(_tmp9_ < _tmp10_)) {
#line 2099 "../src/main.vala"
				break;
#line 24551 "main.c"
			}
#line 2099 "../src/main.vala"
			_tmp11_ = _arg_list;
#line 2099 "../src/main.vala"
			_tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, _arg_index);
#line 2099 "../src/main.vala"
			arg = (gchar*) _tmp12_;
#line 2100 "../src/main.vala"
			_tmp13_ = converted;
#line 2100 "../src/main.vala"
			if (_tmp13_->len > ((gssize) 0)) {
#line 24563 "main.c"
				GString* _tmp14_;
#line 2101 "../src/main.vala"
				_tmp14_ = converted;
#line 2101 "../src/main.vala"
				g_string_append (_tmp14_, ", ");
#line 24569 "main.c"
			}
#line 2103 "../src/main.vala"
			_tmp16_ = arg;
#line 2103 "../src/main.vala"
			_tmp17_ = string_strip (_tmp16_);
#line 2103 "../src/main.vala"
			_tmp18_ = _tmp17_;
#line 2103 "../src/main.vala"
			_tmp19_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp18_, php_line_number, &_inner_error0_);
#line 2103 "../src/main.vala"
			_tmp20_ = _tmp19_;
#line 2103 "../src/main.vala"
			_g_free0 (_tmp18_);
#line 2103 "../src/main.vala"
			_tmp15_ = _tmp20_;
#line 2103 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2103 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 2103 "../src/main.vala"
				_g_free0 (arg);
#line 2103 "../src/main.vala"
				_g_object_unref0 (_arg_list);
#line 2103 "../src/main.vala"
				_g_string_free0 (converted);
#line 2103 "../src/main.vala"
				return NULL;
#line 24597 "main.c"
			}
#line 2103 "../src/main.vala"
			_tmp21_ = converted;
#line 2103 "../src/main.vala"
			g_string_append (_tmp21_, _tmp15_);
#line 2099 "../src/main.vala"
			_g_free0 (_tmp15_);
#line 2099 "../src/main.vala"
			_g_free0 (arg);
#line 24607 "main.c"
		}
#line 2099 "../src/main.vala"
		_g_object_unref0 (_arg_list);
#line 24611 "main.c"
	}
#line 2105 "../src/main.vala"
	_tmp22_ = converted;
#line 2105 "../src/main.vala"
	_tmp23_ = _tmp22_->str;
#line 2105 "../src/main.vala"
	_tmp24_ = g_strdup (_tmp23_);
#line 2105 "../src/main.vala"
	result = _tmp24_;
#line 2105 "../src/main.vala"
	_g_string_free0 (converted);
#line 2105 "../src/main.vala"
	return result;
#line 24625 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_zval_condition (PhpToValaTranspiler* self,
                                               const gchar* expression,
                                               gint php_line_number,
                                               GError** error)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	GeeArrayList* or_parts = NULL;
	const gchar* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeArrayList* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	GeeArrayList* and_parts = NULL;
	const gchar* _tmp10_;
	GeeArrayList* _tmp11_;
	GeeArrayList* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	const gchar* _tmp19_;
	gchar** operators = NULL;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	gchar* _tmp36_;
	gchar** _tmp37_;
	gint operators_length1;
	gint _operators_size_;
	gchar** _tmp38_;
	gint _tmp38__length1;
	gchar* _tmp87_ = NULL;
	const gchar* _tmp88_;
	gchar* _tmp89_;
	gchar* _tmp90_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2108 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2108 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2109 "../src/main.vala"
	_tmp0_ = string_strip (expression);
#line 2109 "../src/main.vala"
	clean = _tmp0_;
#line 2110 "../src/main.vala"
	_tmp1_ = clean;
#line 2110 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_split_top_level_operator (self, _tmp1_, "||");
#line 2110 "../src/main.vala"
	or_parts = _tmp2_;
#line 2111 "../src/main.vala"
	_tmp3_ = or_parts;
#line 2111 "../src/main.vala"
	_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
#line 2111 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2111 "../src/main.vala"
	if (_tmp5_ > 1) {
#line 24691 "main.c"
		gchar* _tmp6_ = NULL;
		GeeArrayList* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
#line 2112 "../src/main.vala"
		_tmp7_ = or_parts;
#line 2112 "../src/main.vala"
		_tmp8_ = php_to_vala_transpiler_join_zval_conditions (self, _tmp7_, " || ", php_line_number, &_inner_error0_);
#line 2112 "../src/main.vala"
		_tmp6_ = _tmp8_;
#line 2112 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2112 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2112 "../src/main.vala"
			_g_object_unref0 (or_parts);
#line 2112 "../src/main.vala"
			_g_free0 (clean);
#line 2112 "../src/main.vala"
			return NULL;
#line 24712 "main.c"
		}
#line 2112 "../src/main.vala"
		_tmp9_ = _tmp6_;
#line 2112 "../src/main.vala"
		_tmp6_ = NULL;
#line 2112 "../src/main.vala"
		result = _tmp9_;
#line 2112 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 2112 "../src/main.vala"
		_g_object_unref0 (or_parts);
#line 2112 "../src/main.vala"
		_g_free0 (clean);
#line 2112 "../src/main.vala"
		return result;
#line 24728 "main.c"
	}
#line 2114 "../src/main.vala"
	_tmp10_ = clean;
#line 2114 "../src/main.vala"
	_tmp11_ = php_to_vala_transpiler_split_top_level_operator (self, _tmp10_, "&&");
#line 2114 "../src/main.vala"
	and_parts = _tmp11_;
#line 2115 "../src/main.vala"
	_tmp12_ = and_parts;
#line 2115 "../src/main.vala"
	_tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
#line 2115 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 2115 "../src/main.vala"
	if (_tmp14_ > 1) {
#line 24744 "main.c"
		gchar* _tmp15_ = NULL;
		GeeArrayList* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
#line 2116 "../src/main.vala"
		_tmp16_ = and_parts;
#line 2116 "../src/main.vala"
		_tmp17_ = php_to_vala_transpiler_join_zval_conditions (self, _tmp16_, " && ", php_line_number, &_inner_error0_);
#line 2116 "../src/main.vala"
		_tmp15_ = _tmp17_;
#line 2116 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2116 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2116 "../src/main.vala"
			_g_object_unref0 (and_parts);
#line 2116 "../src/main.vala"
			_g_object_unref0 (or_parts);
#line 2116 "../src/main.vala"
			_g_free0 (clean);
#line 2116 "../src/main.vala"
			return NULL;
#line 24767 "main.c"
		}
#line 2116 "../src/main.vala"
		_tmp18_ = _tmp15_;
#line 2116 "../src/main.vala"
		_tmp15_ = NULL;
#line 2116 "../src/main.vala"
		result = _tmp18_;
#line 2116 "../src/main.vala"
		_g_free0 (_tmp15_);
#line 2116 "../src/main.vala"
		_g_object_unref0 (and_parts);
#line 2116 "../src/main.vala"
		_g_object_unref0 (or_parts);
#line 2116 "../src/main.vala"
		_g_free0 (clean);
#line 2116 "../src/main.vala"
		return result;
#line 24785 "main.c"
	}
#line 2118 "../src/main.vala"
	_tmp19_ = clean;
#line 2118 "../src/main.vala"
	if (g_str_has_prefix (_tmp19_, "!")) {
#line 24791 "main.c"
		gchar* _tmp20_ = NULL;
		const gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
#line 2119 "../src/main.vala"
		_tmp21_ = clean;
#line 2119 "../src/main.vala"
		_tmp22_ = string_substring (_tmp21_, (glong) 1, (glong) -1);
#line 2119 "../src/main.vala"
		_tmp23_ = _tmp22_;
#line 2119 "../src/main.vala"
		_tmp24_ = string_strip (_tmp23_);
#line 2119 "../src/main.vala"
		_tmp25_ = _tmp24_;
#line 2119 "../src/main.vala"
		_tmp26_ = php_to_vala_transpiler_convert_zval_condition (self, _tmp25_, php_line_number, &_inner_error0_);
#line 2119 "../src/main.vala"
		_tmp27_ = _tmp26_;
#line 2119 "../src/main.vala"
		_g_free0 (_tmp25_);
#line 2119 "../src/main.vala"
		_g_free0 (_tmp23_);
#line 2119 "../src/main.vala"
		_tmp20_ = _tmp27_;
#line 2119 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2119 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2119 "../src/main.vala"
			_g_object_unref0 (and_parts);
#line 2119 "../src/main.vala"
			_g_object_unref0 (or_parts);
#line 2119 "../src/main.vala"
			_g_free0 (clean);
#line 2119 "../src/main.vala"
			return NULL;
#line 24833 "main.c"
		}
#line 2119 "../src/main.vala"
		_tmp28_ = g_strdup_printf ("!(%s)", _tmp20_);
#line 2119 "../src/main.vala"
		result = _tmp28_;
#line 2119 "../src/main.vala"
		_g_free0 (_tmp20_);
#line 2119 "../src/main.vala"
		_g_object_unref0 (and_parts);
#line 2119 "../src/main.vala"
		_g_object_unref0 (or_parts);
#line 2119 "../src/main.vala"
		_g_free0 (clean);
#line 2119 "../src/main.vala"
		return result;
#line 24849 "main.c"
	}
#line 2121 "../src/main.vala"
	_tmp29_ = g_strdup ("!==");
#line 2121 "../src/main.vala"
	_tmp30_ = g_strdup ("===");
#line 2121 "../src/main.vala"
	_tmp31_ = g_strdup ("!=");
#line 2121 "../src/main.vala"
	_tmp32_ = g_strdup ("==");
#line 2121 "../src/main.vala"
	_tmp33_ = g_strdup (">=");
#line 2121 "../src/main.vala"
	_tmp34_ = g_strdup ("<=");
#line 2121 "../src/main.vala"
	_tmp35_ = g_strdup (">");
#line 2121 "../src/main.vala"
	_tmp36_ = g_strdup ("<");
#line 2121 "../src/main.vala"
	_tmp37_ = g_new0 (gchar*, 8 + 1);
#line 2121 "../src/main.vala"
	_tmp37_[0] = _tmp29_;
#line 2121 "../src/main.vala"
	_tmp37_[1] = _tmp30_;
#line 2121 "../src/main.vala"
	_tmp37_[2] = _tmp31_;
#line 2121 "../src/main.vala"
	_tmp37_[3] = _tmp32_;
#line 2121 "../src/main.vala"
	_tmp37_[4] = _tmp33_;
#line 2121 "../src/main.vala"
	_tmp37_[5] = _tmp34_;
#line 2121 "../src/main.vala"
	_tmp37_[6] = _tmp35_;
#line 2121 "../src/main.vala"
	_tmp37_[7] = _tmp36_;
#line 2121 "../src/main.vala"
	operators = _tmp37_;
#line 2121 "../src/main.vala"
	operators_length1 = 8;
#line 2121 "../src/main.vala"
	_operators_size_ = operators_length1;
#line 2122 "../src/main.vala"
	_tmp38_ = operators;
#line 2122 "../src/main.vala"
	_tmp38__length1 = operators_length1;
#line 24895 "main.c"
	{
		gchar** op_collection = NULL;
		gint op_collection_length1 = 0;
		gint _op_collection_size_ = 0;
		gint op_it = 0;
#line 2122 "../src/main.vala"
		op_collection = _tmp38_;
#line 2122 "../src/main.vala"
		op_collection_length1 = _tmp38__length1;
#line 2122 "../src/main.vala"
		for (op_it = 0; op_it < op_collection_length1; op_it = op_it + 1) {
#line 24907 "main.c"
			gchar* _tmp39_;
			gchar* op = NULL;
#line 2122 "../src/main.vala"
			_tmp39_ = g_strdup (op_collection[op_it]);
#line 2122 "../src/main.vala"
			op = _tmp39_;
#line 24914 "main.c"
			{
				gint index = 0;
				const gchar* _tmp40_;
				const gchar* _tmp41_;
#line 2123 "../src/main.vala"
				_tmp40_ = clean;
#line 2123 "../src/main.vala"
				_tmp41_ = op;
#line 2123 "../src/main.vala"
				index = php_to_vala_transpiler_find_top_level_operator_index (self, _tmp40_, _tmp41_);
#line 2124 "../src/main.vala"
				if (index > 0) {
#line 24927 "main.c"
					gchar* left = NULL;
					const gchar* _tmp42_;
					gchar* _tmp43_;
					gchar* _tmp44_;
					gchar* _tmp45_;
					gchar* _tmp46_;
					gchar* _tmp47_;
					gchar* _tmp48_;
					gchar* right = NULL;
					const gchar* _tmp49_;
					const gchar* _tmp50_;
					gint _tmp51_;
					gint _tmp52_;
					gchar* _tmp53_;
					gchar* _tmp54_;
					gchar* _tmp55_;
					gchar* _tmp56_;
					gchar* _tmp57_;
					gchar* _tmp58_;
					const gchar* _tmp59_;
					const gchar* _tmp60_;
					GQuark _tmp62_ = 0U;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label0 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label1 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label2 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label3 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label4 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label5 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label6 = 0;
#line 2127 "../src/main.vala"
					static GQuark _tmp61_label7 = 0;
#line 2125 "../src/main.vala"
					_tmp42_ = clean;
#line 2125 "../src/main.vala"
					_tmp43_ = string_substring (_tmp42_, (glong) 0, (glong) index);
#line 2125 "../src/main.vala"
					_tmp44_ = _tmp43_;
#line 2125 "../src/main.vala"
					_tmp45_ = string_strip (_tmp44_);
#line 2125 "../src/main.vala"
					_tmp46_ = _tmp45_;
#line 2125 "../src/main.vala"
					_tmp47_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp46_, php_line_number, &_inner_error0_);
#line 2125 "../src/main.vala"
					_tmp48_ = _tmp47_;
#line 2125 "../src/main.vala"
					_g_free0 (_tmp46_);
#line 2125 "../src/main.vala"
					_g_free0 (_tmp44_);
#line 2125 "../src/main.vala"
					left = _tmp48_;
#line 2125 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2125 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2125 "../src/main.vala"
						_g_free0 (op);
#line 2125 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2125 "../src/main.vala"
						_g_object_unref0 (and_parts);
#line 2125 "../src/main.vala"
						_g_object_unref0 (or_parts);
#line 2125 "../src/main.vala"
						_g_free0 (clean);
#line 2125 "../src/main.vala"
						return NULL;
#line 25002 "main.c"
					}
#line 2126 "../src/main.vala"
					_tmp49_ = clean;
#line 2126 "../src/main.vala"
					_tmp50_ = op;
#line 2126 "../src/main.vala"
					_tmp51_ = strlen (_tmp50_);
#line 2126 "../src/main.vala"
					_tmp52_ = _tmp51_;
#line 2126 "../src/main.vala"
					_tmp53_ = string_substring (_tmp49_, (glong) (index + _tmp52_), (glong) -1);
#line 2126 "../src/main.vala"
					_tmp54_ = _tmp53_;
#line 2126 "../src/main.vala"
					_tmp55_ = string_strip (_tmp54_);
#line 2126 "../src/main.vala"
					_tmp56_ = _tmp55_;
#line 2126 "../src/main.vala"
					_tmp57_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp56_, php_line_number, &_inner_error0_);
#line 2126 "../src/main.vala"
					_tmp58_ = _tmp57_;
#line 2126 "../src/main.vala"
					_g_free0 (_tmp56_);
#line 2126 "../src/main.vala"
					_g_free0 (_tmp54_);
#line 2126 "../src/main.vala"
					right = _tmp58_;
#line 2126 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2126 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2126 "../src/main.vala"
						_g_free0 (left);
#line 2126 "../src/main.vala"
						_g_free0 (op);
#line 2126 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2126 "../src/main.vala"
						_g_object_unref0 (and_parts);
#line 2126 "../src/main.vala"
						_g_object_unref0 (or_parts);
#line 2126 "../src/main.vala"
						_g_free0 (clean);
#line 2126 "../src/main.vala"
						return NULL;
#line 25048 "main.c"
					}
#line 2127 "../src/main.vala"
					_tmp59_ = op;
#line 2127 "../src/main.vala"
					_tmp60_ = _tmp59_;
#line 2127 "../src/main.vala"
					_tmp62_ = (NULL == _tmp60_) ? 0 : g_quark_from_string (_tmp60_);
#line 2127 "../src/main.vala"
					if (_tmp62_ == ((0 != _tmp61_label0) ? _tmp61_label0 : (_tmp61_label0 = g_quark_from_static_string ("!==")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25060 "main.c"
							default:
							{
								const gchar* _tmp63_;
								const gchar* _tmp64_;
								gchar* _tmp65_;
#line 2129 "../src/main.vala"
								_tmp63_ = left;
#line 2129 "../src/main.vala"
								_tmp64_ = right;
#line 2129 "../src/main.vala"
								_tmp65_ = g_strdup_printf ("Php.strict_ne (%s, %s)", _tmp63_, _tmp64_);
#line 2129 "../src/main.vala"
								result = _tmp65_;
#line 2129 "../src/main.vala"
								_g_free0 (right);
#line 2129 "../src/main.vala"
								_g_free0 (left);
#line 2129 "../src/main.vala"
								_g_free0 (op);
#line 2129 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2129 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2129 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2129 "../src/main.vala"
								_g_free0 (clean);
#line 2129 "../src/main.vala"
								return result;
#line 25090 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label1) ? _tmp61_label1 : (_tmp61_label1 = g_quark_from_static_string ("!=")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25096 "main.c"
							default:
							{
								const gchar* _tmp66_;
								const gchar* _tmp67_;
								gchar* _tmp68_;
#line 2131 "../src/main.vala"
								_tmp66_ = left;
#line 2131 "../src/main.vala"
								_tmp67_ = right;
#line 2131 "../src/main.vala"
								_tmp68_ = g_strdup_printf ("Php.ne (%s, %s)", _tmp66_, _tmp67_);
#line 2131 "../src/main.vala"
								result = _tmp68_;
#line 2131 "../src/main.vala"
								_g_free0 (right);
#line 2131 "../src/main.vala"
								_g_free0 (left);
#line 2131 "../src/main.vala"
								_g_free0 (op);
#line 2131 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2131 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2131 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2131 "../src/main.vala"
								_g_free0 (clean);
#line 2131 "../src/main.vala"
								return result;
#line 25126 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label2) ? _tmp61_label2 : (_tmp61_label2 = g_quark_from_static_string ("===")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25132 "main.c"
							default:
							{
								const gchar* _tmp69_;
								const gchar* _tmp70_;
								gchar* _tmp71_;
#line 2133 "../src/main.vala"
								_tmp69_ = left;
#line 2133 "../src/main.vala"
								_tmp70_ = right;
#line 2133 "../src/main.vala"
								_tmp71_ = g_strdup_printf ("Php.strict_eq (%s, %s)", _tmp69_, _tmp70_);
#line 2133 "../src/main.vala"
								result = _tmp71_;
#line 2133 "../src/main.vala"
								_g_free0 (right);
#line 2133 "../src/main.vala"
								_g_free0 (left);
#line 2133 "../src/main.vala"
								_g_free0 (op);
#line 2133 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2133 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2133 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2133 "../src/main.vala"
								_g_free0 (clean);
#line 2133 "../src/main.vala"
								return result;
#line 25162 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label3) ? _tmp61_label3 : (_tmp61_label3 = g_quark_from_static_string ("==")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25168 "main.c"
							default:
							{
								const gchar* _tmp72_;
								const gchar* _tmp73_;
								gchar* _tmp74_;
#line 2135 "../src/main.vala"
								_tmp72_ = left;
#line 2135 "../src/main.vala"
								_tmp73_ = right;
#line 2135 "../src/main.vala"
								_tmp74_ = g_strdup_printf ("Php.eq (%s, %s)", _tmp72_, _tmp73_);
#line 2135 "../src/main.vala"
								result = _tmp74_;
#line 2135 "../src/main.vala"
								_g_free0 (right);
#line 2135 "../src/main.vala"
								_g_free0 (left);
#line 2135 "../src/main.vala"
								_g_free0 (op);
#line 2135 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2135 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2135 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2135 "../src/main.vala"
								_g_free0 (clean);
#line 2135 "../src/main.vala"
								return result;
#line 25198 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label4) ? _tmp61_label4 : (_tmp61_label4 = g_quark_from_static_string (">")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25204 "main.c"
							default:
							{
								const gchar* _tmp75_;
								const gchar* _tmp76_;
								gchar* _tmp77_;
#line 2137 "../src/main.vala"
								_tmp75_ = left;
#line 2137 "../src/main.vala"
								_tmp76_ = right;
#line 2137 "../src/main.vala"
								_tmp77_ = g_strdup_printf ("Php.zval_to_double (%s) > Php.zval_to_double (%s)", _tmp75_, _tmp76_);
#line 2137 "../src/main.vala"
								result = _tmp77_;
#line 2137 "../src/main.vala"
								_g_free0 (right);
#line 2137 "../src/main.vala"
								_g_free0 (left);
#line 2137 "../src/main.vala"
								_g_free0 (op);
#line 2137 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2137 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2137 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2137 "../src/main.vala"
								_g_free0 (clean);
#line 2137 "../src/main.vala"
								return result;
#line 25234 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label5) ? _tmp61_label5 : (_tmp61_label5 = g_quark_from_static_string ("<")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25240 "main.c"
							default:
							{
								const gchar* _tmp78_;
								const gchar* _tmp79_;
								gchar* _tmp80_;
#line 2139 "../src/main.vala"
								_tmp78_ = left;
#line 2139 "../src/main.vala"
								_tmp79_ = right;
#line 2139 "../src/main.vala"
								_tmp80_ = g_strdup_printf ("Php.zval_to_double (%s) < Php.zval_to_double (%s)", _tmp78_, _tmp79_);
#line 2139 "../src/main.vala"
								result = _tmp80_;
#line 2139 "../src/main.vala"
								_g_free0 (right);
#line 2139 "../src/main.vala"
								_g_free0 (left);
#line 2139 "../src/main.vala"
								_g_free0 (op);
#line 2139 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2139 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2139 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2139 "../src/main.vala"
								_g_free0 (clean);
#line 2139 "../src/main.vala"
								return result;
#line 25270 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label6) ? _tmp61_label6 : (_tmp61_label6 = g_quark_from_static_string (">=")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25276 "main.c"
							default:
							{
								const gchar* _tmp81_;
								const gchar* _tmp82_;
								gchar* _tmp83_;
#line 2141 "../src/main.vala"
								_tmp81_ = left;
#line 2141 "../src/main.vala"
								_tmp82_ = right;
#line 2141 "../src/main.vala"
								_tmp83_ = g_strdup_printf ("Php.zval_to_double (%s) >= Php.zval_to_double (%s)", _tmp81_, _tmp82_);
#line 2141 "../src/main.vala"
								result = _tmp83_;
#line 2141 "../src/main.vala"
								_g_free0 (right);
#line 2141 "../src/main.vala"
								_g_free0 (left);
#line 2141 "../src/main.vala"
								_g_free0 (op);
#line 2141 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2141 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2141 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2141 "../src/main.vala"
								_g_free0 (clean);
#line 2141 "../src/main.vala"
								return result;
#line 25306 "main.c"
							}
						}
					} else if (_tmp62_ == ((0 != _tmp61_label7) ? _tmp61_label7 : (_tmp61_label7 = g_quark_from_static_string ("<=")))) {
#line 2127 "../src/main.vala"
						switch (0) {
#line 25312 "main.c"
							default:
							{
								const gchar* _tmp84_;
								const gchar* _tmp85_;
								gchar* _tmp86_;
#line 2143 "../src/main.vala"
								_tmp84_ = left;
#line 2143 "../src/main.vala"
								_tmp85_ = right;
#line 2143 "../src/main.vala"
								_tmp86_ = g_strdup_printf ("Php.zval_to_double (%s) <= Php.zval_to_double (%s)", _tmp84_, _tmp85_);
#line 2143 "../src/main.vala"
								result = _tmp86_;
#line 2143 "../src/main.vala"
								_g_free0 (right);
#line 2143 "../src/main.vala"
								_g_free0 (left);
#line 2143 "../src/main.vala"
								_g_free0 (op);
#line 2143 "../src/main.vala"
								operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2143 "../src/main.vala"
								_g_object_unref0 (and_parts);
#line 2143 "../src/main.vala"
								_g_object_unref0 (or_parts);
#line 2143 "../src/main.vala"
								_g_free0 (clean);
#line 2143 "../src/main.vala"
								return result;
#line 25342 "main.c"
							}
						}
					}
#line 2124 "../src/main.vala"
					_g_free0 (right);
#line 2124 "../src/main.vala"
					_g_free0 (left);
#line 25350 "main.c"
				}
#line 2122 "../src/main.vala"
				_g_free0 (op);
#line 25354 "main.c"
			}
		}
	}
#line 2147 "../src/main.vala"
	_tmp88_ = clean;
#line 2147 "../src/main.vala"
	_tmp89_ = php_to_vala_transpiler_convert_zval_expression (self, _tmp88_, php_line_number, &_inner_error0_);
#line 2147 "../src/main.vala"
	_tmp87_ = _tmp89_;
#line 2147 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2147 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2147 "../src/main.vala"
		operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2147 "../src/main.vala"
		_g_object_unref0 (and_parts);
#line 2147 "../src/main.vala"
		_g_object_unref0 (or_parts);
#line 2147 "../src/main.vala"
		_g_free0 (clean);
#line 2147 "../src/main.vala"
		return NULL;
#line 25378 "main.c"
	}
#line 2147 "../src/main.vala"
	_tmp90_ = g_strdup_printf ("Php.truthy (%s)", _tmp87_);
#line 2147 "../src/main.vala"
	result = _tmp90_;
#line 2147 "../src/main.vala"
	_g_free0 (_tmp87_);
#line 2147 "../src/main.vala"
	operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2147 "../src/main.vala"
	_g_object_unref0 (and_parts);
#line 2147 "../src/main.vala"
	_g_object_unref0 (or_parts);
#line 2147 "../src/main.vala"
	_g_free0 (clean);
#line 2147 "../src/main.vala"
	return result;
#line 25396 "main.c"
}

static gchar*
php_to_vala_transpiler_join_zval_conditions (PhpToValaTranspiler* self,
                                             GeeArrayList* parts,
                                             const gchar* op,
                                             gint php_line_number,
                                             GError** error)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2150 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2150 "../src/main.vala"
	g_return_val_if_fail (parts != NULL, NULL);
#line 2150 "../src/main.vala"
	g_return_val_if_fail (op != NULL, NULL);
#line 2151 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 2151 "../src/main.vala"
	output = _tmp0_;
#line 25423 "main.c"
	{
		GeeArrayList* _part_list = NULL;
		gint _part_size = 0;
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _part_index = 0;
#line 2152 "../src/main.vala"
		_part_list = parts;
#line 2152 "../src/main.vala"
		_tmp1_ = _part_list;
#line 2152 "../src/main.vala"
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 2152 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 2152 "../src/main.vala"
		_part_size = _tmp3_;
#line 2152 "../src/main.vala"
		_part_index = -1;
#line 2152 "../src/main.vala"
		while (TRUE) {
#line 25445 "main.c"
			gint _tmp4_;
			gint _tmp5_;
			gchar* part = NULL;
			GeeArrayList* _tmp6_;
			gpointer _tmp7_;
			GString* _tmp8_;
			gchar* _tmp10_ = NULL;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
			GString* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
#line 2152 "../src/main.vala"
			_part_index = _part_index + 1;
#line 2152 "../src/main.vala"
			_tmp4_ = _part_index;
#line 2152 "../src/main.vala"
			_tmp5_ = _part_size;
#line 2152 "../src/main.vala"
			if (!(_tmp4_ < _tmp5_)) {
#line 2152 "../src/main.vala"
				break;
#line 25473 "main.c"
			}
#line 2152 "../src/main.vala"
			_tmp6_ = _part_list;
#line 2152 "../src/main.vala"
			_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _part_index);
#line 2152 "../src/main.vala"
			part = (gchar*) _tmp7_;
#line 2153 "../src/main.vala"
			_tmp8_ = output;
#line 2153 "../src/main.vala"
			if (_tmp8_->len > ((gssize) 0)) {
#line 25485 "main.c"
				GString* _tmp9_;
#line 2154 "../src/main.vala"
				_tmp9_ = output;
#line 2154 "../src/main.vala"
				g_string_append (_tmp9_, op);
#line 25491 "main.c"
			}
#line 2156 "../src/main.vala"
			_tmp11_ = part;
#line 2156 "../src/main.vala"
			_tmp12_ = string_strip (_tmp11_);
#line 2156 "../src/main.vala"
			_tmp13_ = _tmp12_;
#line 2156 "../src/main.vala"
			_tmp14_ = php_to_vala_transpiler_convert_zval_condition (self, _tmp13_, php_line_number, &_inner_error0_);
#line 2156 "../src/main.vala"
			_tmp15_ = _tmp14_;
#line 2156 "../src/main.vala"
			_g_free0 (_tmp13_);
#line 2156 "../src/main.vala"
			_tmp10_ = _tmp15_;
#line 2156 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2156 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 2156 "../src/main.vala"
				_g_free0 (part);
#line 2156 "../src/main.vala"
				_g_string_free0 (output);
#line 2156 "../src/main.vala"
				return NULL;
#line 25517 "main.c"
			}
#line 2156 "../src/main.vala"
			_tmp16_ = output;
#line 2156 "../src/main.vala"
			_tmp17_ = g_strconcat ("(", _tmp10_, NULL);
#line 2156 "../src/main.vala"
			_tmp18_ = _tmp17_;
#line 2156 "../src/main.vala"
			_tmp19_ = g_strconcat (_tmp18_, ")", NULL);
#line 2156 "../src/main.vala"
			_tmp20_ = _tmp19_;
#line 2156 "../src/main.vala"
			g_string_append (_tmp16_, _tmp20_);
#line 2156 "../src/main.vala"
			_g_free0 (_tmp20_);
#line 2156 "../src/main.vala"
			_g_free0 (_tmp18_);
#line 2152 "../src/main.vala"
			_g_free0 (_tmp10_);
#line 2152 "../src/main.vala"
			_g_free0 (part);
#line 25539 "main.c"
		}
	}
#line 2158 "../src/main.vala"
	_tmp21_ = output;
#line 2158 "../src/main.vala"
	_tmp22_ = _tmp21_->str;
#line 2158 "../src/main.vala"
	_tmp23_ = g_strdup (_tmp22_);
#line 2158 "../src/main.vala"
	result = _tmp23_;
#line 2158 "../src/main.vala"
	_g_string_free0 (output);
#line 2158 "../src/main.vala"
	return result;
#line 25554 "main.c"
}

static GeeArrayList*
php_to_vala_transpiler_split_top_level_operator (PhpToValaTranspiler* self,
                                                 const gchar* expression,
                                                 const gchar* op)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GString* current = NULL;
	GString* _tmp1_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	gint i = 0;
	GeeArrayList* _tmp24_;
	GString* _tmp25_;
	const gchar* _tmp26_;
	GeeArrayList* result;
#line 2161 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2161 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2161 "../src/main.vala"
	g_return_val_if_fail (op != NULL, NULL);
#line 2162 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 2162 "../src/main.vala"
	parts = _tmp0_;
#line 2163 "../src/main.vala"
	_tmp1_ = g_string_new ("");
#line 2163 "../src/main.vala"
	current = _tmp1_;
#line 2164 "../src/main.vala"
	in_single_quote = FALSE;
#line 2165 "../src/main.vala"
	in_double_quote = FALSE;
#line 2166 "../src/main.vala"
	depth = 0;
#line 2167 "../src/main.vala"
	i = 0;
#line 2168 "../src/main.vala"
	while (TRUE) {
#line 25598 "main.c"
		gint _tmp2_;
		gint _tmp3_;
		gchar c = '\0';
		gboolean _tmp4_ = FALSE;
		GString* _tmp22_;
		gint _tmp23_;
#line 2168 "../src/main.vala"
		_tmp2_ = strlen (expression);
#line 2168 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 2168 "../src/main.vala"
		if (!(i < _tmp3_)) {
#line 2168 "../src/main.vala"
			break;
#line 25613 "main.c"
		}
#line 2169 "../src/main.vala"
		c = string_get (expression, (glong) i);
#line 2170 "../src/main.vala"
		if (c == '\'') {
#line 2170 "../src/main.vala"
			_tmp4_ = !in_double_quote;
#line 25621 "main.c"
		} else {
#line 2170 "../src/main.vala"
			_tmp4_ = FALSE;
#line 25625 "main.c"
		}
#line 2170 "../src/main.vala"
		if (_tmp4_) {
#line 2171 "../src/main.vala"
			in_single_quote = !in_single_quote;
#line 25631 "main.c"
		} else {
			gboolean _tmp5_ = FALSE;
#line 2172 "../src/main.vala"
			if (c == '"') {
#line 2172 "../src/main.vala"
				_tmp5_ = !in_single_quote;
#line 25638 "main.c"
			} else {
#line 2172 "../src/main.vala"
				_tmp5_ = FALSE;
#line 25642 "main.c"
			}
#line 2172 "../src/main.vala"
			if (_tmp5_) {
#line 2173 "../src/main.vala"
				in_double_quote = !in_double_quote;
#line 25648 "main.c"
			} else {
				gboolean _tmp6_ = FALSE;
#line 2174 "../src/main.vala"
				if (!in_single_quote) {
#line 2174 "../src/main.vala"
					_tmp6_ = !in_double_quote;
#line 25655 "main.c"
				} else {
#line 2174 "../src/main.vala"
					_tmp6_ = FALSE;
#line 25659 "main.c"
				}
#line 2174 "../src/main.vala"
				if (_tmp6_) {
#line 25663 "main.c"
					gboolean _tmp7_ = FALSE;
					gboolean _tmp8_ = FALSE;
#line 2175 "../src/main.vala"
					if (c == '(') {
#line 2175 "../src/main.vala"
						_tmp8_ = TRUE;
#line 25670 "main.c"
					} else {
#line 2175 "../src/main.vala"
						_tmp8_ = c == '[';
#line 25674 "main.c"
					}
#line 2175 "../src/main.vala"
					if (_tmp8_) {
#line 2175 "../src/main.vala"
						_tmp7_ = TRUE;
#line 25680 "main.c"
					} else {
#line 2175 "../src/main.vala"
						_tmp7_ = c == '{';
#line 25684 "main.c"
					}
#line 2175 "../src/main.vala"
					if (_tmp7_) {
#line 25688 "main.c"
						gint _tmp9_;
#line 2176 "../src/main.vala"
						_tmp9_ = depth;
#line 2176 "../src/main.vala"
						depth = _tmp9_ + 1;
#line 25694 "main.c"
					} else {
						gboolean _tmp10_ = FALSE;
						gboolean _tmp11_ = FALSE;
#line 2177 "../src/main.vala"
						if (c == ')') {
#line 2177 "../src/main.vala"
							_tmp11_ = TRUE;
#line 25702 "main.c"
						} else {
#line 2177 "../src/main.vala"
							_tmp11_ = c == ']';
#line 25706 "main.c"
						}
#line 2177 "../src/main.vala"
						if (_tmp11_) {
#line 2177 "../src/main.vala"
							_tmp10_ = TRUE;
#line 25712 "main.c"
						} else {
#line 2177 "../src/main.vala"
							_tmp10_ = c == '}';
#line 25716 "main.c"
						}
#line 2177 "../src/main.vala"
						if (_tmp10_) {
#line 25720 "main.c"
							gint _tmp12_;
#line 2178 "../src/main.vala"
							_tmp12_ = depth;
#line 2178 "../src/main.vala"
							depth = _tmp12_ - 1;
#line 25726 "main.c"
						} else {
							gboolean _tmp13_ = FALSE;
#line 2179 "../src/main.vala"
							if (depth == 0) {
#line 25731 "main.c"
								gchar* _tmp14_;
								gchar* _tmp15_;
#line 2179 "../src/main.vala"
								_tmp14_ = string_substring (expression, (glong) i, (glong) -1);
#line 2179 "../src/main.vala"
								_tmp15_ = _tmp14_;
#line 2179 "../src/main.vala"
								_tmp13_ = g_str_has_prefix (_tmp15_, op);
#line 2179 "../src/main.vala"
								_g_free0 (_tmp15_);
#line 25742 "main.c"
							} else {
#line 2179 "../src/main.vala"
								_tmp13_ = FALSE;
#line 25746 "main.c"
							}
#line 2179 "../src/main.vala"
							if (_tmp13_) {
#line 25750 "main.c"
								GeeArrayList* _tmp16_;
								GString* _tmp17_;
								const gchar* _tmp18_;
								GString* _tmp19_;
								gint _tmp20_;
								gint _tmp21_;
#line 2180 "../src/main.vala"
								_tmp16_ = parts;
#line 2180 "../src/main.vala"
								_tmp17_ = current;
#line 2180 "../src/main.vala"
								_tmp18_ = _tmp17_->str;
#line 2180 "../src/main.vala"
								gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp18_);
#line 2181 "../src/main.vala"
								_tmp19_ = current;
#line 2181 "../src/main.vala"
								g_string_truncate (_tmp19_, (gsize) 0);
#line 2182 "../src/main.vala"
								_tmp20_ = strlen (op);
#line 2182 "../src/main.vala"
								_tmp21_ = _tmp20_;
#line 2182 "../src/main.vala"
								i += _tmp21_;
#line 2183 "../src/main.vala"
								continue;
#line 25777 "main.c"
							}
						}
					}
				}
			}
		}
#line 2186 "../src/main.vala"
		_tmp22_ = current;
#line 2186 "../src/main.vala"
		g_string_append_c (_tmp22_, c);
#line 2187 "../src/main.vala"
		_tmp23_ = i;
#line 2187 "../src/main.vala"
		i = _tmp23_ + 1;
#line 25792 "main.c"
	}
#line 2189 "../src/main.vala"
	_tmp24_ = parts;
#line 2189 "../src/main.vala"
	_tmp25_ = current;
#line 2189 "../src/main.vala"
	_tmp26_ = _tmp25_->str;
#line 2189 "../src/main.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _tmp26_);
#line 2190 "../src/main.vala"
	result = parts;
#line 2190 "../src/main.vala"
	_g_string_free0 (current);
#line 2190 "../src/main.vala"
	return result;
#line 25808 "main.c"
}

static gint
php_to_vala_transpiler_find_top_level_operator_index (PhpToValaTranspiler* self,
                                                      const gchar* expression,
                                                      const gchar* op)
{
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	gint result;
#line 2193 "../src/main.vala"
	g_return_val_if_fail (self != NULL, -1);
#line 2193 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, -1);
#line 2193 "../src/main.vala"
	g_return_val_if_fail (op != NULL, -1);
#line 2194 "../src/main.vala"
	in_single_quote = FALSE;
#line 2195 "../src/main.vala"
	in_double_quote = FALSE;
#line 2196 "../src/main.vala"
	depth = 0;
#line 25832 "main.c"
	{
		gint i = 0;
#line 2197 "../src/main.vala"
		i = 0;
#line 25837 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 2197 "../src/main.vala"
			_tmp0_ = TRUE;
#line 2197 "../src/main.vala"
			while (TRUE) {
#line 25844 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
				gboolean _tmp4_ = FALSE;
#line 2197 "../src/main.vala"
				if (!_tmp0_) {
#line 25851 "main.c"
					gint _tmp1_;
#line 2197 "../src/main.vala"
					_tmp1_ = i;
#line 2197 "../src/main.vala"
					i = _tmp1_ + 1;
#line 25857 "main.c"
				}
#line 2197 "../src/main.vala"
				_tmp0_ = FALSE;
#line 2197 "../src/main.vala"
				_tmp2_ = strlen (expression);
#line 2197 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 2197 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 2197 "../src/main.vala"
					break;
#line 25869 "main.c"
				}
#line 2198 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 2199 "../src/main.vala"
				if (c == '\'') {
#line 2199 "../src/main.vala"
					_tmp4_ = !in_double_quote;
#line 25877 "main.c"
				} else {
#line 2199 "../src/main.vala"
					_tmp4_ = FALSE;
#line 25881 "main.c"
				}
#line 2199 "../src/main.vala"
				if (_tmp4_) {
#line 2200 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 25887 "main.c"
				} else {
					gboolean _tmp5_ = FALSE;
#line 2201 "../src/main.vala"
					if (c == '"') {
#line 2201 "../src/main.vala"
						_tmp5_ = !in_single_quote;
#line 25894 "main.c"
					} else {
#line 2201 "../src/main.vala"
						_tmp5_ = FALSE;
#line 25898 "main.c"
					}
#line 2201 "../src/main.vala"
					if (_tmp5_) {
#line 2202 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 25904 "main.c"
					} else {
						gboolean _tmp6_ = FALSE;
#line 2203 "../src/main.vala"
						if (!in_single_quote) {
#line 2203 "../src/main.vala"
							_tmp6_ = !in_double_quote;
#line 25911 "main.c"
						} else {
#line 2203 "../src/main.vala"
							_tmp6_ = FALSE;
#line 25915 "main.c"
						}
#line 2203 "../src/main.vala"
						if (_tmp6_) {
#line 25919 "main.c"
							gboolean _tmp7_ = FALSE;
							gboolean _tmp8_ = FALSE;
#line 2204 "../src/main.vala"
							if (c == '(') {
#line 2204 "../src/main.vala"
								_tmp8_ = TRUE;
#line 25926 "main.c"
							} else {
#line 2204 "../src/main.vala"
								_tmp8_ = c == '[';
#line 25930 "main.c"
							}
#line 2204 "../src/main.vala"
							if (_tmp8_) {
#line 2204 "../src/main.vala"
								_tmp7_ = TRUE;
#line 25936 "main.c"
							} else {
#line 2204 "../src/main.vala"
								_tmp7_ = c == '{';
#line 25940 "main.c"
							}
#line 2204 "../src/main.vala"
							if (_tmp7_) {
#line 25944 "main.c"
								gint _tmp9_;
#line 2205 "../src/main.vala"
								_tmp9_ = depth;
#line 2205 "../src/main.vala"
								depth = _tmp9_ + 1;
#line 25950 "main.c"
							} else {
								gboolean _tmp10_ = FALSE;
								gboolean _tmp11_ = FALSE;
#line 2206 "../src/main.vala"
								if (c == ')') {
#line 2206 "../src/main.vala"
									_tmp11_ = TRUE;
#line 25958 "main.c"
								} else {
#line 2206 "../src/main.vala"
									_tmp11_ = c == ']';
#line 25962 "main.c"
								}
#line 2206 "../src/main.vala"
								if (_tmp11_) {
#line 2206 "../src/main.vala"
									_tmp10_ = TRUE;
#line 25968 "main.c"
								} else {
#line 2206 "../src/main.vala"
									_tmp10_ = c == '}';
#line 25972 "main.c"
								}
#line 2206 "../src/main.vala"
								if (_tmp10_) {
#line 25976 "main.c"
									gint _tmp12_;
#line 2207 "../src/main.vala"
									_tmp12_ = depth;
#line 2207 "../src/main.vala"
									depth = _tmp12_ - 1;
#line 25982 "main.c"
								} else {
									gboolean _tmp13_ = FALSE;
#line 2208 "../src/main.vala"
									if (depth == 0) {
#line 25987 "main.c"
										gchar* _tmp14_;
										gchar* _tmp15_;
#line 2208 "../src/main.vala"
										_tmp14_ = string_substring (expression, (glong) i, (glong) -1);
#line 2208 "../src/main.vala"
										_tmp15_ = _tmp14_;
#line 2208 "../src/main.vala"
										_tmp13_ = g_str_has_prefix (_tmp15_, op);
#line 2208 "../src/main.vala"
										_g_free0 (_tmp15_);
#line 25998 "main.c"
									} else {
#line 2208 "../src/main.vala"
										_tmp13_ = FALSE;
#line 26002 "main.c"
									}
#line 2208 "../src/main.vala"
									if (_tmp13_) {
#line 2209 "../src/main.vala"
										result = i;
#line 2209 "../src/main.vala"
										return result;
#line 26010 "main.c"
									}
								}
							}
						}
					}
				}
			}
		}
	}
#line 2213 "../src/main.vala"
	result = -1;
#line 2213 "../src/main.vala"
	return result;
#line 26024 "main.c"
}

gchar*
php_to_vala_transpiler_transpile_line (PhpToValaTranspiler* self,
                                       const gchar* line,
                                       gint php_line_number,
                                       GError** error)
{
	gboolean _tmp41_ = FALSE;
	gboolean _tmp53_ = FALSE;
	gboolean _tmp57_ = FALSE;
	gboolean _tmp61_ = FALSE;
	gboolean _tmp65_ = FALSE;
	gboolean _tmp81_ = FALSE;
	GMatchInfo* match = NULL;
	gchar* compound_assignment = NULL;
	gchar* _tmp87_;
	const gchar* _tmp88_;
	gchar* array_assignment = NULL;
	gchar* _tmp89_;
	const gchar* _tmp90_;
	gchar* assignment_name = NULL;
	gchar* _tmp91_;
	const gchar* _tmp92_;
	GRegex* _tmp190_;
	GMatchInfo* _tmp191_ = NULL;
	gboolean _tmp192_;
	GRegex* _tmp294_;
	GMatchInfo* _tmp295_ = NULL;
	gboolean _tmp296_;
	gint static_call_index = 0;
	gboolean _tmp353_ = FALSE;
	GError* _tmp355_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2215 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2215 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2216 "../src/main.vala"
	if (g_str_has_prefix (line, "//")) {
#line 26066 "main.c"
		gchar* _tmp0_;
#line 2217 "../src/main.vala"
		_tmp0_ = g_strdup (line);
#line 2217 "../src/main.vala"
		result = _tmp0_;
#line 2217 "../src/main.vala"
		return result;
#line 26074 "main.c"
	}
#line 2219 "../src/main.vala"
	if (g_str_has_prefix (line, "#")) {
#line 26078 "main.c"
		gchar* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
#line 2220 "../src/main.vala"
		_tmp1_ = string_substring (line, (glong) 1, (glong) -1);
#line 2220 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 2220 "../src/main.vala"
		_tmp3_ = g_strconcat ("//", _tmp2_, NULL);
#line 2220 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 2220 "../src/main.vala"
		_g_free0 (_tmp2_);
#line 2220 "../src/main.vala"
		result = _tmp4_;
#line 2220 "../src/main.vala"
		return result;
#line 26097 "main.c"
	}
#line 2222 "../src/main.vala"
	if (g_str_has_prefix (line, "/*")) {
#line 26101 "main.c"
		gchar* _tmp5_;
#line 2223 "../src/main.vala"
		_tmp5_ = string_replace (line, "\n", "\n        ");
#line 2223 "../src/main.vala"
		result = _tmp5_;
#line 2223 "../src/main.vala"
		return result;
#line 26109 "main.c"
	}
#line 2225 "../src/main.vala"
	if (g_str_has_prefix (line, "@")) {
#line 26113 "main.c"
		gchar* _tmp6_ = NULL;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
#line 2226 "../src/main.vala"
		_tmp7_ = string_substring (line, (glong) 1, (glong) -1);
#line 2226 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 2226 "../src/main.vala"
		_tmp9_ = string_strip (_tmp8_);
#line 2226 "../src/main.vala"
		_tmp10_ = _tmp9_;
#line 2226 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_transpile_line (self, _tmp10_, php_line_number, &_inner_error0_);
#line 2226 "../src/main.vala"
		_tmp12_ = _tmp11_;
#line 2226 "../src/main.vala"
		_g_free0 (_tmp10_);
#line 2226 "../src/main.vala"
		_g_free0 (_tmp8_);
#line 2226 "../src/main.vala"
		_tmp6_ = _tmp12_;
#line 2226 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2226 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2226 "../src/main.vala"
			return NULL;
#line 26146 "main.c"
		}
#line 2226 "../src/main.vala"
		_tmp13_ = _tmp6_;
#line 2226 "../src/main.vala"
		_tmp6_ = NULL;
#line 2226 "../src/main.vala"
		result = _tmp13_;
#line 2226 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 2226 "../src/main.vala"
		return result;
#line 26158 "main.c"
	}
#line 2228 "../src/main.vala"
	if (g_str_has_suffix (line, ";flush();")) {
#line 26162 "main.c"
		gchar* first = NULL;
		gint _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* flush_name = NULL;
		gchar* _tmp22_;
		gchar* _tmp23_ = NULL;
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		const gchar* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
#line 2229 "../src/main.vala"
		_tmp14_ = strlen (line);
#line 2229 "../src/main.vala"
		_tmp15_ = _tmp14_;
#line 2229 "../src/main.vala"
		_tmp16_ = strlen ("flush();");
#line 2229 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 2229 "../src/main.vala"
		_tmp18_ = string_substring (line, (glong) 0, (glong) (_tmp15_ - _tmp17_));
#line 2229 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 2229 "../src/main.vala"
		_tmp20_ = string_strip (_tmp19_);
#line 2229 "../src/main.vala"
		_tmp21_ = _tmp20_;
#line 2229 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2229 "../src/main.vala"
		first = _tmp21_;
#line 2230 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_map_php_function_name (self, "flush", php_line_number, &_inner_error0_);
#line 2230 "../src/main.vala"
		flush_name = _tmp22_;
#line 2230 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2230 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2230 "../src/main.vala"
			_g_free0 (first);
#line 2230 "../src/main.vala"
			return NULL;
#line 26224 "main.c"
		}
#line 2231 "../src/main.vala"
		_tmp24_ = first;
#line 2231 "../src/main.vala"
		_tmp25_ = php_to_vala_transpiler_transpile_line (self, _tmp24_, php_line_number, &_inner_error0_);
#line 2231 "../src/main.vala"
		_tmp23_ = _tmp25_;
#line 2231 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2231 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2231 "../src/main.vala"
			_g_free0 (flush_name);
#line 2231 "../src/main.vala"
			_g_free0 (first);
#line 2231 "../src/main.vala"
			return NULL;
#line 26242 "main.c"
		}
#line 2231 "../src/main.vala"
		_tmp26_ = g_strconcat (_tmp23_, "\n", NULL);
#line 2231 "../src/main.vala"
		_tmp27_ = _tmp26_;
#line 2231 "../src/main.vala"
		_tmp28_ = flush_name;
#line 2231 "../src/main.vala"
		_tmp29_ = g_strconcat (_tmp27_, _tmp28_, NULL);
#line 2231 "../src/main.vala"
		_tmp30_ = _tmp29_;
#line 2231 "../src/main.vala"
		_tmp31_ = g_strconcat (_tmp30_, " (", NULL);
#line 2231 "../src/main.vala"
		_tmp32_ = _tmp31_;
#line 2231 "../src/main.vala"
		_tmp33_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2231 "../src/main.vala"
		_tmp34_ = _tmp33_;
#line 2231 "../src/main.vala"
		_tmp35_ = string_substring (_tmp34_, (glong) 2, (glong) -1);
#line 2231 "../src/main.vala"
		_tmp36_ = _tmp35_;
#line 2231 "../src/main.vala"
		_tmp37_ = g_strconcat (_tmp32_, _tmp36_, NULL);
#line 2231 "../src/main.vala"
		_tmp38_ = _tmp37_;
#line 2231 "../src/main.vala"
		_tmp39_ = g_strconcat (_tmp38_, ");", NULL);
#line 2231 "../src/main.vala"
		_tmp40_ = _tmp39_;
#line 2231 "../src/main.vala"
		_g_free0 (_tmp38_);
#line 2231 "../src/main.vala"
		_g_free0 (_tmp36_);
#line 2231 "../src/main.vala"
		_g_free0 (_tmp34_);
#line 2231 "../src/main.vala"
		_g_free0 (_tmp32_);
#line 2231 "../src/main.vala"
		_g_free0 (_tmp30_);
#line 2231 "../src/main.vala"
		_g_free0 (_tmp27_);
#line 2231 "../src/main.vala"
		result = _tmp40_;
#line 2231 "../src/main.vala"
		_g_free0 (_tmp23_);
#line 2231 "../src/main.vala"
		_g_free0 (flush_name);
#line 2231 "../src/main.vala"
		_g_free0 (first);
#line 2231 "../src/main.vala"
		return result;
#line 26296 "main.c"
	}
#line 2234 "../src/main.vala"
	if (g_strcmp0 (line, "{") == 0) {
#line 2234 "../src/main.vala"
		_tmp41_ = TRUE;
#line 26302 "main.c"
	} else {
#line 2234 "../src/main.vala"
		_tmp41_ = g_strcmp0 (line, "}") == 0;
#line 26306 "main.c"
	}
#line 2234 "../src/main.vala"
	if (_tmp41_) {
#line 26310 "main.c"
		gchar* _tmp42_;
#line 2235 "../src/main.vala"
		_tmp42_ = g_strdup (line);
#line 2235 "../src/main.vala"
		result = _tmp42_;
#line 2235 "../src/main.vala"
		return result;
#line 26318 "main.c"
	}
#line 2237 "../src/main.vala"
	if (g_strcmp0 (line, "else{") == 0) {
#line 26322 "main.c"
		gchar* _tmp43_;
#line 2238 "../src/main.vala"
		_tmp43_ = g_strdup ("else {");
#line 2238 "../src/main.vala"
		result = _tmp43_;
#line 2238 "../src/main.vala"
		return result;
#line 26330 "main.c"
	}
#line 2240 "../src/main.vala"
	if (g_str_has_prefix (line, "} else")) {
#line 26334 "main.c"
		gchar* _tmp44_;
#line 2241 "../src/main.vala"
		_tmp44_ = g_strdup ("} else {");
#line 2241 "../src/main.vala"
		result = _tmp44_;
#line 2241 "../src/main.vala"
		return result;
#line 26342 "main.c"
	}
#line 2244 "../src/main.vala"
	if (g_str_has_prefix (line, "echo ")) {
#line 26346 "main.c"
		gchar* _tmp45_ = NULL;
		gchar* _tmp46_;
		gchar* _tmp47_;
		gchar* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		gchar* _tmp51_;
		gchar* _tmp52_;
#line 2245 "../src/main.vala"
		_tmp46_ = string_substring (line, (glong) 5, (glong) -1);
#line 2245 "../src/main.vala"
		_tmp47_ = _tmp46_;
#line 2245 "../src/main.vala"
		_tmp48_ = string_strip (_tmp47_);
#line 2245 "../src/main.vala"
		_tmp49_ = _tmp48_;
#line 2245 "../src/main.vala"
		_tmp50_ = php_to_vala_transpiler_transpile_echo (self, _tmp49_, php_line_number, &_inner_error0_);
#line 2245 "../src/main.vala"
		_tmp51_ = _tmp50_;
#line 2245 "../src/main.vala"
		_g_free0 (_tmp49_);
#line 2245 "../src/main.vala"
		_g_free0 (_tmp47_);
#line 2245 "../src/main.vala"
		_tmp45_ = _tmp51_;
#line 2245 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2245 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2245 "../src/main.vala"
			return NULL;
#line 26379 "main.c"
		}
#line 2245 "../src/main.vala"
		_tmp52_ = _tmp45_;
#line 2245 "../src/main.vala"
		_tmp45_ = NULL;
#line 2245 "../src/main.vala"
		result = _tmp52_;
#line 2245 "../src/main.vala"
		_g_free0 (_tmp45_);
#line 2245 "../src/main.vala"
		return result;
#line 26391 "main.c"
	}
#line 2248 "../src/main.vala"
	if (g_str_has_prefix (line, "if(")) {
#line 2248 "../src/main.vala"
		_tmp53_ = TRUE;
#line 26397 "main.c"
	} else {
#line 2248 "../src/main.vala"
		_tmp53_ = g_str_has_prefix (line, "if (");
#line 26401 "main.c"
	}
#line 2248 "../src/main.vala"
	if (_tmp53_) {
#line 26405 "main.c"
		gchar* _tmp54_ = NULL;
		gchar* _tmp55_;
		gchar* _tmp56_;
#line 2249 "../src/main.vala"
		_tmp55_ = php_to_vala_transpiler_transpile_inline_condition (self, line, "if", php_line_number, &_inner_error0_);
#line 2249 "../src/main.vala"
		_tmp54_ = _tmp55_;
#line 2249 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2249 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2249 "../src/main.vala"
			return NULL;
#line 26419 "main.c"
		}
#line 2249 "../src/main.vala"
		_tmp56_ = _tmp54_;
#line 2249 "../src/main.vala"
		_tmp54_ = NULL;
#line 2249 "../src/main.vala"
		result = _tmp56_;
#line 2249 "../src/main.vala"
		_g_free0 (_tmp54_);
#line 2249 "../src/main.vala"
		return result;
#line 26431 "main.c"
	}
#line 2252 "../src/main.vala"
	if (g_str_has_prefix (line, "foreach(")) {
#line 2252 "../src/main.vala"
		_tmp57_ = TRUE;
#line 26437 "main.c"
	} else {
#line 2252 "../src/main.vala"
		_tmp57_ = g_str_has_prefix (line, "foreach (");
#line 26441 "main.c"
	}
#line 2252 "../src/main.vala"
	if (_tmp57_) {
#line 26445 "main.c"
		gchar* _tmp58_ = NULL;
		gchar* _tmp59_;
		gchar* _tmp60_;
#line 2253 "../src/main.vala"
		_tmp59_ = php_to_vala_transpiler_transpile_foreach (self, line, php_line_number, &_inner_error0_);
#line 2253 "../src/main.vala"
		_tmp58_ = _tmp59_;
#line 2253 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2253 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2253 "../src/main.vala"
			return NULL;
#line 26459 "main.c"
		}
#line 2253 "../src/main.vala"
		_tmp60_ = _tmp58_;
#line 2253 "../src/main.vala"
		_tmp58_ = NULL;
#line 2253 "../src/main.vala"
		result = _tmp60_;
#line 2253 "../src/main.vala"
		_g_free0 (_tmp58_);
#line 2253 "../src/main.vala"
		return result;
#line 26471 "main.c"
	}
#line 2256 "../src/main.vala"
	if (g_str_has_prefix (line, "for(")) {
#line 2256 "../src/main.vala"
		_tmp61_ = TRUE;
#line 26477 "main.c"
	} else {
#line 2256 "../src/main.vala"
		_tmp61_ = g_str_has_prefix (line, "for (");
#line 26481 "main.c"
	}
#line 2256 "../src/main.vala"
	if (_tmp61_) {
#line 26485 "main.c"
		gchar* _tmp62_ = NULL;
		gchar* _tmp63_;
		gchar* _tmp64_;
#line 2257 "../src/main.vala"
		_tmp63_ = php_to_vala_transpiler_transpile_for (self, line, php_line_number, &_inner_error0_);
#line 2257 "../src/main.vala"
		_tmp62_ = _tmp63_;
#line 2257 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2257 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2257 "../src/main.vala"
			return NULL;
#line 26499 "main.c"
		}
#line 2257 "../src/main.vala"
		_tmp64_ = _tmp62_;
#line 2257 "../src/main.vala"
		_tmp62_ = NULL;
#line 2257 "../src/main.vala"
		result = _tmp64_;
#line 2257 "../src/main.vala"
		_g_free0 (_tmp62_);
#line 2257 "../src/main.vala"
		return result;
#line 26511 "main.c"
	}
#line 2260 "../src/main.vala"
	if (g_str_has_prefix (line, "elseif(")) {
#line 2260 "../src/main.vala"
		_tmp65_ = TRUE;
#line 26517 "main.c"
	} else {
#line 2260 "../src/main.vala"
		_tmp65_ = g_str_has_prefix (line, "elseif (");
#line 26521 "main.c"
	}
#line 2260 "../src/main.vala"
	if (_tmp65_) {
#line 26525 "main.c"
		gchar* _tmp66_ = NULL;
		gchar* _tmp67_;
		gchar* _tmp68_;
#line 2261 "../src/main.vala"
		_tmp67_ = php_to_vala_transpiler_transpile_inline_condition (self, line, "else if", php_line_number, &_inner_error0_);
#line 2261 "../src/main.vala"
		_tmp66_ = _tmp67_;
#line 2261 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2261 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2261 "../src/main.vala"
			return NULL;
#line 26539 "main.c"
		}
#line 2261 "../src/main.vala"
		_tmp68_ = _tmp66_;
#line 2261 "../src/main.vala"
		_tmp66_ = NULL;
#line 2261 "../src/main.vala"
		result = _tmp68_;
#line 2261 "../src/main.vala"
		_g_free0 (_tmp66_);
#line 2261 "../src/main.vala"
		return result;
#line 26551 "main.c"
	}
#line 2264 "../src/main.vala"
	if (g_str_has_prefix (line, "else ")) {
#line 26555 "main.c"
		gchar* nested = NULL;
		gchar* _tmp69_;
		gchar* _tmp70_;
		gchar* _tmp71_;
		gchar* _tmp72_;
		gchar* _tmp73_;
		gchar* _tmp74_;
		const gchar* _tmp75_;
		const gchar* _tmp76_;
		gchar* _tmp77_;
#line 2265 "../src/main.vala"
		_tmp69_ = string_substring (line, (glong) 5, (glong) -1);
#line 2265 "../src/main.vala"
		_tmp70_ = _tmp69_;
#line 2265 "../src/main.vala"
		_tmp71_ = string_strip (_tmp70_);
#line 2265 "../src/main.vala"
		_tmp72_ = _tmp71_;
#line 2265 "../src/main.vala"
		_tmp73_ = php_to_vala_transpiler_transpile_line (self, _tmp72_, php_line_number, &_inner_error0_);
#line 2265 "../src/main.vala"
		_tmp74_ = _tmp73_;
#line 2265 "../src/main.vala"
		_g_free0 (_tmp72_);
#line 2265 "../src/main.vala"
		_g_free0 (_tmp70_);
#line 2265 "../src/main.vala"
		nested = _tmp74_;
#line 2265 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2265 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2265 "../src/main.vala"
			return NULL;
#line 26590 "main.c"
		}
#line 2266 "../src/main.vala"
		_tmp75_ = nested;
#line 2266 "../src/main.vala"
		_tmp76_ = string_to_string (_tmp75_);
#line 2266 "../src/main.vala"
		_tmp77_ = g_strconcat ("else { ", _tmp76_, " }", NULL);
#line 2266 "../src/main.vala"
		result = _tmp77_;
#line 2266 "../src/main.vala"
		_g_free0 (nested);
#line 2266 "../src/main.vala"
		return result;
#line 26604 "main.c"
	}
#line 2269 "../src/main.vala"
	if (g_str_has_prefix (line, "return")) {
#line 26608 "main.c"
		gchar* _tmp78_ = NULL;
		gchar* _tmp79_;
		gchar* _tmp80_;
#line 2270 "../src/main.vala"
		_tmp79_ = php_to_vala_transpiler_transpile_return (self, line, php_line_number, &_inner_error0_);
#line 2270 "../src/main.vala"
		_tmp78_ = _tmp79_;
#line 2270 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2270 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2270 "../src/main.vala"
			return NULL;
#line 26622 "main.c"
		}
#line 2270 "../src/main.vala"
		_tmp80_ = _tmp78_;
#line 2270 "../src/main.vala"
		_tmp78_ = NULL;
#line 2270 "../src/main.vala"
		result = _tmp80_;
#line 2270 "../src/main.vala"
		_g_free0 (_tmp78_);
#line 2270 "../src/main.vala"
		return result;
#line 26634 "main.c"
	}
#line 2273 "../src/main.vala"
	if (g_strcmp0 (line, "exit;") == 0) {
#line 2273 "../src/main.vala"
		_tmp81_ = TRUE;
#line 26640 "main.c"
	} else {
#line 2273 "../src/main.vala"
		_tmp81_ = g_strcmp0 (line, "die;") == 0;
#line 26644 "main.c"
	}
#line 2273 "../src/main.vala"
	if (_tmp81_) {
#line 26648 "main.c"
		gchar* _tmp82_ = NULL;
		gchar* _tmp83_;
		gchar* _tmp84_;
#line 2274 "../src/main.vala"
		_tmp83_ = php_to_vala_transpiler_transpile_exit (self, "", php_line_number, &_inner_error0_);
#line 2274 "../src/main.vala"
		_tmp82_ = _tmp83_;
#line 2274 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2274 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2274 "../src/main.vala"
			return NULL;
#line 26662 "main.c"
		}
#line 2274 "../src/main.vala"
		_tmp84_ = _tmp82_;
#line 2274 "../src/main.vala"
		_tmp82_ = NULL;
#line 2274 "../src/main.vala"
		result = _tmp84_;
#line 2274 "../src/main.vala"
		_g_free0 (_tmp82_);
#line 2274 "../src/main.vala"
		return result;
#line 26674 "main.c"
	}
#line 2276 "../src/main.vala"
	if (g_strcmp0 (line, "continue;") == 0) {
#line 26678 "main.c"
		gchar* _tmp85_;
#line 2277 "../src/main.vala"
		_tmp85_ = g_strdup ("continue;");
#line 2277 "../src/main.vala"
		result = _tmp85_;
#line 2277 "../src/main.vala"
		return result;
#line 26686 "main.c"
	}
#line 2279 "../src/main.vala"
	if (g_strcmp0 (line, "break;") == 0) {
#line 26690 "main.c"
		gchar* _tmp86_;
#line 2280 "../src/main.vala"
		_tmp86_ = g_strdup ("break;");
#line 2280 "../src/main.vala"
		result = _tmp86_;
#line 2280 "../src/main.vala"
		return result;
#line 26698 "main.c"
	}
#line 2284 "../src/main.vala"
	_tmp87_ = php_to_vala_transpiler_transpile_compound_assignment (self, line, php_line_number, &_inner_error0_);
#line 2284 "../src/main.vala"
	compound_assignment = _tmp87_;
#line 2284 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2284 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2284 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2284 "../src/main.vala"
		return NULL;
#line 26712 "main.c"
	}
#line 2285 "../src/main.vala"
	_tmp88_ = compound_assignment;
#line 2285 "../src/main.vala"
	if (_tmp88_ != NULL) {
#line 2286 "../src/main.vala"
		result = compound_assignment;
#line 2286 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2286 "../src/main.vala"
		return result;
#line 26724 "main.c"
	}
#line 2289 "../src/main.vala"
	_tmp89_ = php_to_vala_transpiler_transpile_array_assignment (self, line, php_line_number, &_inner_error0_);
#line 2289 "../src/main.vala"
	array_assignment = _tmp89_;
#line 2289 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2289 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2289 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2289 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2289 "../src/main.vala"
		return NULL;
#line 26740 "main.c"
	}
#line 2290 "../src/main.vala"
	_tmp90_ = array_assignment;
#line 2290 "../src/main.vala"
	if (_tmp90_ != NULL) {
#line 2291 "../src/main.vala"
		result = array_assignment;
#line 2291 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2291 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2291 "../src/main.vala"
		return result;
#line 26754 "main.c"
	}
#line 2294 "../src/main.vala"
	_tmp91_ = php_to_vala_transpiler_parse_assignment_name (line);
#line 2294 "../src/main.vala"
	assignment_name = _tmp91_;
#line 2295 "../src/main.vala"
	_tmp92_ = assignment_name;
#line 2295 "../src/main.vala"
	if (_tmp92_ != NULL) {
#line 26764 "main.c"
		gchar* raw_expression = NULL;
		gchar* _tmp93_;
		gchar* array_init = NULL;
		const gchar* _tmp94_;
		gchar* _tmp95_;
		gboolean _tmp96_ = FALSE;
		const gchar* _tmp97_;
		gchar* expression = NULL;
		const gchar* _tmp101_;
		gchar* _tmp102_;
		gchar* type_name = NULL;
		const gchar* _tmp103_;
		gchar* _tmp104_;
		gboolean _tmp105_ = FALSE;
		GeeHashMap* _tmp106_;
		const gchar* _tmp107_;
		gchar* _tmp125_ = NULL;
		GeeHashMap* _tmp126_;
		const gchar* _tmp127_;
		gchar* storage_name = NULL;
		gchar* _tmp133_;
		gboolean _tmp134_ = FALSE;
		gboolean _tmp135_ = FALSE;
		const gchar* _tmp136_;
		const gchar* _tmp137_;
		GeeHashMap* _tmp150_;
		const gchar* _tmp151_;
		GeeHashMap* _tmp180_;
		const gchar* _tmp181_;
		const gchar* _tmp182_;
		const gchar* _tmp183_;
		const gchar* _tmp184_;
		const gchar* _tmp185_;
		const gchar* _tmp186_;
		const gchar* _tmp187_;
		const gchar* _tmp188_;
		gchar* _tmp189_;
#line 2296 "../src/main.vala"
		_tmp93_ = php_to_vala_transpiler_parse_assignment_expression (line);
#line 2296 "../src/main.vala"
		raw_expression = _tmp93_;
#line 2297 "../src/main.vala"
		_tmp94_ = assignment_name;
#line 2297 "../src/main.vala"
		_tmp95_ = php_to_vala_transpiler_build_array_initialization (self, _tmp94_);
#line 2297 "../src/main.vala"
		array_init = _tmp95_;
#line 2298 "../src/main.vala"
		_tmp97_ = array_init;
#line 2298 "../src/main.vala"
		if (_tmp97_ != NULL) {
#line 26816 "main.c"
			const gchar* _tmp98_;
			gchar* _tmp99_;
			gchar* _tmp100_;
#line 2298 "../src/main.vala"
			_tmp98_ = raw_expression;
#line 2298 "../src/main.vala"
			_tmp99_ = string_strip (_tmp98_);
#line 2298 "../src/main.vala"
			_tmp100_ = _tmp99_;
#line 2298 "../src/main.vala"
			_tmp96_ = g_strcmp0 (_tmp100_, "array()") == 0;
#line 2298 "../src/main.vala"
			_g_free0 (_tmp100_);
#line 26830 "main.c"
		} else {
#line 2298 "../src/main.vala"
			_tmp96_ = FALSE;
#line 26834 "main.c"
		}
#line 2298 "../src/main.vala"
		if (_tmp96_) {
#line 2299 "../src/main.vala"
			result = array_init;
#line 2299 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2299 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2299 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2299 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2299 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2299 "../src/main.vala"
			return result;
#line 26852 "main.c"
		}
#line 2301 "../src/main.vala"
		_tmp101_ = raw_expression;
#line 2301 "../src/main.vala"
		_tmp102_ = php_to_vala_transpiler_convert_expression (self, _tmp101_, php_line_number, &_inner_error0_);
#line 2301 "../src/main.vala"
		expression = _tmp102_;
#line 2301 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2301 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2301 "../src/main.vala"
			_g_free0 (array_init);
#line 2301 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2301 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2301 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2301 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2301 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2301 "../src/main.vala"
			return NULL;
#line 26878 "main.c"
		}
#line 2302 "../src/main.vala"
		_tmp103_ = expression;
#line 2302 "../src/main.vala"
		_tmp104_ = php_to_vala_transpiler_infer_type (self, _tmp103_);
#line 2302 "../src/main.vala"
		type_name = _tmp104_;
#line 2303 "../src/main.vala"
		_tmp106_ = self->local_functions;
#line 2303 "../src/main.vala"
		_tmp107_ = assignment_name;
#line 2303 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp106_, _tmp107_)) {
#line 26892 "main.c"
			GeeHashMap* _tmp108_;
			const gchar* _tmp109_;
#line 2303 "../src/main.vala"
			_tmp108_ = self->variable_aliases;
#line 2303 "../src/main.vala"
			_tmp109_ = assignment_name;
#line 2303 "../src/main.vala"
			_tmp105_ = !gee_abstract_map_has_key ((GeeAbstractMap*) _tmp108_, _tmp109_);
#line 26901 "main.c"
		} else {
#line 2303 "../src/main.vala"
			_tmp105_ = FALSE;
#line 26905 "main.c"
		}
#line 2303 "../src/main.vala"
		if (_tmp105_) {
#line 26909 "main.c"
			gchar* alias_name = NULL;
			const gchar* _tmp110_;
			gchar* _tmp111_;
			GeeHashMap* _tmp112_;
			const gchar* _tmp113_;
			const gchar* _tmp114_;
			GeeHashMap* _tmp115_;
			const gchar* _tmp116_;
			const gchar* _tmp117_;
			const gchar* _tmp118_;
			const gchar* _tmp119_;
			const gchar* _tmp120_;
			const gchar* _tmp121_;
			const gchar* _tmp122_;
			const gchar* _tmp123_;
			gchar* _tmp124_;
#line 2304 "../src/main.vala"
			_tmp110_ = assignment_name;
#line 2304 "../src/main.vala"
			_tmp111_ = g_strconcat (_tmp110_, "_result", NULL);
#line 2304 "../src/main.vala"
			alias_name = _tmp111_;
#line 2305 "../src/main.vala"
			_tmp112_ = self->variable_aliases;
#line 2305 "../src/main.vala"
			_tmp113_ = assignment_name;
#line 2305 "../src/main.vala"
			_tmp114_ = alias_name;
#line 2305 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp112_, _tmp113_, _tmp114_);
#line 2306 "../src/main.vala"
			_tmp115_ = self->variable_types;
#line 2306 "../src/main.vala"
			_tmp116_ = alias_name;
#line 2306 "../src/main.vala"
			_tmp117_ = type_name;
#line 2306 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp115_, _tmp116_, _tmp117_);
#line 2307 "../src/main.vala"
			_tmp118_ = type_name;
#line 2307 "../src/main.vala"
			_tmp119_ = string_to_string (_tmp118_);
#line 2307 "../src/main.vala"
			_tmp120_ = alias_name;
#line 2307 "../src/main.vala"
			_tmp121_ = string_to_string (_tmp120_);
#line 2307 "../src/main.vala"
			_tmp122_ = expression;
#line 2307 "../src/main.vala"
			_tmp123_ = string_to_string (_tmp122_);
#line 2307 "../src/main.vala"
			_tmp124_ = g_strconcat (_tmp119_, " ", _tmp121_, " = ", _tmp123_, ";", NULL);
#line 2307 "../src/main.vala"
			result = _tmp124_;
#line 2307 "../src/main.vala"
			_g_free0 (alias_name);
#line 2307 "../src/main.vala"
			_g_free0 (type_name);
#line 2307 "../src/main.vala"
			_g_free0 (expression);
#line 2307 "../src/main.vala"
			_g_free0 (array_init);
#line 2307 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2307 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2307 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2307 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2307 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2307 "../src/main.vala"
			return result;
#line 26984 "main.c"
		}
#line 2310 "../src/main.vala"
		_tmp126_ = self->variable_aliases;
#line 2310 "../src/main.vala"
		_tmp127_ = assignment_name;
#line 2310 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp126_, _tmp127_)) {
#line 26992 "main.c"
			GeeHashMap* _tmp128_;
			const gchar* _tmp129_;
			gpointer _tmp130_;
#line 2310 "../src/main.vala"
			_tmp128_ = self->variable_aliases;
#line 2310 "../src/main.vala"
			_tmp129_ = assignment_name;
#line 2310 "../src/main.vala"
			_tmp130_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp128_, _tmp129_);
#line 2310 "../src/main.vala"
			_g_free0 (_tmp125_);
#line 2310 "../src/main.vala"
			_tmp125_ = (gchar*) _tmp130_;
#line 27006 "main.c"
		} else {
			const gchar* _tmp131_;
			gchar* _tmp132_;
#line 2310 "../src/main.vala"
			_tmp131_ = assignment_name;
#line 2310 "../src/main.vala"
			_tmp132_ = g_strdup (_tmp131_);
#line 2310 "../src/main.vala"
			_g_free0 (_tmp125_);
#line 2310 "../src/main.vala"
			_tmp125_ = _tmp132_;
#line 27018 "main.c"
		}
#line 2310 "../src/main.vala"
		_tmp133_ = _tmp125_;
#line 2310 "../src/main.vala"
		_tmp125_ = NULL;
#line 2310 "../src/main.vala"
		storage_name = _tmp133_;
#line 2311 "../src/main.vala"
		_tmp136_ = storage_name;
#line 2311 "../src/main.vala"
		_tmp137_ = assignment_name;
#line 2311 "../src/main.vala"
		if (g_strcmp0 (_tmp136_, _tmp137_) != 0) {
#line 27032 "main.c"
			GeeHashMap* _tmp138_;
			const gchar* _tmp139_;
#line 2311 "../src/main.vala"
			_tmp138_ = self->variable_types;
#line 2311 "../src/main.vala"
			_tmp139_ = storage_name;
#line 2311 "../src/main.vala"
			_tmp135_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp138_, _tmp139_);
#line 27041 "main.c"
		} else {
#line 2311 "../src/main.vala"
			_tmp135_ = FALSE;
#line 27045 "main.c"
		}
#line 2311 "../src/main.vala"
		if (_tmp135_) {
#line 27049 "main.c"
			GeeHashMap* _tmp140_;
			const gchar* _tmp141_;
			gpointer _tmp142_;
			gchar* _tmp143_;
			const gchar* _tmp144_;
#line 2311 "../src/main.vala"
			_tmp140_ = self->variable_types;
#line 2311 "../src/main.vala"
			_tmp141_ = storage_name;
#line 2311 "../src/main.vala"
			_tmp142_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp140_, _tmp141_);
#line 2311 "../src/main.vala"
			_tmp143_ = (gchar*) _tmp142_;
#line 2311 "../src/main.vala"
			_tmp144_ = type_name;
#line 2311 "../src/main.vala"
			_tmp134_ = g_strcmp0 (_tmp143_, _tmp144_) == 0;
#line 2311 "../src/main.vala"
			_g_free0 (_tmp143_);
#line 27069 "main.c"
		} else {
#line 2311 "../src/main.vala"
			_tmp134_ = FALSE;
#line 27073 "main.c"
		}
#line 2311 "../src/main.vala"
		if (_tmp134_) {
#line 27077 "main.c"
			const gchar* _tmp145_;
			const gchar* _tmp146_;
			const gchar* _tmp147_;
			const gchar* _tmp148_;
			gchar* _tmp149_;
#line 2312 "../src/main.vala"
			_tmp145_ = storage_name;
#line 2312 "../src/main.vala"
			_tmp146_ = string_to_string (_tmp145_);
#line 2312 "../src/main.vala"
			_tmp147_ = expression;
#line 2312 "../src/main.vala"
			_tmp148_ = string_to_string (_tmp147_);
#line 2312 "../src/main.vala"
			_tmp149_ = g_strconcat (_tmp146_, " = ", _tmp148_, ";", NULL);
#line 2312 "../src/main.vala"
			result = _tmp149_;
#line 2312 "../src/main.vala"
			_g_free0 (storage_name);
#line 2312 "../src/main.vala"
			_g_free0 (_tmp125_);
#line 2312 "../src/main.vala"
			_g_free0 (type_name);
#line 2312 "../src/main.vala"
			_g_free0 (expression);
#line 2312 "../src/main.vala"
			_g_free0 (array_init);
#line 2312 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2312 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2312 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2312 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2312 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2312 "../src/main.vala"
			return result;
#line 27117 "main.c"
		}
#line 2314 "../src/main.vala"
		_tmp150_ = self->variable_types;
#line 2314 "../src/main.vala"
		_tmp151_ = assignment_name;
#line 2314 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp150_, _tmp151_)) {
#line 27125 "main.c"
			gchar* old_type = NULL;
			GeeHashMap* _tmp152_;
			const gchar* _tmp153_;
			gpointer _tmp154_;
			gboolean _tmp155_ = FALSE;
			const gchar* _tmp156_;
			const gchar* _tmp157_;
			const gchar* _tmp175_;
			const gchar* _tmp176_;
			const gchar* _tmp177_;
			const gchar* _tmp178_;
			gchar* _tmp179_;
#line 2315 "../src/main.vala"
			_tmp152_ = self->variable_types;
#line 2315 "../src/main.vala"
			_tmp153_ = assignment_name;
#line 2315 "../src/main.vala"
			_tmp154_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp152_, _tmp153_);
#line 2315 "../src/main.vala"
			old_type = (gchar*) _tmp154_;
#line 2316 "../src/main.vala"
			_tmp156_ = old_type;
#line 2316 "../src/main.vala"
			_tmp157_ = type_name;
#line 2316 "../src/main.vala"
			if (g_strcmp0 (_tmp156_, _tmp157_) != 0) {
#line 27152 "main.c"
				const gchar* _tmp158_;
#line 2316 "../src/main.vala"
				_tmp158_ = type_name;
#line 2316 "../src/main.vala"
				_tmp155_ = g_strcmp0 (_tmp158_, "var") != 0;
#line 27158 "main.c"
			} else {
#line 2316 "../src/main.vala"
				_tmp155_ = FALSE;
#line 27162 "main.c"
			}
#line 2316 "../src/main.vala"
			if (_tmp155_) {
#line 27166 "main.c"
				gchar* alias_name = NULL;
				const gchar* _tmp159_;
				const gchar* _tmp160_;
				gchar* _tmp161_;
				GeeHashMap* _tmp162_;
				const gchar* _tmp163_;
				const gchar* _tmp164_;
				GeeHashMap* _tmp165_;
				const gchar* _tmp166_;
				const gchar* _tmp167_;
				const gchar* _tmp168_;
				const gchar* _tmp169_;
				const gchar* _tmp170_;
				const gchar* _tmp171_;
				const gchar* _tmp172_;
				const gchar* _tmp173_;
				gchar* _tmp174_;
#line 2317 "../src/main.vala"
				_tmp159_ = assignment_name;
#line 2317 "../src/main.vala"
				_tmp160_ = type_name;
#line 2317 "../src/main.vala"
				_tmp161_ = php_to_vala_transpiler_unique_alias_name (self, _tmp159_, _tmp160_);
#line 2317 "../src/main.vala"
				alias_name = _tmp161_;
#line 2318 "../src/main.vala"
				_tmp162_ = self->variable_aliases;
#line 2318 "../src/main.vala"
				_tmp163_ = assignment_name;
#line 2318 "../src/main.vala"
				_tmp164_ = alias_name;
#line 2318 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp162_, _tmp163_, _tmp164_);
#line 2319 "../src/main.vala"
				_tmp165_ = self->variable_types;
#line 2319 "../src/main.vala"
				_tmp166_ = alias_name;
#line 2319 "../src/main.vala"
				_tmp167_ = type_name;
#line 2319 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp165_, _tmp166_, _tmp167_);
#line 2320 "../src/main.vala"
				_tmp168_ = type_name;
#line 2320 "../src/main.vala"
				_tmp169_ = string_to_string (_tmp168_);
#line 2320 "../src/main.vala"
				_tmp170_ = alias_name;
#line 2320 "../src/main.vala"
				_tmp171_ = string_to_string (_tmp170_);
#line 2320 "../src/main.vala"
				_tmp172_ = expression;
#line 2320 "../src/main.vala"
				_tmp173_ = string_to_string (_tmp172_);
#line 2320 "../src/main.vala"
				_tmp174_ = g_strconcat (_tmp169_, " ", _tmp171_, " = ", _tmp173_, ";", NULL);
#line 2320 "../src/main.vala"
				result = _tmp174_;
#line 2320 "../src/main.vala"
				_g_free0 (alias_name);
#line 2320 "../src/main.vala"
				_g_free0 (old_type);
#line 2320 "../src/main.vala"
				_g_free0 (storage_name);
#line 2320 "../src/main.vala"
				_g_free0 (_tmp125_);
#line 2320 "../src/main.vala"
				_g_free0 (type_name);
#line 2320 "../src/main.vala"
				_g_free0 (expression);
#line 2320 "../src/main.vala"
				_g_free0 (array_init);
#line 2320 "../src/main.vala"
				_g_free0 (raw_expression);
#line 2320 "../src/main.vala"
				_g_free0 (assignment_name);
#line 2320 "../src/main.vala"
				_g_free0 (array_assignment);
#line 2320 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 2320 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 2320 "../src/main.vala"
				return result;
#line 27250 "main.c"
			}
#line 2322 "../src/main.vala"
			_tmp175_ = storage_name;
#line 2322 "../src/main.vala"
			_tmp176_ = string_to_string (_tmp175_);
#line 2322 "../src/main.vala"
			_tmp177_ = expression;
#line 2322 "../src/main.vala"
			_tmp178_ = string_to_string (_tmp177_);
#line 2322 "../src/main.vala"
			_tmp179_ = g_strconcat (_tmp176_, " = ", _tmp178_, ";", NULL);
#line 2322 "../src/main.vala"
			result = _tmp179_;
#line 2322 "../src/main.vala"
			_g_free0 (old_type);
#line 2322 "../src/main.vala"
			_g_free0 (storage_name);
#line 2322 "../src/main.vala"
			_g_free0 (_tmp125_);
#line 2322 "../src/main.vala"
			_g_free0 (type_name);
#line 2322 "../src/main.vala"
			_g_free0 (expression);
#line 2322 "../src/main.vala"
			_g_free0 (array_init);
#line 2322 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2322 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2322 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2322 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2322 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2322 "../src/main.vala"
			return result;
#line 27288 "main.c"
		}
#line 2325 "../src/main.vala"
		_tmp180_ = self->variable_types;
#line 2325 "../src/main.vala"
		_tmp181_ = assignment_name;
#line 2325 "../src/main.vala"
		_tmp182_ = type_name;
#line 2325 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp180_, _tmp181_, _tmp182_);
#line 2326 "../src/main.vala"
		_tmp183_ = type_name;
#line 2326 "../src/main.vala"
		_tmp184_ = string_to_string (_tmp183_);
#line 2326 "../src/main.vala"
		_tmp185_ = assignment_name;
#line 2326 "../src/main.vala"
		_tmp186_ = string_to_string (_tmp185_);
#line 2326 "../src/main.vala"
		_tmp187_ = expression;
#line 2326 "../src/main.vala"
		_tmp188_ = string_to_string (_tmp187_);
#line 2326 "../src/main.vala"
		_tmp189_ = g_strconcat (_tmp184_, " ", _tmp186_, " = ", _tmp188_, ";", NULL);
#line 2326 "../src/main.vala"
		result = _tmp189_;
#line 2326 "../src/main.vala"
		_g_free0 (storage_name);
#line 2326 "../src/main.vala"
		_g_free0 (_tmp125_);
#line 2326 "../src/main.vala"
		_g_free0 (type_name);
#line 2326 "../src/main.vala"
		_g_free0 (expression);
#line 2326 "../src/main.vala"
		_g_free0 (array_init);
#line 2326 "../src/main.vala"
		_g_free0 (raw_expression);
#line 2326 "../src/main.vala"
		_g_free0 (assignment_name);
#line 2326 "../src/main.vala"
		_g_free0 (array_assignment);
#line 2326 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2326 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2326 "../src/main.vala"
		return result;
#line 27336 "main.c"
	}
#line 2329 "../src/main.vala"
	_tmp190_ = self->priv->assignment_regex;
#line 2329 "../src/main.vala"
	_tmp192_ = g_regex_match (_tmp190_, line, 0, &_tmp191_);
#line 2329 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2329 "../src/main.vala"
	match = _tmp191_;
#line 2329 "../src/main.vala"
	if (_tmp192_) {
#line 27348 "main.c"
		gchar* name = NULL;
		GMatchInfo* _tmp193_;
		gchar* _tmp194_;
		gchar* raw_expression = NULL;
		GMatchInfo* _tmp195_;
		gchar* _tmp196_;
		gchar* _tmp197_;
		gchar* _tmp198_;
		gchar* _tmp199_;
		gchar* array_init = NULL;
		const gchar* _tmp200_;
		gchar* _tmp201_;
		gboolean _tmp202_ = FALSE;
		const gchar* _tmp203_;
		gchar* expression = NULL;
		const gchar* _tmp205_;
		gchar* _tmp206_;
		gchar* type_name = NULL;
		const gchar* _tmp207_;
		gchar* _tmp208_;
		gboolean _tmp209_ = FALSE;
		GeeHashMap* _tmp210_;
		const gchar* _tmp211_;
		gchar* _tmp229_ = NULL;
		GeeHashMap* _tmp230_;
		const gchar* _tmp231_;
		gchar* storage_name = NULL;
		gchar* _tmp237_;
		gboolean _tmp238_ = FALSE;
		gboolean _tmp239_ = FALSE;
		const gchar* _tmp240_;
		const gchar* _tmp241_;
		GeeHashMap* _tmp254_;
		const gchar* _tmp255_;
		GeeHashMap* _tmp284_;
		const gchar* _tmp285_;
		const gchar* _tmp286_;
		const gchar* _tmp287_;
		const gchar* _tmp288_;
		const gchar* _tmp289_;
		const gchar* _tmp290_;
		const gchar* _tmp291_;
		const gchar* _tmp292_;
		gchar* _tmp293_;
#line 2330 "../src/main.vala"
		_tmp193_ = match;
#line 2330 "../src/main.vala"
		_tmp194_ = g_match_info_fetch (_tmp193_, 1);
#line 2330 "../src/main.vala"
		name = _tmp194_;
#line 2331 "../src/main.vala"
		_tmp195_ = match;
#line 2331 "../src/main.vala"
		_tmp196_ = g_match_info_fetch (_tmp195_, 2);
#line 2331 "../src/main.vala"
		_tmp197_ = _tmp196_;
#line 2331 "../src/main.vala"
		_tmp198_ = string_strip (_tmp197_);
#line 2331 "../src/main.vala"
		_tmp199_ = _tmp198_;
#line 2331 "../src/main.vala"
		_g_free0 (_tmp197_);
#line 2331 "../src/main.vala"
		raw_expression = _tmp199_;
#line 2332 "../src/main.vala"
		_tmp200_ = name;
#line 2332 "../src/main.vala"
		_tmp201_ = php_to_vala_transpiler_build_array_initialization (self, _tmp200_);
#line 2332 "../src/main.vala"
		array_init = _tmp201_;
#line 2333 "../src/main.vala"
		_tmp203_ = array_init;
#line 2333 "../src/main.vala"
		if (_tmp203_ != NULL) {
#line 27423 "main.c"
			const gchar* _tmp204_;
#line 2333 "../src/main.vala"
			_tmp204_ = raw_expression;
#line 2333 "../src/main.vala"
			_tmp202_ = g_strcmp0 (_tmp204_, "array()") == 0;
#line 27429 "main.c"
		} else {
#line 2333 "../src/main.vala"
			_tmp202_ = FALSE;
#line 27433 "main.c"
		}
#line 2333 "../src/main.vala"
		if (_tmp202_) {
#line 2334 "../src/main.vala"
			result = array_init;
#line 2334 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2334 "../src/main.vala"
			_g_free0 (name);
#line 2334 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2334 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2334 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2334 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2334 "../src/main.vala"
			return result;
#line 27453 "main.c"
		}
#line 2336 "../src/main.vala"
		_tmp205_ = raw_expression;
#line 2336 "../src/main.vala"
		_tmp206_ = php_to_vala_transpiler_convert_expression (self, _tmp205_, php_line_number, &_inner_error0_);
#line 2336 "../src/main.vala"
		expression = _tmp206_;
#line 2336 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2336 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2336 "../src/main.vala"
			_g_free0 (array_init);
#line 2336 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2336 "../src/main.vala"
			_g_free0 (name);
#line 2336 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2336 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2336 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2336 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2336 "../src/main.vala"
			return NULL;
#line 27481 "main.c"
		}
#line 2337 "../src/main.vala"
		_tmp207_ = expression;
#line 2337 "../src/main.vala"
		_tmp208_ = php_to_vala_transpiler_infer_type (self, _tmp207_);
#line 2337 "../src/main.vala"
		type_name = _tmp208_;
#line 2338 "../src/main.vala"
		_tmp210_ = self->local_functions;
#line 2338 "../src/main.vala"
		_tmp211_ = name;
#line 2338 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp210_, _tmp211_)) {
#line 27495 "main.c"
			GeeHashMap* _tmp212_;
			const gchar* _tmp213_;
#line 2338 "../src/main.vala"
			_tmp212_ = self->variable_aliases;
#line 2338 "../src/main.vala"
			_tmp213_ = name;
#line 2338 "../src/main.vala"
			_tmp209_ = !gee_abstract_map_has_key ((GeeAbstractMap*) _tmp212_, _tmp213_);
#line 27504 "main.c"
		} else {
#line 2338 "../src/main.vala"
			_tmp209_ = FALSE;
#line 27508 "main.c"
		}
#line 2338 "../src/main.vala"
		if (_tmp209_) {
#line 27512 "main.c"
			gchar* alias_name = NULL;
			const gchar* _tmp214_;
			gchar* _tmp215_;
			GeeHashMap* _tmp216_;
			const gchar* _tmp217_;
			const gchar* _tmp218_;
			GeeHashMap* _tmp219_;
			const gchar* _tmp220_;
			const gchar* _tmp221_;
			const gchar* _tmp222_;
			const gchar* _tmp223_;
			const gchar* _tmp224_;
			const gchar* _tmp225_;
			const gchar* _tmp226_;
			const gchar* _tmp227_;
			gchar* _tmp228_;
#line 2339 "../src/main.vala"
			_tmp214_ = name;
#line 2339 "../src/main.vala"
			_tmp215_ = g_strconcat (_tmp214_, "_result", NULL);
#line 2339 "../src/main.vala"
			alias_name = _tmp215_;
#line 2340 "../src/main.vala"
			_tmp216_ = self->variable_aliases;
#line 2340 "../src/main.vala"
			_tmp217_ = name;
#line 2340 "../src/main.vala"
			_tmp218_ = alias_name;
#line 2340 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp216_, _tmp217_, _tmp218_);
#line 2341 "../src/main.vala"
			_tmp219_ = self->variable_types;
#line 2341 "../src/main.vala"
			_tmp220_ = alias_name;
#line 2341 "../src/main.vala"
			_tmp221_ = type_name;
#line 2341 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp219_, _tmp220_, _tmp221_);
#line 2342 "../src/main.vala"
			_tmp222_ = type_name;
#line 2342 "../src/main.vala"
			_tmp223_ = string_to_string (_tmp222_);
#line 2342 "../src/main.vala"
			_tmp224_ = alias_name;
#line 2342 "../src/main.vala"
			_tmp225_ = string_to_string (_tmp224_);
#line 2342 "../src/main.vala"
			_tmp226_ = expression;
#line 2342 "../src/main.vala"
			_tmp227_ = string_to_string (_tmp226_);
#line 2342 "../src/main.vala"
			_tmp228_ = g_strconcat (_tmp223_, " ", _tmp225_, " = ", _tmp227_, ";", NULL);
#line 2342 "../src/main.vala"
			result = _tmp228_;
#line 2342 "../src/main.vala"
			_g_free0 (alias_name);
#line 2342 "../src/main.vala"
			_g_free0 (type_name);
#line 2342 "../src/main.vala"
			_g_free0 (expression);
#line 2342 "../src/main.vala"
			_g_free0 (array_init);
#line 2342 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2342 "../src/main.vala"
			_g_free0 (name);
#line 2342 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2342 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2342 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2342 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2342 "../src/main.vala"
			return result;
#line 27589 "main.c"
		}
#line 2345 "../src/main.vala"
		_tmp230_ = self->variable_aliases;
#line 2345 "../src/main.vala"
		_tmp231_ = name;
#line 2345 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp230_, _tmp231_)) {
#line 27597 "main.c"
			GeeHashMap* _tmp232_;
			const gchar* _tmp233_;
			gpointer _tmp234_;
#line 2345 "../src/main.vala"
			_tmp232_ = self->variable_aliases;
#line 2345 "../src/main.vala"
			_tmp233_ = name;
#line 2345 "../src/main.vala"
			_tmp234_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp232_, _tmp233_);
#line 2345 "../src/main.vala"
			_g_free0 (_tmp229_);
#line 2345 "../src/main.vala"
			_tmp229_ = (gchar*) _tmp234_;
#line 27611 "main.c"
		} else {
			const gchar* _tmp235_;
			gchar* _tmp236_;
#line 2345 "../src/main.vala"
			_tmp235_ = name;
#line 2345 "../src/main.vala"
			_tmp236_ = g_strdup (_tmp235_);
#line 2345 "../src/main.vala"
			_g_free0 (_tmp229_);
#line 2345 "../src/main.vala"
			_tmp229_ = _tmp236_;
#line 27623 "main.c"
		}
#line 2345 "../src/main.vala"
		_tmp237_ = _tmp229_;
#line 2345 "../src/main.vala"
		_tmp229_ = NULL;
#line 2345 "../src/main.vala"
		storage_name = _tmp237_;
#line 2346 "../src/main.vala"
		_tmp240_ = storage_name;
#line 2346 "../src/main.vala"
		_tmp241_ = name;
#line 2346 "../src/main.vala"
		if (g_strcmp0 (_tmp240_, _tmp241_) != 0) {
#line 27637 "main.c"
			GeeHashMap* _tmp242_;
			const gchar* _tmp243_;
#line 2346 "../src/main.vala"
			_tmp242_ = self->variable_types;
#line 2346 "../src/main.vala"
			_tmp243_ = storage_name;
#line 2346 "../src/main.vala"
			_tmp239_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp242_, _tmp243_);
#line 27646 "main.c"
		} else {
#line 2346 "../src/main.vala"
			_tmp239_ = FALSE;
#line 27650 "main.c"
		}
#line 2346 "../src/main.vala"
		if (_tmp239_) {
#line 27654 "main.c"
			GeeHashMap* _tmp244_;
			const gchar* _tmp245_;
			gpointer _tmp246_;
			gchar* _tmp247_;
			const gchar* _tmp248_;
#line 2346 "../src/main.vala"
			_tmp244_ = self->variable_types;
#line 2346 "../src/main.vala"
			_tmp245_ = storage_name;
#line 2346 "../src/main.vala"
			_tmp246_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp244_, _tmp245_);
#line 2346 "../src/main.vala"
			_tmp247_ = (gchar*) _tmp246_;
#line 2346 "../src/main.vala"
			_tmp248_ = type_name;
#line 2346 "../src/main.vala"
			_tmp238_ = g_strcmp0 (_tmp247_, _tmp248_) == 0;
#line 2346 "../src/main.vala"
			_g_free0 (_tmp247_);
#line 27674 "main.c"
		} else {
#line 2346 "../src/main.vala"
			_tmp238_ = FALSE;
#line 27678 "main.c"
		}
#line 2346 "../src/main.vala"
		if (_tmp238_) {
#line 27682 "main.c"
			const gchar* _tmp249_;
			const gchar* _tmp250_;
			const gchar* _tmp251_;
			const gchar* _tmp252_;
			gchar* _tmp253_;
#line 2347 "../src/main.vala"
			_tmp249_ = storage_name;
#line 2347 "../src/main.vala"
			_tmp250_ = string_to_string (_tmp249_);
#line 2347 "../src/main.vala"
			_tmp251_ = expression;
#line 2347 "../src/main.vala"
			_tmp252_ = string_to_string (_tmp251_);
#line 2347 "../src/main.vala"
			_tmp253_ = g_strconcat (_tmp250_, " = ", _tmp252_, ";", NULL);
#line 2347 "../src/main.vala"
			result = _tmp253_;
#line 2347 "../src/main.vala"
			_g_free0 (storage_name);
#line 2347 "../src/main.vala"
			_g_free0 (_tmp229_);
#line 2347 "../src/main.vala"
			_g_free0 (type_name);
#line 2347 "../src/main.vala"
			_g_free0 (expression);
#line 2347 "../src/main.vala"
			_g_free0 (array_init);
#line 2347 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2347 "../src/main.vala"
			_g_free0 (name);
#line 2347 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2347 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2347 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2347 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2347 "../src/main.vala"
			return result;
#line 27724 "main.c"
		}
#line 2349 "../src/main.vala"
		_tmp254_ = self->variable_types;
#line 2349 "../src/main.vala"
		_tmp255_ = name;
#line 2349 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp254_, _tmp255_)) {
#line 27732 "main.c"
			gchar* old_type = NULL;
			GeeHashMap* _tmp256_;
			const gchar* _tmp257_;
			gpointer _tmp258_;
			gboolean _tmp259_ = FALSE;
			const gchar* _tmp260_;
			const gchar* _tmp261_;
			const gchar* _tmp279_;
			const gchar* _tmp280_;
			const gchar* _tmp281_;
			const gchar* _tmp282_;
			gchar* _tmp283_;
#line 2350 "../src/main.vala"
			_tmp256_ = self->variable_types;
#line 2350 "../src/main.vala"
			_tmp257_ = name;
#line 2350 "../src/main.vala"
			_tmp258_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp256_, _tmp257_);
#line 2350 "../src/main.vala"
			old_type = (gchar*) _tmp258_;
#line 2351 "../src/main.vala"
			_tmp260_ = old_type;
#line 2351 "../src/main.vala"
			_tmp261_ = type_name;
#line 2351 "../src/main.vala"
			if (g_strcmp0 (_tmp260_, _tmp261_) != 0) {
#line 27759 "main.c"
				const gchar* _tmp262_;
#line 2351 "../src/main.vala"
				_tmp262_ = type_name;
#line 2351 "../src/main.vala"
				_tmp259_ = g_strcmp0 (_tmp262_, "var") != 0;
#line 27765 "main.c"
			} else {
#line 2351 "../src/main.vala"
				_tmp259_ = FALSE;
#line 27769 "main.c"
			}
#line 2351 "../src/main.vala"
			if (_tmp259_) {
#line 27773 "main.c"
				gchar* alias_name = NULL;
				const gchar* _tmp263_;
				const gchar* _tmp264_;
				gchar* _tmp265_;
				GeeHashMap* _tmp266_;
				const gchar* _tmp267_;
				const gchar* _tmp268_;
				GeeHashMap* _tmp269_;
				const gchar* _tmp270_;
				const gchar* _tmp271_;
				const gchar* _tmp272_;
				const gchar* _tmp273_;
				const gchar* _tmp274_;
				const gchar* _tmp275_;
				const gchar* _tmp276_;
				const gchar* _tmp277_;
				gchar* _tmp278_;
#line 2352 "../src/main.vala"
				_tmp263_ = name;
#line 2352 "../src/main.vala"
				_tmp264_ = type_name;
#line 2352 "../src/main.vala"
				_tmp265_ = php_to_vala_transpiler_unique_alias_name (self, _tmp263_, _tmp264_);
#line 2352 "../src/main.vala"
				alias_name = _tmp265_;
#line 2353 "../src/main.vala"
				_tmp266_ = self->variable_aliases;
#line 2353 "../src/main.vala"
				_tmp267_ = name;
#line 2353 "../src/main.vala"
				_tmp268_ = alias_name;
#line 2353 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp266_, _tmp267_, _tmp268_);
#line 2354 "../src/main.vala"
				_tmp269_ = self->variable_types;
#line 2354 "../src/main.vala"
				_tmp270_ = alias_name;
#line 2354 "../src/main.vala"
				_tmp271_ = type_name;
#line 2354 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp269_, _tmp270_, _tmp271_);
#line 2355 "../src/main.vala"
				_tmp272_ = type_name;
#line 2355 "../src/main.vala"
				_tmp273_ = string_to_string (_tmp272_);
#line 2355 "../src/main.vala"
				_tmp274_ = alias_name;
#line 2355 "../src/main.vala"
				_tmp275_ = string_to_string (_tmp274_);
#line 2355 "../src/main.vala"
				_tmp276_ = expression;
#line 2355 "../src/main.vala"
				_tmp277_ = string_to_string (_tmp276_);
#line 2355 "../src/main.vala"
				_tmp278_ = g_strconcat (_tmp273_, " ", _tmp275_, " = ", _tmp277_, ";", NULL);
#line 2355 "../src/main.vala"
				result = _tmp278_;
#line 2355 "../src/main.vala"
				_g_free0 (alias_name);
#line 2355 "../src/main.vala"
				_g_free0 (old_type);
#line 2355 "../src/main.vala"
				_g_free0 (storage_name);
#line 2355 "../src/main.vala"
				_g_free0 (_tmp229_);
#line 2355 "../src/main.vala"
				_g_free0 (type_name);
#line 2355 "../src/main.vala"
				_g_free0 (expression);
#line 2355 "../src/main.vala"
				_g_free0 (array_init);
#line 2355 "../src/main.vala"
				_g_free0 (raw_expression);
#line 2355 "../src/main.vala"
				_g_free0 (name);
#line 2355 "../src/main.vala"
				_g_free0 (assignment_name);
#line 2355 "../src/main.vala"
				_g_free0 (array_assignment);
#line 2355 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 2355 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 2355 "../src/main.vala"
				return result;
#line 27859 "main.c"
			}
#line 2357 "../src/main.vala"
			_tmp279_ = storage_name;
#line 2357 "../src/main.vala"
			_tmp280_ = string_to_string (_tmp279_);
#line 2357 "../src/main.vala"
			_tmp281_ = expression;
#line 2357 "../src/main.vala"
			_tmp282_ = string_to_string (_tmp281_);
#line 2357 "../src/main.vala"
			_tmp283_ = g_strconcat (_tmp280_, " = ", _tmp282_, ";", NULL);
#line 2357 "../src/main.vala"
			result = _tmp283_;
#line 2357 "../src/main.vala"
			_g_free0 (old_type);
#line 2357 "../src/main.vala"
			_g_free0 (storage_name);
#line 2357 "../src/main.vala"
			_g_free0 (_tmp229_);
#line 2357 "../src/main.vala"
			_g_free0 (type_name);
#line 2357 "../src/main.vala"
			_g_free0 (expression);
#line 2357 "../src/main.vala"
			_g_free0 (array_init);
#line 2357 "../src/main.vala"
			_g_free0 (raw_expression);
#line 2357 "../src/main.vala"
			_g_free0 (name);
#line 2357 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2357 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2357 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2357 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2357 "../src/main.vala"
			return result;
#line 27899 "main.c"
		}
#line 2360 "../src/main.vala"
		_tmp284_ = self->variable_types;
#line 2360 "../src/main.vala"
		_tmp285_ = name;
#line 2360 "../src/main.vala"
		_tmp286_ = type_name;
#line 2360 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp284_, _tmp285_, _tmp286_);
#line 2361 "../src/main.vala"
		_tmp287_ = type_name;
#line 2361 "../src/main.vala"
		_tmp288_ = string_to_string (_tmp287_);
#line 2361 "../src/main.vala"
		_tmp289_ = name;
#line 2361 "../src/main.vala"
		_tmp290_ = string_to_string (_tmp289_);
#line 2361 "../src/main.vala"
		_tmp291_ = expression;
#line 2361 "../src/main.vala"
		_tmp292_ = string_to_string (_tmp291_);
#line 2361 "../src/main.vala"
		_tmp293_ = g_strconcat (_tmp288_, " ", _tmp290_, " = ", _tmp292_, ";", NULL);
#line 2361 "../src/main.vala"
		result = _tmp293_;
#line 2361 "../src/main.vala"
		_g_free0 (storage_name);
#line 2361 "../src/main.vala"
		_g_free0 (_tmp229_);
#line 2361 "../src/main.vala"
		_g_free0 (type_name);
#line 2361 "../src/main.vala"
		_g_free0 (expression);
#line 2361 "../src/main.vala"
		_g_free0 (array_init);
#line 2361 "../src/main.vala"
		_g_free0 (raw_expression);
#line 2361 "../src/main.vala"
		_g_free0 (name);
#line 2361 "../src/main.vala"
		_g_free0 (assignment_name);
#line 2361 "../src/main.vala"
		_g_free0 (array_assignment);
#line 2361 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2361 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2361 "../src/main.vala"
		return result;
#line 27949 "main.c"
	}
#line 2364 "../src/main.vala"
	_tmp294_ = self->priv->function_call_regex;
#line 2364 "../src/main.vala"
	_tmp296_ = g_regex_match (_tmp294_, line, 0, &_tmp295_);
#line 2364 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2364 "../src/main.vala"
	match = _tmp295_;
#line 2364 "../src/main.vala"
	if (_tmp296_) {
#line 27961 "main.c"
		gchar* php_function_name = NULL;
		GMatchInfo* _tmp297_;
		gchar* _tmp298_;
		gboolean _tmp299_ = FALSE;
		const gchar* _tmp300_;
		GeeHashMap* _tmp311_;
		const gchar* _tmp312_;
		gchar* function_name = NULL;
		const gchar* _tmp325_;
		gchar* _tmp326_;
		gchar* args = NULL;
		const gchar* _tmp327_;
		GMatchInfo* _tmp328_;
		gchar* _tmp329_;
		gchar* _tmp330_;
		gchar* _tmp331_;
		gchar* _tmp332_;
		gchar* _tmp333_;
		gchar* _tmp334_;
		gboolean _tmp335_ = FALSE;
		const gchar* _tmp336_;
		const gchar* _tmp348_;
		const gchar* _tmp349_;
		const gchar* _tmp350_;
		const gchar* _tmp351_;
		gchar* _tmp352_;
#line 2365 "../src/main.vala"
		_tmp297_ = match;
#line 2365 "../src/main.vala"
		_tmp298_ = g_match_info_fetch (_tmp297_, 1);
#line 2365 "../src/main.vala"
		php_function_name = _tmp298_;
#line 2366 "../src/main.vala"
		_tmp300_ = php_function_name;
#line 2366 "../src/main.vala"
		if (g_strcmp0 (_tmp300_, "exit") == 0) {
#line 2366 "../src/main.vala"
			_tmp299_ = TRUE;
#line 28000 "main.c"
		} else {
			const gchar* _tmp301_;
#line 2366 "../src/main.vala"
			_tmp301_ = php_function_name;
#line 2366 "../src/main.vala"
			_tmp299_ = g_strcmp0 (_tmp301_, "die") == 0;
#line 28007 "main.c"
		}
#line 2366 "../src/main.vala"
		if (_tmp299_) {
#line 28011 "main.c"
			gchar* _tmp302_ = NULL;
			GMatchInfo* _tmp303_;
			gchar* _tmp304_;
			gchar* _tmp305_;
			gchar* _tmp306_;
			gchar* _tmp307_;
			gchar* _tmp308_;
			gchar* _tmp309_;
			gchar* _tmp310_;
#line 2367 "../src/main.vala"
			_tmp303_ = match;
#line 2367 "../src/main.vala"
			_tmp304_ = g_match_info_fetch (_tmp303_, 2);
#line 2367 "../src/main.vala"
			_tmp305_ = _tmp304_;
#line 2367 "../src/main.vala"
			_tmp306_ = string_strip (_tmp305_);
#line 2367 "../src/main.vala"
			_tmp307_ = _tmp306_;
#line 2367 "../src/main.vala"
			_tmp308_ = php_to_vala_transpiler_transpile_exit (self, _tmp307_, php_line_number, &_inner_error0_);
#line 2367 "../src/main.vala"
			_tmp309_ = _tmp308_;
#line 2367 "../src/main.vala"
			_g_free0 (_tmp307_);
#line 2367 "../src/main.vala"
			_g_free0 (_tmp305_);
#line 2367 "../src/main.vala"
			_tmp302_ = _tmp309_;
#line 2367 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2367 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 2367 "../src/main.vala"
				_g_free0 (php_function_name);
#line 2367 "../src/main.vala"
				_g_free0 (assignment_name);
#line 2367 "../src/main.vala"
				_g_free0 (array_assignment);
#line 2367 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 2367 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 2367 "../src/main.vala"
				return NULL;
#line 28057 "main.c"
			}
#line 2367 "../src/main.vala"
			_tmp310_ = _tmp302_;
#line 2367 "../src/main.vala"
			_tmp302_ = NULL;
#line 2367 "../src/main.vala"
			result = _tmp310_;
#line 2367 "../src/main.vala"
			_g_free0 (_tmp302_);
#line 2367 "../src/main.vala"
			_g_free0 (php_function_name);
#line 2367 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2367 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2367 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2367 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2367 "../src/main.vala"
			return result;
#line 28079 "main.c"
		}
#line 2370 "../src/main.vala"
		_tmp311_ = self->local_functions;
#line 2370 "../src/main.vala"
		_tmp312_ = php_function_name;
#line 2370 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp311_, _tmp312_)) {
#line 28087 "main.c"
			gchar* args = NULL;
			GMatchInfo* _tmp313_;
			gchar* _tmp314_;
			gchar* _tmp315_;
			gchar* _tmp316_;
			gchar* _tmp317_;
			gchar* _tmp318_;
			gchar* _tmp319_;
			const gchar* _tmp320_;
			const gchar* _tmp321_;
			const gchar* _tmp322_;
			const gchar* _tmp323_;
			gchar* _tmp324_;
#line 2371 "../src/main.vala"
			_tmp313_ = match;
#line 2371 "../src/main.vala"
			_tmp314_ = g_match_info_fetch (_tmp313_, 2);
#line 2371 "../src/main.vala"
			_tmp315_ = _tmp314_;
#line 2371 "../src/main.vala"
			_tmp316_ = string_strip (_tmp315_);
#line 2371 "../src/main.vala"
			_tmp317_ = _tmp316_;
#line 2371 "../src/main.vala"
			_tmp318_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp317_, php_line_number, &_inner_error0_);
#line 2371 "../src/main.vala"
			_tmp319_ = _tmp318_;
#line 2371 "../src/main.vala"
			_g_free0 (_tmp317_);
#line 2371 "../src/main.vala"
			_g_free0 (_tmp315_);
#line 2371 "../src/main.vala"
			args = _tmp319_;
#line 2371 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2371 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 2371 "../src/main.vala"
				_g_free0 (php_function_name);
#line 2371 "../src/main.vala"
				_g_free0 (assignment_name);
#line 2371 "../src/main.vala"
				_g_free0 (array_assignment);
#line 2371 "../src/main.vala"
				_g_free0 (compound_assignment);
#line 2371 "../src/main.vala"
				_g_match_info_unref0 (match);
#line 2371 "../src/main.vala"
				return NULL;
#line 28137 "main.c"
			}
#line 2372 "../src/main.vala"
			_tmp320_ = php_function_name;
#line 2372 "../src/main.vala"
			_tmp321_ = string_to_string (_tmp320_);
#line 2372 "../src/main.vala"
			_tmp322_ = args;
#line 2372 "../src/main.vala"
			_tmp323_ = string_to_string (_tmp322_);
#line 2372 "../src/main.vala"
			_tmp324_ = g_strconcat (_tmp321_, " (", _tmp323_, ");", NULL);
#line 2372 "../src/main.vala"
			result = _tmp324_;
#line 2372 "../src/main.vala"
			_g_free0 (args);
#line 2372 "../src/main.vala"
			_g_free0 (php_function_name);
#line 2372 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2372 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2372 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2372 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2372 "../src/main.vala"
			return result;
#line 28165 "main.c"
		}
#line 2375 "../src/main.vala"
		_tmp325_ = php_function_name;
#line 2375 "../src/main.vala"
		_tmp326_ = php_to_vala_transpiler_map_php_function_name (self, _tmp325_, php_line_number, &_inner_error0_);
#line 2375 "../src/main.vala"
		function_name = _tmp326_;
#line 2375 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2375 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2375 "../src/main.vala"
			_g_free0 (php_function_name);
#line 2375 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2375 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2375 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2375 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2375 "../src/main.vala"
			return NULL;
#line 28189 "main.c"
		}
#line 2376 "../src/main.vala"
		_tmp327_ = php_function_name;
#line 2376 "../src/main.vala"
		_tmp328_ = match;
#line 2376 "../src/main.vala"
		_tmp329_ = g_match_info_fetch (_tmp328_, 2);
#line 2376 "../src/main.vala"
		_tmp330_ = _tmp329_;
#line 2376 "../src/main.vala"
		_tmp331_ = string_strip (_tmp330_);
#line 2376 "../src/main.vala"
		_tmp332_ = _tmp331_;
#line 2376 "../src/main.vala"
		_tmp333_ = php_to_vala_transpiler_convert_function_args (self, _tmp327_, _tmp332_, php_line_number, &_inner_error0_);
#line 2376 "../src/main.vala"
		_tmp334_ = _tmp333_;
#line 2376 "../src/main.vala"
		_g_free0 (_tmp332_);
#line 2376 "../src/main.vala"
		_g_free0 (_tmp330_);
#line 2376 "../src/main.vala"
		args = _tmp334_;
#line 2376 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2376 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2376 "../src/main.vala"
			_g_free0 (function_name);
#line 2376 "../src/main.vala"
			_g_free0 (php_function_name);
#line 2376 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2376 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2376 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2376 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2376 "../src/main.vala"
			return NULL;
#line 28231 "main.c"
		}
#line 2377 "../src/main.vala"
		_tmp336_ = php_function_name;
#line 2377 "../src/main.vala"
		if (g_strcmp0 (_tmp336_, "phpinfo") == 0) {
#line 2377 "../src/main.vala"
			_tmp335_ = TRUE;
#line 28239 "main.c"
		} else {
			const gchar* _tmp337_;
#line 2377 "../src/main.vala"
			_tmp337_ = php_function_name;
#line 2377 "../src/main.vala"
			_tmp335_ = g_strcmp0 (_tmp337_, "var_dump") == 0;
#line 28246 "main.c"
		}
#line 2377 "../src/main.vala"
		if (_tmp335_) {
#line 28250 "main.c"
			const gchar* _tmp338_;
			gchar* _tmp339_;
			gchar* _tmp340_;
			gchar* _tmp341_;
			gchar* _tmp342_;
			const gchar* _tmp343_;
			gchar* _tmp344_;
			gchar* _tmp345_;
			gchar* _tmp346_;
			gchar* _tmp347_;
#line 2378 "../src/main.vala"
			_tmp338_ = function_name;
#line 2378 "../src/main.vala"
			_tmp339_ = g_strconcat ("stdout.printf (\"%s\", ", _tmp338_, NULL);
#line 2378 "../src/main.vala"
			_tmp340_ = _tmp339_;
#line 2378 "../src/main.vala"
			_tmp341_ = g_strconcat (_tmp340_, " (", NULL);
#line 2378 "../src/main.vala"
			_tmp342_ = _tmp341_;
#line 2378 "../src/main.vala"
			_tmp343_ = args;
#line 2378 "../src/main.vala"
			_tmp344_ = g_strconcat (_tmp342_, _tmp343_, NULL);
#line 2378 "../src/main.vala"
			_tmp345_ = _tmp344_;
#line 2378 "../src/main.vala"
			_tmp346_ = g_strconcat (_tmp345_, "));", NULL);
#line 2378 "../src/main.vala"
			_tmp347_ = _tmp346_;
#line 2378 "../src/main.vala"
			_g_free0 (_tmp345_);
#line 2378 "../src/main.vala"
			_g_free0 (_tmp342_);
#line 2378 "../src/main.vala"
			_g_free0 (_tmp340_);
#line 2378 "../src/main.vala"
			result = _tmp347_;
#line 2378 "../src/main.vala"
			_g_free0 (args);
#line 2378 "../src/main.vala"
			_g_free0 (function_name);
#line 2378 "../src/main.vala"
			_g_free0 (php_function_name);
#line 2378 "../src/main.vala"
			_g_free0 (assignment_name);
#line 2378 "../src/main.vala"
			_g_free0 (array_assignment);
#line 2378 "../src/main.vala"
			_g_free0 (compound_assignment);
#line 2378 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2378 "../src/main.vala"
			return result;
#line 28305 "main.c"
		}
#line 2380 "../src/main.vala"
		_tmp348_ = function_name;
#line 2380 "../src/main.vala"
		_tmp349_ = string_to_string (_tmp348_);
#line 2380 "../src/main.vala"
		_tmp350_ = args;
#line 2380 "../src/main.vala"
		_tmp351_ = string_to_string (_tmp350_);
#line 2380 "../src/main.vala"
		_tmp352_ = g_strconcat (_tmp349_, " (", _tmp351_, ");", NULL);
#line 2380 "../src/main.vala"
		result = _tmp352_;
#line 2380 "../src/main.vala"
		_g_free0 (args);
#line 2380 "../src/main.vala"
		_g_free0 (function_name);
#line 2380 "../src/main.vala"
		_g_free0 (php_function_name);
#line 2380 "../src/main.vala"
		_g_free0 (assignment_name);
#line 2380 "../src/main.vala"
		_g_free0 (array_assignment);
#line 2380 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2380 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2380 "../src/main.vala"
		return result;
#line 28335 "main.c"
	}
#line 2383 "../src/main.vala"
	static_call_index = string_index_of (line, "::", 0);
#line 2384 "../src/main.vala"
	if (static_call_index > 0) {
#line 2384 "../src/main.vala"
		_tmp353_ = g_str_has_suffix (line, ");");
#line 28343 "main.c"
	} else {
#line 2384 "../src/main.vala"
		_tmp353_ = FALSE;
#line 28347 "main.c"
	}
#line 2384 "../src/main.vala"
	if (_tmp353_) {
#line 28351 "main.c"
		gchar* _tmp354_;
#line 2385 "../src/main.vala"
		_tmp354_ = g_strconcat ("// skipped PHP static call: ", line, NULL);
#line 2385 "../src/main.vala"
		result = _tmp354_;
#line 2385 "../src/main.vala"
		_g_free0 (assignment_name);
#line 2385 "../src/main.vala"
		_g_free0 (array_assignment);
#line 2385 "../src/main.vala"
		_g_free0 (compound_assignment);
#line 2385 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2385 "../src/main.vala"
		return result;
#line 28367 "main.c"
	}
#line 2388 "../src/main.vala"
	_tmp355_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2388 "../src/main.vala"
	_inner_error0_ = _tmp355_;
#line 2388 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 2388 "../src/main.vala"
	_g_free0 (assignment_name);
#line 2388 "../src/main.vala"
	_g_free0 (array_assignment);
#line 2388 "../src/main.vala"
	_g_free0 (compound_assignment);
#line 2388 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2388 "../src/main.vala"
	return NULL;
#line 28385 "main.c"
}

static gchar*
php_to_vala_transpiler_parse_assignment_name (const gchar* line)
{
	gboolean _tmp0_ = FALSE;
	gint equals_index = 0;
	gchar* name = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* result;
#line 2391 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2392 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 2392 "../src/main.vala"
		_tmp0_ = TRUE;
#line 28406 "main.c"
	} else {
#line 2392 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 28410 "main.c"
	}
#line 2392 "../src/main.vala"
	if (_tmp0_) {
#line 2393 "../src/main.vala"
		result = NULL;
#line 2393 "../src/main.vala"
		return result;
#line 28418 "main.c"
	}
#line 2396 "../src/main.vala"
	equals_index = string_index_of (line, "=", 0);
#line 2397 "../src/main.vala"
	if (equals_index <= 1) {
#line 2398 "../src/main.vala"
		result = NULL;
#line 2398 "../src/main.vala"
		return result;
#line 28428 "main.c"
	}
#line 2401 "../src/main.vala"
	_tmp1_ = string_substring (line, (glong) 1, (glong) (equals_index - 1));
#line 2401 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 2401 "../src/main.vala"
	_tmp3_ = string_strip (_tmp2_);
#line 2401 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 2401 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 2401 "../src/main.vala"
	name = _tmp4_;
#line 2402 "../src/main.vala"
	_tmp5_ = name;
#line 2402 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp5_)) {
#line 2403 "../src/main.vala"
		result = NULL;
#line 2403 "../src/main.vala"
		_g_free0 (name);
#line 2403 "../src/main.vala"
		return result;
#line 28452 "main.c"
	}
#line 2406 "../src/main.vala"
	result = name;
#line 2406 "../src/main.vala"
	return result;
#line 28458 "main.c"
}

static gchar*
php_to_vala_transpiler_parse_assignment_expression (const gchar* line)
{
	gint equals_index = 0;
	gchar* expression = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
#line 2409 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2410 "../src/main.vala"
	equals_index = string_index_of (line, "=", 0);
#line 2411 "../src/main.vala"
	_tmp0_ = string_substring (line, (glong) (equals_index + 1), (glong) -1);
#line 2411 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2411 "../src/main.vala"
	_tmp2_ = string_strip (_tmp1_);
#line 2411 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2411 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 2411 "../src/main.vala"
	expression = _tmp3_;
#line 2412 "../src/main.vala"
	_tmp4_ = php_to_vala_transpiler_trim_trailing_semicolon (expression);
#line 2412 "../src/main.vala"
	result = _tmp4_;
#line 2412 "../src/main.vala"
	_g_free0 (expression);
#line 2412 "../src/main.vala"
	return result;
#line 28496 "main.c"
}

static gchar*
php_to_vala_transpiler_build_array_initialization (PhpToValaTranspiler* self,
                                                   const gchar* name)
{
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp4_;
	gboolean _tmp8_ = FALSE;
	gchar* result;
#line 2415 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2415 "../src/main.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 2416 "../src/main.vala"
	if (g_strcmp0 (name, "matrix") == 0) {
#line 28513 "main.c"
		GeeHashMap* _tmp0_;
		const gchar* _tmp1_;
		gchar* _tmp2_;
#line 2417 "../src/main.vala"
		_tmp0_ = self->variable_types;
#line 2417 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, name, "Gee.ArrayList<Gee.ArrayList<string>>");
#line 2418 "../src/main.vala"
		_tmp1_ = string_to_string (name);
#line 2418 "../src/main.vala"
		_tmp2_ = g_strconcat ("Gee.ArrayList<Gee.ArrayList<string>> ", _tmp1_, " = new Gee.ArrayList<Gee.ArrayList<string>> ();", NULL);
#line 2418 "../src/main.vala"
		result = _tmp2_;
#line 2418 "../src/main.vala"
		return result;
#line 28529 "main.c"
	}
#line 2420 "../src/main.vala"
	_tmp4_ = self->current_local_function_name;
#line 2420 "../src/main.vala"
	if (g_strcmp0 (_tmp4_, "get_total_mem_zram") == 0) {
#line 2420 "../src/main.vala"
		_tmp3_ = g_strcmp0 (name, "ret") == 0;
#line 28537 "main.c"
	} else {
#line 2420 "../src/main.vala"
		_tmp3_ = FALSE;
#line 28541 "main.c"
	}
#line 2420 "../src/main.vala"
	if (_tmp3_) {
#line 28545 "main.c"
		GeeHashMap* _tmp5_;
		const gchar* _tmp6_;
		gchar* _tmp7_;
#line 2421 "../src/main.vala"
		_tmp5_ = self->variable_types;
#line 2421 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp5_, name, "Gee.HashMap<string, Gee.HashMap<string, string>>");
#line 2422 "../src/main.vala"
		_tmp6_ = string_to_string (name);
#line 2422 "../src/main.vala"
		_tmp7_ = g_strconcat ("Gee.HashMap<string, Gee.HashMap<string, string>> ", _tmp6_, " = new Gee.HashMap<string, Gee.HashMap<string, string>> ();", NULL);
#line 2422 "../src/main.vala"
		result = _tmp7_;
#line 2422 "../src/main.vala"
		return result;
#line 28561 "main.c"
	}
#line 2424 "../src/main.vala"
	if (g_strcmp0 (name, "ret") == 0) {
#line 2424 "../src/main.vala"
		_tmp8_ = TRUE;
#line 28567 "main.c"
	} else {
#line 2424 "../src/main.vala"
		_tmp8_ = g_strcmp0 (name, "ret2") == 0;
#line 28571 "main.c"
	}
#line 2424 "../src/main.vala"
	if (_tmp8_) {
#line 28575 "main.c"
		GeeHashMap* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
#line 2425 "../src/main.vala"
		_tmp9_ = self->variable_types;
#line 2425 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp9_, name, "Gee.HashMap<string, double?>");
#line 2426 "../src/main.vala"
		_tmp10_ = string_to_string (name);
#line 2426 "../src/main.vala"
		_tmp11_ = g_strconcat ("Gee.HashMap<string, double?> ", _tmp10_, " = new Gee.HashMap<string, double?> ();", NULL);
#line 2426 "../src/main.vala"
		result = _tmp11_;
#line 2426 "../src/main.vala"
		return result;
#line 28591 "main.c"
	}
#line 2428 "../src/main.vala"
	result = NULL;
#line 2428 "../src/main.vala"
	return result;
#line 28597 "main.c"
}

static gchar*
php_to_vala_transpiler_unique_alias_name (PhpToValaTranspiler* self,
                                          const gchar* name,
                                          const gchar* type_name)
{
	const gchar* _tmp0_ = NULL;
	gchar* suffix = NULL;
	gchar* _tmp1_;
	gchar* candidate = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint index = 0;
	gchar* result;
#line 2431 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2431 "../src/main.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 2431 "../src/main.vala"
	g_return_val_if_fail (type_name != NULL, NULL);
#line 2432 "../src/main.vala"
	if (string_index_of (type_name, "ArrayList", 0) >= 0) {
#line 2432 "../src/main.vala"
		_tmp0_ = "list";
#line 28626 "main.c"
	} else {
#line 2432 "../src/main.vala"
		_tmp0_ = "value";
#line 28630 "main.c"
	}
#line 2432 "../src/main.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 2432 "../src/main.vala"
	suffix = _tmp1_;
#line 2433 "../src/main.vala"
	_tmp2_ = g_strconcat (name, "_", NULL);
#line 2433 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2433 "../src/main.vala"
	_tmp4_ = suffix;
#line 2433 "../src/main.vala"
	_tmp5_ = g_strconcat (_tmp3_, _tmp4_, NULL);
#line 2433 "../src/main.vala"
	_tmp6_ = _tmp5_;
#line 2433 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2433 "../src/main.vala"
	candidate = _tmp6_;
#line 2434 "../src/main.vala"
	index = 2;
#line 2435 "../src/main.vala"
	while (TRUE) {
#line 28654 "main.c"
		GeeHashMap* _tmp7_;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gint _tmp11_;
#line 2435 "../src/main.vala"
		_tmp7_ = self->variable_types;
#line 2435 "../src/main.vala"
		_tmp8_ = candidate;
#line 2435 "../src/main.vala"
		if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp7_, _tmp8_)) {
#line 2435 "../src/main.vala"
			break;
#line 28668 "main.c"
		}
#line 2436 "../src/main.vala"
		_tmp9_ = suffix;
#line 2436 "../src/main.vala"
		_tmp10_ = g_strdup_printf ("%s_%s%d", name, _tmp9_, index);
#line 2436 "../src/main.vala"
		_g_free0 (candidate);
#line 2436 "../src/main.vala"
		candidate = _tmp10_;
#line 2437 "../src/main.vala"
		_tmp11_ = index;
#line 2437 "../src/main.vala"
		index = _tmp11_ + 1;
#line 28682 "main.c"
	}
#line 2439 "../src/main.vala"
	result = candidate;
#line 2439 "../src/main.vala"
	_g_free0 (suffix);
#line 2439 "../src/main.vala"
	return result;
#line 28690 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_array_assignment (PhpToValaTranspiler* self,
                                                   const gchar* line,
                                                   gint php_line_number,
                                                   GError** error)
{
	gboolean _tmp0_ = FALSE;
	gint bracket_index = 0;
	gint equals_index = 0;
	gboolean _tmp1_ = FALSE;
	gchar* name = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* access = NULL;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* value = NULL;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	GeeArrayList* keys = NULL;
	const gchar* _tmp19_;
	GeeArrayList* _tmp20_;
	GeeArrayList* _tmp21_;
	gint _tmp22_;
	gint _tmp23_;
	gchar* init = NULL;
	gchar* _tmp24_;
	GeeHashMap* _tmp25_;
	const gchar* _tmp26_;
	GeeArrayList* _tmp31_;
	gint _tmp32_;
	gint _tmp33_;
	GeeArrayList* _tmp71_;
	gint _tmp72_;
	gint _tmp73_;
	GError* _tmp198_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2442 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2442 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2443 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 2443 "../src/main.vala"
		_tmp0_ = TRUE;
#line 28750 "main.c"
	} else {
#line 2443 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 28754 "main.c"
	}
#line 2443 "../src/main.vala"
	if (_tmp0_) {
#line 2444 "../src/main.vala"
		result = NULL;
#line 2444 "../src/main.vala"
		return result;
#line 28762 "main.c"
	}
#line 2447 "../src/main.vala"
	bracket_index = string_index_of (line, "[", 0);
#line 2448 "../src/main.vala"
	equals_index = string_index_of (line, "=", 0);
#line 2449 "../src/main.vala"
	if (bracket_index <= 1) {
#line 2449 "../src/main.vala"
		_tmp1_ = TRUE;
#line 28772 "main.c"
	} else {
#line 2449 "../src/main.vala"
		_tmp1_ = equals_index <= bracket_index;
#line 28776 "main.c"
	}
#line 2449 "../src/main.vala"
	if (_tmp1_) {
#line 2450 "../src/main.vala"
		result = NULL;
#line 2450 "../src/main.vala"
		return result;
#line 28784 "main.c"
	}
#line 2453 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) 1, (glong) (bracket_index - 1));
#line 2453 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2453 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 2453 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2453 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2453 "../src/main.vala"
	name = _tmp5_;
#line 2454 "../src/main.vala"
	_tmp6_ = name;
#line 2454 "../src/main.vala"
	if (!php_to_vala_transpiler_is_identifier (_tmp6_)) {
#line 2455 "../src/main.vala"
		result = NULL;
#line 2455 "../src/main.vala"
		_g_free0 (name);
#line 2455 "../src/main.vala"
		return result;
#line 28808 "main.c"
	}
#line 2458 "../src/main.vala"
	_tmp7_ = string_substring (line, (glong) bracket_index, (glong) (equals_index - bracket_index));
#line 2458 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 2458 "../src/main.vala"
	_tmp9_ = string_strip (_tmp8_);
#line 2458 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 2458 "../src/main.vala"
	_g_free0 (_tmp8_);
#line 2458 "../src/main.vala"
	access = _tmp10_;
#line 2459 "../src/main.vala"
	_tmp11_ = string_substring (line, (glong) (equals_index + 1), (glong) -1);
#line 2459 "../src/main.vala"
	_tmp12_ = _tmp11_;
#line 2459 "../src/main.vala"
	_tmp13_ = string_strip (_tmp12_);
#line 2459 "../src/main.vala"
	_tmp14_ = _tmp13_;
#line 2459 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp14_);
#line 2459 "../src/main.vala"
	_tmp16_ = _tmp15_;
#line 2459 "../src/main.vala"
	_tmp17_ = php_to_vala_transpiler_convert_expression (self, _tmp16_, php_line_number, &_inner_error0_);
#line 2459 "../src/main.vala"
	_tmp18_ = _tmp17_;
#line 2459 "../src/main.vala"
	_g_free0 (_tmp16_);
#line 2459 "../src/main.vala"
	_g_free0 (_tmp14_);
#line 2459 "../src/main.vala"
	_g_free0 (_tmp12_);
#line 2459 "../src/main.vala"
	value = _tmp18_;
#line 2459 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2459 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2459 "../src/main.vala"
		_g_free0 (access);
#line 2459 "../src/main.vala"
		_g_free0 (name);
#line 2459 "../src/main.vala"
		return NULL;
#line 28856 "main.c"
	}
#line 2460 "../src/main.vala"
	_tmp19_ = access;
#line 2460 "../src/main.vala"
	_tmp20_ = php_to_vala_transpiler_parse_array_keys (self, _tmp19_, php_line_number, &_inner_error0_);
#line 2460 "../src/main.vala"
	keys = _tmp20_;
#line 2460 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2460 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2460 "../src/main.vala"
		_g_free0 (value);
#line 2460 "../src/main.vala"
		_g_free0 (access);
#line 2460 "../src/main.vala"
		_g_free0 (name);
#line 2460 "../src/main.vala"
		return NULL;
#line 28876 "main.c"
	}
#line 2461 "../src/main.vala"
	_tmp21_ = keys;
#line 2461 "../src/main.vala"
	_tmp22_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp21_);
#line 2461 "../src/main.vala"
	_tmp23_ = _tmp22_;
#line 2461 "../src/main.vala"
	if (_tmp23_ == 0) {
#line 2462 "../src/main.vala"
		result = NULL;
#line 2462 "../src/main.vala"
		_g_object_unref0 (keys);
#line 2462 "../src/main.vala"
		_g_free0 (value);
#line 2462 "../src/main.vala"
		_g_free0 (access);
#line 2462 "../src/main.vala"
		_g_free0 (name);
#line 2462 "../src/main.vala"
		return result;
#line 28898 "main.c"
	}
#line 2465 "../src/main.vala"
	_tmp24_ = g_strdup ("");
#line 2465 "../src/main.vala"
	init = _tmp24_;
#line 2466 "../src/main.vala"
	_tmp25_ = self->variable_types;
#line 2466 "../src/main.vala"
	_tmp26_ = name;
#line 2466 "../src/main.vala"
	if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp25_, _tmp26_)) {
#line 28910 "main.c"
		GeeHashMap* _tmp27_;
		const gchar* _tmp28_;
		const gchar* _tmp29_;
		gchar* _tmp30_;
#line 2467 "../src/main.vala"
		_tmp27_ = self->variable_types;
#line 2467 "../src/main.vala"
		_tmp28_ = name;
#line 2467 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp27_, _tmp28_, "Gee.HashMap<string, string>");
#line 2468 "../src/main.vala"
		_tmp29_ = name;
#line 2468 "../src/main.vala"
		_tmp30_ = g_strdup_printf ("Gee.HashMap<string, string> %s = new Gee.HashMap<string, string> ();\n", _tmp29_);
#line 2468 "../src/main.vala"
		_g_free0 (init);
#line 2468 "../src/main.vala"
		init = _tmp30_;
#line 28929 "main.c"
	}
#line 2471 "../src/main.vala"
	_tmp31_ = keys;
#line 2471 "../src/main.vala"
	_tmp32_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp31_);
#line 2471 "../src/main.vala"
	_tmp33_ = _tmp32_;
#line 2471 "../src/main.vala"
	if (_tmp33_ == 1) {
#line 28939 "main.c"
		gchar* _tmp34_ = NULL;
		GeeHashMap* _tmp35_;
		const gchar* _tmp36_;
		gchar* type_name = NULL;
		gchar* _tmp41_;
		const gchar* _tmp42_;
		const gchar* _tmp58_;
		const gchar* _tmp59_;
		const gchar* _tmp60_;
		GeeArrayList* _tmp61_;
		gpointer _tmp62_;
		gchar* _tmp63_;
		const gchar* _tmp64_;
		const gchar* _tmp65_;
		const gchar* _tmp66_;
		gchar* _tmp67_;
		gchar* _tmp68_;
		gchar* _tmp69_;
		gchar* _tmp70_;
#line 2472 "../src/main.vala"
		_tmp35_ = self->variable_types;
#line 2472 "../src/main.vala"
		_tmp36_ = name;
#line 2472 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp35_, _tmp36_)) {
#line 28965 "main.c"
			GeeHashMap* _tmp37_;
			const gchar* _tmp38_;
			gpointer _tmp39_;
#line 2472 "../src/main.vala"
			_tmp37_ = self->variable_types;
#line 2472 "../src/main.vala"
			_tmp38_ = name;
#line 2472 "../src/main.vala"
			_tmp39_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp37_, _tmp38_);
#line 2472 "../src/main.vala"
			_g_free0 (_tmp34_);
#line 2472 "../src/main.vala"
			_tmp34_ = (gchar*) _tmp39_;
#line 28979 "main.c"
		} else {
			gchar* _tmp40_;
#line 2472 "../src/main.vala"
			_tmp40_ = g_strdup ("");
#line 2472 "../src/main.vala"
			_g_free0 (_tmp34_);
#line 2472 "../src/main.vala"
			_tmp34_ = _tmp40_;
#line 28988 "main.c"
		}
#line 2472 "../src/main.vala"
		_tmp41_ = _tmp34_;
#line 2472 "../src/main.vala"
		_tmp34_ = NULL;
#line 2472 "../src/main.vala"
		type_name = _tmp41_;
#line 2473 "../src/main.vala"
		_tmp42_ = type_name;
#line 2473 "../src/main.vala"
		if (g_strcmp0 (_tmp42_, "Gee.HashMap<string, double?>") == 0) {
#line 29000 "main.c"
			const gchar* _tmp43_;
			const gchar* _tmp44_;
			const gchar* _tmp45_;
			GeeArrayList* _tmp46_;
			gpointer _tmp47_;
			gchar* _tmp48_;
			const gchar* _tmp49_;
			const gchar* _tmp50_;
			gchar* _tmp51_;
			gchar* _tmp52_;
			const gchar* _tmp53_;
			gchar* _tmp54_;
			gchar* _tmp55_;
			gchar* _tmp56_;
			gchar* _tmp57_;
#line 2474 "../src/main.vala"
			_tmp43_ = init;
#line 2474 "../src/main.vala"
			_tmp44_ = name;
#line 2474 "../src/main.vala"
			_tmp45_ = string_to_string (_tmp44_);
#line 2474 "../src/main.vala"
			_tmp46_ = keys;
#line 2474 "../src/main.vala"
			_tmp47_ = gee_abstract_list_get ((GeeAbstractList*) _tmp46_, 0);
#line 2474 "../src/main.vala"
			_tmp48_ = (gchar*) _tmp47_;
#line 2474 "../src/main.vala"
			_tmp49_ = string_to_string (_tmp48_);
#line 2474 "../src/main.vala"
			_tmp50_ = value;
#line 2474 "../src/main.vala"
			_tmp51_ = php_to_vala_transpiler_numeric_expression (self, _tmp50_);
#line 2474 "../src/main.vala"
			_tmp52_ = _tmp51_;
#line 2474 "../src/main.vala"
			_tmp53_ = string_to_string (_tmp52_);
#line 2474 "../src/main.vala"
			_tmp54_ = g_strconcat (_tmp45_, ".set (", _tmp49_, ", ", _tmp53_, ");", NULL);
#line 2474 "../src/main.vala"
			_tmp55_ = _tmp54_;
#line 2474 "../src/main.vala"
			_tmp56_ = g_strconcat (_tmp43_, _tmp55_, NULL);
#line 2474 "../src/main.vala"
			_tmp57_ = _tmp56_;
#line 2474 "../src/main.vala"
			_g_free0 (_tmp55_);
#line 2474 "../src/main.vala"
			_g_free0 (_tmp52_);
#line 2474 "../src/main.vala"
			_g_free0 (_tmp48_);
#line 2474 "../src/main.vala"
			result = _tmp57_;
#line 2474 "../src/main.vala"
			_g_free0 (type_name);
#line 2474 "../src/main.vala"
			_g_free0 (_tmp34_);
#line 2474 "../src/main.vala"
			_g_free0 (init);
#line 2474 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2474 "../src/main.vala"
			_g_free0 (value);
#line 2474 "../src/main.vala"
			_g_free0 (access);
#line 2474 "../src/main.vala"
			_g_free0 (name);
#line 2474 "../src/main.vala"
			return result;
#line 29070 "main.c"
		}
#line 2476 "../src/main.vala"
		_tmp58_ = init;
#line 2476 "../src/main.vala"
		_tmp59_ = name;
#line 2476 "../src/main.vala"
		_tmp60_ = string_to_string (_tmp59_);
#line 2476 "../src/main.vala"
		_tmp61_ = keys;
#line 2476 "../src/main.vala"
		_tmp62_ = gee_abstract_list_get ((GeeAbstractList*) _tmp61_, 0);
#line 2476 "../src/main.vala"
		_tmp63_ = (gchar*) _tmp62_;
#line 2476 "../src/main.vala"
		_tmp64_ = string_to_string (_tmp63_);
#line 2476 "../src/main.vala"
		_tmp65_ = value;
#line 2476 "../src/main.vala"
		_tmp66_ = string_to_string (_tmp65_);
#line 2476 "../src/main.vala"
		_tmp67_ = g_strconcat (_tmp60_, ".set (", _tmp64_, ", ", _tmp66_, ");", NULL);
#line 2476 "../src/main.vala"
		_tmp68_ = _tmp67_;
#line 2476 "../src/main.vala"
		_tmp69_ = g_strconcat (_tmp58_, _tmp68_, NULL);
#line 2476 "../src/main.vala"
		_tmp70_ = _tmp69_;
#line 2476 "../src/main.vala"
		_g_free0 (_tmp68_);
#line 2476 "../src/main.vala"
		_g_free0 (_tmp63_);
#line 2476 "../src/main.vala"
		result = _tmp70_;
#line 2476 "../src/main.vala"
		_g_free0 (type_name);
#line 2476 "../src/main.vala"
		_g_free0 (_tmp34_);
#line 2476 "../src/main.vala"
		_g_free0 (init);
#line 2476 "../src/main.vala"
		_g_object_unref0 (keys);
#line 2476 "../src/main.vala"
		_g_free0 (value);
#line 2476 "../src/main.vala"
		_g_free0 (access);
#line 2476 "../src/main.vala"
		_g_free0 (name);
#line 2476 "../src/main.vala"
		return result;
#line 29120 "main.c"
	}
#line 2479 "../src/main.vala"
	_tmp71_ = keys;
#line 2479 "../src/main.vala"
	_tmp72_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp71_);
#line 2479 "../src/main.vala"
	_tmp73_ = _tmp72_;
#line 2479 "../src/main.vala"
	if (_tmp73_ == 2) {
#line 29130 "main.c"
		gchar* _tmp74_ = NULL;
		GeeHashMap* _tmp75_;
		const gchar* _tmp76_;
		gchar* type_name = NULL;
		gchar* _tmp81_;
		gboolean _tmp82_ = FALSE;
		const gchar* _tmp83_;
		const gchar* _tmp127_;
		GeeArrayList* _tmp175_;
		gpointer _tmp176_;
		gchar* _tmp177_;
		gboolean _tmp178_;
		const gchar* _tmp181_;
		const gchar* _tmp182_;
		const gchar* _tmp183_;
		GeeArrayList* _tmp184_;
		gpointer _tmp185_;
		gchar* _tmp186_;
		const gchar* _tmp187_;
		GeeArrayList* _tmp188_;
		gpointer _tmp189_;
		gchar* _tmp190_;
		const gchar* _tmp191_;
		const gchar* _tmp192_;
		const gchar* _tmp193_;
		gchar* _tmp194_;
		gchar* _tmp195_;
		gchar* _tmp196_;
		gchar* _tmp197_;
#line 2480 "../src/main.vala"
		_tmp75_ = self->variable_types;
#line 2480 "../src/main.vala"
		_tmp76_ = name;
#line 2480 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp75_, _tmp76_)) {
#line 29166 "main.c"
			GeeHashMap* _tmp77_;
			const gchar* _tmp78_;
			gpointer _tmp79_;
#line 2480 "../src/main.vala"
			_tmp77_ = self->variable_types;
#line 2480 "../src/main.vala"
			_tmp78_ = name;
#line 2480 "../src/main.vala"
			_tmp79_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp77_, _tmp78_);
#line 2480 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 2480 "../src/main.vala"
			_tmp74_ = (gchar*) _tmp79_;
#line 29180 "main.c"
		} else {
			gchar* _tmp80_;
#line 2480 "../src/main.vala"
			_tmp80_ = g_strdup ("");
#line 2480 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 2480 "../src/main.vala"
			_tmp74_ = _tmp80_;
#line 29189 "main.c"
		}
#line 2480 "../src/main.vala"
		_tmp81_ = _tmp74_;
#line 2480 "../src/main.vala"
		_tmp74_ = NULL;
#line 2480 "../src/main.vala"
		type_name = _tmp81_;
#line 2481 "../src/main.vala"
		_tmp83_ = name;
#line 2481 "../src/main.vala"
		if (g_strcmp0 (_tmp83_, "matrix") == 0) {
#line 2481 "../src/main.vala"
			_tmp82_ = TRUE;
#line 29203 "main.c"
		} else {
			const gchar* _tmp84_;
#line 2481 "../src/main.vala"
			_tmp84_ = type_name;
#line 2481 "../src/main.vala"
			_tmp82_ = g_strcmp0 (_tmp84_, "Gee.ArrayList<Gee.ArrayList<string>>") == 0;
#line 29210 "main.c"
		}
#line 2481 "../src/main.vala"
		if (_tmp82_) {
#line 29214 "main.c"
			const gchar* _tmp85_;
			const gchar* _tmp86_;
			const gchar* _tmp87_;
			GeeArrayList* _tmp88_;
			gpointer _tmp89_;
			gchar* _tmp90_;
			const gchar* _tmp91_;
			const gchar* _tmp92_;
			const gchar* _tmp93_;
			gchar* _tmp94_;
			gchar* _tmp95_;
			gchar* _tmp96_;
			gchar* _tmp97_;
			gchar* _tmp98_;
			gchar* _tmp99_;
			const gchar* _tmp100_;
			const gchar* _tmp101_;
			GeeArrayList* _tmp102_;
			gpointer _tmp103_;
			gchar* _tmp104_;
			gchar* _tmp105_;
			gchar* _tmp106_;
			gchar* _tmp107_;
			gchar* _tmp108_;
			const gchar* _tmp109_;
			GeeArrayList* _tmp110_;
			gpointer _tmp111_;
			gchar* _tmp112_;
			const gchar* _tmp113_;
			gchar* _tmp114_;
			gchar* _tmp115_;
			gchar* _tmp116_;
			gchar* _tmp117_;
			const gchar* _tmp118_;
			GeeArrayList* _tmp119_;
			gpointer _tmp120_;
			gchar* _tmp121_;
			const gchar* _tmp122_;
			gchar* _tmp123_;
			gchar* _tmp124_;
			gchar* _tmp125_;
			gchar* _tmp126_;
#line 2482 "../src/main.vala"
			_tmp85_ = init;
#line 2482 "../src/main.vala"
			_tmp86_ = name;
#line 2482 "../src/main.vala"
			_tmp87_ = string_to_string (_tmp86_);
#line 2482 "../src/main.vala"
			_tmp88_ = keys;
#line 2482 "../src/main.vala"
			_tmp89_ = gee_abstract_list_get ((GeeAbstractList*) _tmp88_, 0);
#line 2482 "../src/main.vala"
			_tmp90_ = (gchar*) _tmp89_;
#line 2482 "../src/main.vala"
			_tmp91_ = string_to_string (_tmp90_);
#line 2482 "../src/main.vala"
			_tmp92_ = name;
#line 2482 "../src/main.vala"
			_tmp93_ = string_to_string (_tmp92_);
#line 2482 "../src/main.vala"
			_tmp94_ = g_strconcat ("while (", _tmp87_, ".size <= ", _tmp91_, ") { ", _tmp93_, ".add (new Gee.ArrayList<string> ()); }", NULL);
#line 2482 "../src/main.vala"
			_tmp95_ = _tmp94_;
#line 2482 "../src/main.vala"
			_tmp96_ = g_strconcat (_tmp85_, _tmp95_, NULL);
#line 2482 "../src/main.vala"
			_tmp97_ = _tmp96_;
#line 2482 "../src/main.vala"
			_tmp98_ = g_strconcat (_tmp97_, "\n", NULL);
#line 2482 "../src/main.vala"
			_tmp99_ = _tmp98_;
#line 2482 "../src/main.vala"
			_tmp100_ = name;
#line 2482 "../src/main.vala"
			_tmp101_ = name;
#line 2482 "../src/main.vala"
			_tmp102_ = keys;
#line 2482 "../src/main.vala"
			_tmp103_ = gee_abstract_list_get ((GeeAbstractList*) _tmp102_, 0);
#line 2482 "../src/main.vala"
			_tmp104_ = (gchar*) _tmp103_;
#line 2482 "../src/main.vala"
			_tmp105_ = g_strdup_printf ("var %s_row = %s.get (%s);\n", _tmp100_, _tmp101_, _tmp104_);
#line 2482 "../src/main.vala"
			_tmp106_ = _tmp105_;
#line 2482 "../src/main.vala"
			_tmp107_ = g_strconcat (_tmp99_, _tmp106_, NULL);
#line 2482 "../src/main.vala"
			_tmp108_ = _tmp107_;
#line 2482 "../src/main.vala"
			_tmp109_ = name;
#line 2482 "../src/main.vala"
			_tmp110_ = keys;
#line 2482 "../src/main.vala"
			_tmp111_ = gee_abstract_list_get ((GeeAbstractList*) _tmp110_, 1);
#line 2482 "../src/main.vala"
			_tmp112_ = (gchar*) _tmp111_;
#line 2482 "../src/main.vala"
			_tmp113_ = name;
#line 2482 "../src/main.vala"
			_tmp114_ = g_strdup_printf ("while (%s_row.size <= %s) { %s_row.add (\"\"); }\n", _tmp109_, _tmp112_, _tmp113_);
#line 2482 "../src/main.vala"
			_tmp115_ = _tmp114_;
#line 2482 "../src/main.vala"
			_tmp116_ = g_strconcat (_tmp108_, _tmp115_, NULL);
#line 2482 "../src/main.vala"
			_tmp117_ = _tmp116_;
#line 2482 "../src/main.vala"
			_tmp118_ = name;
#line 2482 "../src/main.vala"
			_tmp119_ = keys;
#line 2482 "../src/main.vala"
			_tmp120_ = gee_abstract_list_get ((GeeAbstractList*) _tmp119_, 1);
#line 2482 "../src/main.vala"
			_tmp121_ = (gchar*) _tmp120_;
#line 2482 "../src/main.vala"
			_tmp122_ = value;
#line 2482 "../src/main.vala"
			_tmp123_ = g_strdup_printf ("%s_row.set (%s, %s);", _tmp118_, _tmp121_, _tmp122_);
#line 2482 "../src/main.vala"
			_tmp124_ = _tmp123_;
#line 2482 "../src/main.vala"
			_tmp125_ = g_strconcat (_tmp117_, _tmp124_, NULL);
#line 2482 "../src/main.vala"
			_tmp126_ = _tmp125_;
#line 2482 "../src/main.vala"
			_g_free0 (_tmp124_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp121_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp117_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp115_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp112_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp108_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp106_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp104_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp99_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp97_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp95_);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp90_);
#line 2482 "../src/main.vala"
			result = _tmp126_;
#line 2482 "../src/main.vala"
			_g_free0 (type_name);
#line 2482 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 2482 "../src/main.vala"
			_g_free0 (init);
#line 2482 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2482 "../src/main.vala"
			_g_free0 (value);
#line 2482 "../src/main.vala"
			_g_free0 (access);
#line 2482 "../src/main.vala"
			_g_free0 (name);
#line 2482 "../src/main.vala"
			return result;
#line 29383 "main.c"
		}
#line 2488 "../src/main.vala"
		_tmp127_ = type_name;
#line 2488 "../src/main.vala"
		if (g_strcmp0 (_tmp127_, "Gee.HashMap<string, Gee.HashMap<string, string>>") == 0) {
#line 29389 "main.c"
			GeeArrayList* _tmp128_;
			gpointer _tmp129_;
			gchar* _tmp130_;
			gboolean _tmp131_;
			const gchar* _tmp134_;
			const gchar* _tmp135_;
			const gchar* _tmp136_;
			GeeArrayList* _tmp137_;
			gpointer _tmp138_;
			gchar* _tmp139_;
			const gchar* _tmp140_;
			const gchar* _tmp141_;
			const gchar* _tmp142_;
			GeeArrayList* _tmp143_;
			gpointer _tmp144_;
			gchar* _tmp145_;
			const gchar* _tmp146_;
			const gchar* _tmp147_;
			const gchar* _tmp148_;
			GeeArrayList* _tmp149_;
			gpointer _tmp150_;
			gchar* _tmp151_;
			const gchar* _tmp152_;
			gchar* _tmp153_;
			gchar* _tmp154_;
			gchar* _tmp155_;
			gchar* _tmp156_;
			gchar* _tmp157_;
			gchar* _tmp158_;
			const gchar* _tmp159_;
			const gchar* _tmp160_;
			GeeArrayList* _tmp161_;
			gpointer _tmp162_;
			gchar* _tmp163_;
			const gchar* _tmp164_;
			GeeArrayList* _tmp165_;
			gpointer _tmp166_;
			gchar* _tmp167_;
			const gchar* _tmp168_;
			const gchar* _tmp169_;
			const gchar* _tmp170_;
			gchar* _tmp171_;
			gchar* _tmp172_;
			gchar* _tmp173_;
			gchar* _tmp174_;
#line 2489 "../src/main.vala"
			_tmp128_ = keys;
#line 2489 "../src/main.vala"
			_tmp129_ = gee_abstract_list_get ((GeeAbstractList*) _tmp128_, 1);
#line 2489 "../src/main.vala"
			_tmp130_ = (gchar*) _tmp129_;
#line 2489 "../src/main.vala"
			_tmp131_ = g_strcmp0 (_tmp130_, "") == 0;
#line 2489 "../src/main.vala"
			_g_free0 (_tmp130_);
#line 2489 "../src/main.vala"
			if (_tmp131_) {
#line 29447 "main.c"
				const gchar* _tmp132_;
				gchar* _tmp133_;
#line 2490 "../src/main.vala"
				_tmp132_ = init;
#line 2490 "../src/main.vala"
				_tmp133_ = g_strconcat (_tmp132_, "// skipped PHP append to nested mixed array", NULL);
#line 2490 "../src/main.vala"
				result = _tmp133_;
#line 2490 "../src/main.vala"
				_g_free0 (type_name);
#line 2490 "../src/main.vala"
				_g_free0 (_tmp74_);
#line 2490 "../src/main.vala"
				_g_free0 (init);
#line 2490 "../src/main.vala"
				_g_object_unref0 (keys);
#line 2490 "../src/main.vala"
				_g_free0 (value);
#line 2490 "../src/main.vala"
				_g_free0 (access);
#line 2490 "../src/main.vala"
				_g_free0 (name);
#line 2490 "../src/main.vala"
				return result;
#line 29472 "main.c"
			}
#line 2492 "../src/main.vala"
			_tmp134_ = init;
#line 2492 "../src/main.vala"
			_tmp135_ = name;
#line 2492 "../src/main.vala"
			_tmp136_ = string_to_string (_tmp135_);
#line 2492 "../src/main.vala"
			_tmp137_ = keys;
#line 2492 "../src/main.vala"
			_tmp138_ = gee_abstract_list_get ((GeeAbstractList*) _tmp137_, 0);
#line 2492 "../src/main.vala"
			_tmp139_ = (gchar*) _tmp138_;
#line 2492 "../src/main.vala"
			_tmp140_ = string_to_string (_tmp139_);
#line 2492 "../src/main.vala"
			_tmp141_ = name;
#line 2492 "../src/main.vala"
			_tmp142_ = string_to_string (_tmp141_);
#line 2492 "../src/main.vala"
			_tmp143_ = keys;
#line 2492 "../src/main.vala"
			_tmp144_ = gee_abstract_list_get ((GeeAbstractList*) _tmp143_, 0);
#line 2492 "../src/main.vala"
			_tmp145_ = (gchar*) _tmp144_;
#line 2492 "../src/main.vala"
			_tmp146_ = string_to_string (_tmp145_);
#line 2492 "../src/main.vala"
			_tmp147_ = name;
#line 2492 "../src/main.vala"
			_tmp148_ = string_to_string (_tmp147_);
#line 2492 "../src/main.vala"
			_tmp149_ = keys;
#line 2492 "../src/main.vala"
			_tmp150_ = gee_abstract_list_get ((GeeAbstractList*) _tmp149_, 0);
#line 2492 "../src/main.vala"
			_tmp151_ = (gchar*) _tmp150_;
#line 2492 "../src/main.vala"
			_tmp152_ = string_to_string (_tmp151_);
#line 2492 "../src/main.vala"
			_tmp153_ = g_strconcat ("if (!", _tmp136_, ".has_key (", _tmp140_, ") || ", _tmp142_, ".get (", _tmp146_, ") == null) { ", _tmp148_, ".set (", _tmp152_, ", new Gee.HashMap<string, string> ()); }", NULL);
#line 2492 "../src/main.vala"
			_tmp154_ = _tmp153_;
#line 2492 "../src/main.vala"
			_tmp155_ = g_strconcat (_tmp134_, _tmp154_, NULL);
#line 2492 "../src/main.vala"
			_tmp156_ = _tmp155_;
#line 2492 "../src/main.vala"
			_tmp157_ = g_strconcat (_tmp156_, "\n", NULL);
#line 2492 "../src/main.vala"
			_tmp158_ = _tmp157_;
#line 2492 "../src/main.vala"
			_tmp159_ = name;
#line 2492 "../src/main.vala"
			_tmp160_ = string_to_string (_tmp159_);
#line 2492 "../src/main.vala"
			_tmp161_ = keys;
#line 2492 "../src/main.vala"
			_tmp162_ = gee_abstract_list_get ((GeeAbstractList*) _tmp161_, 0);
#line 2492 "../src/main.vala"
			_tmp163_ = (gchar*) _tmp162_;
#line 2492 "../src/main.vala"
			_tmp164_ = string_to_string (_tmp163_);
#line 2492 "../src/main.vala"
			_tmp165_ = keys;
#line 2492 "../src/main.vala"
			_tmp166_ = gee_abstract_list_get ((GeeAbstractList*) _tmp165_, 1);
#line 2492 "../src/main.vala"
			_tmp167_ = (gchar*) _tmp166_;
#line 2492 "../src/main.vala"
			_tmp168_ = string_to_string (_tmp167_);
#line 2492 "../src/main.vala"
			_tmp169_ = value;
#line 2492 "../src/main.vala"
			_tmp170_ = string_to_string (_tmp169_);
#line 2492 "../src/main.vala"
			_tmp171_ = g_strconcat (_tmp160_, ".get (", _tmp164_, ").set (", _tmp168_, ", ", _tmp170_, ");", NULL);
#line 2492 "../src/main.vala"
			_tmp172_ = _tmp171_;
#line 2492 "../src/main.vala"
			_tmp173_ = g_strconcat (_tmp158_, _tmp172_, NULL);
#line 2492 "../src/main.vala"
			_tmp174_ = _tmp173_;
#line 2492 "../src/main.vala"
			_g_free0 (_tmp172_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp167_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp163_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp158_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp156_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp154_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp151_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp145_);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp139_);
#line 2492 "../src/main.vala"
			result = _tmp174_;
#line 2492 "../src/main.vala"
			_g_free0 (type_name);
#line 2492 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 2492 "../src/main.vala"
			_g_free0 (init);
#line 2492 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2492 "../src/main.vala"
			_g_free0 (value);
#line 2492 "../src/main.vala"
			_g_free0 (access);
#line 2492 "../src/main.vala"
			_g_free0 (name);
#line 2492 "../src/main.vala"
			return result;
#line 29592 "main.c"
		}
#line 2496 "../src/main.vala"
		_tmp175_ = keys;
#line 2496 "../src/main.vala"
		_tmp176_ = gee_abstract_list_get ((GeeAbstractList*) _tmp175_, 1);
#line 2496 "../src/main.vala"
		_tmp177_ = (gchar*) _tmp176_;
#line 2496 "../src/main.vala"
		_tmp178_ = g_strcmp0 (_tmp177_, "") == 0;
#line 2496 "../src/main.vala"
		_g_free0 (_tmp177_);
#line 2496 "../src/main.vala"
		if (_tmp178_) {
#line 29606 "main.c"
			const gchar* _tmp179_;
			gchar* _tmp180_;
#line 2497 "../src/main.vala"
			_tmp179_ = init;
#line 2497 "../src/main.vala"
			_tmp180_ = g_strconcat (_tmp179_, "// skipped PHP append to nested mixed array", NULL);
#line 2497 "../src/main.vala"
			result = _tmp180_;
#line 2497 "../src/main.vala"
			_g_free0 (type_name);
#line 2497 "../src/main.vala"
			_g_free0 (_tmp74_);
#line 2497 "../src/main.vala"
			_g_free0 (init);
#line 2497 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2497 "../src/main.vala"
			_g_free0 (value);
#line 2497 "../src/main.vala"
			_g_free0 (access);
#line 2497 "../src/main.vala"
			_g_free0 (name);
#line 2497 "../src/main.vala"
			return result;
#line 29631 "main.c"
		}
#line 2499 "../src/main.vala"
		_tmp181_ = init;
#line 2499 "../src/main.vala"
		_tmp182_ = name;
#line 2499 "../src/main.vala"
		_tmp183_ = string_to_string (_tmp182_);
#line 2499 "../src/main.vala"
		_tmp184_ = keys;
#line 2499 "../src/main.vala"
		_tmp185_ = gee_abstract_list_get ((GeeAbstractList*) _tmp184_, 0);
#line 2499 "../src/main.vala"
		_tmp186_ = (gchar*) _tmp185_;
#line 2499 "../src/main.vala"
		_tmp187_ = string_to_string (_tmp186_);
#line 2499 "../src/main.vala"
		_tmp188_ = keys;
#line 2499 "../src/main.vala"
		_tmp189_ = gee_abstract_list_get ((GeeAbstractList*) _tmp188_, 1);
#line 2499 "../src/main.vala"
		_tmp190_ = (gchar*) _tmp189_;
#line 2499 "../src/main.vala"
		_tmp191_ = string_to_string (_tmp190_);
#line 2499 "../src/main.vala"
		_tmp192_ = value;
#line 2499 "../src/main.vala"
		_tmp193_ = string_to_string (_tmp192_);
#line 2499 "../src/main.vala"
		_tmp194_ = g_strconcat (_tmp183_, ".get (", _tmp187_, ").set (", _tmp191_, ", ", _tmp193_, ");", NULL);
#line 2499 "../src/main.vala"
		_tmp195_ = _tmp194_;
#line 2499 "../src/main.vala"
		_tmp196_ = g_strconcat (_tmp181_, _tmp195_, NULL);
#line 2499 "../src/main.vala"
		_tmp197_ = _tmp196_;
#line 2499 "../src/main.vala"
		_g_free0 (_tmp195_);
#line 2499 "../src/main.vala"
		_g_free0 (_tmp190_);
#line 2499 "../src/main.vala"
		_g_free0 (_tmp186_);
#line 2499 "../src/main.vala"
		result = _tmp197_;
#line 2499 "../src/main.vala"
		_g_free0 (type_name);
#line 2499 "../src/main.vala"
		_g_free0 (_tmp74_);
#line 2499 "../src/main.vala"
		_g_free0 (init);
#line 2499 "../src/main.vala"
		_g_object_unref0 (keys);
#line 2499 "../src/main.vala"
		_g_free0 (value);
#line 2499 "../src/main.vala"
		_g_free0 (access);
#line 2499 "../src/main.vala"
		_g_free0 (name);
#line 2499 "../src/main.vala"
		return result;
#line 29691 "main.c"
	}
#line 2502 "../src/main.vala"
	_tmp198_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2502 "../src/main.vala"
	_inner_error0_ = _tmp198_;
#line 2502 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 2502 "../src/main.vala"
	_g_free0 (init);
#line 2502 "../src/main.vala"
	_g_object_unref0 (keys);
#line 2502 "../src/main.vala"
	_g_free0 (value);
#line 2502 "../src/main.vala"
	_g_free0 (access);
#line 2502 "../src/main.vala"
	_g_free0 (name);
#line 2502 "../src/main.vala"
	return NULL;
#line 29711 "main.c"
}

static gchar*
php_to_vala_transpiler_numeric_expression (PhpToValaTranspiler* self,
                                           const gchar* expression)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp21_ = FALSE;
	gboolean _tmp22_ = FALSE;
	const gchar* _tmp23_;
	gchar* result;
#line 2505 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2505 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2506 "../src/main.vala"
	_tmp0_ = string_strip (expression);
#line 2506 "../src/main.vala"
	clean = _tmp0_;
#line 2507 "../src/main.vala"
	_tmp1_ = clean;
#line 2507 "../src/main.vala"
	if (string_index_of (_tmp1_, "*", 0) >= 0) {
#line 29737 "main.c"
		GeeArrayList* parts = NULL;
		const gchar* _tmp2_;
		GeeArrayList* _tmp3_;
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 2508 "../src/main.vala"
		_tmp2_ = clean;
#line 2508 "../src/main.vala"
		_tmp3_ = php_to_vala_transpiler_split_top_level (self, _tmp2_, '*');
#line 2508 "../src/main.vala"
		parts = _tmp3_;
#line 2509 "../src/main.vala"
		_tmp4_ = parts;
#line 2509 "../src/main.vala"
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
#line 2509 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 2509 "../src/main.vala"
		if (_tmp6_ == 2) {
#line 29758 "main.c"
			GeeArrayList* _tmp7_;
			gpointer _tmp8_;
			gchar* _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			GeeArrayList* _tmp14_;
			gpointer _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
#line 2510 "../src/main.vala"
			_tmp7_ = parts;
#line 2510 "../src/main.vala"
			_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, 0);
#line 2510 "../src/main.vala"
			_tmp9_ = (gchar*) _tmp8_;
#line 2510 "../src/main.vala"
			_tmp10_ = string_strip (_tmp9_);
#line 2510 "../src/main.vala"
			_tmp11_ = _tmp10_;
#line 2510 "../src/main.vala"
			_tmp12_ = php_to_vala_transpiler_numeric_expression (self, _tmp11_);
#line 2510 "../src/main.vala"
			_tmp13_ = _tmp12_;
#line 2510 "../src/main.vala"
			_tmp14_ = parts;
#line 2510 "../src/main.vala"
			_tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, 1);
#line 2510 "../src/main.vala"
			_tmp16_ = (gchar*) _tmp15_;
#line 2510 "../src/main.vala"
			_tmp17_ = string_strip (_tmp16_);
#line 2510 "../src/main.vala"
			_tmp18_ = _tmp17_;
#line 2510 "../src/main.vala"
			_tmp19_ = g_strdup_printf ("%s * %s", _tmp13_, _tmp18_);
#line 2510 "../src/main.vala"
			_tmp20_ = _tmp19_;
#line 2510 "../src/main.vala"
			_g_free0 (_tmp18_);
#line 2510 "../src/main.vala"
			_g_free0 (_tmp16_);
#line 2510 "../src/main.vala"
			_g_free0 (_tmp13_);
#line 2510 "../src/main.vala"
			_g_free0 (_tmp11_);
#line 2510 "../src/main.vala"
			_g_free0 (_tmp9_);
#line 2510 "../src/main.vala"
			result = _tmp20_;
#line 2510 "../src/main.vala"
			_g_object_unref0 (parts);
#line 2510 "../src/main.vala"
			_g_free0 (clean);
#line 2510 "../src/main.vala"
			return result;
#line 29819 "main.c"
		}
#line 2507 "../src/main.vala"
		_g_object_unref0 (parts);
#line 29823 "main.c"
	}
#line 2513 "../src/main.vala"
	_tmp23_ = clean;
#line 2513 "../src/main.vala"
	if (g_str_has_prefix (_tmp23_, "PhpEmbed.trim_static(")) {
#line 2513 "../src/main.vala"
		_tmp22_ = TRUE;
#line 29831 "main.c"
	} else {
		const gchar* _tmp24_;
#line 2514 "../src/main.vala"
		_tmp24_ = clean;
#line 2514 "../src/main.vala"
		_tmp22_ = g_str_has_prefix (_tmp24_, "PhpEmbed.str_replace_static(");
#line 29838 "main.c"
	}
#line 2513 "../src/main.vala"
	if (_tmp22_) {
#line 2513 "../src/main.vala"
		_tmp21_ = TRUE;
#line 29844 "main.c"
	} else {
		gboolean _tmp25_ = FALSE;
		GeeHashMap* _tmp26_;
		const gchar* _tmp27_;
#line 2515 "../src/main.vala"
		_tmp26_ = self->variable_types;
#line 2515 "../src/main.vala"
		_tmp27_ = clean;
#line 2515 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp26_, _tmp27_)) {
#line 29855 "main.c"
			GeeHashMap* _tmp28_;
			const gchar* _tmp29_;
			gpointer _tmp30_;
			gchar* _tmp31_;
#line 2515 "../src/main.vala"
			_tmp28_ = self->variable_types;
#line 2515 "../src/main.vala"
			_tmp29_ = clean;
#line 2515 "../src/main.vala"
			_tmp30_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp28_, _tmp29_);
#line 2515 "../src/main.vala"
			_tmp31_ = (gchar*) _tmp30_;
#line 2515 "../src/main.vala"
			_tmp25_ = g_strcmp0 (_tmp31_, "string") == 0;
#line 2515 "../src/main.vala"
			_g_free0 (_tmp31_);
#line 29872 "main.c"
		} else {
#line 2515 "../src/main.vala"
			_tmp25_ = FALSE;
#line 29876 "main.c"
		}
#line 2515 "../src/main.vala"
		_tmp21_ = _tmp25_;
#line 29880 "main.c"
	}
#line 2513 "../src/main.vala"
	if (_tmp21_) {
#line 29884 "main.c"
		const gchar* _tmp32_;
		gchar* _tmp33_;
#line 2516 "../src/main.vala"
		_tmp32_ = clean;
#line 2516 "../src/main.vala"
		_tmp33_ = g_strdup_printf ("double.parse (%s)", _tmp32_);
#line 2516 "../src/main.vala"
		result = _tmp33_;
#line 2516 "../src/main.vala"
		_g_free0 (clean);
#line 2516 "../src/main.vala"
		return result;
#line 29897 "main.c"
	}
#line 2518 "../src/main.vala"
	result = clean;
#line 2518 "../src/main.vala"
	return result;
#line 29903 "main.c"
}

static GeeArrayList*
php_to_vala_transpiler_parse_array_keys (PhpToValaTranspiler* self,
                                         const gchar* access,
                                         gint php_line_number,
                                         GError** error)
{
	GeeArrayList* keys = NULL;
	GeeArrayList* _tmp0_;
	gint index = 0;
	GError* _inner_error0_ = NULL;
	GeeArrayList* result;
#line 2521 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2521 "../src/main.vala"
	g_return_val_if_fail (access != NULL, NULL);
#line 2522 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 2522 "../src/main.vala"
	keys = _tmp0_;
#line 2523 "../src/main.vala"
	index = 0;
#line 2524 "../src/main.vala"
	while (TRUE) {
#line 29929 "main.c"
		gint _tmp1_;
		gint _tmp2_;
		gint end = 0;
		gchar* key = NULL;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_ = NULL;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		GeeArrayList* _tmp12_;
#line 2524 "../src/main.vala"
		_tmp1_ = strlen (access);
#line 2524 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 2524 "../src/main.vala"
		if (!(index < _tmp2_)) {
#line 2524 "../src/main.vala"
			break;
#line 29950 "main.c"
		}
#line 2525 "../src/main.vala"
		if (string_get (access, (glong) index) != '[') {
#line 29954 "main.c"
			GError* _tmp3_;
#line 2526 "../src/main.vala"
			_tmp3_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, access);
#line 2526 "../src/main.vala"
			_inner_error0_ = _tmp3_;
#line 2526 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2526 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2526 "../src/main.vala"
			return NULL;
#line 29966 "main.c"
		}
#line 2528 "../src/main.vala"
		end = php_to_vala_transpiler_find_matching_bracket (access, index);
#line 2529 "../src/main.vala"
		if (end < 0) {
#line 29972 "main.c"
			GError* _tmp4_;
#line 2530 "../src/main.vala"
			_tmp4_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, access);
#line 2530 "../src/main.vala"
			_inner_error0_ = _tmp4_;
#line 2530 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2530 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2530 "../src/main.vala"
			return NULL;
#line 29984 "main.c"
		}
#line 2532 "../src/main.vala"
		_tmp5_ = string_substring (access, (glong) (index + 1), (glong) ((end - index) - 1));
#line 2532 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 2532 "../src/main.vala"
		_tmp7_ = string_strip (_tmp6_);
#line 2532 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 2532 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 2532 "../src/main.vala"
		key = _tmp8_;
#line 2533 "../src/main.vala"
		_tmp10_ = key;
#line 2533 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_convert_expression (self, _tmp10_, php_line_number, &_inner_error0_);
#line 2533 "../src/main.vala"
		_tmp9_ = _tmp11_;
#line 2533 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2533 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2533 "../src/main.vala"
			_g_free0 (key);
#line 2533 "../src/main.vala"
			_g_object_unref0 (keys);
#line 2533 "../src/main.vala"
			return NULL;
#line 30014 "main.c"
		}
#line 2533 "../src/main.vala"
		_tmp12_ = keys;
#line 2533 "../src/main.vala"
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp9_);
#line 2534 "../src/main.vala"
		index = end + 1;
#line 2524 "../src/main.vala"
		_g_free0 (_tmp9_);
#line 2524 "../src/main.vala"
		_g_free0 (key);
#line 30026 "main.c"
	}
#line 2536 "../src/main.vala"
	result = keys;
#line 2536 "../src/main.vala"
	return result;
#line 30032 "main.c"
}

static gint
php_to_vala_transpiler_find_matching_bracket (const gchar* value,
                                              gint start_index)
{
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	gint result;
#line 2539 "../src/main.vala"
	g_return_val_if_fail (value != NULL, -1);
#line 2540 "../src/main.vala"
	in_single_quote = FALSE;
#line 2541 "../src/main.vala"
	in_double_quote = FALSE;
#line 2542 "../src/main.vala"
	depth = 0;
#line 30051 "main.c"
	{
		gint i = 0;
#line 2543 "../src/main.vala"
		i = start_index + 1;
#line 30056 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 2543 "../src/main.vala"
			_tmp0_ = TRUE;
#line 2543 "../src/main.vala"
			while (TRUE) {
#line 30063 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
				gboolean _tmp4_ = FALSE;
#line 2543 "../src/main.vala"
				if (!_tmp0_) {
#line 30070 "main.c"
					gint _tmp1_;
#line 2543 "../src/main.vala"
					_tmp1_ = i;
#line 2543 "../src/main.vala"
					i = _tmp1_ + 1;
#line 30076 "main.c"
				}
#line 2543 "../src/main.vala"
				_tmp0_ = FALSE;
#line 2543 "../src/main.vala"
				_tmp2_ = strlen (value);
#line 2543 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 2543 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 2543 "../src/main.vala"
					break;
#line 30088 "main.c"
				}
#line 2544 "../src/main.vala"
				c = string_get (value, (glong) i);
#line 2545 "../src/main.vala"
				if (c == '\'') {
#line 2545 "../src/main.vala"
					_tmp4_ = !in_double_quote;
#line 30096 "main.c"
				} else {
#line 2545 "../src/main.vala"
					_tmp4_ = FALSE;
#line 30100 "main.c"
				}
#line 2545 "../src/main.vala"
				if (_tmp4_) {
#line 2546 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 30106 "main.c"
				} else {
					gboolean _tmp5_ = FALSE;
#line 2547 "../src/main.vala"
					if (c == '"') {
#line 2547 "../src/main.vala"
						_tmp5_ = !in_single_quote;
#line 30113 "main.c"
					} else {
#line 2547 "../src/main.vala"
						_tmp5_ = FALSE;
#line 30117 "main.c"
					}
#line 2547 "../src/main.vala"
					if (_tmp5_) {
#line 2548 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 30123 "main.c"
					} else {
						gboolean _tmp6_ = FALSE;
#line 2549 "../src/main.vala"
						if (!in_single_quote) {
#line 2549 "../src/main.vala"
							_tmp6_ = !in_double_quote;
#line 30130 "main.c"
						} else {
#line 2549 "../src/main.vala"
							_tmp6_ = FALSE;
#line 30134 "main.c"
						}
#line 2549 "../src/main.vala"
						if (_tmp6_) {
#line 2550 "../src/main.vala"
							if (c == '[') {
#line 30140 "main.c"
								gint _tmp7_;
#line 2551 "../src/main.vala"
								_tmp7_ = depth;
#line 2551 "../src/main.vala"
								depth = _tmp7_ + 1;
#line 30146 "main.c"
							} else {
#line 2552 "../src/main.vala"
								if (c == ']') {
#line 30150 "main.c"
									gint _tmp8_;
#line 2553 "../src/main.vala"
									if (depth == 0) {
#line 2554 "../src/main.vala"
										result = i;
#line 2554 "../src/main.vala"
										return result;
#line 30158 "main.c"
									}
#line 2556 "../src/main.vala"
									_tmp8_ = depth;
#line 2556 "../src/main.vala"
									depth = _tmp8_ - 1;
#line 30164 "main.c"
								}
							}
						}
					}
				}
			}
		}
	}
#line 2560 "../src/main.vala"
	result = -1;
#line 2560 "../src/main.vala"
	return result;
#line 30177 "main.c"
}

static gboolean
php_to_vala_transpiler_is_identifier (const gchar* name)
{
	gboolean result;
#line 2563 "../src/main.vala"
	g_return_val_if_fail (name != NULL, FALSE);
#line 2564 "../src/main.vala"
	if (g_strcmp0 (name, "") == 0) {
#line 2565 "../src/main.vala"
		result = FALSE;
#line 2565 "../src/main.vala"
		return result;
#line 30192 "main.c"
	}
	{
		gint i = 0;
#line 2568 "../src/main.vala"
		i = 0;
#line 30198 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 2568 "../src/main.vala"
			_tmp0_ = TRUE;
#line 2568 "../src/main.vala"
			while (TRUE) {
#line 30205 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
#line 2568 "../src/main.vala"
				if (!_tmp0_) {
#line 30211 "main.c"
					gint _tmp1_;
#line 2568 "../src/main.vala"
					_tmp1_ = i;
#line 2568 "../src/main.vala"
					i = _tmp1_ + 1;
#line 30217 "main.c"
				}
#line 2568 "../src/main.vala"
				_tmp0_ = FALSE;
#line 2568 "../src/main.vala"
				_tmp2_ = strlen (name);
#line 2568 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 2568 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 2568 "../src/main.vala"
					break;
#line 30229 "main.c"
				}
#line 2569 "../src/main.vala"
				c = string_get (name, (glong) i);
#line 2570 "../src/main.vala"
				if (i == 0) {
#line 30235 "main.c"
					gboolean _tmp4_ = FALSE;
#line 2571 "../src/main.vala"
					if (g_ascii_isalpha (c)) {
#line 2571 "../src/main.vala"
						_tmp4_ = TRUE;
#line 30241 "main.c"
					} else {
#line 2571 "../src/main.vala"
						_tmp4_ = c == '_';
#line 30245 "main.c"
					}
#line 2571 "../src/main.vala"
					if (!_tmp4_) {
#line 2572 "../src/main.vala"
						result = FALSE;
#line 2572 "../src/main.vala"
						return result;
#line 30253 "main.c"
					}
				} else {
#line 2574 "../src/main.vala"
					if (!php_to_vala_transpiler_is_identifier_char (c)) {
#line 2575 "../src/main.vala"
						result = FALSE;
#line 2575 "../src/main.vala"
						return result;
#line 30262 "main.c"
					}
				}
			}
		}
	}
#line 2579 "../src/main.vala"
	result = TRUE;
#line 2579 "../src/main.vala"
	return result;
#line 30272 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_echo (PhpToValaTranspiler* self,
                                       const gchar* expression,
                                       gint php_line_number,
                                       GError** error)
{
	gchar* clean_expression = NULL;
	gchar* _tmp0_;
	GeeArrayList* parts = NULL;
	const gchar* _tmp1_;
	GeeArrayList* _tmp2_;
	GString* output = NULL;
	GString* _tmp3_;
	GString* _tmp39_;
	const gchar* _tmp40_;
	gchar* _tmp41_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2582 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2582 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2583 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_trim_trailing_semicolon (expression);
#line 2583 "../src/main.vala"
	clean_expression = _tmp0_;
#line 2585 "../src/main.vala"
	_tmp1_ = clean_expression;
#line 2585 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_split_top_level (self, _tmp1_, ',');
#line 2585 "../src/main.vala"
	parts = _tmp2_;
#line 2586 "../src/main.vala"
	_tmp3_ = g_string_new ("");
#line 2586 "../src/main.vala"
	output = _tmp3_;
#line 30311 "main.c"
	{
		GeeArrayList* _raw_part_list = NULL;
		GeeArrayList* _tmp4_;
		gint _raw_part_size = 0;
		GeeArrayList* _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		gint _raw_part_index = 0;
#line 2588 "../src/main.vala"
		_tmp4_ = parts;
#line 2588 "../src/main.vala"
		_raw_part_list = _tmp4_;
#line 2588 "../src/main.vala"
		_tmp5_ = _raw_part_list;
#line 2588 "../src/main.vala"
		_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
#line 2588 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 2588 "../src/main.vala"
		_raw_part_size = _tmp7_;
#line 2588 "../src/main.vala"
		_raw_part_index = -1;
#line 2588 "../src/main.vala"
		while (TRUE) {
#line 30336 "main.c"
			gint _tmp8_;
			gint _tmp9_;
			gchar* raw_part = NULL;
			GeeArrayList* _tmp10_;
			gpointer _tmp11_;
			GeeArrayList* concat_parts = NULL;
			const gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
			GeeArrayList* _tmp15_;
			GeeArrayList* _tmp16_;
#line 2588 "../src/main.vala"
			_raw_part_index = _raw_part_index + 1;
#line 2588 "../src/main.vala"
			_tmp8_ = _raw_part_index;
#line 2588 "../src/main.vala"
			_tmp9_ = _raw_part_size;
#line 2588 "../src/main.vala"
			if (!(_tmp8_ < _tmp9_)) {
#line 2588 "../src/main.vala"
				break;
#line 30358 "main.c"
			}
#line 2588 "../src/main.vala"
			_tmp10_ = _raw_part_list;
#line 2588 "../src/main.vala"
			_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _raw_part_index);
#line 2588 "../src/main.vala"
			raw_part = (gchar*) _tmp11_;
#line 2589 "../src/main.vala"
			_tmp12_ = raw_part;
#line 2589 "../src/main.vala"
			_tmp13_ = string_strip (_tmp12_);
#line 2589 "../src/main.vala"
			_tmp14_ = _tmp13_;
#line 2589 "../src/main.vala"
			_tmp15_ = php_to_vala_transpiler_split_concat (self, _tmp14_);
#line 2589 "../src/main.vala"
			_tmp16_ = _tmp15_;
#line 2589 "../src/main.vala"
			_g_free0 (_tmp14_);
#line 2589 "../src/main.vala"
			concat_parts = _tmp16_;
#line 30380 "main.c"
			{
				GeeArrayList* _raw_concat_part_list = NULL;
				GeeArrayList* _tmp17_;
				gint _raw_concat_part_size = 0;
				GeeArrayList* _tmp18_;
				gint _tmp19_;
				gint _tmp20_;
				gint _raw_concat_part_index = 0;
#line 2591 "../src/main.vala"
				_tmp17_ = concat_parts;
#line 2591 "../src/main.vala"
				_raw_concat_part_list = _tmp17_;
#line 2591 "../src/main.vala"
				_tmp18_ = _raw_concat_part_list;
#line 2591 "../src/main.vala"
				_tmp19_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp18_);
#line 2591 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 2591 "../src/main.vala"
				_raw_concat_part_size = _tmp20_;
#line 2591 "../src/main.vala"
				_raw_concat_part_index = -1;
#line 2591 "../src/main.vala"
				while (TRUE) {
#line 30405 "main.c"
					gint _tmp21_;
					gint _tmp22_;
					gchar* raw_concat_part = NULL;
					GeeArrayList* _tmp23_;
					gpointer _tmp24_;
					gchar* part = NULL;
					const gchar* _tmp25_;
					gchar* _tmp26_;
					gchar* _tmp27_;
					gchar* _tmp28_;
					gchar* _tmp29_;
					gchar* format = NULL;
					const gchar* _tmp30_;
					gchar* _tmp31_;
					gchar* value = NULL;
					const gchar* _tmp32_;
					gchar* _tmp33_;
					GString* _tmp34_;
					GString* _tmp36_;
					const gchar* _tmp37_;
					const gchar* _tmp38_;
#line 2591 "../src/main.vala"
					_raw_concat_part_index = _raw_concat_part_index + 1;
#line 2591 "../src/main.vala"
					_tmp21_ = _raw_concat_part_index;
#line 2591 "../src/main.vala"
					_tmp22_ = _raw_concat_part_size;
#line 2591 "../src/main.vala"
					if (!(_tmp21_ < _tmp22_)) {
#line 2591 "../src/main.vala"
						break;
#line 30437 "main.c"
					}
#line 2591 "../src/main.vala"
					_tmp23_ = _raw_concat_part_list;
#line 2591 "../src/main.vala"
					_tmp24_ = gee_abstract_list_get ((GeeAbstractList*) _tmp23_, _raw_concat_part_index);
#line 2591 "../src/main.vala"
					raw_concat_part = (gchar*) _tmp24_;
#line 2592 "../src/main.vala"
					_tmp25_ = raw_concat_part;
#line 2592 "../src/main.vala"
					_tmp26_ = string_strip (_tmp25_);
#line 2592 "../src/main.vala"
					_tmp27_ = _tmp26_;
#line 2592 "../src/main.vala"
					_tmp28_ = php_to_vala_transpiler_convert_expression (self, _tmp27_, php_line_number, &_inner_error0_);
#line 2592 "../src/main.vala"
					_tmp29_ = _tmp28_;
#line 2592 "../src/main.vala"
					_g_free0 (_tmp27_);
#line 2592 "../src/main.vala"
					part = _tmp29_;
#line 2592 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2592 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2592 "../src/main.vala"
						_g_free0 (raw_concat_part);
#line 2592 "../src/main.vala"
						_g_object_unref0 (concat_parts);
#line 2592 "../src/main.vala"
						_g_free0 (raw_part);
#line 2592 "../src/main.vala"
						_g_string_free0 (output);
#line 2592 "../src/main.vala"
						_g_object_unref0 (parts);
#line 2592 "../src/main.vala"
						_g_free0 (clean_expression);
#line 2592 "../src/main.vala"
						return NULL;
#line 30477 "main.c"
					}
#line 2593 "../src/main.vala"
					_tmp30_ = part;
#line 2593 "../src/main.vala"
					_tmp31_ = php_to_vala_transpiler_format_for_expression (self, _tmp30_);
#line 2593 "../src/main.vala"
					format = _tmp31_;
#line 2594 "../src/main.vala"
					_tmp32_ = part;
#line 2594 "../src/main.vala"
					_tmp33_ = php_to_vala_transpiler_value_for_format (self, _tmp32_);
#line 2594 "../src/main.vala"
					value = _tmp33_;
#line 2596 "../src/main.vala"
					_tmp34_ = output;
#line 2596 "../src/main.vala"
					if (_tmp34_->len > ((gssize) 0)) {
#line 30495 "main.c"
						GString* _tmp35_;
#line 2597 "../src/main.vala"
						_tmp35_ = output;
#line 2597 "../src/main.vala"
						g_string_append (_tmp35_, " ");
#line 30501 "main.c"
					}
#line 2600 "../src/main.vala"
					_tmp36_ = output;
#line 2600 "../src/main.vala"
					_tmp37_ = format;
#line 2600 "../src/main.vala"
					_tmp38_ = value;
#line 2600 "../src/main.vala"
					g_string_append_printf (_tmp36_, "stdout.printf (\"%s\", %s);", _tmp37_, _tmp38_);
#line 2591 "../src/main.vala"
					_g_free0 (value);
#line 2591 "../src/main.vala"
					_g_free0 (format);
#line 2591 "../src/main.vala"
					_g_free0 (part);
#line 2591 "../src/main.vala"
					_g_free0 (raw_concat_part);
#line 30519 "main.c"
				}
			}
#line 2588 "../src/main.vala"
			_g_object_unref0 (concat_parts);
#line 2588 "../src/main.vala"
			_g_free0 (raw_part);
#line 30526 "main.c"
		}
	}
#line 2604 "../src/main.vala"
	_tmp39_ = output;
#line 2604 "../src/main.vala"
	_tmp40_ = _tmp39_->str;
#line 2604 "../src/main.vala"
	_tmp41_ = g_strdup (_tmp40_);
#line 2604 "../src/main.vala"
	result = _tmp41_;
#line 2604 "../src/main.vala"
	_g_string_free0 (output);
#line 2604 "../src/main.vala"
	_g_object_unref0 (parts);
#line 2604 "../src/main.vala"
	_g_free0 (clean_expression);
#line 2604 "../src/main.vala"
	return result;
#line 30545 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_inline_condition (PhpToValaTranspiler* self,
                                                   const gchar* line,
                                                   const gchar* vala_keyword,
                                                   gint php_line_number,
                                                   GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* condition = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* rest = NULL;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gboolean _tmp10_ = FALSE;
	const gchar* _tmp11_;
	gchar* nested = NULL;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2607 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2607 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2607 "../src/main.vala"
	g_return_val_if_fail (vala_keyword != NULL, NULL);
#line 2608 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 2609 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 2610 "../src/main.vala"
	if (open_index < 0) {
#line 2610 "../src/main.vala"
		_tmp0_ = TRUE;
#line 30595 "main.c"
	} else {
#line 2610 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 30599 "main.c"
	}
#line 2610 "../src/main.vala"
	if (_tmp0_) {
#line 30603 "main.c"
		GError* _tmp1_;
#line 2611 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2611 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 2611 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2611 "../src/main.vala"
		return NULL;
#line 30613 "main.c"
	}
#line 2614 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 2614 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2614 "../src/main.vala"
	_tmp4_ = php_to_vala_transpiler_convert_expression (self, _tmp3_, php_line_number, &_inner_error0_);
#line 2614 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2614 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2614 "../src/main.vala"
	condition = _tmp5_;
#line 2614 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2614 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2614 "../src/main.vala"
		return NULL;
#line 30633 "main.c"
	}
#line 2615 "../src/main.vala"
	_tmp6_ = string_substring (line, (glong) (close_index + 1), (glong) -1);
#line 2615 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 2615 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 2615 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 2615 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 2615 "../src/main.vala"
	rest = _tmp9_;
#line 2616 "../src/main.vala"
	_tmp11_ = rest;
#line 2616 "../src/main.vala"
	if (g_strcmp0 (_tmp11_, "") == 0) {
#line 2616 "../src/main.vala"
		_tmp10_ = TRUE;
#line 30653 "main.c"
	} else {
		const gchar* _tmp12_;
#line 2616 "../src/main.vala"
		_tmp12_ = rest;
#line 2616 "../src/main.vala"
		_tmp10_ = g_strcmp0 (_tmp12_, "{") == 0;
#line 30660 "main.c"
	}
#line 2616 "../src/main.vala"
	if (_tmp10_) {
#line 30664 "main.c"
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
#line 2617 "../src/main.vala"
		_tmp13_ = string_to_string (vala_keyword);
#line 2617 "../src/main.vala"
		_tmp14_ = condition;
#line 2617 "../src/main.vala"
		_tmp15_ = string_to_string (_tmp14_);
#line 2617 "../src/main.vala"
		_tmp16_ = g_strconcat (_tmp13_, " (", _tmp15_, ") {", NULL);
#line 2617 "../src/main.vala"
		result = _tmp16_;
#line 2617 "../src/main.vala"
		_g_free0 (rest);
#line 2617 "../src/main.vala"
		_g_free0 (condition);
#line 2617 "../src/main.vala"
		return result;
#line 30685 "main.c"
	}
#line 2620 "../src/main.vala"
	_tmp17_ = rest;
#line 2620 "../src/main.vala"
	_tmp18_ = php_to_vala_transpiler_transpile_line (self, _tmp17_, php_line_number, &_inner_error0_);
#line 2620 "../src/main.vala"
	nested = _tmp18_;
#line 2620 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2620 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2620 "../src/main.vala"
		_g_free0 (rest);
#line 2620 "../src/main.vala"
		_g_free0 (condition);
#line 2620 "../src/main.vala"
		return NULL;
#line 30703 "main.c"
	}
#line 2621 "../src/main.vala"
	_tmp19_ = string_to_string (vala_keyword);
#line 2621 "../src/main.vala"
	_tmp20_ = condition;
#line 2621 "../src/main.vala"
	_tmp21_ = string_to_string (_tmp20_);
#line 2621 "../src/main.vala"
	_tmp22_ = nested;
#line 2621 "../src/main.vala"
	_tmp23_ = string_to_string (_tmp22_);
#line 2621 "../src/main.vala"
	_tmp24_ = g_strconcat (_tmp19_, " (", _tmp21_, ") { ", _tmp23_, " }", NULL);
#line 2621 "../src/main.vala"
	result = _tmp24_;
#line 2621 "../src/main.vala"
	_g_free0 (nested);
#line 2621 "../src/main.vala"
	_g_free0 (rest);
#line 2621 "../src/main.vala"
	_g_free0 (condition);
#line 2621 "../src/main.vala"
	return result;
#line 30727 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_foreach (PhpToValaTranspiler* self,
                                          const gchar* line,
                                          gint php_line_number,
                                          GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* inner = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar** parts = NULL;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint parts_length1;
	gint _parts_size_;
	gchar* source = NULL;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* target = NULL;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gint key_sep = 0;
	const gchar* _tmp16_;
	gchar* item_name = NULL;
	const gchar* _tmp78_;
	gchar* _tmp79_;
	GeeHashMap* _tmp80_;
	const gchar* _tmp81_;
	const gchar* _tmp82_;
	const gchar* _tmp83_;
	const gchar* _tmp84_;
	const gchar* _tmp85_;
	gchar* _tmp86_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2624 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2624 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2625 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 2626 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 2627 "../src/main.vala"
	if (open_index < 0) {
#line 2627 "../src/main.vala"
		_tmp0_ = TRUE;
#line 30784 "main.c"
	} else {
#line 2627 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 30788 "main.c"
	}
#line 2627 "../src/main.vala"
	if (_tmp0_) {
#line 30792 "main.c"
		GError* _tmp1_;
#line 2628 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2628 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 2628 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2628 "../src/main.vala"
		return NULL;
#line 30802 "main.c"
	}
#line 2630 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 2630 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2630 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 2630 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2630 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2630 "../src/main.vala"
	inner = _tmp5_;
#line 2631 "../src/main.vala"
	_tmp7_ = _tmp6_ = g_strsplit (inner, " as ", 0);
#line 2631 "../src/main.vala"
	parts = _tmp7_;
#line 2631 "../src/main.vala"
	parts_length1 = _vala_array_length (_tmp6_);
#line 2631 "../src/main.vala"
	_parts_size_ = parts_length1;
#line 2632 "../src/main.vala"
	if (parts_length1 != 2) {
#line 30826 "main.c"
		GError* _tmp8_;
#line 2633 "../src/main.vala"
		_tmp8_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2633 "../src/main.vala"
		_inner_error0_ = _tmp8_;
#line 2633 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2633 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 2633 "../src/main.vala"
		_g_free0 (inner);
#line 2633 "../src/main.vala"
		return NULL;
#line 30840 "main.c"
	}
#line 2635 "../src/main.vala"
	_tmp9_ = parts[0];
#line 2635 "../src/main.vala"
	_tmp10_ = string_strip (_tmp9_);
#line 2635 "../src/main.vala"
	_tmp11_ = _tmp10_;
#line 2635 "../src/main.vala"
	_tmp12_ = php_to_vala_transpiler_convert_expression (self, _tmp11_, php_line_number, &_inner_error0_);
#line 2635 "../src/main.vala"
	_tmp13_ = _tmp12_;
#line 2635 "../src/main.vala"
	_g_free0 (_tmp11_);
#line 2635 "../src/main.vala"
	source = _tmp13_;
#line 2635 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2635 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2635 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 2635 "../src/main.vala"
		_g_free0 (inner);
#line 2635 "../src/main.vala"
		return NULL;
#line 30866 "main.c"
	}
#line 2636 "../src/main.vala"
	_tmp14_ = parts[1];
#line 2636 "../src/main.vala"
	_tmp15_ = string_strip (_tmp14_);
#line 2636 "../src/main.vala"
	target = _tmp15_;
#line 2637 "../src/main.vala"
	_tmp16_ = target;
#line 2637 "../src/main.vala"
	key_sep = string_index_of (_tmp16_, "=>", 0);
#line 2638 "../src/main.vala"
	if (key_sep >= 0) {
#line 30880 "main.c"
		gchar* key_name = NULL;
		const gchar* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* value_name = NULL;
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		gchar* source_type = NULL;
		const gchar* _tmp31_;
		gchar* _tmp32_;
		const gchar* _tmp33_;
		GeeHashMap* _tmp59_;
		const gchar* _tmp60_;
		GeeHashMap* _tmp61_;
		const gchar* _tmp62_;
		const gchar* _tmp63_;
		const gchar* _tmp64_;
		const gchar* _tmp65_;
		const gchar* _tmp66_;
		const gchar* _tmp67_;
		const gchar* _tmp68_;
		const gchar* _tmp69_;
		const gchar* _tmp70_;
		const gchar* _tmp71_;
		const gchar* _tmp72_;
		const gchar* _tmp73_;
		const gchar* _tmp74_;
		const gchar* _tmp75_;
		const gchar* _tmp76_;
		gchar* _tmp77_;
#line 2639 "../src/main.vala"
		_tmp17_ = target;
#line 2639 "../src/main.vala"
		_tmp18_ = string_substring (_tmp17_, (glong) 0, (glong) key_sep);
#line 2639 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 2639 "../src/main.vala"
		_tmp20_ = string_strip (_tmp19_);
#line 2639 "../src/main.vala"
		_tmp21_ = _tmp20_;
#line 2639 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_replace_php_variables (_tmp21_);
#line 2639 "../src/main.vala"
		_tmp23_ = _tmp22_;
#line 2639 "../src/main.vala"
		_g_free0 (_tmp21_);
#line 2639 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2639 "../src/main.vala"
		key_name = _tmp23_;
#line 2640 "../src/main.vala"
		_tmp24_ = target;
#line 2640 "../src/main.vala"
		_tmp25_ = string_substring (_tmp24_, (glong) (key_sep + 2), (glong) -1);
#line 2640 "../src/main.vala"
		_tmp26_ = _tmp25_;
#line 2640 "../src/main.vala"
		_tmp27_ = string_strip (_tmp26_);
#line 2640 "../src/main.vala"
		_tmp28_ = _tmp27_;
#line 2640 "../src/main.vala"
		_tmp29_ = php_to_vala_transpiler_replace_php_variables (_tmp28_);
#line 2640 "../src/main.vala"
		_tmp30_ = _tmp29_;
#line 2640 "../src/main.vala"
		_g_free0 (_tmp28_);
#line 2640 "../src/main.vala"
		_g_free0 (_tmp26_);
#line 2640 "../src/main.vala"
		value_name = _tmp30_;
#line 2641 "../src/main.vala"
		_tmp31_ = source;
#line 2641 "../src/main.vala"
		_tmp32_ = php_to_vala_transpiler_infer_expression_type (self, _tmp31_);
#line 2641 "../src/main.vala"
		source_type = _tmp32_;
#line 2642 "../src/main.vala"
		_tmp33_ = source_type;
#line 2642 "../src/main.vala"
		if (g_str_has_prefix (_tmp33_, "Gee.HashMap<")) {
#line 30970 "main.c"
			gchar* key_type = NULL;
			const gchar* _tmp34_;
			gchar* _tmp35_;
			gchar* value_type = NULL;
			const gchar* _tmp36_;
			gchar* _tmp37_;
			GeeHashMap* _tmp38_;
			const gchar* _tmp39_;
			const gchar* _tmp40_;
			GeeHashMap* _tmp41_;
			const gchar* _tmp42_;
			const gchar* _tmp43_;
			const gchar* _tmp44_;
			const gchar* _tmp45_;
			const gchar* _tmp46_;
			const gchar* _tmp47_;
			const gchar* _tmp48_;
			const gchar* _tmp49_;
			const gchar* _tmp50_;
			const gchar* _tmp51_;
			const gchar* _tmp52_;
			const gchar* _tmp53_;
			const gchar* _tmp54_;
			const gchar* _tmp55_;
			const gchar* _tmp56_;
			const gchar* _tmp57_;
			gchar* _tmp58_;
#line 2643 "../src/main.vala"
			_tmp34_ = source_type;
#line 2643 "../src/main.vala"
			_tmp35_ = php_to_vala_transpiler_hash_key_type (_tmp34_);
#line 2643 "../src/main.vala"
			key_type = _tmp35_;
#line 2644 "../src/main.vala"
			_tmp36_ = source_type;
#line 2644 "../src/main.vala"
			_tmp37_ = php_to_vala_transpiler_hash_value_type (_tmp36_);
#line 2644 "../src/main.vala"
			value_type = _tmp37_;
#line 2645 "../src/main.vala"
			_tmp38_ = self->variable_types;
#line 2645 "../src/main.vala"
			_tmp39_ = key_name;
#line 2645 "../src/main.vala"
			_tmp40_ = key_type;
#line 2645 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp38_, _tmp39_, _tmp40_);
#line 2646 "../src/main.vala"
			_tmp41_ = self->variable_types;
#line 2646 "../src/main.vala"
			_tmp42_ = value_name;
#line 2646 "../src/main.vala"
			_tmp43_ = value_type;
#line 2646 "../src/main.vala"
			gee_abstract_map_set ((GeeAbstractMap*) _tmp41_, _tmp42_, _tmp43_);
#line 2647 "../src/main.vala"
			_tmp44_ = key_type;
#line 2647 "../src/main.vala"
			_tmp45_ = string_to_string (_tmp44_);
#line 2647 "../src/main.vala"
			_tmp46_ = key_name;
#line 2647 "../src/main.vala"
			_tmp47_ = string_to_string (_tmp46_);
#line 2647 "../src/main.vala"
			_tmp48_ = source;
#line 2647 "../src/main.vala"
			_tmp49_ = string_to_string (_tmp48_);
#line 2647 "../src/main.vala"
			_tmp50_ = value_type;
#line 2647 "../src/main.vala"
			_tmp51_ = string_to_string (_tmp50_);
#line 2647 "../src/main.vala"
			_tmp52_ = value_name;
#line 2647 "../src/main.vala"
			_tmp53_ = string_to_string (_tmp52_);
#line 2647 "../src/main.vala"
			_tmp54_ = source;
#line 2647 "../src/main.vala"
			_tmp55_ = string_to_string (_tmp54_);
#line 2647 "../src/main.vala"
			_tmp56_ = key_name;
#line 2647 "../src/main.vala"
			_tmp57_ = string_to_string (_tmp56_);
#line 2647 "../src/main.vala"
			_tmp58_ = g_strconcat ("foreach (", _tmp45_, " ", _tmp47_, " in ", _tmp49_, ".keys) { ", _tmp51_, " ", _tmp53_, " = ", _tmp55_, ".get (", _tmp57_, ");", NULL);
#line 2647 "../src/main.vala"
			result = _tmp58_;
#line 2647 "../src/main.vala"
			_g_free0 (value_type);
#line 2647 "../src/main.vala"
			_g_free0 (key_type);
#line 2647 "../src/main.vala"
			_g_free0 (source_type);
#line 2647 "../src/main.vala"
			_g_free0 (value_name);
#line 2647 "../src/main.vala"
			_g_free0 (key_name);
#line 2647 "../src/main.vala"
			_g_free0 (target);
#line 2647 "../src/main.vala"
			_g_free0 (source);
#line 2647 "../src/main.vala"
			parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 2647 "../src/main.vala"
			_g_free0 (inner);
#line 2647 "../src/main.vala"
			return result;
#line 31078 "main.c"
		}
#line 2649 "../src/main.vala"
		_tmp59_ = self->variable_types;
#line 2649 "../src/main.vala"
		_tmp60_ = key_name;
#line 2649 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp59_, _tmp60_, "int");
#line 2650 "../src/main.vala"
		_tmp61_ = self->variable_types;
#line 2650 "../src/main.vala"
		_tmp62_ = value_name;
#line 2650 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp61_, _tmp62_, "string");
#line 2651 "../src/main.vala"
		_tmp63_ = key_name;
#line 2651 "../src/main.vala"
		_tmp64_ = string_to_string (_tmp63_);
#line 2651 "../src/main.vala"
		_tmp65_ = key_name;
#line 2651 "../src/main.vala"
		_tmp66_ = string_to_string (_tmp65_);
#line 2651 "../src/main.vala"
		_tmp67_ = source;
#line 2651 "../src/main.vala"
		_tmp68_ = string_to_string (_tmp67_);
#line 2651 "../src/main.vala"
		_tmp69_ = key_name;
#line 2651 "../src/main.vala"
		_tmp70_ = string_to_string (_tmp69_);
#line 2651 "../src/main.vala"
		_tmp71_ = value_name;
#line 2651 "../src/main.vala"
		_tmp72_ = string_to_string (_tmp71_);
#line 2651 "../src/main.vala"
		_tmp73_ = source;
#line 2651 "../src/main.vala"
		_tmp74_ = string_to_string (_tmp73_);
#line 2651 "../src/main.vala"
		_tmp75_ = key_name;
#line 2651 "../src/main.vala"
		_tmp76_ = string_to_string (_tmp75_);
#line 2651 "../src/main.vala"
		_tmp77_ = g_strconcat ("for (int ", _tmp64_, " = 0; ", _tmp66_, " < ", _tmp68_, ".size; ", _tmp70_, "++) { string ", _tmp72_, " = ", _tmp74_, ".get (", _tmp76_, ");", NULL);
#line 2651 "../src/main.vala"
		result = _tmp77_;
#line 2651 "../src/main.vala"
		_g_free0 (source_type);
#line 2651 "../src/main.vala"
		_g_free0 (value_name);
#line 2651 "../src/main.vala"
		_g_free0 (key_name);
#line 2651 "../src/main.vala"
		_g_free0 (target);
#line 2651 "../src/main.vala"
		_g_free0 (source);
#line 2651 "../src/main.vala"
		parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 2651 "../src/main.vala"
		_g_free0 (inner);
#line 2651 "../src/main.vala"
		return result;
#line 31140 "main.c"
	}
#line 2653 "../src/main.vala"
	_tmp78_ = target;
#line 2653 "../src/main.vala"
	_tmp79_ = php_to_vala_transpiler_replace_php_variables (_tmp78_);
#line 2653 "../src/main.vala"
	item_name = _tmp79_;
#line 2654 "../src/main.vala"
	_tmp80_ = self->variable_types;
#line 2654 "../src/main.vala"
	_tmp81_ = item_name;
#line 2654 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp80_, _tmp81_, "string");
#line 2655 "../src/main.vala"
	_tmp82_ = item_name;
#line 2655 "../src/main.vala"
	_tmp83_ = string_to_string (_tmp82_);
#line 2655 "../src/main.vala"
	_tmp84_ = source;
#line 2655 "../src/main.vala"
	_tmp85_ = string_to_string (_tmp84_);
#line 2655 "../src/main.vala"
	_tmp86_ = g_strconcat ("foreach (var ", _tmp83_, " in ", _tmp85_, ") {", NULL);
#line 2655 "../src/main.vala"
	result = _tmp86_;
#line 2655 "../src/main.vala"
	_g_free0 (item_name);
#line 2655 "../src/main.vala"
	_g_free0 (target);
#line 2655 "../src/main.vala"
	_g_free0 (source);
#line 2655 "../src/main.vala"
	parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 2655 "../src/main.vala"
	_g_free0 (inner);
#line 2655 "../src/main.vala"
	return result;
#line 31178 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_for (PhpToValaTranspiler* self,
                                      const gchar* line,
                                      gint php_line_number,
                                      GError** error)
{
	gint open_index = 0;
	gint close_index = 0;
	gboolean _tmp0_ = FALSE;
	gchar* inner = NULL;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GeeArrayList* parts = NULL;
	const gchar* _tmp6_;
	GeeArrayList* _tmp7_;
	GeeArrayList* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	gchar* _tmp39_ = NULL;
	const gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	const gchar* _tmp43_;
	const gchar* _tmp44_;
	gchar* _tmp45_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2658 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2658 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2659 "../src/main.vala"
	open_index = string_index_of (line, "(", 0);
#line 2660 "../src/main.vala"
	close_index = php_to_vala_transpiler_find_matching_paren (line, open_index);
#line 2661 "../src/main.vala"
	if (open_index < 0) {
#line 2661 "../src/main.vala"
		_tmp0_ = TRUE;
#line 31222 "main.c"
	} else {
#line 2661 "../src/main.vala"
		_tmp0_ = close_index < 0;
#line 31226 "main.c"
	}
#line 2661 "../src/main.vala"
	if (_tmp0_) {
#line 31230 "main.c"
		GError* _tmp1_;
#line 2662 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_unsupported_syntax (self, php_line_number, line);
#line 2662 "../src/main.vala"
		_inner_error0_ = _tmp1_;
#line 2662 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2662 "../src/main.vala"
		return NULL;
#line 31240 "main.c"
	}
#line 2664 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 2664 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2664 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 2664 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2664 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2664 "../src/main.vala"
	inner = _tmp5_;
#line 2665 "../src/main.vala"
	_tmp6_ = inner;
#line 2665 "../src/main.vala"
	_tmp7_ = php_to_vala_transpiler_split_top_level (self, _tmp6_, ';');
#line 2665 "../src/main.vala"
	parts = _tmp7_;
#line 2666 "../src/main.vala"
	_tmp8_ = parts;
#line 2666 "../src/main.vala"
	_tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
#line 2666 "../src/main.vala"
	_tmp10_ = _tmp9_;
#line 2666 "../src/main.vala"
	if (_tmp10_ == 3) {
#line 31268 "main.c"
		gchar* init = NULL;
		GeeArrayList* _tmp11_;
		gpointer _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar* condition = NULL;
		GeeArrayList* _tmp18_;
		gpointer _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		gchar* increment = NULL;
		GeeArrayList* _tmp25_;
		gpointer _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		gchar* _tmp30_;
		gchar* _tmp31_;
		const gchar* _tmp32_;
		const gchar* _tmp33_;
		const gchar* _tmp34_;
		const gchar* _tmp35_;
		const gchar* _tmp36_;
		const gchar* _tmp37_;
		gchar* _tmp38_;
#line 2667 "../src/main.vala"
		_tmp11_ = parts;
#line 2667 "../src/main.vala"
		_tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, 0);
#line 2667 "../src/main.vala"
		_tmp13_ = (gchar*) _tmp12_;
#line 2667 "../src/main.vala"
		_tmp14_ = string_strip (_tmp13_);
#line 2667 "../src/main.vala"
		_tmp15_ = _tmp14_;
#line 2667 "../src/main.vala"
		_tmp16_ = php_to_vala_transpiler_convert_for_part (self, _tmp15_, TRUE, php_line_number, &_inner_error0_);
#line 2667 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 2667 "../src/main.vala"
		_g_free0 (_tmp15_);
#line 2667 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2667 "../src/main.vala"
		init = _tmp17_;
#line 2667 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2667 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2667 "../src/main.vala"
			_g_object_unref0 (parts);
#line 2667 "../src/main.vala"
			_g_free0 (inner);
#line 2667 "../src/main.vala"
			return NULL;
#line 31330 "main.c"
		}
#line 2668 "../src/main.vala"
		_tmp18_ = parts;
#line 2668 "../src/main.vala"
		_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, 1);
#line 2668 "../src/main.vala"
		_tmp20_ = (gchar*) _tmp19_;
#line 2668 "../src/main.vala"
		_tmp21_ = string_strip (_tmp20_);
#line 2668 "../src/main.vala"
		_tmp22_ = _tmp21_;
#line 2668 "../src/main.vala"
		_tmp23_ = php_to_vala_transpiler_convert_for_part (self, _tmp22_, FALSE, php_line_number, &_inner_error0_);
#line 2668 "../src/main.vala"
		_tmp24_ = _tmp23_;
#line 2668 "../src/main.vala"
		_g_free0 (_tmp22_);
#line 2668 "../src/main.vala"
		_g_free0 (_tmp20_);
#line 2668 "../src/main.vala"
		condition = _tmp24_;
#line 2668 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2668 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2668 "../src/main.vala"
			_g_free0 (init);
#line 2668 "../src/main.vala"
			_g_object_unref0 (parts);
#line 2668 "../src/main.vala"
			_g_free0 (inner);
#line 2668 "../src/main.vala"
			return NULL;
#line 31364 "main.c"
		}
#line 2669 "../src/main.vala"
		_tmp25_ = parts;
#line 2669 "../src/main.vala"
		_tmp26_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, 2);
#line 2669 "../src/main.vala"
		_tmp27_ = (gchar*) _tmp26_;
#line 2669 "../src/main.vala"
		_tmp28_ = string_strip (_tmp27_);
#line 2669 "../src/main.vala"
		_tmp29_ = _tmp28_;
#line 2669 "../src/main.vala"
		_tmp30_ = php_to_vala_transpiler_convert_for_part (self, _tmp29_, FALSE, php_line_number, &_inner_error0_);
#line 2669 "../src/main.vala"
		_tmp31_ = _tmp30_;
#line 2669 "../src/main.vala"
		_g_free0 (_tmp29_);
#line 2669 "../src/main.vala"
		_g_free0 (_tmp27_);
#line 2669 "../src/main.vala"
		increment = _tmp31_;
#line 2669 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2669 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2669 "../src/main.vala"
			_g_free0 (condition);
#line 2669 "../src/main.vala"
			_g_free0 (init);
#line 2669 "../src/main.vala"
			_g_object_unref0 (parts);
#line 2669 "../src/main.vala"
			_g_free0 (inner);
#line 2669 "../src/main.vala"
			return NULL;
#line 31400 "main.c"
		}
#line 2670 "../src/main.vala"
		_tmp32_ = init;
#line 2670 "../src/main.vala"
		_tmp33_ = string_to_string (_tmp32_);
#line 2670 "../src/main.vala"
		_tmp34_ = condition;
#line 2670 "../src/main.vala"
		_tmp35_ = string_to_string (_tmp34_);
#line 2670 "../src/main.vala"
		_tmp36_ = increment;
#line 2670 "../src/main.vala"
		_tmp37_ = string_to_string (_tmp36_);
#line 2670 "../src/main.vala"
		_tmp38_ = g_strconcat ("for (", _tmp33_, "; ", _tmp35_, "; ", _tmp37_, ") {", NULL);
#line 2670 "../src/main.vala"
		result = _tmp38_;
#line 2670 "../src/main.vala"
		_g_free0 (increment);
#line 2670 "../src/main.vala"
		_g_free0 (condition);
#line 2670 "../src/main.vala"
		_g_free0 (init);
#line 2670 "../src/main.vala"
		_g_object_unref0 (parts);
#line 2670 "../src/main.vala"
		_g_free0 (inner);
#line 2670 "../src/main.vala"
		return result;
#line 31430 "main.c"
	}
#line 2672 "../src/main.vala"
	_tmp40_ = inner;
#line 2672 "../src/main.vala"
	_tmp41_ = php_to_vala_transpiler_convert_expression (self, _tmp40_, php_line_number, &_inner_error0_);
#line 2672 "../src/main.vala"
	_tmp39_ = _tmp41_;
#line 2672 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2672 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2672 "../src/main.vala"
		_g_object_unref0 (parts);
#line 2672 "../src/main.vala"
		_g_free0 (inner);
#line 2672 "../src/main.vala"
		return NULL;
#line 31448 "main.c"
	}
#line 2672 "../src/main.vala"
	_tmp42_ = _tmp39_;
#line 2672 "../src/main.vala"
	_tmp39_ = NULL;
#line 2672 "../src/main.vala"
	_g_free0 (inner);
#line 2672 "../src/main.vala"
	inner = _tmp42_;
#line 2673 "../src/main.vala"
	_tmp43_ = inner;
#line 2673 "../src/main.vala"
	_tmp44_ = string_to_string (_tmp43_);
#line 2673 "../src/main.vala"
	_tmp45_ = g_strconcat ("for (", _tmp44_, ") {", NULL);
#line 2673 "../src/main.vala"
	result = _tmp45_;
#line 2673 "../src/main.vala"
	_g_free0 (_tmp39_);
#line 2673 "../src/main.vala"
	_g_object_unref0 (parts);
#line 2673 "../src/main.vala"
	_g_free0 (inner);
#line 2673 "../src/main.vala"
	return result;
#line 31474 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_for_part (PhpToValaTranspiler* self,
                                         const gchar* expression,
                                         gboolean is_init,
                                         gint php_line_number,
                                         GError** error)
{
	gchar* converted = NULL;
	gchar* _tmp0_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2676 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2676 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2677 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_convert_expression (self, expression, php_line_number, &_inner_error0_);
#line 2677 "../src/main.vala"
	converted = _tmp0_;
#line 2677 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2677 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2677 "../src/main.vala"
		return NULL;
#line 31502 "main.c"
	}
#line 2678 "../src/main.vala"
	if (is_init) {
#line 31506 "main.c"
		gint equals_index = 0;
		const gchar* _tmp1_;
#line 2679 "../src/main.vala"
		_tmp1_ = converted;
#line 2679 "../src/main.vala"
		equals_index = string_index_of (_tmp1_, "=", 0);
#line 2680 "../src/main.vala"
		if (equals_index > 0) {
#line 31515 "main.c"
			gchar* name = NULL;
			const gchar* _tmp2_;
			gchar* _tmp3_;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			const gchar* _tmp7_;
#line 2681 "../src/main.vala"
			_tmp2_ = converted;
#line 2681 "../src/main.vala"
			_tmp3_ = string_substring (_tmp2_, (glong) 0, (glong) equals_index);
#line 2681 "../src/main.vala"
			_tmp4_ = _tmp3_;
#line 2681 "../src/main.vala"
			_tmp5_ = string_strip (_tmp4_);
#line 2681 "../src/main.vala"
			_tmp6_ = _tmp5_;
#line 2681 "../src/main.vala"
			_g_free0 (_tmp4_);
#line 2681 "../src/main.vala"
			name = _tmp6_;
#line 2682 "../src/main.vala"
			_tmp7_ = name;
#line 2682 "../src/main.vala"
			if (php_to_vala_transpiler_is_identifier (_tmp7_)) {
#line 31541 "main.c"
				GeeHashMap* _tmp8_;
				const gchar* _tmp9_;
				const gchar* _tmp10_;
				gchar* _tmp11_;
#line 2683 "../src/main.vala"
				_tmp8_ = self->variable_types;
#line 2683 "../src/main.vala"
				_tmp9_ = name;
#line 2683 "../src/main.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp8_, _tmp9_, "int");
#line 2684 "../src/main.vala"
				_tmp10_ = converted;
#line 2684 "../src/main.vala"
				_tmp11_ = g_strconcat ("int ", _tmp10_, NULL);
#line 2684 "../src/main.vala"
				result = _tmp11_;
#line 2684 "../src/main.vala"
				_g_free0 (name);
#line 2684 "../src/main.vala"
				_g_free0 (converted);
#line 2684 "../src/main.vala"
				return result;
#line 31564 "main.c"
			}
#line 2680 "../src/main.vala"
			_g_free0 (name);
#line 31568 "main.c"
		}
	}
#line 2688 "../src/main.vala"
	result = converted;
#line 2688 "../src/main.vala"
	return result;
#line 31575 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_return (PhpToValaTranspiler* self,
                                         const gchar* line,
                                         gint php_line_number,
                                         GError** error)
{
	gchar* expression = NULL;
	gint _tmp0_;
	gint _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gboolean _tmp8_ = FALSE;
	const gchar* _tmp9_;
	const gchar* _tmp18_;
	gchar* _tmp20_ = NULL;
	const gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2691 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2691 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2692 "../src/main.vala"
	_tmp0_ = strlen ("return");
#line 2692 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2692 "../src/main.vala"
	_tmp2_ = string_substring (line, (glong) _tmp1_, (glong) -1);
#line 2692 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2692 "../src/main.vala"
	_tmp4_ = string_strip (_tmp3_);
#line 2692 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2692 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2692 "../src/main.vala"
	expression = _tmp5_;
#line 2693 "../src/main.vala"
	_tmp6_ = expression;
#line 2693 "../src/main.vala"
	_tmp7_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp6_);
#line 2693 "../src/main.vala"
	_g_free0 (expression);
#line 2693 "../src/main.vala"
	expression = _tmp7_;
#line 2694 "../src/main.vala"
	_tmp9_ = expression;
#line 2694 "../src/main.vala"
	if (g_str_has_prefix (_tmp9_, "(")) {
#line 31634 "main.c"
		const gchar* _tmp10_;
#line 2694 "../src/main.vala"
		_tmp10_ = expression;
#line 2694 "../src/main.vala"
		_tmp8_ = g_str_has_suffix (_tmp10_, ")");
#line 31640 "main.c"
	} else {
#line 2694 "../src/main.vala"
		_tmp8_ = FALSE;
#line 31644 "main.c"
	}
#line 2694 "../src/main.vala"
	if (_tmp8_) {
#line 31648 "main.c"
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		gint _tmp13_;
		gint _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
#line 2695 "../src/main.vala"
		_tmp11_ = expression;
#line 2695 "../src/main.vala"
		_tmp12_ = expression;
#line 2695 "../src/main.vala"
		_tmp13_ = strlen (_tmp12_);
#line 2695 "../src/main.vala"
		_tmp14_ = _tmp13_;
#line 2695 "../src/main.vala"
		_tmp15_ = string_substring (_tmp11_, (glong) 1, (glong) (_tmp14_ - 2));
#line 2695 "../src/main.vala"
		_tmp16_ = _tmp15_;
#line 2695 "../src/main.vala"
		_tmp17_ = string_strip (_tmp16_);
#line 2695 "../src/main.vala"
		_g_free0 (expression);
#line 2695 "../src/main.vala"
		expression = _tmp17_;
#line 2695 "../src/main.vala"
		_g_free0 (_tmp16_);
#line 31676 "main.c"
	}
#line 2697 "../src/main.vala"
	_tmp18_ = expression;
#line 2697 "../src/main.vala"
	if (g_strcmp0 (_tmp18_, "") == 0) {
#line 31682 "main.c"
		gchar* _tmp19_;
#line 2698 "../src/main.vala"
		_tmp19_ = g_strdup ("return;");
#line 2698 "../src/main.vala"
		result = _tmp19_;
#line 2698 "../src/main.vala"
		_g_free0 (expression);
#line 2698 "../src/main.vala"
		return result;
#line 31692 "main.c"
	}
#line 2700 "../src/main.vala"
	_tmp21_ = expression;
#line 2700 "../src/main.vala"
	_tmp22_ = php_to_vala_transpiler_convert_expression (self, _tmp21_, php_line_number, &_inner_error0_);
#line 2700 "../src/main.vala"
	_tmp20_ = _tmp22_;
#line 2700 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2700 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2700 "../src/main.vala"
		_g_free0 (expression);
#line 2700 "../src/main.vala"
		return NULL;
#line 31708 "main.c"
	}
#line 2700 "../src/main.vala"
	_tmp23_ = g_strdup_printf ("return %s;", _tmp20_);
#line 2700 "../src/main.vala"
	result = _tmp23_;
#line 2700 "../src/main.vala"
	_g_free0 (_tmp20_);
#line 2700 "../src/main.vala"
	_g_free0 (expression);
#line 2700 "../src/main.vala"
	return result;
#line 31720 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_compound_assignment (PhpToValaTranspiler* self,
                                                      const gchar* line,
                                                      gint php_line_number,
                                                      GError** error)
{
	gboolean _tmp0_ = FALSE;
	gchar* clean = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar** operators = NULL;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar** _tmp9_;
	gint operators_length1;
	gint _operators_size_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2703 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2703 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 2704 "../src/main.vala"
	if (!g_str_has_prefix (line, "$")) {
#line 2704 "../src/main.vala"
		_tmp0_ = TRUE;
#line 31755 "main.c"
	} else {
#line 2704 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (line, ";");
#line 31759 "main.c"
	}
#line 2704 "../src/main.vala"
	if (_tmp0_) {
#line 2705 "../src/main.vala"
		result = NULL;
#line 2705 "../src/main.vala"
		return result;
#line 31767 "main.c"
	}
#line 2708 "../src/main.vala"
	_tmp1_ = string_substring (line, (glong) 1, (glong) -1);
#line 2708 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 2708 "../src/main.vala"
	_tmp3_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp2_);
#line 2708 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 2708 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 2708 "../src/main.vala"
	clean = _tmp4_;
#line 2709 "../src/main.vala"
	_tmp5_ = g_strdup ("/=");
#line 2709 "../src/main.vala"
	_tmp6_ = g_strdup ("*=");
#line 2709 "../src/main.vala"
	_tmp7_ = g_strdup ("+=");
#line 2709 "../src/main.vala"
	_tmp8_ = g_strdup ("-=");
#line 2709 "../src/main.vala"
	_tmp9_ = g_new0 (gchar*, 4 + 1);
#line 2709 "../src/main.vala"
	_tmp9_[0] = _tmp5_;
#line 2709 "../src/main.vala"
	_tmp9_[1] = _tmp6_;
#line 2709 "../src/main.vala"
	_tmp9_[2] = _tmp7_;
#line 2709 "../src/main.vala"
	_tmp9_[3] = _tmp8_;
#line 2709 "../src/main.vala"
	operators = _tmp9_;
#line 2709 "../src/main.vala"
	operators_length1 = 4;
#line 2709 "../src/main.vala"
	_operators_size_ = operators_length1;
#line 2710 "../src/main.vala"
	_tmp10_ = operators;
#line 2710 "../src/main.vala"
	_tmp10__length1 = operators_length1;
#line 31809 "main.c"
	{
		gchar** op_collection = NULL;
		gint op_collection_length1 = 0;
		gint _op_collection_size_ = 0;
		gint op_it = 0;
#line 2710 "../src/main.vala"
		op_collection = _tmp10_;
#line 2710 "../src/main.vala"
		op_collection_length1 = _tmp10__length1;
#line 2710 "../src/main.vala"
		for (op_it = 0; op_it < op_collection_length1; op_it = op_it + 1) {
#line 31821 "main.c"
			gchar* _tmp11_;
			gchar* op = NULL;
#line 2710 "../src/main.vala"
			_tmp11_ = g_strdup (op_collection[op_it]);
#line 2710 "../src/main.vala"
			op = _tmp11_;
#line 31828 "main.c"
			{
				gint index = 0;
				const gchar* _tmp12_;
				const gchar* _tmp13_;
				gchar* lhs = NULL;
				const gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				gchar* rhs = NULL;
				const gchar* _tmp21_;
				const gchar* _tmp22_;
				gint _tmp23_;
				gint _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
				gchar* vala_op = NULL;
				const gchar* _tmp31_;
				gchar* _tmp32_;
				gboolean _tmp33_ = FALSE;
				gboolean _tmp34_ = FALSE;
				gboolean _tmp35_ = FALSE;
				const gchar* _tmp36_;
				gint bracket_index = 0;
				const gchar* _tmp62_;
				const gchar* _tmp96_;
				const gchar* _tmp97_;
				const gchar* _tmp98_;
				const gchar* _tmp99_;
				const gchar* _tmp100_;
				const gchar* _tmp101_;
				gchar* _tmp102_;
#line 2711 "../src/main.vala"
				_tmp12_ = clean;
#line 2711 "../src/main.vala"
				_tmp13_ = op;
#line 2711 "../src/main.vala"
				index = string_index_of (_tmp12_, _tmp13_, 0);
#line 2712 "../src/main.vala"
				if (index <= 0) {
#line 2713 "../src/main.vala"
					_g_free0 (op);
#line 2713 "../src/main.vala"
					continue;
#line 31880 "main.c"
				}
#line 2715 "../src/main.vala"
				_tmp14_ = clean;
#line 2715 "../src/main.vala"
				_tmp15_ = string_substring (_tmp14_, (glong) 0, (glong) index);
#line 2715 "../src/main.vala"
				_tmp16_ = _tmp15_;
#line 2715 "../src/main.vala"
				_tmp17_ = string_strip (_tmp16_);
#line 2715 "../src/main.vala"
				_tmp18_ = _tmp17_;
#line 2715 "../src/main.vala"
				_tmp19_ = php_to_vala_transpiler_replace_php_variables (_tmp18_);
#line 2715 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 2715 "../src/main.vala"
				_g_free0 (_tmp18_);
#line 2715 "../src/main.vala"
				_g_free0 (_tmp16_);
#line 2715 "../src/main.vala"
				lhs = _tmp20_;
#line 2716 "../src/main.vala"
				_tmp21_ = clean;
#line 2716 "../src/main.vala"
				_tmp22_ = op;
#line 2716 "../src/main.vala"
				_tmp23_ = strlen (_tmp22_);
#line 2716 "../src/main.vala"
				_tmp24_ = _tmp23_;
#line 2716 "../src/main.vala"
				_tmp25_ = string_substring (_tmp21_, (glong) (index + _tmp24_), (glong) -1);
#line 2716 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 2716 "../src/main.vala"
				_tmp27_ = string_strip (_tmp26_);
#line 2716 "../src/main.vala"
				_tmp28_ = _tmp27_;
#line 2716 "../src/main.vala"
				_tmp29_ = php_to_vala_transpiler_convert_expression (self, _tmp28_, php_line_number, &_inner_error0_);
#line 2716 "../src/main.vala"
				_tmp30_ = _tmp29_;
#line 2716 "../src/main.vala"
				_g_free0 (_tmp28_);
#line 2716 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 2716 "../src/main.vala"
				rhs = _tmp30_;
#line 2716 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2716 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2716 "../src/main.vala"
					_g_free0 (lhs);
#line 2716 "../src/main.vala"
					_g_free0 (op);
#line 2716 "../src/main.vala"
					operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2716 "../src/main.vala"
					_g_free0 (clean);
#line 2716 "../src/main.vala"
					return NULL;
#line 31942 "main.c"
				}
#line 2717 "../src/main.vala"
				_tmp31_ = op;
#line 2717 "../src/main.vala"
				_tmp32_ = string_substring (_tmp31_, (glong) 0, (glong) 1);
#line 2717 "../src/main.vala"
				vala_op = _tmp32_;
#line 2718 "../src/main.vala"
				_tmp36_ = lhs;
#line 2718 "../src/main.vala"
				if (php_to_vala_transpiler_is_identifier (_tmp36_)) {
#line 31954 "main.c"
					GeeHashMap* _tmp37_;
					const gchar* _tmp38_;
#line 2718 "../src/main.vala"
					_tmp37_ = self->variable_types;
#line 2718 "../src/main.vala"
					_tmp38_ = lhs;
#line 2718 "../src/main.vala"
					_tmp35_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp37_, _tmp38_);
#line 31963 "main.c"
				} else {
#line 2718 "../src/main.vala"
					_tmp35_ = FALSE;
#line 31967 "main.c"
				}
#line 2718 "../src/main.vala"
				if (_tmp35_) {
#line 31971 "main.c"
					GeeHashMap* _tmp39_;
					const gchar* _tmp40_;
					gpointer _tmp41_;
					gchar* _tmp42_;
#line 2718 "../src/main.vala"
					_tmp39_ = self->variable_types;
#line 2718 "../src/main.vala"
					_tmp40_ = lhs;
#line 2718 "../src/main.vala"
					_tmp41_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp39_, _tmp40_);
#line 2718 "../src/main.vala"
					_tmp42_ = (gchar*) _tmp41_;
#line 2718 "../src/main.vala"
					_tmp34_ = g_strcmp0 (_tmp42_, "string") == 0;
#line 2718 "../src/main.vala"
					_g_free0 (_tmp42_);
#line 31988 "main.c"
				} else {
#line 2718 "../src/main.vala"
					_tmp34_ = FALSE;
#line 31992 "main.c"
				}
#line 2718 "../src/main.vala"
				if (_tmp34_) {
#line 31996 "main.c"
					gboolean _tmp43_ = FALSE;
					const gchar* _tmp44_;
#line 2718 "../src/main.vala"
					_tmp44_ = op;
#line 2718 "../src/main.vala"
					if (g_strcmp0 (_tmp44_, "*=") == 0) {
#line 2718 "../src/main.vala"
						_tmp43_ = TRUE;
#line 32005 "main.c"
					} else {
						const gchar* _tmp45_;
#line 2718 "../src/main.vala"
						_tmp45_ = op;
#line 2718 "../src/main.vala"
						_tmp43_ = g_strcmp0 (_tmp45_, "/=") == 0;
#line 32012 "main.c"
					}
#line 2718 "../src/main.vala"
					_tmp33_ = _tmp43_;
#line 32016 "main.c"
				} else {
#line 2718 "../src/main.vala"
					_tmp33_ = FALSE;
#line 32020 "main.c"
				}
#line 2718 "../src/main.vala"
				if (_tmp33_) {
#line 32024 "main.c"
					gchar* alias_name = NULL;
					const gchar* _tmp46_;
					gchar* _tmp47_;
					GeeHashMap* _tmp48_;
					const gchar* _tmp49_;
					const gchar* _tmp50_;
					GeeHashMap* _tmp51_;
					const gchar* _tmp52_;
					const gchar* _tmp53_;
					const gchar* _tmp54_;
					const gchar* _tmp55_;
					const gchar* _tmp56_;
					const gchar* _tmp57_;
					const gchar* _tmp58_;
					const gchar* _tmp59_;
					const gchar* _tmp60_;
					gchar* _tmp61_;
#line 2719 "../src/main.vala"
					_tmp46_ = lhs;
#line 2719 "../src/main.vala"
					_tmp47_ = php_to_vala_transpiler_unique_alias_name (self, _tmp46_, "double");
#line 2719 "../src/main.vala"
					alias_name = _tmp47_;
#line 2720 "../src/main.vala"
					_tmp48_ = self->variable_aliases;
#line 2720 "../src/main.vala"
					_tmp49_ = lhs;
#line 2720 "../src/main.vala"
					_tmp50_ = alias_name;
#line 2720 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp48_, _tmp49_, _tmp50_);
#line 2721 "../src/main.vala"
					_tmp51_ = self->variable_types;
#line 2721 "../src/main.vala"
					_tmp52_ = alias_name;
#line 2721 "../src/main.vala"
					gee_abstract_map_set ((GeeAbstractMap*) _tmp51_, _tmp52_, "double");
#line 2722 "../src/main.vala"
					_tmp53_ = alias_name;
#line 2722 "../src/main.vala"
					_tmp54_ = string_to_string (_tmp53_);
#line 2722 "../src/main.vala"
					_tmp55_ = lhs;
#line 2722 "../src/main.vala"
					_tmp56_ = string_to_string (_tmp55_);
#line 2722 "../src/main.vala"
					_tmp57_ = vala_op;
#line 2722 "../src/main.vala"
					_tmp58_ = string_to_string (_tmp57_);
#line 2722 "../src/main.vala"
					_tmp59_ = rhs;
#line 2722 "../src/main.vala"
					_tmp60_ = string_to_string (_tmp59_);
#line 2722 "../src/main.vala"
					_tmp61_ = g_strconcat ("double ", _tmp54_, " = double.parse (", _tmp56_, ") ", _tmp58_, " ", _tmp60_, ";", NULL);
#line 2722 "../src/main.vala"
					result = _tmp61_;
#line 2722 "../src/main.vala"
					_g_free0 (alias_name);
#line 2722 "../src/main.vala"
					_g_free0 (vala_op);
#line 2722 "../src/main.vala"
					_g_free0 (rhs);
#line 2722 "../src/main.vala"
					_g_free0 (lhs);
#line 2722 "../src/main.vala"
					_g_free0 (op);
#line 2722 "../src/main.vala"
					operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2722 "../src/main.vala"
					_g_free0 (clean);
#line 2722 "../src/main.vala"
					return result;
#line 32098 "main.c"
				}
#line 2724 "../src/main.vala"
				_tmp62_ = lhs;
#line 2724 "../src/main.vala"
				bracket_index = string_index_of (_tmp62_, "[", 0);
#line 2725 "../src/main.vala"
				if (bracket_index > 0) {
#line 32106 "main.c"
					gchar* name = NULL;
					const gchar* _tmp63_;
					gchar* _tmp64_;
					GeeArrayList* keys = NULL;
					const gchar* _tmp65_;
					gchar* _tmp66_;
					gchar* _tmp67_;
					GeeArrayList* _tmp68_;
					GeeArrayList* _tmp69_;
					GeeArrayList* _tmp70_;
					gint _tmp71_;
					gint _tmp72_;
#line 2726 "../src/main.vala"
					_tmp63_ = lhs;
#line 2726 "../src/main.vala"
					_tmp64_ = string_substring (_tmp63_, (glong) 0, (glong) bracket_index);
#line 2726 "../src/main.vala"
					name = _tmp64_;
#line 2727 "../src/main.vala"
					_tmp65_ = lhs;
#line 2727 "../src/main.vala"
					_tmp66_ = string_substring (_tmp65_, (glong) bracket_index, (glong) -1);
#line 2727 "../src/main.vala"
					_tmp67_ = _tmp66_;
#line 2727 "../src/main.vala"
					_tmp68_ = php_to_vala_transpiler_parse_array_keys (self, _tmp67_, php_line_number, &_inner_error0_);
#line 2727 "../src/main.vala"
					_tmp69_ = _tmp68_;
#line 2727 "../src/main.vala"
					_g_free0 (_tmp67_);
#line 2727 "../src/main.vala"
					keys = _tmp69_;
#line 2727 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2727 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2727 "../src/main.vala"
						_g_free0 (name);
#line 2727 "../src/main.vala"
						_g_free0 (vala_op);
#line 2727 "../src/main.vala"
						_g_free0 (rhs);
#line 2727 "../src/main.vala"
						_g_free0 (lhs);
#line 2727 "../src/main.vala"
						_g_free0 (op);
#line 2727 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2727 "../src/main.vala"
						_g_free0 (clean);
#line 2727 "../src/main.vala"
						return NULL;
#line 32159 "main.c"
					}
#line 2728 "../src/main.vala"
					_tmp70_ = keys;
#line 2728 "../src/main.vala"
					_tmp71_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp70_);
#line 2728 "../src/main.vala"
					_tmp72_ = _tmp71_;
#line 2728 "../src/main.vala"
					if (_tmp72_ == 1) {
#line 32169 "main.c"
						gchar* key = NULL;
						GeeArrayList* _tmp73_;
						gpointer _tmp74_;
						const gchar* _tmp75_;
						const gchar* _tmp76_;
						const gchar* _tmp77_;
						const gchar* _tmp78_;
						const gchar* _tmp79_;
						const gchar* _tmp80_;
						const gchar* _tmp81_;
						const gchar* _tmp82_;
						const gchar* _tmp83_;
						const gchar* _tmp84_;
						const gchar* _tmp85_;
						const gchar* _tmp86_;
						const gchar* _tmp87_;
						const gchar* _tmp88_;
						const gchar* _tmp89_;
						const gchar* _tmp90_;
						const gchar* _tmp91_;
						const gchar* _tmp92_;
						const gchar* _tmp93_;
						const gchar* _tmp94_;
						gchar* _tmp95_;
#line 2729 "../src/main.vala"
						_tmp73_ = keys;
#line 2729 "../src/main.vala"
						_tmp74_ = gee_abstract_list_get ((GeeAbstractList*) _tmp73_, 0);
#line 2729 "../src/main.vala"
						key = (gchar*) _tmp74_;
#line 2730 "../src/main.vala"
						_tmp75_ = name;
#line 2730 "../src/main.vala"
						_tmp76_ = string_to_string (_tmp75_);
#line 2730 "../src/main.vala"
						_tmp77_ = key;
#line 2730 "../src/main.vala"
						_tmp78_ = string_to_string (_tmp77_);
#line 2730 "../src/main.vala"
						_tmp79_ = name;
#line 2730 "../src/main.vala"
						_tmp80_ = string_to_string (_tmp79_);
#line 2730 "../src/main.vala"
						_tmp81_ = key;
#line 2730 "../src/main.vala"
						_tmp82_ = string_to_string (_tmp81_);
#line 2730 "../src/main.vala"
						_tmp83_ = name;
#line 2730 "../src/main.vala"
						_tmp84_ = string_to_string (_tmp83_);
#line 2730 "../src/main.vala"
						_tmp85_ = key;
#line 2730 "../src/main.vala"
						_tmp86_ = string_to_string (_tmp85_);
#line 2730 "../src/main.vala"
						_tmp87_ = name;
#line 2730 "../src/main.vala"
						_tmp88_ = string_to_string (_tmp87_);
#line 2730 "../src/main.vala"
						_tmp89_ = key;
#line 2730 "../src/main.vala"
						_tmp90_ = string_to_string (_tmp89_);
#line 2730 "../src/main.vala"
						_tmp91_ = vala_op;
#line 2730 "../src/main.vala"
						_tmp92_ = string_to_string (_tmp91_);
#line 2730 "../src/main.vala"
						_tmp93_ = rhs;
#line 2730 "../src/main.vala"
						_tmp94_ = string_to_string (_tmp93_);
#line 2730 "../src/main.vala"
						_tmp95_ = g_strconcat (_tmp76_, ".set (", _tmp78_, ", ((", _tmp80_, ".has_key (", _tmp82_, ") && ", _tmp84_, ".get (", _tmp86_, ") != null) ? ", _tmp88_, ".get (", _tmp90_, ") : 0.0) ", _tmp92_, " double.parse (", _tmp94_, "));", NULL);
#line 2730 "../src/main.vala"
						result = _tmp95_;
#line 2730 "../src/main.vala"
						_g_free0 (key);
#line 2730 "../src/main.vala"
						_g_object_unref0 (keys);
#line 2730 "../src/main.vala"
						_g_free0 (name);
#line 2730 "../src/main.vala"
						_g_free0 (vala_op);
#line 2730 "../src/main.vala"
						_g_free0 (rhs);
#line 2730 "../src/main.vala"
						_g_free0 (lhs);
#line 2730 "../src/main.vala"
						_g_free0 (op);
#line 2730 "../src/main.vala"
						operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2730 "../src/main.vala"
						_g_free0 (clean);
#line 2730 "../src/main.vala"
						return result;
#line 32264 "main.c"
					}
#line 2725 "../src/main.vala"
					_g_object_unref0 (keys);
#line 2725 "../src/main.vala"
					_g_free0 (name);
#line 32270 "main.c"
				}
#line 2733 "../src/main.vala"
				_tmp96_ = lhs;
#line 2733 "../src/main.vala"
				_tmp97_ = string_to_string (_tmp96_);
#line 2733 "../src/main.vala"
				_tmp98_ = vala_op;
#line 2733 "../src/main.vala"
				_tmp99_ = string_to_string (_tmp98_);
#line 2733 "../src/main.vala"
				_tmp100_ = rhs;
#line 2733 "../src/main.vala"
				_tmp101_ = string_to_string (_tmp100_);
#line 2733 "../src/main.vala"
				_tmp102_ = g_strconcat (_tmp97_, " ", _tmp99_, "= ", _tmp101_, ";", NULL);
#line 2733 "../src/main.vala"
				result = _tmp102_;
#line 2733 "../src/main.vala"
				_g_free0 (vala_op);
#line 2733 "../src/main.vala"
				_g_free0 (rhs);
#line 2733 "../src/main.vala"
				_g_free0 (lhs);
#line 2733 "../src/main.vala"
				_g_free0 (op);
#line 2733 "../src/main.vala"
				operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2733 "../src/main.vala"
				_g_free0 (clean);
#line 2733 "../src/main.vala"
				return result;
#line 32302 "main.c"
			}
		}
	}
#line 2735 "../src/main.vala"
	result = NULL;
#line 2735 "../src/main.vala"
	operators = (_vala_array_free (operators, operators_length1, (GDestroyNotify) g_free), NULL);
#line 2735 "../src/main.vala"
	_g_free0 (clean);
#line 2735 "../src/main.vala"
	return result;
#line 32314 "main.c"
}

gint
php_to_vala_transpiler_find_matching_paren (const gchar* value,
                                            gint start_index)
{
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	gint result;
#line 2738 "../src/main.vala"
	g_return_val_if_fail (value != NULL, -1);
#line 2739 "../src/main.vala"
	if (start_index < 0) {
#line 2740 "../src/main.vala"
		result = -1;
#line 2740 "../src/main.vala"
		return result;
#line 32333 "main.c"
	}
#line 2742 "../src/main.vala"
	in_single_quote = FALSE;
#line 2743 "../src/main.vala"
	in_double_quote = FALSE;
#line 2744 "../src/main.vala"
	depth = 0;
#line 32341 "main.c"
	{
		gint i = 0;
#line 2745 "../src/main.vala"
		i = start_index;
#line 32346 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 2745 "../src/main.vala"
			_tmp0_ = TRUE;
#line 2745 "../src/main.vala"
			while (TRUE) {
#line 32353 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
				gboolean _tmp4_ = FALSE;
#line 2745 "../src/main.vala"
				if (!_tmp0_) {
#line 32360 "main.c"
					gint _tmp1_;
#line 2745 "../src/main.vala"
					_tmp1_ = i;
#line 2745 "../src/main.vala"
					i = _tmp1_ + 1;
#line 32366 "main.c"
				}
#line 2745 "../src/main.vala"
				_tmp0_ = FALSE;
#line 2745 "../src/main.vala"
				_tmp2_ = strlen (value);
#line 2745 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 2745 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 2745 "../src/main.vala"
					break;
#line 32378 "main.c"
				}
#line 2746 "../src/main.vala"
				c = string_get (value, (glong) i);
#line 2747 "../src/main.vala"
				if (c == '\'') {
#line 2747 "../src/main.vala"
					_tmp4_ = !in_double_quote;
#line 32386 "main.c"
				} else {
#line 2747 "../src/main.vala"
					_tmp4_ = FALSE;
#line 32390 "main.c"
				}
#line 2747 "../src/main.vala"
				if (_tmp4_) {
#line 2748 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 32396 "main.c"
				} else {
					gboolean _tmp5_ = FALSE;
#line 2749 "../src/main.vala"
					if (c == '"') {
#line 2749 "../src/main.vala"
						_tmp5_ = !in_single_quote;
#line 32403 "main.c"
					} else {
#line 2749 "../src/main.vala"
						_tmp5_ = FALSE;
#line 32407 "main.c"
					}
#line 2749 "../src/main.vala"
					if (_tmp5_) {
#line 2750 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 32413 "main.c"
					} else {
						gboolean _tmp6_ = FALSE;
#line 2751 "../src/main.vala"
						if (!in_single_quote) {
#line 2751 "../src/main.vala"
							_tmp6_ = !in_double_quote;
#line 32420 "main.c"
						} else {
#line 2751 "../src/main.vala"
							_tmp6_ = FALSE;
#line 32424 "main.c"
						}
#line 2751 "../src/main.vala"
						if (_tmp6_) {
#line 2752 "../src/main.vala"
							if (c == '(') {
#line 32430 "main.c"
								gint _tmp7_;
#line 2753 "../src/main.vala"
								_tmp7_ = depth;
#line 2753 "../src/main.vala"
								depth = _tmp7_ + 1;
#line 32436 "main.c"
							} else {
#line 2754 "../src/main.vala"
								if (c == ')') {
#line 32440 "main.c"
									gint _tmp8_;
#line 2755 "../src/main.vala"
									_tmp8_ = depth;
#line 2755 "../src/main.vala"
									depth = _tmp8_ - 1;
#line 2756 "../src/main.vala"
									if (depth == 0) {
#line 2757 "../src/main.vala"
										result = i;
#line 2757 "../src/main.vala"
										return result;
#line 32452 "main.c"
									}
								}
							}
						}
					}
				}
			}
		}
	}
#line 2762 "../src/main.vala"
	result = -1;
#line 2762 "../src/main.vala"
	return result;
#line 32466 "main.c"
}

static gchar*
php_to_vala_transpiler_transpile_exit (PhpToValaTranspiler* self,
                                       const gchar* expression,
                                       gint php_line_number,
                                       GError** error)
{
	gchar* clean_expression = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* converted_expression = NULL;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	const gchar* _tmp22_;
	gchar* function_name = NULL;
	gchar* _tmp40_;
	const gchar* _tmp47_;
	const gchar* _tmp48_;
	gchar* _tmp49_;
	gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2765 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2765 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2766 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_trim_trailing_semicolon (expression);
#line 2766 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2766 "../src/main.vala"
	_tmp2_ = string_strip (_tmp1_);
#line 2766 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2766 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 2766 "../src/main.vala"
	clean_expression = _tmp3_;
#line 2767 "../src/main.vala"
	_tmp4_ = clean_expression;
#line 2767 "../src/main.vala"
	if (g_strcmp0 (_tmp4_, "") == 0) {
#line 32515 "main.c"
		gchar* function_name = NULL;
		gchar* _tmp5_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
#line 2768 "../src/main.vala"
		_tmp5_ = php_to_vala_transpiler_map_php_function_name (self, "exit_no_args", php_line_number, &_inner_error0_);
#line 2768 "../src/main.vala"
		function_name = _tmp5_;
#line 2768 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2768 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2768 "../src/main.vala"
			_g_free0 (clean_expression);
#line 2768 "../src/main.vala"
			return NULL;
#line 32537 "main.c"
		}
#line 2769 "../src/main.vala"
		if (self->transpiling_local_function) {
#line 32541 "main.c"
			const gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			gchar* _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
#line 2770 "../src/main.vala"
			_tmp6_ = function_name;
#line 2770 "../src/main.vala"
			_tmp7_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2770 "../src/main.vala"
			_tmp8_ = _tmp7_;
#line 2770 "../src/main.vala"
			_tmp9_ = string_substring (_tmp8_, (glong) 2, (glong) -1);
#line 2770 "../src/main.vala"
			_tmp10_ = _tmp9_;
#line 2770 "../src/main.vala"
			_tmp11_ = g_strdup_printf ("Process.exit (%s (%s));", _tmp6_, _tmp10_);
#line 2770 "../src/main.vala"
			_tmp12_ = _tmp11_;
#line 2770 "../src/main.vala"
			_g_free0 (_tmp10_);
#line 2770 "../src/main.vala"
			_g_free0 (_tmp8_);
#line 2770 "../src/main.vala"
			result = _tmp12_;
#line 2770 "../src/main.vala"
			_g_free0 (function_name);
#line 2770 "../src/main.vala"
			_g_free0 (clean_expression);
#line 2770 "../src/main.vala"
			return result;
#line 32575 "main.c"
		}
#line 2772 "../src/main.vala"
		_tmp13_ = function_name;
#line 2772 "../src/main.vala"
		_tmp14_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2772 "../src/main.vala"
		_tmp15_ = _tmp14_;
#line 2772 "../src/main.vala"
		_tmp16_ = string_substring (_tmp15_, (glong) 2, (glong) -1);
#line 2772 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 2772 "../src/main.vala"
		_tmp18_ = g_strdup_printf ("return %s (%s);", _tmp13_, _tmp17_);
#line 2772 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 2772 "../src/main.vala"
		_g_free0 (_tmp17_);
#line 2772 "../src/main.vala"
		_g_free0 (_tmp15_);
#line 2772 "../src/main.vala"
		result = _tmp19_;
#line 2772 "../src/main.vala"
		_g_free0 (function_name);
#line 2772 "../src/main.vala"
		_g_free0 (clean_expression);
#line 2772 "../src/main.vala"
		return result;
#line 32603 "main.c"
	}
#line 2775 "../src/main.vala"
	_tmp20_ = clean_expression;
#line 2775 "../src/main.vala"
	_tmp21_ = php_to_vala_transpiler_convert_expression (self, _tmp20_, php_line_number, &_inner_error0_);
#line 2775 "../src/main.vala"
	converted_expression = _tmp21_;
#line 2775 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2775 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2775 "../src/main.vala"
		_g_free0 (clean_expression);
#line 2775 "../src/main.vala"
		return NULL;
#line 32619 "main.c"
	}
#line 2776 "../src/main.vala"
	_tmp22_ = converted_expression;
#line 2776 "../src/main.vala"
	if (php_to_vala_transpiler_is_string_exit_expression (self, _tmp22_)) {
#line 32625 "main.c"
		gchar* function_name = NULL;
		gchar* _tmp23_;
		const gchar* _tmp32_;
		const gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
#line 2777 "../src/main.vala"
		_tmp23_ = php_to_vala_transpiler_map_php_function_name (self, "exit_string", php_line_number, &_inner_error0_);
#line 2777 "../src/main.vala"
		function_name = _tmp23_;
#line 2777 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2777 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2777 "../src/main.vala"
			_g_free0 (converted_expression);
#line 2777 "../src/main.vala"
			_g_free0 (clean_expression);
#line 2777 "../src/main.vala"
			return NULL;
#line 32650 "main.c"
		}
#line 2778 "../src/main.vala"
		if (self->transpiling_local_function) {
#line 32654 "main.c"
			const gchar* _tmp24_;
			const gchar* _tmp25_;
			gchar* _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
			gchar* _tmp29_;
			gchar* _tmp30_;
			gchar* _tmp31_;
#line 2779 "../src/main.vala"
			_tmp24_ = function_name;
#line 2779 "../src/main.vala"
			_tmp25_ = converted_expression;
#line 2779 "../src/main.vala"
			_tmp26_ = php_to_vala_transpiler_value_for_format (self, _tmp25_);
#line 2779 "../src/main.vala"
			_tmp27_ = _tmp26_;
#line 2779 "../src/main.vala"
			_tmp28_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2779 "../src/main.vala"
			_tmp29_ = _tmp28_;
#line 2779 "../src/main.vala"
			_tmp30_ = g_strdup_printf ("Process.exit (%s (%s%s));", _tmp24_, _tmp27_, _tmp29_);
#line 2779 "../src/main.vala"
			_tmp31_ = _tmp30_;
#line 2779 "../src/main.vala"
			_g_free0 (_tmp29_);
#line 2779 "../src/main.vala"
			_g_free0 (_tmp27_);
#line 2779 "../src/main.vala"
			result = _tmp31_;
#line 2779 "../src/main.vala"
			_g_free0 (function_name);
#line 2779 "../src/main.vala"
			_g_free0 (converted_expression);
#line 2779 "../src/main.vala"
			_g_free0 (clean_expression);
#line 2779 "../src/main.vala"
			return result;
#line 32693 "main.c"
		}
#line 2781 "../src/main.vala"
		_tmp32_ = function_name;
#line 2781 "../src/main.vala"
		_tmp33_ = converted_expression;
#line 2781 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_value_for_format (self, _tmp33_);
#line 2781 "../src/main.vala"
		_tmp35_ = _tmp34_;
#line 2781 "../src/main.vala"
		_tmp36_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2781 "../src/main.vala"
		_tmp37_ = _tmp36_;
#line 2781 "../src/main.vala"
		_tmp38_ = g_strdup_printf ("return %s (%s%s);", _tmp32_, _tmp35_, _tmp37_);
#line 2781 "../src/main.vala"
		_tmp39_ = _tmp38_;
#line 2781 "../src/main.vala"
		_g_free0 (_tmp37_);
#line 2781 "../src/main.vala"
		_g_free0 (_tmp35_);
#line 2781 "../src/main.vala"
		result = _tmp39_;
#line 2781 "../src/main.vala"
		_g_free0 (function_name);
#line 2781 "../src/main.vala"
		_g_free0 (converted_expression);
#line 2781 "../src/main.vala"
		_g_free0 (clean_expression);
#line 2781 "../src/main.vala"
		return result;
#line 32725 "main.c"
	}
#line 2784 "../src/main.vala"
	_tmp40_ = php_to_vala_transpiler_map_php_function_name (self, "exit_int", php_line_number, &_inner_error0_);
#line 2784 "../src/main.vala"
	function_name = _tmp40_;
#line 2784 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2784 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2784 "../src/main.vala"
		_g_free0 (converted_expression);
#line 2784 "../src/main.vala"
		_g_free0 (clean_expression);
#line 2784 "../src/main.vala"
		return NULL;
#line 32741 "main.c"
	}
#line 2785 "../src/main.vala"
	if (self->transpiling_local_function) {
#line 32745 "main.c"
		const gchar* _tmp41_;
		const gchar* _tmp42_;
		gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		gchar* _tmp46_;
#line 2786 "../src/main.vala"
		_tmp41_ = function_name;
#line 2786 "../src/main.vala"
		_tmp42_ = converted_expression;
#line 2786 "../src/main.vala"
		_tmp43_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2786 "../src/main.vala"
		_tmp44_ = _tmp43_;
#line 2786 "../src/main.vala"
		_tmp45_ = g_strdup_printf ("Process.exit (%s ((int) (%s)%s));", _tmp41_, _tmp42_, _tmp44_);
#line 2786 "../src/main.vala"
		_tmp46_ = _tmp45_;
#line 2786 "../src/main.vala"
		_g_free0 (_tmp44_);
#line 2786 "../src/main.vala"
		result = _tmp46_;
#line 2786 "../src/main.vala"
		_g_free0 (function_name);
#line 2786 "../src/main.vala"
		_g_free0 (converted_expression);
#line 2786 "../src/main.vala"
		_g_free0 (clean_expression);
#line 2786 "../src/main.vala"
		return result;
#line 32776 "main.c"
	}
#line 2788 "../src/main.vala"
	_tmp47_ = function_name;
#line 2788 "../src/main.vala"
	_tmp48_ = converted_expression;
#line 2788 "../src/main.vala"
	_tmp49_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2788 "../src/main.vala"
	_tmp50_ = _tmp49_;
#line 2788 "../src/main.vala"
	_tmp51_ = g_strdup_printf ("return %s ((int) (%s)%s);", _tmp47_, _tmp48_, _tmp50_);
#line 2788 "../src/main.vala"
	_tmp52_ = _tmp51_;
#line 2788 "../src/main.vala"
	_g_free0 (_tmp50_);
#line 2788 "../src/main.vala"
	result = _tmp52_;
#line 2788 "../src/main.vala"
	_g_free0 (function_name);
#line 2788 "../src/main.vala"
	_g_free0 (converted_expression);
#line 2788 "../src/main.vala"
	_g_free0 (clean_expression);
#line 2788 "../src/main.vala"
	return result;
#line 32802 "main.c"
}

gchar*
php_to_vala_transpiler_convert_expression (PhpToValaTranspiler* self,
                                           const gchar* expression,
                                           gint php_line_number,
                                           GError** error)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_ = NULL;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_ = NULL;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	const gchar* _tmp25_;
	gchar* _tmp26_;
	const gchar* _tmp27_;
	const gchar* _tmp29_;
	const gchar* _tmp31_;
	const gchar* _tmp33_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2791 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2791 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2792 "../src/main.vala"
	_tmp0_ = string_strip (expression);
#line 2792 "../src/main.vala"
	_result_ = _tmp0_;
#line 2793 "../src/main.vala"
	_tmp1_ = _result_;
#line 2793 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_trim_trailing_semicolon (_tmp1_);
#line 2793 "../src/main.vala"
	_g_free0 (_result_);
#line 2793 "../src/main.vala"
	_result_ = _tmp2_;
#line 2794 "../src/main.vala"
	_tmp3_ = _result_;
#line 2794 "../src/main.vala"
	_tmp4_ = php_to_vala_transpiler_normalize_php_boolean_comparisons (_tmp3_);
#line 2794 "../src/main.vala"
	_g_free0 (_result_);
#line 2794 "../src/main.vala"
	_result_ = _tmp4_;
#line 2795 "../src/main.vala"
	_tmp5_ = _result_;
#line 2795 "../src/main.vala"
	_tmp6_ = string_replace (_tmp5_, "!==", "!=");
#line 2795 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 2795 "../src/main.vala"
	_tmp8_ = string_replace (_tmp7_, "===", "==");
#line 2795 "../src/main.vala"
	_g_free0 (_result_);
#line 2795 "../src/main.vala"
	_result_ = _tmp8_;
#line 2795 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 2796 "../src/main.vala"
	_tmp9_ = _result_;
#line 2796 "../src/main.vala"
	_tmp10_ = php_to_vala_transpiler_convert_string_literal (_tmp9_);
#line 2796 "../src/main.vala"
	_g_free0 (_result_);
#line 2796 "../src/main.vala"
	_result_ = _tmp10_;
#line 2797 "../src/main.vala"
	_tmp11_ = _result_;
#line 2797 "../src/main.vala"
	_tmp12_ = php_to_vala_transpiler_replace_php_variables_with_aliases (self, _tmp11_);
#line 2797 "../src/main.vala"
	_g_free0 (_result_);
#line 2797 "../src/main.vala"
	_result_ = _tmp12_;
#line 2798 "../src/main.vala"
	_tmp14_ = _result_;
#line 2798 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_replace_division_operator (self, _tmp14_, php_line_number, &_inner_error0_);
#line 2798 "../src/main.vala"
	_tmp13_ = _tmp15_;
#line 2798 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2798 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2798 "../src/main.vala"
		_g_free0 (_result_);
#line 2798 "../src/main.vala"
		return NULL;
#line 32913 "main.c"
	}
#line 2798 "../src/main.vala"
	_tmp16_ = _tmp13_;
#line 2798 "../src/main.vala"
	_tmp13_ = NULL;
#line 2798 "../src/main.vala"
	_g_free0 (_result_);
#line 2798 "../src/main.vala"
	_result_ = _tmp16_;
#line 2799 "../src/main.vala"
	_tmp17_ = _result_;
#line 2799 "../src/main.vala"
	_tmp18_ = php_to_vala_transpiler_replace_concat_operator (_tmp17_);
#line 2799 "../src/main.vala"
	_g_free0 (_result_);
#line 2799 "../src/main.vala"
	_result_ = _tmp18_;
#line 2800 "../src/main.vala"
	_tmp20_ = _result_;
#line 2800 "../src/main.vala"
	_tmp21_ = php_to_vala_transpiler_replace_known_function_names (self, _tmp20_, php_line_number, &_inner_error0_);
#line 2800 "../src/main.vala"
	_tmp19_ = _tmp21_;
#line 2800 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2800 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2800 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2800 "../src/main.vala"
		_g_free0 (_result_);
#line 2800 "../src/main.vala"
		return NULL;
#line 32947 "main.c"
	}
#line 2800 "../src/main.vala"
	_tmp22_ = _tmp19_;
#line 2800 "../src/main.vala"
	_tmp19_ = NULL;
#line 2800 "../src/main.vala"
	_g_free0 (_result_);
#line 2800 "../src/main.vala"
	_result_ = _tmp22_;
#line 2801 "../src/main.vala"
	_tmp23_ = _result_;
#line 2801 "../src/main.vala"
	_tmp24_ = php_to_vala_transpiler_replace_inline_known_function_names (self, _tmp23_, php_line_number);
#line 2801 "../src/main.vala"
	_g_free0 (_result_);
#line 2801 "../src/main.vala"
	_result_ = _tmp24_;
#line 2802 "../src/main.vala"
	_tmp25_ = _result_;
#line 2802 "../src/main.vala"
	_tmp26_ = php_to_vala_transpiler_convert_array_accesses (self, _tmp25_);
#line 2802 "../src/main.vala"
	_g_free0 (_result_);
#line 2802 "../src/main.vala"
	_result_ = _tmp26_;
#line 2804 "../src/main.vala"
	_tmp27_ = _result_;
#line 2804 "../src/main.vala"
	if (g_strcmp0 (_tmp27_, "TRUE") == 0) {
#line 32977 "main.c"
		gchar* _tmp28_;
#line 2805 "../src/main.vala"
		_tmp28_ = g_strdup ("true");
#line 2805 "../src/main.vala"
		result = _tmp28_;
#line 2805 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2805 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2805 "../src/main.vala"
		_g_free0 (_result_);
#line 2805 "../src/main.vala"
		return result;
#line 32991 "main.c"
	}
#line 2807 "../src/main.vala"
	_tmp29_ = _result_;
#line 2807 "../src/main.vala"
	if (g_strcmp0 (_tmp29_, "FALSE") == 0) {
#line 32997 "main.c"
		gchar* _tmp30_;
#line 2808 "../src/main.vala"
		_tmp30_ = g_strdup ("false");
#line 2808 "../src/main.vala"
		result = _tmp30_;
#line 2808 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2808 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2808 "../src/main.vala"
		_g_free0 (_result_);
#line 2808 "../src/main.vala"
		return result;
#line 33011 "main.c"
	}
#line 2810 "../src/main.vala"
	_tmp31_ = _result_;
#line 2810 "../src/main.vala"
	if (g_strcmp0 (_tmp31_, "NULL") == 0) {
#line 33017 "main.c"
		gchar* _tmp32_;
#line 2811 "../src/main.vala"
		_tmp32_ = g_strdup ("null");
#line 2811 "../src/main.vala"
		result = _tmp32_;
#line 2811 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2811 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2811 "../src/main.vala"
		_g_free0 (_result_);
#line 2811 "../src/main.vala"
		return result;
#line 33031 "main.c"
	}
#line 2813 "../src/main.vala"
	_tmp33_ = _result_;
#line 2813 "../src/main.vala"
	if (g_strcmp0 (_tmp33_, "TOKEN_PARSE") == 0) {
#line 33037 "main.c"
		gchar* _tmp34_;
#line 2814 "../src/main.vala"
		_tmp34_ = g_strdup ("1");
#line 2814 "../src/main.vala"
		result = _tmp34_;
#line 2814 "../src/main.vala"
		_g_free0 (_tmp19_);
#line 2814 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2814 "../src/main.vala"
		_g_free0 (_result_);
#line 2814 "../src/main.vala"
		return result;
#line 33051 "main.c"
	}
#line 2817 "../src/main.vala"
	result = _result_;
#line 2817 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 2817 "../src/main.vala"
	_g_free0 (_tmp13_);
#line 2817 "../src/main.vala"
	return result;
#line 33061 "main.c"
}

static gchar*
php_to_vala_transpiler_normalize_php_boolean_comparisons (const gchar* expression)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* result;
#line 2820 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2821 "../src/main.vala"
	_tmp0_ = string_replace (expression, "!==false", "!=-1");
#line 2821 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2821 "../src/main.vala"
	_tmp2_ = string_replace (_tmp1_, "!== false", "!= -1");
#line 2821 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2821 "../src/main.vala"
	_tmp4_ = string_replace (_tmp3_, "!=false", "!=-1");
#line 2821 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2821 "../src/main.vala"
	_tmp6_ = string_replace (_tmp5_, "!= false", "!= -1");
#line 2821 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 2821 "../src/main.vala"
	_tmp8_ = string_replace (_tmp7_, "===false", "==-1");
#line 2821 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 2821 "../src/main.vala"
	_tmp10_ = string_replace (_tmp9_, "=== false", "== -1");
#line 2821 "../src/main.vala"
	_tmp11_ = _tmp10_;
#line 2821 "../src/main.vala"
	_tmp12_ = string_replace (_tmp11_, "==false", "==-1");
#line 2821 "../src/main.vala"
	_tmp13_ = _tmp12_;
#line 2821 "../src/main.vala"
	_tmp14_ = string_replace (_tmp13_, "== false", "== -1");
#line 2821 "../src/main.vala"
	_tmp15_ = _tmp14_;
#line 2821 "../src/main.vala"
	_g_free0 (_tmp13_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp11_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp9_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2821 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 2821 "../src/main.vala"
	result = _tmp15_;
#line 2821 "../src/main.vala"
	return result;
#line 33136 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_string_literal (const gchar* expression)
{
	gint _tmp0_;
	gint _tmp1_;
	gboolean _tmp3_ = FALSE;
	gboolean single_quoted = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean double_quoted = FALSE;
	gboolean _tmp5_ = FALSE;
	gchar* value = NULL;
	gint _tmp7_;
	gint _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* result;
#line 2832 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2833 "../src/main.vala"
	_tmp0_ = strlen (expression);
#line 2833 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2833 "../src/main.vala"
	if (_tmp1_ < 2) {
#line 33169 "main.c"
		gchar* _tmp2_;
#line 2834 "../src/main.vala"
		_tmp2_ = g_strdup (expression);
#line 2834 "../src/main.vala"
		result = _tmp2_;
#line 2834 "../src/main.vala"
		return result;
#line 33177 "main.c"
	}
#line 2837 "../src/main.vala"
	if (g_str_has_prefix (expression, "'")) {
#line 2837 "../src/main.vala"
		_tmp3_ = g_str_has_suffix (expression, "'");
#line 33183 "main.c"
	} else {
#line 2837 "../src/main.vala"
		_tmp3_ = FALSE;
#line 33187 "main.c"
	}
#line 2837 "../src/main.vala"
	single_quoted = _tmp3_;
#line 2838 "../src/main.vala"
	if (g_str_has_prefix (expression, "\"")) {
#line 2838 "../src/main.vala"
		_tmp4_ = g_str_has_suffix (expression, "\"");
#line 33195 "main.c"
	} else {
#line 2838 "../src/main.vala"
		_tmp4_ = FALSE;
#line 33199 "main.c"
	}
#line 2838 "../src/main.vala"
	double_quoted = _tmp4_;
#line 2839 "../src/main.vala"
	if (!single_quoted) {
#line 2839 "../src/main.vala"
		_tmp5_ = !double_quoted;
#line 33207 "main.c"
	} else {
#line 2839 "../src/main.vala"
		_tmp5_ = FALSE;
#line 33211 "main.c"
	}
#line 2839 "../src/main.vala"
	if (_tmp5_) {
#line 33215 "main.c"
		gchar* _tmp6_;
#line 2840 "../src/main.vala"
		_tmp6_ = g_strdup (expression);
#line 2840 "../src/main.vala"
		result = _tmp6_;
#line 2840 "../src/main.vala"
		return result;
#line 33223 "main.c"
	}
#line 2843 "../src/main.vala"
	_tmp7_ = strlen (expression);
#line 2843 "../src/main.vala"
	_tmp8_ = _tmp7_;
#line 2843 "../src/main.vala"
	_tmp9_ = string_substring (expression, (glong) 1, (glong) (_tmp8_ - 2));
#line 2843 "../src/main.vala"
	value = _tmp9_;
#line 2844 "../src/main.vala"
	if (single_quoted) {
#line 33235 "main.c"
		const gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
#line 2845 "../src/main.vala"
		_tmp10_ = value;
#line 2845 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_escape_vala_string (_tmp10_);
#line 2845 "../src/main.vala"
		_tmp12_ = _tmp11_;
#line 2845 "../src/main.vala"
		_tmp13_ = g_strdup_printf ("\"%s\"", _tmp12_);
#line 2845 "../src/main.vala"
		_tmp14_ = _tmp13_;
#line 2845 "../src/main.vala"
		_g_free0 (_tmp12_);
#line 2845 "../src/main.vala"
		result = _tmp14_;
#line 2845 "../src/main.vala"
		_g_free0 (value);
#line 2845 "../src/main.vala"
		return result;
#line 33259 "main.c"
	}
#line 2848 "../src/main.vala"
	_tmp15_ = value;
#line 2848 "../src/main.vala"
	_tmp16_ = php_to_vala_transpiler_decode_php_double_quoted_string (_tmp15_);
#line 2848 "../src/main.vala"
	_tmp17_ = _tmp16_;
#line 2848 "../src/main.vala"
	_tmp18_ = php_to_vala_transpiler_escape_vala_string (_tmp17_);
#line 2848 "../src/main.vala"
	_tmp19_ = _tmp18_;
#line 2848 "../src/main.vala"
	_tmp20_ = g_strdup_printf ("\"%s\"", _tmp19_);
#line 2848 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 2848 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 2848 "../src/main.vala"
	_g_free0 (_tmp17_);
#line 2848 "../src/main.vala"
	result = _tmp21_;
#line 2848 "../src/main.vala"
	_g_free0 (value);
#line 2848 "../src/main.vala"
	return result;
#line 33285 "main.c"
}

static gchar*
php_to_vala_transpiler_decode_php_double_quoted_string (const gchar* value)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* result;
#line 2851 "../src/main.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 2852 "../src/main.vala"
	_tmp0_ = string_replace (value, "\\r", "\r");
#line 2852 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 2852 "../src/main.vala"
	_tmp2_ = string_replace (_tmp1_, "\\n", "\n");
#line 2852 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 2852 "../src/main.vala"
	_tmp4_ = string_replace (_tmp3_, "\\t", "\t");
#line 2852 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 2852 "../src/main.vala"
	_tmp6_ = string_replace (_tmp5_, "\\\"", "\"");
#line 2852 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 2852 "../src/main.vala"
	_tmp8_ = string_replace (_tmp7_, "\\\\", "\\");
#line 2852 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 2852 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 2852 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 2852 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 2852 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 2852 "../src/main.vala"
	result = _tmp9_;
#line 2852 "../src/main.vala"
	return result;
#line 33336 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_known_function_names (PhpToValaTranspiler* self,
                                                     const gchar* expression,
                                                     gint php_line_number,
                                                     GError** error)
{
	gchar* special = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	GMatchInfo* match = NULL;
	GRegex* _tmp108_;
	GMatchInfo* _tmp109_ = NULL;
	gboolean _tmp110_;
	gchar* _tmp118_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2860 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2860 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2861 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_convert_special_function_expression (self, expression, php_line_number, &_inner_error0_);
#line 2861 "../src/main.vala"
	special = _tmp0_;
#line 2861 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2861 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2861 "../src/main.vala"
		return NULL;
#line 33369 "main.c"
	}
#line 2862 "../src/main.vala"
	_tmp1_ = special;
#line 2862 "../src/main.vala"
	if (_tmp1_ != NULL) {
#line 2863 "../src/main.vala"
		result = special;
#line 2863 "../src/main.vala"
		return result;
#line 33379 "main.c"
	}
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp2_;
		GeeSet* _tmp3_;
		GeeSet* _tmp4_;
		GeeSet* _tmp5_;
		GeeIterator* _tmp6_;
		GeeIterator* _tmp7_;
#line 2866 "../src/main.vala"
		_tmp2_ = self->local_functions;
#line 2866 "../src/main.vala"
		_tmp3_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp2_);
#line 2866 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 2866 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 2866 "../src/main.vala"
		_tmp6_ = gee_iterable_iterator ((GeeIterable*) _tmp5_);
#line 2866 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 2866 "../src/main.vala"
		_g_object_unref0 (_tmp5_);
#line 2866 "../src/main.vala"
		_function_name_it = _tmp7_;
#line 2866 "../src/main.vala"
		while (TRUE) {
#line 33407 "main.c"
			GeeIterator* _tmp8_;
			gchar* function_name = NULL;
			GeeIterator* _tmp9_;
			gpointer _tmp10_;
			gchar* php_prefix = NULL;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			gboolean _tmp13_ = FALSE;
			gboolean _tmp14_ = FALSE;
			const gchar* _tmp15_;
#line 2866 "../src/main.vala"
			_tmp8_ = _function_name_it;
#line 2866 "../src/main.vala"
			if (!gee_iterator_next (_tmp8_)) {
#line 2866 "../src/main.vala"
				break;
#line 33424 "main.c"
			}
#line 2866 "../src/main.vala"
			_tmp9_ = _function_name_it;
#line 2866 "../src/main.vala"
			_tmp10_ = gee_iterator_get (_tmp9_);
#line 2866 "../src/main.vala"
			function_name = (gchar*) _tmp10_;
#line 2867 "../src/main.vala"
			_tmp11_ = function_name;
#line 2867 "../src/main.vala"
			_tmp12_ = g_strconcat (_tmp11_, "(", NULL);
#line 2867 "../src/main.vala"
			php_prefix = _tmp12_;
#line 2868 "../src/main.vala"
			_tmp15_ = php_prefix;
#line 2868 "../src/main.vala"
			if (g_str_has_prefix (expression, _tmp15_)) {
#line 2868 "../src/main.vala"
				_tmp14_ = g_str_has_suffix (expression, ")");
#line 33444 "main.c"
			} else {
#line 2868 "../src/main.vala"
				_tmp14_ = FALSE;
#line 33448 "main.c"
			}
#line 2868 "../src/main.vala"
			if (_tmp14_) {
#line 33452 "main.c"
				const gchar* _tmp16_;
				gint _tmp17_;
				gint _tmp18_;
				gint _tmp19_;
				gint _tmp20_;
#line 2868 "../src/main.vala"
				_tmp16_ = php_prefix;
#line 2868 "../src/main.vala"
				_tmp17_ = strlen (_tmp16_);
#line 2868 "../src/main.vala"
				_tmp18_ = _tmp17_;
#line 2868 "../src/main.vala"
				_tmp19_ = strlen (expression);
#line 2868 "../src/main.vala"
				_tmp20_ = _tmp19_;
#line 2868 "../src/main.vala"
				_tmp13_ = php_to_vala_transpiler_find_matching_paren (expression, _tmp18_ - 1) == (_tmp20_ - 1);
#line 33470 "main.c"
			} else {
#line 2868 "../src/main.vala"
				_tmp13_ = FALSE;
#line 33474 "main.c"
			}
#line 2868 "../src/main.vala"
			if (_tmp13_) {
#line 33478 "main.c"
				gchar* inner_args = NULL;
				const gchar* _tmp21_;
				gint _tmp22_;
				gint _tmp23_;
				gint _tmp24_;
				gint _tmp25_;
				const gchar* _tmp26_;
				gint _tmp27_;
				gint _tmp28_;
				gchar* _tmp29_;
				LocalFunction* local_function = NULL;
				GeeHashMap* _tmp30_;
				const gchar* _tmp31_;
				gpointer _tmp32_;
				gboolean _tmp33_ = FALSE;
				gboolean _tmp34_ = FALSE;
				gboolean _tmp35_ = FALSE;
				gboolean _tmp45_ = FALSE;
				gboolean _tmp46_ = FALSE;
				gboolean _tmp47_ = FALSE;
				gchar* _tmp57_ = NULL;
				const gchar* _tmp58_;
				gchar* _tmp59_;
				const gchar* _tmp60_;
				gchar* _tmp61_;
				gchar* _tmp62_;
				gchar* _tmp63_;
				gchar* _tmp64_;
				gchar* _tmp65_;
				gchar* _tmp66_;
#line 2869 "../src/main.vala"
				_tmp21_ = php_prefix;
#line 2869 "../src/main.vala"
				_tmp22_ = strlen (_tmp21_);
#line 2869 "../src/main.vala"
				_tmp23_ = _tmp22_;
#line 2869 "../src/main.vala"
				_tmp24_ = strlen (expression);
#line 2869 "../src/main.vala"
				_tmp25_ = _tmp24_;
#line 2869 "../src/main.vala"
				_tmp26_ = php_prefix;
#line 2869 "../src/main.vala"
				_tmp27_ = strlen (_tmp26_);
#line 2869 "../src/main.vala"
				_tmp28_ = _tmp27_;
#line 2869 "../src/main.vala"
				_tmp29_ = string_substring (expression, (glong) _tmp23_, (glong) ((_tmp25_ - _tmp28_) - 1));
#line 2869 "../src/main.vala"
				inner_args = _tmp29_;
#line 2870 "../src/main.vala"
				_tmp30_ = self->local_functions;
#line 2870 "../src/main.vala"
				_tmp31_ = function_name;
#line 2870 "../src/main.vala"
				_tmp32_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp30_, _tmp31_);
#line 2870 "../src/main.vala"
				local_function = (LocalFunction*) _tmp32_;
#line 2871 "../src/main.vala"
				if (self->priv->optimize_file_func_vars) {
#line 2872 "../src/main.vala"
					_tmp35_ = self->transpiling_local_function;
#line 33541 "main.c"
				} else {
#line 2871 "../src/main.vala"
					_tmp35_ = FALSE;
#line 33545 "main.c"
				}
#line 2871 "../src/main.vala"
				if (_tmp35_) {
#line 33549 "main.c"
					LocalFunction* _tmp36_;
#line 2873 "../src/main.vala"
					_tmp36_ = local_function;
#line 2873 "../src/main.vala"
					_tmp34_ = _tmp36_ != NULL;
#line 33555 "main.c"
				} else {
#line 2871 "../src/main.vala"
					_tmp34_ = FALSE;
#line 33559 "main.c"
				}
#line 2871 "../src/main.vala"
				if (_tmp34_) {
#line 33563 "main.c"
					PhpToValaFileFuncVarsOptimizer* _tmp37_;
					LocalFunction* _tmp38_;
#line 2874 "../src/main.vala"
					_tmp37_ = self->priv->file_func_vars_optimizer;
#line 2874 "../src/main.vala"
					_tmp38_ = local_function;
#line 2874 "../src/main.vala"
					_tmp33_ = php_to_vala_file_func_vars_optimizer_can_emit (_tmp37_, _tmp38_);
#line 33572 "main.c"
				} else {
#line 2871 "../src/main.vala"
					_tmp33_ = FALSE;
#line 33576 "main.c"
				}
#line 2871 "../src/main.vala"
				if (_tmp33_) {
#line 33580 "main.c"
					gchar* _tmp39_ = NULL;
					PhpToValaFileFuncVarsOptimizer* _tmp40_;
					LocalFunction* _tmp41_;
					const gchar* _tmp42_;
					gchar* _tmp43_;
					gchar* _tmp44_;
#line 2875 "../src/main.vala"
					_tmp40_ = self->priv->file_func_vars_optimizer;
#line 2875 "../src/main.vala"
					_tmp41_ = local_function;
#line 2875 "../src/main.vala"
					_tmp42_ = inner_args;
#line 2875 "../src/main.vala"
					_tmp43_ = php_to_vala_file_func_vars_optimizer_local_function_call_as_native_value (_tmp40_, _tmp41_, _tmp42_, php_line_number, &_inner_error0_);
#line 2875 "../src/main.vala"
					_tmp39_ = _tmp43_;
#line 2875 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2875 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2875 "../src/main.vala"
						_g_object_unref0 (local_function);
#line 2875 "../src/main.vala"
						_g_free0 (inner_args);
#line 2875 "../src/main.vala"
						_g_free0 (php_prefix);
#line 2875 "../src/main.vala"
						_g_free0 (function_name);
#line 2875 "../src/main.vala"
						_g_object_unref0 (_function_name_it);
#line 2875 "../src/main.vala"
						_g_free0 (special);
#line 2875 "../src/main.vala"
						return NULL;
#line 33615 "main.c"
					}
#line 2875 "../src/main.vala"
					_tmp44_ = _tmp39_;
#line 2875 "../src/main.vala"
					_tmp39_ = NULL;
#line 2875 "../src/main.vala"
					result = _tmp44_;
#line 2875 "../src/main.vala"
					_g_free0 (_tmp39_);
#line 2875 "../src/main.vala"
					_g_object_unref0 (local_function);
#line 2875 "../src/main.vala"
					_g_free0 (inner_args);
#line 2875 "../src/main.vala"
					_g_free0 (php_prefix);
#line 2875 "../src/main.vala"
					_g_free0 (function_name);
#line 2875 "../src/main.vala"
					_g_object_unref0 (_function_name_it);
#line 2875 "../src/main.vala"
					_g_free0 (special);
#line 2875 "../src/main.vala"
					return result;
#line 33639 "main.c"
				}
#line 2877 "../src/main.vala"
				if (self->priv->optimize_local_vars) {
#line 2878 "../src/main.vala"
					_tmp47_ = self->transpiling_local_function;
#line 33645 "main.c"
				} else {
#line 2877 "../src/main.vala"
					_tmp47_ = FALSE;
#line 33649 "main.c"
				}
#line 2877 "../src/main.vala"
				if (_tmp47_) {
#line 33653 "main.c"
					LocalFunction* _tmp48_;
#line 2879 "../src/main.vala"
					_tmp48_ = local_function;
#line 2879 "../src/main.vala"
					_tmp46_ = _tmp48_ != NULL;
#line 33659 "main.c"
				} else {
#line 2877 "../src/main.vala"
					_tmp46_ = FALSE;
#line 33663 "main.c"
				}
#line 2877 "../src/main.vala"
				if (_tmp46_) {
#line 33667 "main.c"
					PhpToValaLocalVarsOptimizer* _tmp49_;
					LocalFunction* _tmp50_;
#line 2880 "../src/main.vala"
					_tmp49_ = self->priv->local_vars_optimizer;
#line 2880 "../src/main.vala"
					_tmp50_ = local_function;
#line 2880 "../src/main.vala"
					_tmp45_ = php_to_vala_local_vars_optimizer_can_emit (_tmp49_, _tmp50_);
#line 33676 "main.c"
				} else {
#line 2877 "../src/main.vala"
					_tmp45_ = FALSE;
#line 33680 "main.c"
				}
#line 2877 "../src/main.vala"
				if (_tmp45_) {
#line 33684 "main.c"
					gchar* _tmp51_ = NULL;
					PhpToValaLocalVarsOptimizer* _tmp52_;
					LocalFunction* _tmp53_;
					const gchar* _tmp54_;
					gchar* _tmp55_;
					gchar* _tmp56_;
#line 2881 "../src/main.vala"
					_tmp52_ = self->priv->local_vars_optimizer;
#line 2881 "../src/main.vala"
					_tmp53_ = local_function;
#line 2881 "../src/main.vala"
					_tmp54_ = inner_args;
#line 2881 "../src/main.vala"
					_tmp55_ = php_to_vala_local_vars_optimizer_local_function_call_as_native_value (_tmp52_, _tmp53_, _tmp54_, php_line_number, &_inner_error0_);
#line 2881 "../src/main.vala"
					_tmp51_ = _tmp55_;
#line 2881 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2881 "../src/main.vala"
						g_propagate_error (error, _inner_error0_);
#line 2881 "../src/main.vala"
						_g_object_unref0 (local_function);
#line 2881 "../src/main.vala"
						_g_free0 (inner_args);
#line 2881 "../src/main.vala"
						_g_free0 (php_prefix);
#line 2881 "../src/main.vala"
						_g_free0 (function_name);
#line 2881 "../src/main.vala"
						_g_object_unref0 (_function_name_it);
#line 2881 "../src/main.vala"
						_g_free0 (special);
#line 2881 "../src/main.vala"
						return NULL;
#line 33719 "main.c"
					}
#line 2881 "../src/main.vala"
					_tmp56_ = _tmp51_;
#line 2881 "../src/main.vala"
					_tmp51_ = NULL;
#line 2881 "../src/main.vala"
					result = _tmp56_;
#line 2881 "../src/main.vala"
					_g_free0 (_tmp51_);
#line 2881 "../src/main.vala"
					_g_object_unref0 (local_function);
#line 2881 "../src/main.vala"
					_g_free0 (inner_args);
#line 2881 "../src/main.vala"
					_g_free0 (php_prefix);
#line 2881 "../src/main.vala"
					_g_free0 (function_name);
#line 2881 "../src/main.vala"
					_g_object_unref0 (_function_name_it);
#line 2881 "../src/main.vala"
					_g_free0 (special);
#line 2881 "../src/main.vala"
					return result;
#line 33743 "main.c"
				}
#line 2883 "../src/main.vala"
				_tmp58_ = inner_args;
#line 2883 "../src/main.vala"
				_tmp59_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp58_, php_line_number, &_inner_error0_);
#line 2883 "../src/main.vala"
				_tmp57_ = _tmp59_;
#line 2883 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2883 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2883 "../src/main.vala"
					_g_object_unref0 (local_function);
#line 2883 "../src/main.vala"
					_g_free0 (inner_args);
#line 2883 "../src/main.vala"
					_g_free0 (php_prefix);
#line 2883 "../src/main.vala"
					_g_free0 (function_name);
#line 2883 "../src/main.vala"
					_g_object_unref0 (_function_name_it);
#line 2883 "../src/main.vala"
					_g_free0 (special);
#line 2883 "../src/main.vala"
					return NULL;
#line 33769 "main.c"
				}
#line 2883 "../src/main.vala"
				_tmp60_ = function_name;
#line 2883 "../src/main.vala"
				_tmp61_ = g_strconcat (_tmp60_, "(", NULL);
#line 2883 "../src/main.vala"
				_tmp62_ = _tmp61_;
#line 2883 "../src/main.vala"
				_tmp63_ = g_strconcat (_tmp62_, _tmp57_, NULL);
#line 2883 "../src/main.vala"
				_tmp64_ = _tmp63_;
#line 2883 "../src/main.vala"
				_tmp65_ = g_strconcat (_tmp64_, ")", NULL);
#line 2883 "../src/main.vala"
				_tmp66_ = _tmp65_;
#line 2883 "../src/main.vala"
				_g_free0 (_tmp64_);
#line 2883 "../src/main.vala"
				_g_free0 (_tmp62_);
#line 2883 "../src/main.vala"
				result = _tmp66_;
#line 2883 "../src/main.vala"
				_g_free0 (_tmp57_);
#line 2883 "../src/main.vala"
				_g_object_unref0 (local_function);
#line 2883 "../src/main.vala"
				_g_free0 (inner_args);
#line 2883 "../src/main.vala"
				_g_free0 (php_prefix);
#line 2883 "../src/main.vala"
				_g_free0 (function_name);
#line 2883 "../src/main.vala"
				_g_object_unref0 (_function_name_it);
#line 2883 "../src/main.vala"
				_g_free0 (special);
#line 2883 "../src/main.vala"
				return result;
#line 33807 "main.c"
			}
#line 2866 "../src/main.vala"
			_g_free0 (php_prefix);
#line 2866 "../src/main.vala"
			_g_free0 (function_name);
#line 33813 "main.c"
		}
#line 2866 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 33817 "main.c"
	}
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp67_;
		GeeSet* _tmp68_;
		GeeSet* _tmp69_;
		GeeSet* _tmp70_;
		GeeIterator* _tmp71_;
		GeeIterator* _tmp72_;
#line 2887 "../src/main.vala"
		_tmp67_ = self->priv->function_bindings;
#line 2887 "../src/main.vala"
		_tmp68_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp67_);
#line 2887 "../src/main.vala"
		_tmp69_ = _tmp68_;
#line 2887 "../src/main.vala"
		_tmp70_ = _tmp69_;
#line 2887 "../src/main.vala"
		_tmp71_ = gee_iterable_iterator ((GeeIterable*) _tmp70_);
#line 2887 "../src/main.vala"
		_tmp72_ = _tmp71_;
#line 2887 "../src/main.vala"
		_g_object_unref0 (_tmp70_);
#line 2887 "../src/main.vala"
		_function_name_it = _tmp72_;
#line 2887 "../src/main.vala"
		while (TRUE) {
#line 33845 "main.c"
			GeeIterator* _tmp73_;
			gchar* function_name = NULL;
			GeeIterator* _tmp74_;
			gpointer _tmp75_;
			gchar* php_prefix = NULL;
			const gchar* _tmp76_;
			gchar* _tmp77_;
			gboolean _tmp78_ = FALSE;
			gboolean _tmp79_ = FALSE;
			const gchar* _tmp80_;
#line 2887 "../src/main.vala"
			_tmp73_ = _function_name_it;
#line 2887 "../src/main.vala"
			if (!gee_iterator_next (_tmp73_)) {
#line 2887 "../src/main.vala"
				break;
#line 33862 "main.c"
			}
#line 2887 "../src/main.vala"
			_tmp74_ = _function_name_it;
#line 2887 "../src/main.vala"
			_tmp75_ = gee_iterator_get (_tmp74_);
#line 2887 "../src/main.vala"
			function_name = (gchar*) _tmp75_;
#line 2888 "../src/main.vala"
			_tmp76_ = function_name;
#line 2888 "../src/main.vala"
			_tmp77_ = g_strconcat (_tmp76_, "(", NULL);
#line 2888 "../src/main.vala"
			php_prefix = _tmp77_;
#line 2889 "../src/main.vala"
			_tmp80_ = php_prefix;
#line 2889 "../src/main.vala"
			if (g_str_has_prefix (expression, _tmp80_)) {
#line 2889 "../src/main.vala"
				_tmp79_ = g_str_has_suffix (expression, ")");
#line 33882 "main.c"
			} else {
#line 2889 "../src/main.vala"
				_tmp79_ = FALSE;
#line 33886 "main.c"
			}
#line 2889 "../src/main.vala"
			if (_tmp79_) {
#line 33890 "main.c"
				const gchar* _tmp81_;
				gint _tmp82_;
				gint _tmp83_;
				gint _tmp84_;
				gint _tmp85_;
#line 2889 "../src/main.vala"
				_tmp81_ = php_prefix;
#line 2889 "../src/main.vala"
				_tmp82_ = strlen (_tmp81_);
#line 2889 "../src/main.vala"
				_tmp83_ = _tmp82_;
#line 2889 "../src/main.vala"
				_tmp84_ = strlen (expression);
#line 2889 "../src/main.vala"
				_tmp85_ = _tmp84_;
#line 2889 "../src/main.vala"
				_tmp78_ = php_to_vala_transpiler_find_matching_paren (expression, _tmp83_ - 1) == (_tmp85_ - 1);
#line 33908 "main.c"
			} else {
#line 2889 "../src/main.vala"
				_tmp78_ = FALSE;
#line 33912 "main.c"
			}
#line 2889 "../src/main.vala"
			if (_tmp78_) {
#line 33916 "main.c"
				gchar* inner_args = NULL;
				const gchar* _tmp86_;
				gint _tmp87_;
				gint _tmp88_;
				gint _tmp89_;
				gint _tmp90_;
				const gchar* _tmp91_;
				gint _tmp92_;
				gint _tmp93_;
				gchar* _tmp94_;
				gchar* _tmp95_ = NULL;
				const gchar* _tmp96_;
				gchar* _tmp97_;
				gchar* _tmp98_ = NULL;
				const gchar* _tmp99_;
				const gchar* _tmp100_;
				gchar* _tmp101_;
				gchar* _tmp102_;
				gchar* _tmp103_;
				gchar* _tmp104_;
				gchar* _tmp105_;
				gchar* _tmp106_;
				gchar* _tmp107_;
#line 2890 "../src/main.vala"
				_tmp86_ = php_prefix;
#line 2890 "../src/main.vala"
				_tmp87_ = strlen (_tmp86_);
#line 2890 "../src/main.vala"
				_tmp88_ = _tmp87_;
#line 2890 "../src/main.vala"
				_tmp89_ = strlen (expression);
#line 2890 "../src/main.vala"
				_tmp90_ = _tmp89_;
#line 2890 "../src/main.vala"
				_tmp91_ = php_prefix;
#line 2890 "../src/main.vala"
				_tmp92_ = strlen (_tmp91_);
#line 2890 "../src/main.vala"
				_tmp93_ = _tmp92_;
#line 2890 "../src/main.vala"
				_tmp94_ = string_substring (expression, (glong) _tmp88_, (glong) ((_tmp90_ - _tmp93_) - 1));
#line 2890 "../src/main.vala"
				inner_args = _tmp94_;
#line 2891 "../src/main.vala"
				_tmp96_ = function_name;
#line 2891 "../src/main.vala"
				_tmp97_ = php_to_vala_transpiler_map_php_function_name (self, _tmp96_, php_line_number, &_inner_error0_);
#line 2891 "../src/main.vala"
				_tmp95_ = _tmp97_;
#line 2891 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2891 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2891 "../src/main.vala"
					_g_free0 (inner_args);
#line 2891 "../src/main.vala"
					_g_free0 (php_prefix);
#line 2891 "../src/main.vala"
					_g_free0 (function_name);
#line 2891 "../src/main.vala"
					_g_object_unref0 (_function_name_it);
#line 2891 "../src/main.vala"
					_g_free0 (special);
#line 2891 "../src/main.vala"
					return NULL;
#line 33982 "main.c"
				}
#line 2891 "../src/main.vala"
				_tmp99_ = function_name;
#line 2891 "../src/main.vala"
				_tmp100_ = inner_args;
#line 2891 "../src/main.vala"
				_tmp101_ = php_to_vala_transpiler_convert_function_args (self, _tmp99_, _tmp100_, php_line_number, &_inner_error0_);
#line 2891 "../src/main.vala"
				_tmp98_ = _tmp101_;
#line 2891 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2891 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 2891 "../src/main.vala"
					_g_free0 (_tmp95_);
#line 2891 "../src/main.vala"
					_g_free0 (inner_args);
#line 2891 "../src/main.vala"
					_g_free0 (php_prefix);
#line 2891 "../src/main.vala"
					_g_free0 (function_name);
#line 2891 "../src/main.vala"
					_g_object_unref0 (_function_name_it);
#line 2891 "../src/main.vala"
					_g_free0 (special);
#line 2891 "../src/main.vala"
					return NULL;
#line 34010 "main.c"
				}
#line 2891 "../src/main.vala"
				_tmp102_ = g_strconcat (_tmp95_, "(", NULL);
#line 2891 "../src/main.vala"
				_tmp103_ = _tmp102_;
#line 2891 "../src/main.vala"
				_tmp104_ = g_strconcat (_tmp103_, _tmp98_, NULL);
#line 2891 "../src/main.vala"
				_tmp105_ = _tmp104_;
#line 2891 "../src/main.vala"
				_tmp106_ = g_strconcat (_tmp105_, ")", NULL);
#line 2891 "../src/main.vala"
				_tmp107_ = _tmp106_;
#line 2891 "../src/main.vala"
				_g_free0 (_tmp105_);
#line 2891 "../src/main.vala"
				_g_free0 (_tmp103_);
#line 2891 "../src/main.vala"
				result = _tmp107_;
#line 2891 "../src/main.vala"
				_g_free0 (_tmp98_);
#line 2891 "../src/main.vala"
				_g_free0 (_tmp95_);
#line 2891 "../src/main.vala"
				_g_free0 (inner_args);
#line 2891 "../src/main.vala"
				_g_free0 (php_prefix);
#line 2891 "../src/main.vala"
				_g_free0 (function_name);
#line 2891 "../src/main.vala"
				_g_object_unref0 (_function_name_it);
#line 2891 "../src/main.vala"
				_g_free0 (special);
#line 2891 "../src/main.vala"
				return result;
#line 34046 "main.c"
			}
#line 2887 "../src/main.vala"
			_g_free0 (php_prefix);
#line 2887 "../src/main.vala"
			_g_free0 (function_name);
#line 34052 "main.c"
		}
#line 2887 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 34056 "main.c"
	}
#line 2896 "../src/main.vala"
	_tmp108_ = self->priv->function_expression_regex;
#line 2896 "../src/main.vala"
	_tmp110_ = g_regex_match (_tmp108_, expression, 0, &_tmp109_);
#line 2896 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2896 "../src/main.vala"
	match = _tmp109_;
#line 2896 "../src/main.vala"
	if (_tmp110_) {
#line 34068 "main.c"
		gchar* function_name = NULL;
		GMatchInfo* _tmp111_;
		gchar* _tmp112_;
		gint open_index = 0;
		gboolean _tmp113_ = FALSE;
#line 2897 "../src/main.vala"
		_tmp111_ = match;
#line 2897 "../src/main.vala"
		_tmp112_ = g_match_info_fetch (_tmp111_, 1);
#line 2897 "../src/main.vala"
		function_name = _tmp112_;
#line 2898 "../src/main.vala"
		open_index = string_index_of (expression, "(", 0);
#line 2899 "../src/main.vala"
		if (open_index >= 0) {
#line 34084 "main.c"
			gint _tmp114_;
			gint _tmp115_;
#line 2899 "../src/main.vala"
			_tmp114_ = strlen (expression);
#line 2899 "../src/main.vala"
			_tmp115_ = _tmp114_;
#line 2899 "../src/main.vala"
			_tmp113_ = php_to_vala_transpiler_find_matching_paren (expression, open_index) == (_tmp115_ - 1);
#line 34093 "main.c"
		} else {
#line 2899 "../src/main.vala"
			_tmp113_ = FALSE;
#line 34097 "main.c"
		}
#line 2899 "../src/main.vala"
		if (_tmp113_) {
#line 34101 "main.c"
			const gchar* _tmp116_;
			GError* _tmp117_;
#line 2900 "../src/main.vala"
			_tmp116_ = function_name;
#line 2900 "../src/main.vala"
			_tmp117_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, _tmp116_);
#line 2900 "../src/main.vala"
			_inner_error0_ = _tmp117_;
#line 2900 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2900 "../src/main.vala"
			_g_free0 (function_name);
#line 2900 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2900 "../src/main.vala"
			_g_free0 (special);
#line 2900 "../src/main.vala"
			return NULL;
#line 34120 "main.c"
		}
#line 2896 "../src/main.vala"
		_g_free0 (function_name);
#line 34124 "main.c"
	}
#line 2904 "../src/main.vala"
	_tmp118_ = g_strdup (expression);
#line 2904 "../src/main.vala"
	result = _tmp118_;
#line 2904 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2904 "../src/main.vala"
	_g_free0 (special);
#line 2904 "../src/main.vala"
	return result;
#line 34136 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_special_function_expression (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            gint php_line_number,
                                                            GError** error)
{
	GMatchInfo* match = NULL;
	GRegex* _tmp0_;
	GMatchInfo* _tmp1_ = NULL;
	gboolean _tmp2_;
	gchar* function_name = NULL;
	GMatchInfo* _tmp3_;
	gchar* _tmp4_;
	gchar* args = NULL;
	GMatchInfo* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp20_;
	const gchar* _tmp30_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2907 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2907 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 2909 "../src/main.vala"
	_tmp0_ = self->priv->function_expression_regex;
#line 2909 "../src/main.vala"
	_tmp2_ = g_regex_match (_tmp0_, expression, 0, &_tmp1_);
#line 2909 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2909 "../src/main.vala"
	match = _tmp1_;
#line 2909 "../src/main.vala"
	if (!_tmp2_) {
#line 2910 "../src/main.vala"
		result = NULL;
#line 2910 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2910 "../src/main.vala"
		return result;
#line 34183 "main.c"
	}
#line 2913 "../src/main.vala"
	_tmp3_ = match;
#line 2913 "../src/main.vala"
	_tmp4_ = g_match_info_fetch (_tmp3_, 1);
#line 2913 "../src/main.vala"
	function_name = _tmp4_;
#line 2914 "../src/main.vala"
	_tmp5_ = match;
#line 2914 "../src/main.vala"
	_tmp6_ = g_match_info_fetch (_tmp5_, 2);
#line 2914 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 2914 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 2914 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 2914 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 2914 "../src/main.vala"
	args = _tmp9_;
#line 2915 "../src/main.vala"
	_tmp10_ = function_name;
#line 2915 "../src/main.vala"
	if (g_strcmp0 (_tmp10_, "isset") == 0) {
#line 34209 "main.c"
		gchar* converted_args = NULL;
		const gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_ = NULL;
		gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
#line 2916 "../src/main.vala"
		_tmp11_ = args;
#line 2916 "../src/main.vala"
		_tmp12_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp11_, php_line_number, &_inner_error0_);
#line 2916 "../src/main.vala"
		converted_args = _tmp12_;
#line 2916 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2916 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2916 "../src/main.vala"
			_g_free0 (args);
#line 2916 "../src/main.vala"
			_g_free0 (function_name);
#line 2916 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2916 "../src/main.vala"
			return NULL;
#line 34238 "main.c"
		}
#line 2918 "../src/main.vala"
		_tmp14_ = php_to_vala_transpiler_map_php_function_name (self, "isset", php_line_number, &_inner_error0_);
#line 2918 "../src/main.vala"
		_tmp13_ = _tmp14_;
#line 2918 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2918 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2918 "../src/main.vala"
			_g_free0 (converted_args);
#line 2918 "../src/main.vala"
			_g_free0 (args);
#line 2918 "../src/main.vala"
			_g_free0 (function_name);
#line 2918 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2918 "../src/main.vala"
			return NULL;
#line 34258 "main.c"
		}
#line 2917 "../src/main.vala"
		_tmp15_ = converted_args;
#line 2917 "../src/main.vala"
		_tmp16_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 2917 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 2917 "../src/main.vala"
		_tmp18_ = g_strdup_printf ("%s(%s%s)", _tmp13_, _tmp15_, _tmp17_);
#line 2917 "../src/main.vala"
		_tmp19_ = _tmp18_;
#line 2917 "../src/main.vala"
		_g_free0 (_tmp17_);
#line 2917 "../src/main.vala"
		result = _tmp19_;
#line 2917 "../src/main.vala"
		_g_free0 (_tmp13_);
#line 2917 "../src/main.vala"
		_g_free0 (converted_args);
#line 2917 "../src/main.vala"
		_g_free0 (args);
#line 2917 "../src/main.vala"
		_g_free0 (function_name);
#line 2917 "../src/main.vala"
		_g_match_info_unref0 (match);
#line 2917 "../src/main.vala"
		return result;
#line 34286 "main.c"
	}
#line 2923 "../src/main.vala"
	_tmp20_ = function_name;
#line 2923 "../src/main.vala"
	if (g_strcmp0 (_tmp20_, "count") == 0) {
#line 34292 "main.c"
		gchar* converted_args = NULL;
		const gchar* _tmp21_;
		gchar* _tmp22_;
		gchar* type_name = NULL;
		const gchar* _tmp23_;
		gchar* _tmp24_;
		gboolean _tmp25_ = FALSE;
		const gchar* _tmp26_;
#line 2924 "../src/main.vala"
		_tmp21_ = args;
#line 2924 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp21_, php_line_number, &_inner_error0_);
#line 2924 "../src/main.vala"
		converted_args = _tmp22_;
#line 2924 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2924 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2924 "../src/main.vala"
			_g_free0 (args);
#line 2924 "../src/main.vala"
			_g_free0 (function_name);
#line 2924 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2924 "../src/main.vala"
			return NULL;
#line 34319 "main.c"
		}
#line 2925 "../src/main.vala"
		_tmp23_ = converted_args;
#line 2925 "../src/main.vala"
		_tmp24_ = php_to_vala_transpiler_infer_expression_type (self, _tmp23_);
#line 2925 "../src/main.vala"
		type_name = _tmp24_;
#line 2926 "../src/main.vala"
		_tmp26_ = type_name;
#line 2926 "../src/main.vala"
		if (g_str_has_prefix (_tmp26_, "Gee.ArrayList<")) {
#line 2926 "../src/main.vala"
			_tmp25_ = TRUE;
#line 34333 "main.c"
		} else {
			const gchar* _tmp27_;
#line 2926 "../src/main.vala"
			_tmp27_ = type_name;
#line 2926 "../src/main.vala"
			_tmp25_ = g_str_has_prefix (_tmp27_, "Gee.HashMap<");
#line 34340 "main.c"
		}
#line 2926 "../src/main.vala"
		if (_tmp25_) {
#line 34344 "main.c"
			const gchar* _tmp28_;
			gchar* _tmp29_;
#line 2927 "../src/main.vala"
			_tmp28_ = converted_args;
#line 2927 "../src/main.vala"
			_tmp29_ = g_strconcat (_tmp28_, ".size", NULL);
#line 2927 "../src/main.vala"
			result = _tmp29_;
#line 2927 "../src/main.vala"
			_g_free0 (type_name);
#line 2927 "../src/main.vala"
			_g_free0 (converted_args);
#line 2927 "../src/main.vala"
			_g_free0 (args);
#line 2927 "../src/main.vala"
			_g_free0 (function_name);
#line 2927 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2927 "../src/main.vala"
			return result;
#line 34365 "main.c"
		}
#line 2923 "../src/main.vala"
		_g_free0 (type_name);
#line 2923 "../src/main.vala"
		_g_free0 (converted_args);
#line 34371 "main.c"
	}
#line 2930 "../src/main.vala"
	_tmp30_ = function_name;
#line 2930 "../src/main.vala"
	if (g_strcmp0 (_tmp30_, "empty") == 0) {
#line 34377 "main.c"
		gchar* converted_args = NULL;
		const gchar* _tmp31_;
		gchar* _tmp32_;
		gchar* type_name = NULL;
		const gchar* _tmp33_;
		gchar* _tmp34_;
		const gchar* _tmp35_;
		gboolean _tmp38_ = FALSE;
		const gchar* _tmp39_;
#line 2931 "../src/main.vala"
		_tmp31_ = args;
#line 2931 "../src/main.vala"
		_tmp32_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp31_, php_line_number, &_inner_error0_);
#line 2931 "../src/main.vala"
		converted_args = _tmp32_;
#line 2931 "../src/main.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2931 "../src/main.vala"
			g_propagate_error (error, _inner_error0_);
#line 2931 "../src/main.vala"
			_g_free0 (args);
#line 2931 "../src/main.vala"
			_g_free0 (function_name);
#line 2931 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2931 "../src/main.vala"
			return NULL;
#line 34405 "main.c"
		}
#line 2932 "../src/main.vala"
		_tmp33_ = converted_args;
#line 2932 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_infer_expression_type (self, _tmp33_);
#line 2932 "../src/main.vala"
		type_name = _tmp34_;
#line 2933 "../src/main.vala"
		_tmp35_ = type_name;
#line 2933 "../src/main.vala"
		if (g_strcmp0 (_tmp35_, "string") == 0) {
#line 34417 "main.c"
			const gchar* _tmp36_;
			gchar* _tmp37_;
#line 2934 "../src/main.vala"
			_tmp36_ = converted_args;
#line 2934 "../src/main.vala"
			_tmp37_ = g_strconcat (_tmp36_, " == \"\"", NULL);
#line 2934 "../src/main.vala"
			result = _tmp37_;
#line 2934 "../src/main.vala"
			_g_free0 (type_name);
#line 2934 "../src/main.vala"
			_g_free0 (converted_args);
#line 2934 "../src/main.vala"
			_g_free0 (args);
#line 2934 "../src/main.vala"
			_g_free0 (function_name);
#line 2934 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2934 "../src/main.vala"
			return result;
#line 34438 "main.c"
		}
#line 2936 "../src/main.vala"
		_tmp39_ = type_name;
#line 2936 "../src/main.vala"
		if (g_str_has_prefix (_tmp39_, "Gee.ArrayList<")) {
#line 2936 "../src/main.vala"
			_tmp38_ = TRUE;
#line 34446 "main.c"
		} else {
			const gchar* _tmp40_;
#line 2936 "../src/main.vala"
			_tmp40_ = type_name;
#line 2936 "../src/main.vala"
			_tmp38_ = g_str_has_prefix (_tmp40_, "Gee.HashMap<");
#line 34453 "main.c"
		}
#line 2936 "../src/main.vala"
		if (_tmp38_) {
#line 34457 "main.c"
			const gchar* _tmp41_;
			gchar* _tmp42_;
#line 2937 "../src/main.vala"
			_tmp41_ = converted_args;
#line 2937 "../src/main.vala"
			_tmp42_ = g_strconcat (_tmp41_, ".size == 0", NULL);
#line 2937 "../src/main.vala"
			result = _tmp42_;
#line 2937 "../src/main.vala"
			_g_free0 (type_name);
#line 2937 "../src/main.vala"
			_g_free0 (converted_args);
#line 2937 "../src/main.vala"
			_g_free0 (args);
#line 2937 "../src/main.vala"
			_g_free0 (function_name);
#line 2937 "../src/main.vala"
			_g_match_info_unref0 (match);
#line 2937 "../src/main.vala"
			return result;
#line 34478 "main.c"
		}
#line 2930 "../src/main.vala"
		_g_free0 (type_name);
#line 2930 "../src/main.vala"
		_g_free0 (converted_args);
#line 34484 "main.c"
	}
#line 2940 "../src/main.vala"
	result = NULL;
#line 2940 "../src/main.vala"
	_g_free0 (args);
#line 2940 "../src/main.vala"
	_g_free0 (function_name);
#line 2940 "../src/main.vala"
	_g_match_info_unref0 (match);
#line 2940 "../src/main.vala"
	return result;
#line 34496 "main.c"
}

gchar*
php_to_vala_transpiler_map_php_function_name (PhpToValaTranspiler* self,
                                              const gchar* function_name,
                                              gint php_line_number,
                                              GError** error)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* _tmp4_;
	FunctionBinding* _tmp8_;
	gchar* _tmp9_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2943 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2943 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 2944 "../src/main.vala"
	_tmp0_ = self->priv->function_bindings;
#line 2944 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, function_name);
#line 2944 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 2945 "../src/main.vala"
	_tmp2_ = binding;
#line 2945 "../src/main.vala"
	if (_tmp2_ == NULL) {
#line 34528 "main.c"
		GError* _tmp3_;
#line 2946 "../src/main.vala"
		_tmp3_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, function_name);
#line 2946 "../src/main.vala"
		_inner_error0_ = _tmp3_;
#line 2946 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 2946 "../src/main.vala"
		_g_object_unref0 (binding);
#line 2946 "../src/main.vala"
		return NULL;
#line 34540 "main.c"
	}
#line 2949 "../src/main.vala"
	_tmp4_ = binding;
#line 2949 "../src/main.vala"
	if (php_to_vala_transpiler_is_embed_runtime_binding (self, _tmp4_)) {
#line 34546 "main.c"
		const gchar* _tmp5_ = NULL;
		FunctionBinding* _tmp6_;
		const gchar* _tmp7_;
#line 2950 "../src/main.vala"
		_tmp6_ = binding;
#line 2950 "../src/main.vala"
		_tmp7_ = _tmp6_->mapped_function_name;
#line 2950 "../src/main.vala"
		_tmp5_ = _tmp7_;
#line 2950 "../src/main.vala"
		if (_tmp5_ == NULL) {
#line 2950 "../src/main.vala"
			_tmp5_ = function_name;
#line 34560 "main.c"
		}
#line 2950 "../src/main.vala"
		php_to_vala_transpiler_info_missing_native_runtime_once (self, function_name, _tmp5_);
#line 34564 "main.c"
	}
#line 2952 "../src/main.vala"
	php_to_vala_transpiler_mark_function_used (self, function_name);
#line 2953 "../src/main.vala"
	_tmp8_ = binding;
#line 2953 "../src/main.vala"
	_tmp9_ = function_binding_call_name (_tmp8_, function_name);
#line 2953 "../src/main.vala"
	result = _tmp9_;
#line 2953 "../src/main.vala"
	_g_object_unref0 (binding);
#line 2953 "../src/main.vala"
	return result;
#line 34578 "main.c"
}

gchar*
php_to_vala_transpiler_map_php_runtime_function_name (PhpToValaTranspiler* self,
                                                      const gchar* php_function_name,
                                                      const gchar* runtime_function_name,
                                                      gint php_line_number,
                                                      GError** error)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* php_binding = NULL;
	GeeHashMap* _tmp6_;
	gpointer _tmp7_;
	gboolean _tmp8_ = FALSE;
	FunctionBinding* _tmp9_;
	GError* _tmp17_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 2956 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2956 "../src/main.vala"
	g_return_val_if_fail (php_function_name != NULL, NULL);
#line 2956 "../src/main.vala"
	g_return_val_if_fail (runtime_function_name != NULL, NULL);
#line 2957 "../src/main.vala"
	_tmp0_ = self->priv->function_bindings;
#line 2957 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, runtime_function_name);
#line 2957 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 2958 "../src/main.vala"
	_tmp2_ = binding;
#line 2958 "../src/main.vala"
	if (_tmp2_ != NULL) {
#line 34616 "main.c"
		FunctionBinding* _tmp3_;
		FunctionBinding* _tmp4_;
		gchar* _tmp5_;
#line 2959 "../src/main.vala"
		_tmp3_ = binding;
#line 2959 "../src/main.vala"
		if (php_to_vala_transpiler_is_embed_runtime_binding (self, _tmp3_)) {
#line 2960 "../src/main.vala"
			php_to_vala_transpiler_info_missing_native_runtime_once (self, php_function_name, runtime_function_name);
#line 34626 "main.c"
		}
#line 2962 "../src/main.vala"
		php_to_vala_transpiler_mark_function_used (self, php_function_name);
#line 2963 "../src/main.vala"
		_tmp4_ = binding;
#line 2963 "../src/main.vala"
		_tmp5_ = function_binding_call_name (_tmp4_, runtime_function_name);
#line 2963 "../src/main.vala"
		result = _tmp5_;
#line 2963 "../src/main.vala"
		_g_object_unref0 (binding);
#line 2963 "../src/main.vala"
		return result;
#line 34640 "main.c"
	}
#line 2966 "../src/main.vala"
	_tmp6_ = self->priv->function_bindings;
#line 2966 "../src/main.vala"
	_tmp7_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp6_, php_function_name);
#line 2966 "../src/main.vala"
	php_binding = (FunctionBinding*) _tmp7_;
#line 2967 "../src/main.vala"
	_tmp9_ = php_binding;
#line 2967 "../src/main.vala"
	if (_tmp9_ != NULL) {
#line 34652 "main.c"
		FunctionBinding* _tmp10_;
#line 2967 "../src/main.vala"
		_tmp10_ = php_binding;
#line 2967 "../src/main.vala"
		_tmp8_ = php_to_vala_transpiler_is_embed_runtime_binding (self, _tmp10_);
#line 34658 "main.c"
	} else {
#line 2967 "../src/main.vala"
		_tmp8_ = FALSE;
#line 34662 "main.c"
	}
#line 2967 "../src/main.vala"
	if (_tmp8_) {
#line 34666 "main.c"
		FunctionBinding* _tmp11_;
		const gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
#line 2968 "../src/main.vala"
		php_to_vala_transpiler_info_missing_native_runtime_once (self, php_function_name, runtime_function_name);
#line 2969 "../src/main.vala"
		php_to_vala_transpiler_mark_function_used (self, php_function_name);
#line 2970 "../src/main.vala"
		_tmp11_ = php_binding;
#line 2970 "../src/main.vala"
		_tmp12_ = _tmp11_->namespace_name;
#line 2970 "../src/main.vala"
		_tmp13_ = g_strconcat (_tmp12_, ".", NULL);
#line 2970 "../src/main.vala"
		_tmp14_ = _tmp13_;
#line 2970 "../src/main.vala"
		_tmp15_ = g_strconcat (_tmp14_, runtime_function_name, NULL);
#line 2970 "../src/main.vala"
		_tmp16_ = _tmp15_;
#line 2970 "../src/main.vala"
		_g_free0 (_tmp14_);
#line 2970 "../src/main.vala"
		result = _tmp16_;
#line 2970 "../src/main.vala"
		_g_object_unref0 (php_binding);
#line 2970 "../src/main.vala"
		_g_object_unref0 (binding);
#line 2970 "../src/main.vala"
		return result;
#line 34699 "main.c"
	}
#line 2973 "../src/main.vala"
	_tmp17_ = php_to_vala_transpiler_unsupported_function (self, php_line_number, php_function_name);
#line 2973 "../src/main.vala"
	_inner_error0_ = _tmp17_;
#line 2973 "../src/main.vala"
	g_propagate_error (error, _inner_error0_);
#line 2973 "../src/main.vala"
	_g_object_unref0 (php_binding);
#line 2973 "../src/main.vala"
	_g_object_unref0 (binding);
#line 2973 "../src/main.vala"
	return NULL;
#line 34713 "main.c"
}

static void
php_to_vala_transpiler_note_embed_zval_fallback (PhpToValaTranspiler* self,
                                                 const gchar* function_name,
                                                 const gchar* runtime_function_name)
{
#line 2976 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 2976 "../src/main.vala"
	g_return_if_fail (function_name != NULL);
#line 2976 "../src/main.vala"
	g_return_if_fail (runtime_function_name != NULL);
#line 2977 "../src/main.vala"
	php_to_vala_transpiler_warn_missing_embed_static_once (self, function_name);
#line 2978 "../src/main.vala"
	if (!php_to_vala_transpiler_has_native_runtime_candidate (self, function_name)) {
#line 2979 "../src/main.vala"
		php_to_vala_transpiler_info_missing_native_runtime_once (self, function_name, runtime_function_name);
#line 34733 "main.c"
	}
}

static gchar*
php_to_vala_transpiler_resolve_static_call_name (PhpToValaTranspiler* self,
                                                 const gchar* function_name)
{
	gchar* runtime_function_name = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp10_;
	const gchar* _tmp17_;
	gchar* result;
#line 2983 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 2983 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 2984 "../src/main.vala"
	_tmp0_ = g_strconcat (function_name, "_static", NULL);
#line 2984 "../src/main.vala"
	runtime_function_name = _tmp0_;
#line 2986 "../src/main.vala"
	_tmp1_ = self->priv->runtime_name;
#line 2986 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "native-runtime") == 0) {
#line 34759 "main.c"
		FunctionBinding* native_static = NULL;
		const gchar* _tmp2_;
		FunctionBinding* _tmp3_;
		FunctionBinding* _tmp4_;
		gchar* _tmp8_;
		gchar* _tmp9_;
#line 2987 "../src/main.vala"
		_tmp2_ = runtime_function_name;
#line 2987 "../src/main.vala"
		_tmp3_ = php_to_vala_transpiler_find_native_runtime_binding (self, _tmp2_);
#line 2987 "../src/main.vala"
		native_static = _tmp3_;
#line 2988 "../src/main.vala"
		_tmp4_ = native_static;
#line 2988 "../src/main.vala"
		if (_tmp4_ != NULL) {
#line 34776 "main.c"
			FunctionBinding* _tmp5_;
			const gchar* _tmp6_;
			gchar* _tmp7_;
#line 2989 "../src/main.vala"
			_tmp5_ = native_static;
#line 2989 "../src/main.vala"
			_tmp6_ = runtime_function_name;
#line 2989 "../src/main.vala"
			_tmp7_ = function_binding_call_name (_tmp5_, _tmp6_);
#line 2989 "../src/main.vala"
			result = _tmp7_;
#line 2989 "../src/main.vala"
			_g_object_unref0 (native_static);
#line 2989 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 2989 "../src/main.vala"
			return result;
#line 34794 "main.c"
		}
#line 2991 "../src/main.vala"
		_tmp8_ = g_strdup_printf ("info: TODO in php2vala: static implementation in valaphp-runtime-* (na" \
"tive) missing for PHP function '%s'; trying native zval", function_name);
#line 2991 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 2991 "../src/main.vala"
		php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-static", _tmp9_);
#line 2991 "../src/main.vala"
		_g_free0 (_tmp9_);
#line 2996 "../src/main.vala"
		result = NULL;
#line 2996 "../src/main.vala"
		_g_object_unref0 (native_static);
#line 2996 "../src/main.vala"
		_g_free0 (runtime_function_name);
#line 2996 "../src/main.vala"
		return result;
#line 34812 "main.c"
	}
#line 2999 "../src/main.vala"
	_tmp10_ = self->priv->runtime_name;
#line 2999 "../src/main.vala"
	if (g_strcmp0 (_tmp10_, "embed-runtime") == 0) {
#line 34818 "main.c"
		FunctionBinding* embed_static = NULL;
		const gchar* _tmp11_;
		FunctionBinding* _tmp12_;
		FunctionBinding* _tmp13_;
#line 3000 "../src/main.vala"
		_tmp11_ = runtime_function_name;
#line 3000 "../src/main.vala"
		_tmp12_ = php_to_vala_transpiler_find_embed_runtime_binding (self, _tmp11_);
#line 3000 "../src/main.vala"
		embed_static = _tmp12_;
#line 3001 "../src/main.vala"
		_tmp13_ = embed_static;
#line 3001 "../src/main.vala"
		if (_tmp13_ != NULL) {
#line 34833 "main.c"
			FunctionBinding* _tmp14_;
			const gchar* _tmp15_;
			gchar* _tmp16_;
#line 3002 "../src/main.vala"
			_tmp14_ = embed_static;
#line 3002 "../src/main.vala"
			_tmp15_ = runtime_function_name;
#line 3002 "../src/main.vala"
			_tmp16_ = function_binding_call_name (_tmp14_, _tmp15_);
#line 3002 "../src/main.vala"
			result = _tmp16_;
#line 3002 "../src/main.vala"
			_g_object_unref0 (embed_static);
#line 3002 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 3002 "../src/main.vala"
			return result;
#line 34851 "main.c"
		}
#line 3004 "../src/main.vala"
		php_to_vala_transpiler_warn_missing_embed_static_once (self, function_name);
#line 3005 "../src/main.vala"
		result = NULL;
#line 3005 "../src/main.vala"
		_g_object_unref0 (embed_static);
#line 3005 "../src/main.vala"
		_g_free0 (runtime_function_name);
#line 3005 "../src/main.vala"
		return result;
#line 34863 "main.c"
	}
#line 3008 "../src/main.vala"
	_tmp17_ = self->priv->runtime_name;
#line 3008 "../src/main.vala"
	if (g_strcmp0 (_tmp17_, "both-runtimes") == 0) {
#line 34869 "main.c"
		FunctionBinding* native_static = NULL;
		const gchar* _tmp18_;
		FunctionBinding* _tmp19_;
		FunctionBinding* _tmp20_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		FunctionBinding* _tmp28_;
		FunctionBinding* _tmp29_;
		gboolean _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		FunctionBinding* embed_static = NULL;
		const gchar* _tmp33_;
		FunctionBinding* _tmp34_;
		FunctionBinding* _tmp35_;
#line 3009 "../src/main.vala"
		_tmp18_ = runtime_function_name;
#line 3009 "../src/main.vala"
		_tmp19_ = php_to_vala_transpiler_find_native_runtime_binding (self, _tmp18_);
#line 3009 "../src/main.vala"
		native_static = _tmp19_;
#line 3010 "../src/main.vala"
		_tmp20_ = native_static;
#line 3010 "../src/main.vala"
		if (_tmp20_ != NULL) {
#line 34897 "main.c"
			FunctionBinding* _tmp21_;
			const gchar* _tmp22_;
			gchar* _tmp23_;
#line 3011 "../src/main.vala"
			_tmp21_ = native_static;
#line 3011 "../src/main.vala"
			_tmp22_ = runtime_function_name;
#line 3011 "../src/main.vala"
			_tmp23_ = function_binding_call_name (_tmp21_, _tmp22_);
#line 3011 "../src/main.vala"
			result = _tmp23_;
#line 3011 "../src/main.vala"
			_g_object_unref0 (native_static);
#line 3011 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 3011 "../src/main.vala"
			return result;
#line 34915 "main.c"
		}
#line 3014 "../src/main.vala"
		_tmp24_ = g_strdup_printf ("info: TODO in php2vala: static implementation in valaphp-runtime-* (na" \
"tive) missing for PHP function '%s'; trying native zval", function_name);
#line 3014 "../src/main.vala"
		_tmp25_ = _tmp24_;
#line 3014 "../src/main.vala"
		php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-static", _tmp25_);
#line 3014 "../src/main.vala"
		_g_free0 (_tmp25_);
#line 3020 "../src/main.vala"
		_tmp26_ = g_strconcat (function_name, "_zval", NULL);
#line 3020 "../src/main.vala"
		_tmp27_ = _tmp26_;
#line 3020 "../src/main.vala"
		_tmp28_ = php_to_vala_transpiler_find_native_runtime_binding (self, _tmp27_);
#line 3020 "../src/main.vala"
		_tmp29_ = _tmp28_;
#line 3020 "../src/main.vala"
		_tmp30_ = _tmp29_ != NULL;
#line 3020 "../src/main.vala"
		_g_object_unref0 (_tmp29_);
#line 3020 "../src/main.vala"
		_g_free0 (_tmp27_);
#line 3020 "../src/main.vala"
		if (_tmp30_) {
#line 3021 "../src/main.vala"
			result = NULL;
#line 3021 "../src/main.vala"
			_g_object_unref0 (native_static);
#line 3021 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 3021 "../src/main.vala"
			return result;
#line 34949 "main.c"
		}
#line 3024 "../src/main.vala"
		_tmp31_ = g_strdup_printf ("info: TODO in php2vala: zval implementation in valaphp-runtime-* (nati" \
"ve) missing for PHP function '%s'; trying embed static", function_name);
#line 3024 "../src/main.vala"
		_tmp32_ = _tmp31_;
#line 3024 "../src/main.vala"
		php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-zval", _tmp32_);
#line 3024 "../src/main.vala"
		_g_free0 (_tmp32_);
#line 3030 "../src/main.vala"
		_tmp33_ = runtime_function_name;
#line 3030 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_find_embed_runtime_binding (self, _tmp33_);
#line 3030 "../src/main.vala"
		embed_static = _tmp34_;
#line 3031 "../src/main.vala"
		_tmp35_ = embed_static;
#line 3031 "../src/main.vala"
		if (_tmp35_ != NULL) {
#line 34969 "main.c"
			FunctionBinding* _tmp36_;
			const gchar* _tmp37_;
			gchar* _tmp38_;
#line 3032 "../src/main.vala"
			_tmp36_ = embed_static;
#line 3032 "../src/main.vala"
			_tmp37_ = runtime_function_name;
#line 3032 "../src/main.vala"
			_tmp38_ = function_binding_call_name (_tmp36_, _tmp37_);
#line 3032 "../src/main.vala"
			result = _tmp38_;
#line 3032 "../src/main.vala"
			_g_object_unref0 (embed_static);
#line 3032 "../src/main.vala"
			_g_object_unref0 (native_static);
#line 3032 "../src/main.vala"
			_g_free0 (runtime_function_name);
#line 3032 "../src/main.vala"
			return result;
#line 34989 "main.c"
		}
#line 3035 "../src/main.vala"
		php_to_vala_transpiler_warn_missing_embed_static_once (self, function_name);
#line 3036 "../src/main.vala"
		result = NULL;
#line 3036 "../src/main.vala"
		_g_object_unref0 (embed_static);
#line 3036 "../src/main.vala"
		_g_object_unref0 (native_static);
#line 3036 "../src/main.vala"
		_g_free0 (runtime_function_name);
#line 3036 "../src/main.vala"
		return result;
#line 35003 "main.c"
	}
#line 3039 "../src/main.vala"
	result = NULL;
#line 3039 "../src/main.vala"
	_g_free0 (runtime_function_name);
#line 3039 "../src/main.vala"
	return result;
#line 35011 "main.c"
}

static FunctionBinding*
php_to_vala_transpiler_resolve_zval_runtime_binding (PhpToValaTranspiler* self,
                                                     const gchar* function_name,
                                                     const gchar* runtime_function_name)
{
	const gchar* _tmp0_;
	const gchar* _tmp18_;
	gboolean _tmp28_ = FALSE;
	FunctionBinding* embed_binding = NULL;
	FunctionBinding* _tmp29_;
	FunctionBinding* _tmp30_;
	FunctionBinding* result;
#line 3042 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3042 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3042 "../src/main.vala"
	g_return_val_if_fail (runtime_function_name != NULL, NULL);
#line 3043 "../src/main.vala"
	_tmp0_ = self->priv->runtime_name;
#line 3043 "../src/main.vala"
	if (g_strcmp0 (_tmp0_, "both-runtimes") == 0) {
#line 35036 "main.c"
		gboolean _tmp1_ = FALSE;
		FunctionBinding* native_zval = NULL;
		FunctionBinding* _tmp9_;
		FunctionBinding* _tmp10_;
		gchar* _tmp11_ = NULL;
		gboolean _tmp12_ = FALSE;
		gboolean _tmp15_ = FALSE;
		FunctionBinding* embed_zval = NULL;
		FunctionBinding* _tmp16_;
		FunctionBinding* _tmp17_;
#line 3044 "../src/main.vala"
		if (self->priv->optimize_local_vars) {
#line 3044 "../src/main.vala"
			_tmp1_ = TRUE;
#line 35051 "main.c"
		} else {
#line 3044 "../src/main.vala"
			_tmp1_ = self->priv->optimize_file_func_vars;
#line 35055 "main.c"
		}
#line 3044 "../src/main.vala"
		if (_tmp1_) {
#line 35059 "main.c"
			gchar* _tmp2_;
			gchar* _tmp3_;
			FunctionBinding* _tmp4_;
			FunctionBinding* _tmp5_;
			gboolean _tmp6_;
#line 3045 "../src/main.vala"
			_tmp2_ = g_strconcat (function_name, "_static", NULL);
#line 3045 "../src/main.vala"
			_tmp3_ = _tmp2_;
#line 3045 "../src/main.vala"
			_tmp4_ = php_to_vala_transpiler_find_native_runtime_binding (self, _tmp3_);
#line 3045 "../src/main.vala"
			_tmp5_ = _tmp4_;
#line 3045 "../src/main.vala"
			_tmp6_ = _tmp5_ == NULL;
#line 3045 "../src/main.vala"
			_g_object_unref0 (_tmp5_);
#line 3045 "../src/main.vala"
			_g_free0 (_tmp3_);
#line 3045 "../src/main.vala"
			if (_tmp6_) {
#line 35081 "main.c"
				gchar* _tmp7_;
				gchar* _tmp8_;
#line 3046 "../src/main.vala"
				_tmp7_ = g_strdup_printf ("info: TODO in php2vala: static implementation in valaphp-runtime-* (na" \
"tive) missing for PHP function '%s'; trying native zval", function_name);
#line 3046 "../src/main.vala"
				_tmp8_ = _tmp7_;
#line 3046 "../src/main.vala"
				php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-static", _tmp8_);
#line 3046 "../src/main.vala"
				_g_free0 (_tmp8_);
#line 35092 "main.c"
			}
		}
#line 3054 "../src/main.vala"
		_tmp9_ = php_to_vala_transpiler_find_native_runtime_binding (self, runtime_function_name);
#line 3054 "../src/main.vala"
		native_zval = _tmp9_;
#line 3055 "../src/main.vala"
		_tmp10_ = native_zval;
#line 3055 "../src/main.vala"
		if (_tmp10_ != NULL) {
#line 3056 "../src/main.vala"
			result = native_zval;
#line 3056 "../src/main.vala"
			return result;
#line 35107 "main.c"
		}
#line 3062 "../src/main.vala"
		if (self->priv->optimize_local_vars) {
#line 3062 "../src/main.vala"
			_tmp12_ = TRUE;
#line 35113 "main.c"
		} else {
#line 3062 "../src/main.vala"
			_tmp12_ = self->priv->optimize_file_func_vars;
#line 35117 "main.c"
		}
#line 3062 "../src/main.vala"
		if (_tmp12_) {
#line 35121 "main.c"
			gchar* _tmp13_;
#line 3063 "../src/main.vala"
			_tmp13_ = g_strdup_printf ("info: TODO in php2vala: zval implementation in valaphp-runtime-* (nati" \
"ve) missing for PHP function '%s'; trying embed static", function_name);
#line 3063 "../src/main.vala"
			_g_free0 (_tmp11_);
#line 3063 "../src/main.vala"
			_tmp11_ = _tmp13_;
#line 35129 "main.c"
		} else {
			gchar* _tmp14_;
#line 3064 "../src/main.vala"
			_tmp14_ = g_strdup_printf ("info: TODO in php2vala: zval implementation in valaphp-runtime-* (nati" \
"ve) missing for PHP function '%s'; trying embed zval", function_name);
#line 3064 "../src/main.vala"
			_g_free0 (_tmp11_);
#line 3064 "../src/main.vala"
			_tmp11_ = _tmp14_;
#line 35138 "main.c"
		}
#line 3059 "../src/main.vala"
		php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-zval", _tmp11_);
#line 3067 "../src/main.vala"
		if (self->priv->optimize_local_vars) {
#line 3067 "../src/main.vala"
			_tmp15_ = TRUE;
#line 35146 "main.c"
		} else {
#line 3067 "../src/main.vala"
			_tmp15_ = self->priv->optimize_file_func_vars;
#line 35150 "main.c"
		}
#line 3067 "../src/main.vala"
		if (_tmp15_) {
#line 3068 "../src/main.vala"
			php_to_vala_transpiler_warn_missing_embed_static_once (self, function_name);
#line 35156 "main.c"
		}
#line 3071 "../src/main.vala"
		_tmp16_ = php_to_vala_transpiler_find_embed_runtime_binding (self, runtime_function_name);
#line 3071 "../src/main.vala"
		embed_zval = _tmp16_;
#line 3072 "../src/main.vala"
		_tmp17_ = embed_zval;
#line 3072 "../src/main.vala"
		if (_tmp17_ != NULL) {
#line 3073 "../src/main.vala"
			result = embed_zval;
#line 3073 "../src/main.vala"
			_g_free0 (_tmp11_);
#line 3073 "../src/main.vala"
			_g_object_unref0 (native_zval);
#line 3073 "../src/main.vala"
			return result;
#line 35174 "main.c"
		}
#line 3075 "../src/main.vala"
		result = NULL;
#line 3075 "../src/main.vala"
		_g_object_unref0 (embed_zval);
#line 3075 "../src/main.vala"
		_g_free0 (_tmp11_);
#line 3075 "../src/main.vala"
		_g_object_unref0 (native_zval);
#line 3075 "../src/main.vala"
		return result;
#line 35186 "main.c"
	}
#line 3078 "../src/main.vala"
	_tmp18_ = self->priv->runtime_name;
#line 3078 "../src/main.vala"
	if (g_strcmp0 (_tmp18_, "native-runtime") == 0) {
#line 35192 "main.c"
		gboolean _tmp19_ = FALSE;
		FunctionBinding* _tmp27_;
#line 3079 "../src/main.vala"
		if (self->priv->optimize_local_vars) {
#line 3079 "../src/main.vala"
			_tmp19_ = TRUE;
#line 35199 "main.c"
		} else {
#line 3079 "../src/main.vala"
			_tmp19_ = self->priv->optimize_file_func_vars;
#line 35203 "main.c"
		}
#line 3079 "../src/main.vala"
		if (_tmp19_) {
#line 35207 "main.c"
			gchar* _tmp20_;
			gchar* _tmp21_;
			FunctionBinding* _tmp22_;
			FunctionBinding* _tmp23_;
			gboolean _tmp24_;
#line 3080 "../src/main.vala"
			_tmp20_ = g_strconcat (function_name, "_static", NULL);
#line 3080 "../src/main.vala"
			_tmp21_ = _tmp20_;
#line 3080 "../src/main.vala"
			_tmp22_ = php_to_vala_transpiler_find_native_runtime_binding (self, _tmp21_);
#line 3080 "../src/main.vala"
			_tmp23_ = _tmp22_;
#line 3080 "../src/main.vala"
			_tmp24_ = _tmp23_ == NULL;
#line 3080 "../src/main.vala"
			_g_object_unref0 (_tmp23_);
#line 3080 "../src/main.vala"
			_g_free0 (_tmp21_);
#line 3080 "../src/main.vala"
			if (_tmp24_) {
#line 35229 "main.c"
				gchar* _tmp25_;
				gchar* _tmp26_;
#line 3081 "../src/main.vala"
				_tmp25_ = g_strdup_printf ("info: TODO in php2vala: static implementation in valaphp-runtime-* (na" \
"tive) missing for PHP function '%s'; trying native zval", function_name);
#line 3081 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 3081 "../src/main.vala"
				php_to_vala_transpiler_info_resolver_step_once (self, function_name, "native-static", _tmp26_);
#line 3081 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 35240 "main.c"
			}
		}
#line 3088 "../src/main.vala"
		_tmp27_ = php_to_vala_transpiler_find_native_runtime_binding (self, runtime_function_name);
#line 3088 "../src/main.vala"
		result = _tmp27_;
#line 3088 "../src/main.vala"
		return result;
#line 35249 "main.c"
	}
#line 3091 "../src/main.vala"
	if (self->priv->optimize_local_vars) {
#line 3091 "../src/main.vala"
		_tmp28_ = TRUE;
#line 35255 "main.c"
	} else {
#line 3091 "../src/main.vala"
		_tmp28_ = self->priv->optimize_file_func_vars;
#line 35259 "main.c"
	}
#line 3091 "../src/main.vala"
	if (_tmp28_) {
#line 3092 "../src/main.vala"
		php_to_vala_transpiler_warn_missing_embed_static_once (self, function_name);
#line 35265 "main.c"
	}
#line 3094 "../src/main.vala"
	_tmp29_ = php_to_vala_transpiler_find_embed_runtime_binding (self, runtime_function_name);
#line 3094 "../src/main.vala"
	embed_binding = _tmp29_;
#line 3095 "../src/main.vala"
	_tmp30_ = embed_binding;
#line 3095 "../src/main.vala"
	if (_tmp30_ != NULL) {
#line 3096 "../src/main.vala"
		result = embed_binding;
#line 3096 "../src/main.vala"
		return result;
#line 35279 "main.c"
	}
#line 3098 "../src/main.vala"
	result = NULL;
#line 3098 "../src/main.vala"
	_g_object_unref0 (embed_binding);
#line 3098 "../src/main.vala"
	return result;
#line 35287 "main.c"
}

static void
php_to_vala_transpiler_info_resolver_step_once (PhpToValaTranspiler* self,
                                                const gchar* function_name,
                                                const gchar* step_name,
                                                const gchar* message)
{
	gchar* key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	GeeHashMap* _tmp4_;
	const gchar* _tmp5_;
	GeeHashMap* _tmp6_;
	const gchar* _tmp7_;
	FILE* _tmp8_;
#line 3101 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 3101 "../src/main.vala"
	g_return_if_fail (function_name != NULL);
#line 3101 "../src/main.vala"
	g_return_if_fail (step_name != NULL);
#line 3101 "../src/main.vala"
	g_return_if_fail (message != NULL);
#line 3102 "../src/main.vala"
	_tmp0_ = g_strconcat (function_name, "|", NULL);
#line 3102 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 3102 "../src/main.vala"
	_tmp2_ = g_strconcat (_tmp1_, step_name, NULL);
#line 3102 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 3102 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 3102 "../src/main.vala"
	key = _tmp3_;
#line 3103 "../src/main.vala"
	_tmp4_ = self->priv->informed_missing_native_runtime;
#line 3103 "../src/main.vala"
	_tmp5_ = key;
#line 3103 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp4_, _tmp5_)) {
#line 3104 "../src/main.vala"
		_g_free0 (key);
#line 3104 "../src/main.vala"
		return;
#line 35336 "main.c"
	}
#line 3107 "../src/main.vala"
	_tmp6_ = self->priv->informed_missing_native_runtime;
#line 3107 "../src/main.vala"
	_tmp7_ = key;
#line 3107 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp6_, _tmp7_, (gpointer) ((gintptr) TRUE));
#line 3108 "../src/main.vala"
	_tmp8_ = stderr;
#line 3108 "../src/main.vala"
	fprintf (_tmp8_, "%s\n", message);
#line 3101 "../src/main.vala"
	_g_free0 (key);
#line 35350 "main.c"
}

static void
php_to_vala_transpiler_warn_missing_embed_static_once (PhpToValaTranspiler* self,
                                                       const gchar* function_name)
{
	gboolean _tmp0_ = FALSE;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	FILE* _tmp3_;
#line 3111 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 3111 "../src/main.vala"
	g_return_if_fail (function_name != NULL);
#line 3112 "../src/main.vala"
	if (self->priv->optimize_local_vars) {
#line 3112 "../src/main.vala"
		_tmp0_ = TRUE;
#line 35369 "main.c"
	} else {
#line 3112 "../src/main.vala"
		_tmp0_ = self->priv->optimize_file_func_vars;
#line 35373 "main.c"
	}
#line 3112 "../src/main.vala"
	if (!_tmp0_) {
#line 3113 "../src/main.vala"
		return;
#line 35379 "main.c"
	}
#line 3115 "../src/main.vala"
	if (php_to_vala_transpiler_has_embed_static_binding (self, function_name)) {
#line 3116 "../src/main.vala"
		return;
#line 35385 "main.c"
	}
#line 3118 "../src/main.vala"
	_tmp1_ = self->priv->warned_missing_embed_static;
#line 3118 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp1_, function_name)) {
#line 3119 "../src/main.vala"
		return;
#line 35393 "main.c"
	}
#line 3122 "../src/main.vala"
	_tmp2_ = self->priv->warned_missing_embed_static;
#line 3122 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp2_, function_name, (gpointer) ((gintptr) TRUE));
#line 3123 "../src/main.vala"
	_tmp3_ = stderr;
#line 3123 "../src/main.vala"
	fprintf (_tmp3_, "info: TODO in php2vala: static implementation in valaphp-runtime-embed" \
" missing for PHP function '%s'; falling back to zval\n", function_name);
#line 35403 "main.c"
}

static void
php_to_vala_transpiler_info_missing_native_runtime_once (PhpToValaTranspiler* self,
                                                         const gchar* function_name,
                                                         const gchar* runtime_function_name)
{
	const gchar* _tmp0_;
	gchar* key = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GeeHashMap* _tmp5_;
	const gchar* _tmp6_;
	GeeHashMap* _tmp7_;
	const gchar* _tmp8_;
	FILE* _tmp9_;
#line 3129 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 3129 "../src/main.vala"
	g_return_if_fail (function_name != NULL);
#line 3129 "../src/main.vala"
	g_return_if_fail (runtime_function_name != NULL);
#line 3130 "../src/main.vala"
	_tmp0_ = self->priv->runtime_name;
#line 3130 "../src/main.vala"
	if (g_strcmp0 (_tmp0_, "both-runtimes") != 0) {
#line 3131 "../src/main.vala"
		return;
#line 35434 "main.c"
	}
#line 3133 "../src/main.vala"
	_tmp1_ = g_strconcat (function_name, "|", NULL);
#line 3133 "../src/main.vala"
	_tmp2_ = _tmp1_;
#line 3133 "../src/main.vala"
	_tmp3_ = g_strconcat (_tmp2_, runtime_function_name, NULL);
#line 3133 "../src/main.vala"
	_tmp4_ = _tmp3_;
#line 3133 "../src/main.vala"
	_g_free0 (_tmp2_);
#line 3133 "../src/main.vala"
	key = _tmp4_;
#line 3134 "../src/main.vala"
	_tmp5_ = self->priv->informed_missing_native_runtime;
#line 3134 "../src/main.vala"
	_tmp6_ = key;
#line 3134 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp5_, _tmp6_)) {
#line 3135 "../src/main.vala"
		_g_free0 (key);
#line 3135 "../src/main.vala"
		return;
#line 35458 "main.c"
	}
#line 3138 "../src/main.vala"
	_tmp7_ = self->priv->informed_missing_native_runtime;
#line 3138 "../src/main.vala"
	_tmp8_ = key;
#line 3138 "../src/main.vala"
	gee_abstract_map_set ((GeeAbstractMap*) _tmp7_, _tmp8_, (gpointer) ((gintptr) TRUE));
#line 3139 "../src/main.vala"
	_tmp9_ = stderr;
#line 3139 "../src/main.vala"
	fprintf (_tmp9_, "info: TODO in php2vala: static/zval implementation in valaphp-runtime-" \
"* (native) missing for PHP function '%s' via '%s'; using embed fallbac" \
"k\n", function_name, runtime_function_name);
#line 3129 "../src/main.vala"
	_g_free0 (key);
#line 35472 "main.c"
}

static gboolean
php_to_vala_transpiler_has_embed_static_binding (PhpToValaTranspiler* self,
                                                 const gchar* function_name)
{
	FunctionBinding* binding = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* _tmp3_;
	gboolean _tmp4_ = FALSE;
	FunctionBinding* _tmp5_;
	gboolean result;
#line 3146 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3146 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, FALSE);
#line 3147 "../src/main.vala"
	_tmp0_ = g_strconcat (function_name, "_static", NULL);
#line 3147 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 3147 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_find_embed_runtime_binding (self, _tmp1_);
#line 3147 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 3147 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 3147 "../src/main.vala"
	binding = _tmp3_;
#line 3148 "../src/main.vala"
	_tmp5_ = binding;
#line 3148 "../src/main.vala"
	if (_tmp5_ != NULL) {
#line 35507 "main.c"
		FunctionBinding* _tmp6_;
#line 3148 "../src/main.vala"
		_tmp6_ = binding;
#line 3148 "../src/main.vala"
		_tmp4_ = php_to_vala_transpiler_is_embed_runtime_binding (self, _tmp6_);
#line 35513 "main.c"
	} else {
#line 3148 "../src/main.vala"
		_tmp4_ = FALSE;
#line 35517 "main.c"
	}
#line 3148 "../src/main.vala"
	result = _tmp4_;
#line 3148 "../src/main.vala"
	_g_object_unref0 (binding);
#line 3148 "../src/main.vala"
	return result;
#line 35525 "main.c"
}

static gboolean
php_to_vala_transpiler_has_native_runtime_binding (PhpToValaTranspiler* self,
                                                   const gchar* runtime_function_name)
{
	FunctionBinding* _tmp0_;
	FunctionBinding* _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 3151 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3151 "../src/main.vala"
	g_return_val_if_fail (runtime_function_name != NULL, FALSE);
#line 3152 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_find_native_runtime_binding (self, runtime_function_name);
#line 3152 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 3152 "../src/main.vala"
	_tmp2_ = _tmp1_ != NULL;
#line 3152 "../src/main.vala"
	_g_object_unref0 (_tmp1_);
#line 3152 "../src/main.vala"
	result = _tmp2_;
#line 3152 "../src/main.vala"
	return result;
#line 35552 "main.c"
}

static gboolean
php_to_vala_transpiler_has_native_runtime_candidate (PhpToValaTranspiler* self,
                                                     const gchar* function_name)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean result;
#line 3155 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3155 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, FALSE);
#line 3156 "../src/main.vala"
	if (php_to_vala_transpiler_has_native_runtime_binding (self, function_name)) {
#line 3156 "../src/main.vala"
		_tmp1_ = TRUE;
#line 35570 "main.c"
	} else {
		gchar* _tmp2_;
		gchar* _tmp3_;
#line 3157 "../src/main.vala"
		_tmp2_ = g_strconcat (function_name, "_static", NULL);
#line 3157 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 3157 "../src/main.vala"
		_tmp1_ = php_to_vala_transpiler_has_native_runtime_binding (self, _tmp3_);
#line 3157 "../src/main.vala"
		_g_free0 (_tmp3_);
#line 35582 "main.c"
	}
#line 3156 "../src/main.vala"
	if (_tmp1_) {
#line 3156 "../src/main.vala"
		_tmp0_ = TRUE;
#line 35588 "main.c"
	} else {
		gchar* _tmp4_;
		gchar* _tmp5_;
#line 3158 "../src/main.vala"
		_tmp4_ = g_strconcat (function_name, "_zval", NULL);
#line 3158 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3158 "../src/main.vala"
		_tmp0_ = php_to_vala_transpiler_has_native_runtime_binding (self, _tmp5_);
#line 3158 "../src/main.vala"
		_g_free0 (_tmp5_);
#line 35600 "main.c"
	}
#line 3156 "../src/main.vala"
	result = _tmp0_;
#line 3156 "../src/main.vala"
	return result;
#line 35606 "main.c"
}

static gboolean
php_to_vala_transpiler_is_embed_runtime_binding (PhpToValaTranspiler* self,
                                                 FunctionBinding* binding)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	gboolean result;
#line 3161 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3161 "../src/main.vala"
	g_return_val_if_fail (binding != NULL, FALSE);
#line 3162 "../src/main.vala"
	_tmp1_ = binding->namespace_name;
#line 3162 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "PhpEmbed") == 0) {
#line 35624 "main.c"
		const gchar* _tmp2_;
#line 3163 "../src/main.vala"
		_tmp2_ = binding->package_name;
#line 3163 "../src/main.vala"
		_tmp0_ = g_str_has_prefix (_tmp2_, "valaphp-runtime-embed-");
#line 35630 "main.c"
	} else {
#line 3162 "../src/main.vala"
		_tmp0_ = FALSE;
#line 35634 "main.c"
	}
#line 3162 "../src/main.vala"
	result = _tmp0_;
#line 3162 "../src/main.vala"
	return result;
#line 35640 "main.c"
}

static FunctionBinding*
php_to_vala_transpiler_find_native_runtime_binding (PhpToValaTranspiler* self,
                                                    const gchar* runtime_function_name)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	gboolean _tmp2_ = FALSE;
	FunctionBinding* _tmp3_;
	FunctionBinding* result;
#line 3166 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3166 "../src/main.vala"
	g_return_val_if_fail (runtime_function_name != NULL, NULL);
#line 3167 "../src/main.vala"
	_tmp0_ = self->priv->native_function_bindings;
#line 3167 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, runtime_function_name);
#line 3167 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 3168 "../src/main.vala"
	_tmp3_ = binding;
#line 3168 "../src/main.vala"
	if (_tmp3_ == NULL) {
#line 3168 "../src/main.vala"
		_tmp2_ = TRUE;
#line 35669 "main.c"
	} else {
		FunctionBinding* _tmp4_;
		const gchar* _tmp5_;
#line 3168 "../src/main.vala"
		_tmp4_ = binding;
#line 3168 "../src/main.vala"
		_tmp5_ = _tmp4_->namespace_name;
#line 3168 "../src/main.vala"
		_tmp2_ = g_strcmp0 (_tmp5_, "PhpNative") != 0;
#line 35679 "main.c"
	}
#line 3168 "../src/main.vala"
	if (_tmp2_) {
#line 3169 "../src/main.vala"
		result = NULL;
#line 3169 "../src/main.vala"
		_g_object_unref0 (binding);
#line 3169 "../src/main.vala"
		return result;
#line 35689 "main.c"
	}
#line 3171 "../src/main.vala"
	result = binding;
#line 3171 "../src/main.vala"
	return result;
#line 35695 "main.c"
}

static FunctionBinding*
php_to_vala_transpiler_find_embed_runtime_binding (PhpToValaTranspiler* self,
                                                   const gchar* runtime_function_name)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	gboolean _tmp2_ = FALSE;
	FunctionBinding* _tmp3_;
	FunctionBinding* result;
#line 3174 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3174 "../src/main.vala"
	g_return_val_if_fail (runtime_function_name != NULL, NULL);
#line 3175 "../src/main.vala"
	_tmp0_ = self->priv->embed_function_bindings;
#line 3175 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, runtime_function_name);
#line 3175 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 3176 "../src/main.vala"
	_tmp3_ = binding;
#line 3176 "../src/main.vala"
	if (_tmp3_ == NULL) {
#line 3176 "../src/main.vala"
		_tmp2_ = TRUE;
#line 35724 "main.c"
	} else {
		FunctionBinding* _tmp4_;
#line 3176 "../src/main.vala"
		_tmp4_ = binding;
#line 3176 "../src/main.vala"
		_tmp2_ = !php_to_vala_transpiler_is_embed_runtime_binding (self, _tmp4_);
#line 35731 "main.c"
	}
#line 3176 "../src/main.vala"
	if (_tmp2_) {
#line 3177 "../src/main.vala"
		result = NULL;
#line 3177 "../src/main.vala"
		_g_object_unref0 (binding);
#line 3177 "../src/main.vala"
		return result;
#line 35741 "main.c"
	}
#line 3179 "../src/main.vala"
	result = binding;
#line 3179 "../src/main.vala"
	return result;
#line 35747 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_inline_known_function_names (PhpToValaTranspiler* self,
                                                            const gchar* expression,
                                                            gint php_line_number)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* result;
#line 3182 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3182 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3183 "../src/main.vala"
	_tmp0_ = g_strdup (expression);
#line 3183 "../src/main.vala"
	_result_ = _tmp0_;
#line 3184 "../src/main.vala"
	_tmp1_ = _result_;
#line 3184 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_replace_inline_core_construct_call (self, _tmp1_, "isset", "isset_value_static", php_line_number);
#line 3184 "../src/main.vala"
	_g_free0 (_result_);
#line 3184 "../src/main.vala"
	_result_ = _tmp2_;
#line 35776 "main.c"
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp3_;
		GeeSet* _tmp4_;
		GeeSet* _tmp5_;
		GeeSet* _tmp6_;
		GeeIterator* _tmp7_;
		GeeIterator* _tmp8_;
#line 3185 "../src/main.vala"
		_tmp3_ = self->priv->function_bindings;
#line 3185 "../src/main.vala"
		_tmp4_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp3_);
#line 3185 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3185 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3185 "../src/main.vala"
		_tmp7_ = gee_iterable_iterator ((GeeIterable*) _tmp6_);
#line 3185 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 3185 "../src/main.vala"
		_g_object_unref0 (_tmp6_);
#line 3185 "../src/main.vala"
		_function_name_it = _tmp8_;
#line 3185 "../src/main.vala"
		while (TRUE) {
#line 35803 "main.c"
			GeeIterator* _tmp9_;
			gchar* function_name = NULL;
			GeeIterator* _tmp10_;
			gpointer _tmp11_;
			FunctionBinding* binding = NULL;
			GeeHashMap* _tmp12_;
			const gchar* _tmp13_;
			gpointer _tmp14_;
			FunctionBinding* _tmp15_;
			const gchar* _tmp16_;
			const gchar* _tmp17_;
			gchar* _tmp18_;
#line 3185 "../src/main.vala"
			_tmp9_ = _function_name_it;
#line 3185 "../src/main.vala"
			if (!gee_iterator_next (_tmp9_)) {
#line 3185 "../src/main.vala"
				break;
#line 35822 "main.c"
			}
#line 3185 "../src/main.vala"
			_tmp10_ = _function_name_it;
#line 3185 "../src/main.vala"
			_tmp11_ = gee_iterator_get (_tmp10_);
#line 3185 "../src/main.vala"
			function_name = (gchar*) _tmp11_;
#line 3186 "../src/main.vala"
			_tmp12_ = self->priv->function_bindings;
#line 3186 "../src/main.vala"
			_tmp13_ = function_name;
#line 3186 "../src/main.vala"
			_tmp14_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp13_);
#line 3186 "../src/main.vala"
			binding = (FunctionBinding*) _tmp14_;
#line 3187 "../src/main.vala"
			_tmp15_ = binding;
#line 3187 "../src/main.vala"
			if (_tmp15_ == NULL) {
#line 3188 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3188 "../src/main.vala"
				_g_free0 (function_name);
#line 3188 "../src/main.vala"
				continue;
#line 35848 "main.c"
			}
#line 3190 "../src/main.vala"
			_tmp16_ = _result_;
#line 3190 "../src/main.vala"
			_tmp17_ = function_name;
#line 3190 "../src/main.vala"
			_tmp18_ = php_to_vala_transpiler_replace_inline_function_call (self, _tmp16_, _tmp17_, php_line_number);
#line 3190 "../src/main.vala"
			_g_free0 (_result_);
#line 3190 "../src/main.vala"
			_result_ = _tmp18_;
#line 3185 "../src/main.vala"
			_g_object_unref0 (binding);
#line 3185 "../src/main.vala"
			_g_free0 (function_name);
#line 35864 "main.c"
		}
#line 3185 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 35868 "main.c"
	}
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp19_;
		GeeSet* _tmp20_;
		GeeSet* _tmp21_;
		GeeSet* _tmp22_;
		GeeIterator* _tmp23_;
		GeeIterator* _tmp24_;
#line 3192 "../src/main.vala"
		_tmp19_ = self->local_functions;
#line 3192 "../src/main.vala"
		_tmp20_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp19_);
#line 3192 "../src/main.vala"
		_tmp21_ = _tmp20_;
#line 3192 "../src/main.vala"
		_tmp22_ = _tmp21_;
#line 3192 "../src/main.vala"
		_tmp23_ = gee_iterable_iterator ((GeeIterable*) _tmp22_);
#line 3192 "../src/main.vala"
		_tmp24_ = _tmp23_;
#line 3192 "../src/main.vala"
		_g_object_unref0 (_tmp22_);
#line 3192 "../src/main.vala"
		_function_name_it = _tmp24_;
#line 3192 "../src/main.vala"
		while (TRUE) {
#line 35896 "main.c"
			GeeIterator* _tmp25_;
			gchar* function_name = NULL;
			GeeIterator* _tmp26_;
			gpointer _tmp27_;
			LocalFunction* local_function = NULL;
			GeeHashMap* _tmp28_;
			const gchar* _tmp29_;
			gpointer _tmp30_;
			gboolean _tmp31_ = FALSE;
			gboolean _tmp32_ = FALSE;
			gboolean _tmp33_ = FALSE;
#line 3192 "../src/main.vala"
			_tmp25_ = _function_name_it;
#line 3192 "../src/main.vala"
			if (!gee_iterator_next (_tmp25_)) {
#line 3192 "../src/main.vala"
				break;
#line 35914 "main.c"
			}
#line 3192 "../src/main.vala"
			_tmp26_ = _function_name_it;
#line 3192 "../src/main.vala"
			_tmp27_ = gee_iterator_get (_tmp26_);
#line 3192 "../src/main.vala"
			function_name = (gchar*) _tmp27_;
#line 3193 "../src/main.vala"
			_tmp28_ = self->local_functions;
#line 3193 "../src/main.vala"
			_tmp29_ = function_name;
#line 3193 "../src/main.vala"
			_tmp30_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp28_, _tmp29_);
#line 3193 "../src/main.vala"
			local_function = (LocalFunction*) _tmp30_;
#line 3194 "../src/main.vala"
			if (self->priv->optimize_file_func_vars) {
#line 3195 "../src/main.vala"
				_tmp33_ = self->transpiling_local_function;
#line 35934 "main.c"
			} else {
#line 3194 "../src/main.vala"
				_tmp33_ = FALSE;
#line 35938 "main.c"
			}
#line 3194 "../src/main.vala"
			if (_tmp33_) {
#line 35942 "main.c"
				LocalFunction* _tmp34_;
#line 3196 "../src/main.vala"
				_tmp34_ = local_function;
#line 3196 "../src/main.vala"
				_tmp32_ = _tmp34_ != NULL;
#line 35948 "main.c"
			} else {
#line 3194 "../src/main.vala"
				_tmp32_ = FALSE;
#line 35952 "main.c"
			}
#line 3194 "../src/main.vala"
			if (_tmp32_) {
#line 35956 "main.c"
				PhpToValaFileFuncVarsOptimizer* _tmp35_;
				LocalFunction* _tmp36_;
#line 3197 "../src/main.vala"
				_tmp35_ = self->priv->file_func_vars_optimizer;
#line 3197 "../src/main.vala"
				_tmp36_ = local_function;
#line 3197 "../src/main.vala"
				_tmp31_ = php_to_vala_file_func_vars_optimizer_can_emit (_tmp35_, _tmp36_);
#line 35965 "main.c"
			} else {
#line 3194 "../src/main.vala"
				_tmp31_ = FALSE;
#line 35969 "main.c"
			}
#line 3194 "../src/main.vala"
			if (_tmp31_) {
#line 35973 "main.c"
				PhpToValaFileFuncVarsOptimizer* _tmp37_;
				const gchar* _tmp38_;
				LocalFunction* _tmp39_;
				gchar* _tmp40_;
#line 3198 "../src/main.vala"
				_tmp37_ = self->priv->file_func_vars_optimizer;
#line 3198 "../src/main.vala"
				_tmp38_ = _result_;
#line 3198 "../src/main.vala"
				_tmp39_ = local_function;
#line 3198 "../src/main.vala"
				_tmp40_ = php_to_vala_file_func_vars_optimizer_replace_inline_local_function_call (_tmp37_, _tmp38_, _tmp39_, php_line_number);
#line 3198 "../src/main.vala"
				_g_free0 (_result_);
#line 3198 "../src/main.vala"
				_result_ = _tmp40_;
#line 35990 "main.c"
			} else {
				gboolean _tmp41_ = FALSE;
				gboolean _tmp42_ = FALSE;
				gboolean _tmp43_ = FALSE;
#line 3199 "../src/main.vala"
				if (self->priv->optimize_local_vars) {
#line 3200 "../src/main.vala"
					_tmp43_ = self->transpiling_local_function;
#line 35999 "main.c"
				} else {
#line 3199 "../src/main.vala"
					_tmp43_ = FALSE;
#line 36003 "main.c"
				}
#line 3199 "../src/main.vala"
				if (_tmp43_) {
#line 36007 "main.c"
					LocalFunction* _tmp44_;
#line 3201 "../src/main.vala"
					_tmp44_ = local_function;
#line 3201 "../src/main.vala"
					_tmp42_ = _tmp44_ != NULL;
#line 36013 "main.c"
				} else {
#line 3199 "../src/main.vala"
					_tmp42_ = FALSE;
#line 36017 "main.c"
				}
#line 3199 "../src/main.vala"
				if (_tmp42_) {
#line 36021 "main.c"
					PhpToValaLocalVarsOptimizer* _tmp45_;
					LocalFunction* _tmp46_;
#line 3202 "../src/main.vala"
					_tmp45_ = self->priv->local_vars_optimizer;
#line 3202 "../src/main.vala"
					_tmp46_ = local_function;
#line 3202 "../src/main.vala"
					_tmp41_ = php_to_vala_local_vars_optimizer_can_emit (_tmp45_, _tmp46_);
#line 36030 "main.c"
				} else {
#line 3199 "../src/main.vala"
					_tmp41_ = FALSE;
#line 36034 "main.c"
				}
#line 3199 "../src/main.vala"
				if (_tmp41_) {
#line 36038 "main.c"
					PhpToValaLocalVarsOptimizer* _tmp47_;
					const gchar* _tmp48_;
					LocalFunction* _tmp49_;
					gchar* _tmp50_;
#line 3203 "../src/main.vala"
					_tmp47_ = self->priv->local_vars_optimizer;
#line 3203 "../src/main.vala"
					_tmp48_ = _result_;
#line 3203 "../src/main.vala"
					_tmp49_ = local_function;
#line 3203 "../src/main.vala"
					_tmp50_ = php_to_vala_local_vars_optimizer_replace_inline_local_function_call (_tmp47_, _tmp48_, _tmp49_, php_line_number);
#line 3203 "../src/main.vala"
					_g_free0 (_result_);
#line 3203 "../src/main.vala"
					_result_ = _tmp50_;
#line 36055 "main.c"
				} else {
					const gchar* _tmp51_;
					const gchar* _tmp52_;
					const gchar* _tmp53_;
					gchar* _tmp54_;
#line 3205 "../src/main.vala"
					_tmp51_ = _result_;
#line 3205 "../src/main.vala"
					_tmp52_ = function_name;
#line 3205 "../src/main.vala"
					_tmp53_ = function_name;
#line 3205 "../src/main.vala"
					_tmp54_ = php_to_vala_transpiler_replace_function_token (_tmp51_, _tmp52_, _tmp53_);
#line 3205 "../src/main.vala"
					_g_free0 (_result_);
#line 3205 "../src/main.vala"
					_result_ = _tmp54_;
#line 36073 "main.c"
				}
			}
#line 3192 "../src/main.vala"
			_g_object_unref0 (local_function);
#line 3192 "../src/main.vala"
			_g_free0 (function_name);
#line 36080 "main.c"
		}
#line 3192 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 36084 "main.c"
	}
#line 3208 "../src/main.vala"
	result = _result_;
#line 3208 "../src/main.vala"
	return result;
#line 36090 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_inline_core_construct_call (PhpToValaTranspiler* self,
                                                           const gchar* expression,
                                                           const gchar* function_name,
                                                           const gchar* mapped_function_name,
                                                           gint php_line_number)
{
	GString* output = NULL;
	GString* _tmp0_;
	gint i = 0;
	GString* _tmp30_;
	const gchar* _tmp31_;
	gchar* _tmp32_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 3211 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3211 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3211 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3211 "../src/main.vala"
	g_return_val_if_fail (mapped_function_name != NULL, NULL);
#line 3212 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 3212 "../src/main.vala"
	output = _tmp0_;
#line 3213 "../src/main.vala"
	i = 0;
#line 3214 "../src/main.vala"
	while (TRUE) {
#line 36124 "main.c"
		gint _tmp1_;
		gint _tmp2_;
		gboolean _tmp3_ = FALSE;
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gboolean _tmp8_;
		GString* _tmp28_;
		gint _tmp29_;
#line 3214 "../src/main.vala"
		_tmp1_ = strlen (expression);
#line 3214 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 3214 "../src/main.vala"
		if (!(i < _tmp2_)) {
#line 3214 "../src/main.vala"
			break;
#line 36143 "main.c"
		}
#line 3215 "../src/main.vala"
		_tmp4_ = string_substring (expression, (glong) i, (glong) -1);
#line 3215 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3215 "../src/main.vala"
		_tmp6_ = g_strconcat (function_name, "(", NULL);
#line 3215 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 3215 "../src/main.vala"
		_tmp8_ = g_str_has_prefix (_tmp5_, _tmp7_);
#line 3215 "../src/main.vala"
		_g_free0 (_tmp7_);
#line 3215 "../src/main.vala"
		_g_free0 (_tmp5_);
#line 3215 "../src/main.vala"
		if (_tmp8_) {
#line 36161 "main.c"
			gboolean _tmp9_ = FALSE;
#line 3216 "../src/main.vala"
			if (i == 0) {
#line 3216 "../src/main.vala"
				_tmp9_ = TRUE;
#line 36167 "main.c"
			} else {
				gboolean _tmp10_ = FALSE;
#line 3216 "../src/main.vala"
				if (!php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (i - 1)))) {
#line 3216 "../src/main.vala"
					_tmp10_ = string_get (expression, (glong) (i - 1)) != '.';
#line 36174 "main.c"
				} else {
#line 3216 "../src/main.vala"
					_tmp10_ = FALSE;
#line 36178 "main.c"
				}
#line 3216 "../src/main.vala"
				_tmp9_ = _tmp10_;
#line 36182 "main.c"
			}
#line 3216 "../src/main.vala"
			_tmp3_ = _tmp9_;
#line 36186 "main.c"
		} else {
#line 3215 "../src/main.vala"
			_tmp3_ = FALSE;
#line 36190 "main.c"
		}
#line 3215 "../src/main.vala"
		if (_tmp3_) {
#line 36194 "main.c"
			gint open_index = 0;
			gint _tmp11_;
			gint _tmp12_;
			gint close_index = 0;
#line 3217 "../src/main.vala"
			_tmp11_ = strlen (function_name);
#line 3217 "../src/main.vala"
			_tmp12_ = _tmp11_;
#line 3217 "../src/main.vala"
			open_index = i + _tmp12_;
#line 3218 "../src/main.vala"
			close_index = php_to_vala_transpiler_find_matching_paren (expression, open_index);
#line 3219 "../src/main.vala"
			if (close_index > open_index) {
#line 36209 "main.c"
				gchar* inner_args = NULL;
				gchar* _tmp13_;
#line 3220 "../src/main.vala"
				_tmp13_ = string_substring (expression, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 3220 "../src/main.vala"
				inner_args = _tmp13_;
#line 36216 "main.c"
				{
					GString* _tmp14_;
					GString* _tmp15_;
					GString* _tmp16_;
					gchar* _tmp17_ = NULL;
					const gchar* _tmp18_;
					gchar* _tmp19_;
					GString* _tmp20_;
					GString* _tmp21_;
					gchar* _tmp22_;
					gchar* _tmp23_;
					GString* _tmp24_;
#line 3222 "../src/main.vala"
					php_to_vala_transpiler_mark_function_used (self, function_name);
#line 3223 "../src/main.vala"
					_tmp14_ = output;
#line 3223 "../src/main.vala"
					g_string_append (_tmp14_, "Php.");
#line 3224 "../src/main.vala"
					_tmp15_ = output;
#line 3224 "../src/main.vala"
					g_string_append (_tmp15_, mapped_function_name);
#line 3225 "../src/main.vala"
					_tmp16_ = output;
#line 3225 "../src/main.vala"
					g_string_append (_tmp16_, "(");
#line 3226 "../src/main.vala"
					_tmp18_ = inner_args;
#line 3226 "../src/main.vala"
					_tmp19_ = php_to_vala_transpiler_convert_function_argument_list (self, _tmp18_, php_line_number, &_inner_error0_);
#line 3226 "../src/main.vala"
					_tmp17_ = _tmp19_;
#line 3226 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 36251 "main.c"
						goto __catch0_g_error;
					}
#line 3226 "../src/main.vala"
					_tmp20_ = output;
#line 3226 "../src/main.vala"
					g_string_append (_tmp20_, _tmp17_);
#line 3227 "../src/main.vala"
					_tmp21_ = output;
#line 3227 "../src/main.vala"
					_tmp22_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3227 "../src/main.vala"
					_tmp23_ = _tmp22_;
#line 3227 "../src/main.vala"
					g_string_append (_tmp21_, _tmp23_);
#line 3227 "../src/main.vala"
					_g_free0 (_tmp23_);
#line 3228 "../src/main.vala"
					_tmp24_ = output;
#line 3228 "../src/main.vala"
					g_string_append (_tmp24_, ")");
#line 3221 "../src/main.vala"
					_g_free0 (_tmp17_);
#line 36274 "main.c"
				}
				goto __finally0;
				__catch0_g_error:
				{
					GString* _tmp25_;
					gchar* _tmp26_;
					gchar* _tmp27_;
#line 3221 "../src/main.vala"
					g_clear_error (&_inner_error0_);
#line 3230 "../src/main.vala"
					_tmp25_ = output;
#line 3230 "../src/main.vala"
					_tmp26_ = string_substring (expression, (glong) i, (glong) ((close_index - i) + 1));
#line 3230 "../src/main.vala"
					_tmp27_ = _tmp26_;
#line 3230 "../src/main.vala"
					g_string_append (_tmp25_, _tmp27_);
#line 3230 "../src/main.vala"
					_g_free0 (_tmp27_);
#line 36294 "main.c"
				}
				__finally0:
#line 3221 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3221 "../src/main.vala"
					_g_free0 (inner_args);
#line 3221 "../src/main.vala"
					_g_string_free0 (output);
#line 3221 "../src/main.vala"
					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 3221 "../src/main.vala"
					g_clear_error (&_inner_error0_);
#line 3221 "../src/main.vala"
					return NULL;
#line 36309 "main.c"
				}
#line 3232 "../src/main.vala"
				i = close_index + 1;
#line 3233 "../src/main.vala"
				_g_free0 (inner_args);
#line 3233 "../src/main.vala"
				continue;
#line 36317 "main.c"
			}
		}
#line 3237 "../src/main.vala"
		_tmp28_ = output;
#line 3237 "../src/main.vala"
		g_string_append_c (_tmp28_, string_get (expression, (glong) i));
#line 3238 "../src/main.vala"
		_tmp29_ = i;
#line 3238 "../src/main.vala"
		i = _tmp29_ + 1;
#line 36328 "main.c"
	}
#line 3240 "../src/main.vala"
	_tmp30_ = output;
#line 3240 "../src/main.vala"
	_tmp31_ = _tmp30_->str;
#line 3240 "../src/main.vala"
	_tmp32_ = g_strdup (_tmp31_);
#line 3240 "../src/main.vala"
	result = _tmp32_;
#line 3240 "../src/main.vala"
	_g_string_free0 (output);
#line 3240 "../src/main.vala"
	return result;
#line 36342 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_inline_function_call (PhpToValaTranspiler* self,
                                                     const gchar* expression,
                                                     const gchar* function_name,
                                                     gint php_line_number)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	FunctionBinding* _tmp2_;
	GString* output = NULL;
	GString* _tmp4_;
	gint i = 0;
	GString* _tmp42_;
	const gchar* _tmp43_;
	gchar* _tmp44_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 3243 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3243 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3243 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3244 "../src/main.vala"
	_tmp0_ = self->priv->function_bindings;
#line 3244 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, function_name);
#line 3244 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 3245 "../src/main.vala"
	_tmp2_ = binding;
#line 3245 "../src/main.vala"
	if (_tmp2_ == NULL) {
#line 36379 "main.c"
		gchar* _tmp3_;
#line 3246 "../src/main.vala"
		_tmp3_ = g_strdup (expression);
#line 3246 "../src/main.vala"
		result = _tmp3_;
#line 3246 "../src/main.vala"
		_g_object_unref0 (binding);
#line 3246 "../src/main.vala"
		return result;
#line 36389 "main.c"
	}
#line 3249 "../src/main.vala"
	_tmp4_ = g_string_new ("");
#line 3249 "../src/main.vala"
	output = _tmp4_;
#line 3250 "../src/main.vala"
	i = 0;
#line 3251 "../src/main.vala"
	while (TRUE) {
#line 36399 "main.c"
		gint _tmp5_;
		gint _tmp6_;
		gboolean _tmp7_ = FALSE;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gboolean _tmp12_;
		GString* _tmp40_;
		gint _tmp41_;
#line 3251 "../src/main.vala"
		_tmp5_ = strlen (expression);
#line 3251 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3251 "../src/main.vala"
		if (!(i < _tmp6_)) {
#line 3251 "../src/main.vala"
			break;
#line 36418 "main.c"
		}
#line 3252 "../src/main.vala"
		_tmp8_ = string_substring (expression, (glong) i, (glong) -1);
#line 3252 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 3252 "../src/main.vala"
		_tmp10_ = g_strconcat (function_name, "(", NULL);
#line 3252 "../src/main.vala"
		_tmp11_ = _tmp10_;
#line 3252 "../src/main.vala"
		_tmp12_ = g_str_has_prefix (_tmp9_, _tmp11_);
#line 3252 "../src/main.vala"
		_g_free0 (_tmp11_);
#line 3252 "../src/main.vala"
		_g_free0 (_tmp9_);
#line 3252 "../src/main.vala"
		if (_tmp12_) {
#line 36436 "main.c"
			gboolean _tmp13_ = FALSE;
#line 3253 "../src/main.vala"
			if (i == 0) {
#line 3253 "../src/main.vala"
				_tmp13_ = TRUE;
#line 36442 "main.c"
			} else {
				gboolean _tmp14_ = FALSE;
#line 3253 "../src/main.vala"
				if (!php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (i - 1)))) {
#line 3253 "../src/main.vala"
					_tmp14_ = string_get (expression, (glong) (i - 1)) != '.';
#line 36449 "main.c"
				} else {
#line 3253 "../src/main.vala"
					_tmp14_ = FALSE;
#line 36453 "main.c"
				}
#line 3253 "../src/main.vala"
				_tmp13_ = _tmp14_;
#line 36457 "main.c"
			}
#line 3253 "../src/main.vala"
			_tmp7_ = _tmp13_;
#line 36461 "main.c"
		} else {
#line 3252 "../src/main.vala"
			_tmp7_ = FALSE;
#line 36465 "main.c"
		}
#line 3252 "../src/main.vala"
		if (_tmp7_) {
#line 36469 "main.c"
			gint open_index = 0;
			gint _tmp15_;
			gint _tmp16_;
			gint close_index = 0;
#line 3254 "../src/main.vala"
			_tmp15_ = strlen (function_name);
#line 3254 "../src/main.vala"
			_tmp16_ = _tmp15_;
#line 3254 "../src/main.vala"
			open_index = i + _tmp16_;
#line 3255 "../src/main.vala"
			close_index = php_to_vala_transpiler_find_matching_paren (expression, open_index);
#line 3256 "../src/main.vala"
			if (close_index > open_index) {
#line 36484 "main.c"
				gchar* inner_args = NULL;
				gchar* _tmp17_;
#line 3257 "../src/main.vala"
				_tmp17_ = string_substring (expression, (glong) (open_index + 1), (glong) ((close_index - open_index) - 1));
#line 3257 "../src/main.vala"
				inner_args = _tmp17_;
#line 36491 "main.c"
				{
					gchar* special = NULL;
					gchar* _tmp18_;
					gchar* _tmp19_;
					const gchar* _tmp20_;
					gchar* _tmp21_;
					gchar* _tmp22_;
					gchar* _tmp23_;
					gchar* _tmp24_;
					gchar* _tmp25_;
					gchar* _tmp26_;
					const gchar* _tmp27_;
					GString* _tmp30_;
					FunctionBinding* _tmp31_;
					gchar* _tmp32_;
					gchar* _tmp33_;
					GString* _tmp34_;
					gchar* _tmp35_ = NULL;
					const gchar* _tmp36_;
					gchar* _tmp37_;
					GString* _tmp38_;
					GString* _tmp39_;
#line 3259 "../src/main.vala"
					_tmp18_ = g_strconcat (function_name, "(", NULL);
#line 3259 "../src/main.vala"
					_tmp19_ = _tmp18_;
#line 3259 "../src/main.vala"
					_tmp20_ = inner_args;
#line 3259 "../src/main.vala"
					_tmp21_ = g_strconcat (_tmp19_, _tmp20_, NULL);
#line 3259 "../src/main.vala"
					_tmp22_ = _tmp21_;
#line 3259 "../src/main.vala"
					_tmp23_ = g_strconcat (_tmp22_, ")", NULL);
#line 3259 "../src/main.vala"
					_tmp24_ = _tmp23_;
#line 3259 "../src/main.vala"
					_tmp25_ = php_to_vala_transpiler_convert_special_function_expression (self, _tmp24_, php_line_number, &_inner_error0_);
#line 3259 "../src/main.vala"
					_tmp26_ = _tmp25_;
#line 3259 "../src/main.vala"
					_g_free0 (_tmp24_);
#line 3259 "../src/main.vala"
					_g_free0 (_tmp22_);
#line 3259 "../src/main.vala"
					_g_free0 (_tmp19_);
#line 3259 "../src/main.vala"
					special = _tmp26_;
#line 3259 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 36542 "main.c"
						goto __catch0_g_error;
					}
#line 3260 "../src/main.vala"
					_tmp27_ = special;
#line 3260 "../src/main.vala"
					if (_tmp27_ != NULL) {
#line 36549 "main.c"
						GString* _tmp28_;
						const gchar* _tmp29_;
#line 3261 "../src/main.vala"
						_tmp28_ = output;
#line 3261 "../src/main.vala"
						_tmp29_ = special;
#line 3261 "../src/main.vala"
						g_string_append (_tmp28_, _tmp29_);
#line 3262 "../src/main.vala"
						i = close_index + 1;
#line 3263 "../src/main.vala"
						_g_free0 (special);
#line 3263 "../src/main.vala"
						_g_free0 (inner_args);
#line 3263 "../src/main.vala"
						continue;
#line 36566 "main.c"
					}
#line 3265 "../src/main.vala"
					php_to_vala_transpiler_mark_function_used (self, function_name);
#line 3266 "../src/main.vala"
					_tmp30_ = output;
#line 3266 "../src/main.vala"
					_tmp31_ = binding;
#line 3266 "../src/main.vala"
					_tmp32_ = function_binding_call_name (_tmp31_, function_name);
#line 3266 "../src/main.vala"
					_tmp33_ = _tmp32_;
#line 3266 "../src/main.vala"
					g_string_append (_tmp30_, _tmp33_);
#line 3266 "../src/main.vala"
					_g_free0 (_tmp33_);
#line 3267 "../src/main.vala"
					_tmp34_ = output;
#line 3267 "../src/main.vala"
					g_string_append (_tmp34_, "(");
#line 3268 "../src/main.vala"
					_tmp36_ = inner_args;
#line 3268 "../src/main.vala"
					_tmp37_ = php_to_vala_transpiler_convert_function_args (self, function_name, _tmp36_, php_line_number, &_inner_error0_);
#line 3268 "../src/main.vala"
					_tmp35_ = _tmp37_;
#line 3268 "../src/main.vala"
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3268 "../src/main.vala"
						_g_free0 (special);
#line 36596 "main.c"
						goto __catch0_g_error;
					}
#line 3268 "../src/main.vala"
					_tmp38_ = output;
#line 3268 "../src/main.vala"
					g_string_append (_tmp38_, _tmp35_);
#line 3269 "../src/main.vala"
					_tmp39_ = output;
#line 3269 "../src/main.vala"
					g_string_append (_tmp39_, ")");
#line 3270 "../src/main.vala"
					i = close_index + 1;
#line 3271 "../src/main.vala"
					_g_free0 (_tmp35_);
#line 3271 "../src/main.vala"
					_g_free0 (special);
#line 3271 "../src/main.vala"
					_g_free0 (inner_args);
#line 3271 "../src/main.vala"
					continue;
#line 36617 "main.c"
				}
				goto __finally0;
				__catch0_g_error:
				{
#line 3258 "../src/main.vala"
					g_clear_error (&_inner_error0_);
#line 36624 "main.c"
				}
				__finally0:
#line 3258 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3258 "../src/main.vala"
					_g_free0 (inner_args);
#line 3258 "../src/main.vala"
					_g_string_free0 (output);
#line 3258 "../src/main.vala"
					_g_object_unref0 (binding);
#line 3258 "../src/main.vala"
					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 3258 "../src/main.vala"
					g_clear_error (&_inner_error0_);
#line 3258 "../src/main.vala"
					return NULL;
#line 36641 "main.c"
				}
#line 3256 "../src/main.vala"
				_g_free0 (inner_args);
#line 36645 "main.c"
			}
		}
#line 3276 "../src/main.vala"
		_tmp40_ = output;
#line 3276 "../src/main.vala"
		g_string_append_c (_tmp40_, string_get (expression, (glong) i));
#line 3277 "../src/main.vala"
		_tmp41_ = i;
#line 3277 "../src/main.vala"
		i = _tmp41_ + 1;
#line 36656 "main.c"
	}
#line 3279 "../src/main.vala"
	_tmp42_ = output;
#line 3279 "../src/main.vala"
	_tmp43_ = _tmp42_->str;
#line 3279 "../src/main.vala"
	_tmp44_ = g_strdup (_tmp43_);
#line 3279 "../src/main.vala"
	result = _tmp44_;
#line 3279 "../src/main.vala"
	_g_string_free0 (output);
#line 3279 "../src/main.vala"
	_g_object_unref0 (binding);
#line 3279 "../src/main.vala"
	return result;
#line 36672 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_function_token (const gchar* expression,
                                               const gchar* function_name,
                                               const gchar* replacement_name)
{
	GString* output = NULL;
	GString* _tmp0_;
	gint i = 0;
	GString* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* result;
#line 3282 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3282 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3282 "../src/main.vala"
	g_return_val_if_fail (replacement_name != NULL, NULL);
#line 3283 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 3283 "../src/main.vala"
	output = _tmp0_;
#line 3284 "../src/main.vala"
	i = 0;
#line 3285 "../src/main.vala"
	while (TRUE) {
#line 36701 "main.c"
		gint _tmp1_;
		gint _tmp2_;
		gboolean _tmp3_ = FALSE;
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gboolean _tmp8_;
		GString* _tmp15_;
		gint _tmp16_;
#line 3285 "../src/main.vala"
		_tmp1_ = strlen (expression);
#line 3285 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 3285 "../src/main.vala"
		if (!(i < _tmp2_)) {
#line 3285 "../src/main.vala"
			break;
#line 36720 "main.c"
		}
#line 3286 "../src/main.vala"
		_tmp4_ = string_substring (expression, (glong) i, (glong) -1);
#line 3286 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3286 "../src/main.vala"
		_tmp6_ = g_strconcat (function_name, "(", NULL);
#line 3286 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 3286 "../src/main.vala"
		_tmp8_ = g_str_has_prefix (_tmp5_, _tmp7_);
#line 3286 "../src/main.vala"
		_g_free0 (_tmp7_);
#line 3286 "../src/main.vala"
		_g_free0 (_tmp5_);
#line 3286 "../src/main.vala"
		if (_tmp8_) {
#line 36738 "main.c"
			gboolean _tmp9_ = FALSE;
#line 3287 "../src/main.vala"
			if (i == 0) {
#line 3287 "../src/main.vala"
				_tmp9_ = TRUE;
#line 36744 "main.c"
			} else {
				gboolean _tmp10_ = FALSE;
#line 3287 "../src/main.vala"
				if (!php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (i - 1)))) {
#line 3287 "../src/main.vala"
					_tmp10_ = string_get (expression, (glong) (i - 1)) != '.';
#line 36751 "main.c"
				} else {
#line 3287 "../src/main.vala"
					_tmp10_ = FALSE;
#line 36755 "main.c"
				}
#line 3287 "../src/main.vala"
				_tmp9_ = _tmp10_;
#line 36759 "main.c"
			}
#line 3287 "../src/main.vala"
			_tmp3_ = _tmp9_;
#line 36763 "main.c"
		} else {
#line 3286 "../src/main.vala"
			_tmp3_ = FALSE;
#line 36767 "main.c"
		}
#line 3286 "../src/main.vala"
		if (_tmp3_) {
#line 36771 "main.c"
			GString* _tmp11_;
			GString* _tmp12_;
			gint _tmp13_;
			gint _tmp14_;
#line 3288 "../src/main.vala"
			_tmp11_ = output;
#line 3288 "../src/main.vala"
			g_string_append (_tmp11_, replacement_name);
#line 3289 "../src/main.vala"
			_tmp12_ = output;
#line 3289 "../src/main.vala"
			g_string_append_c (_tmp12_, '(');
#line 3290 "../src/main.vala"
			_tmp13_ = strlen (function_name);
#line 3290 "../src/main.vala"
			_tmp14_ = _tmp13_;
#line 3290 "../src/main.vala"
			i += _tmp14_ + 1;
#line 3291 "../src/main.vala"
			continue;
#line 36792 "main.c"
		}
#line 3293 "../src/main.vala"
		_tmp15_ = output;
#line 3293 "../src/main.vala"
		g_string_append_c (_tmp15_, string_get (expression, (glong) i));
#line 3294 "../src/main.vala"
		_tmp16_ = i;
#line 3294 "../src/main.vala"
		i = _tmp16_ + 1;
#line 36802 "main.c"
	}
#line 3296 "../src/main.vala"
	_tmp17_ = output;
#line 3296 "../src/main.vala"
	_tmp18_ = _tmp17_->str;
#line 3296 "../src/main.vala"
	_tmp19_ = g_strdup (_tmp18_);
#line 3296 "../src/main.vala"
	result = _tmp19_;
#line 3296 "../src/main.vala"
	_g_string_free0 (output);
#line 3296 "../src/main.vala"
	return result;
#line 36816 "main.c"
}

static void
php_to_vala_transpiler_mark_function_used (PhpToValaTranspiler* self,
                                           const gchar* function_name)
{
	GeeHashMap* _tmp0_;
#line 3299 "../src/main.vala"
	g_return_if_fail (self != NULL);
#line 3299 "../src/main.vala"
	g_return_if_fail (function_name != NULL);
#line 3300 "../src/main.vala"
	_tmp0_ = self->priv->used_function_lookup;
#line 3300 "../src/main.vala"
	if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, function_name)) {
#line 36832 "main.c"
		GeeHashMap* _tmp1_;
		GeeArrayList* _tmp2_;
#line 3301 "../src/main.vala"
		_tmp1_ = self->priv->used_function_lookup;
#line 3301 "../src/main.vala"
		gee_abstract_map_set ((GeeAbstractMap*) _tmp1_, function_name, (gpointer) ((gintptr) TRUE));
#line 3302 "../src/main.vala"
		_tmp2_ = self->priv->used_function_names;
#line 3302 "../src/main.vala"
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, function_name);
#line 36843 "main.c"
	}
}

static gchar*
php_to_vala_transpiler_convert_function_args (PhpToValaTranspiler* self,
                                              const gchar* function_name,
                                              const gchar* args,
                                              gint php_line_number,
                                              GError** error)
{
	gchar* converted_args = NULL;
	gchar* _tmp0_;
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp1_;
	gpointer _tmp2_;
	gboolean _tmp3_ = FALSE;
	FunctionBinding* _tmp4_;
	gboolean add_source_location = FALSE;
	const gchar* _tmp6_;
	GQuark _tmp8_ = 0U;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label0 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label1 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label2 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label3 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label4 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label5 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label6 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label7 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label8 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label9 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label10 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label11 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label12 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label13 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label14 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label15 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label16 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label17 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label18 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label19 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label20 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label21 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label22 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label23 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label24 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label25 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label26 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label27 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label28 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label29 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label30 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label31 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label32 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label33 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label34 = 0;
#line 3311 "../src/main.vala"
	static GQuark _tmp7_label35 = 0;
#line 36936 "main.c"
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 3306 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3306 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3306 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 3307 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_convert_function_argument_list (self, args, php_line_number, &_inner_error0_);
#line 3307 "../src/main.vala"
	converted_args = _tmp0_;
#line 3307 "../src/main.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3307 "../src/main.vala"
		g_propagate_error (error, _inner_error0_);
#line 3307 "../src/main.vala"
		return NULL;
#line 36955 "main.c"
	}
#line 3308 "../src/main.vala"
	_tmp1_ = self->priv->function_bindings;
#line 3308 "../src/main.vala"
	_tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp1_, function_name);
#line 3308 "../src/main.vala"
	binding = (FunctionBinding*) _tmp2_;
#line 3309 "../src/main.vala"
	_tmp4_ = binding;
#line 3309 "../src/main.vala"
	if (_tmp4_ != NULL) {
#line 36967 "main.c"
		FunctionBinding* _tmp5_;
#line 3309 "../src/main.vala"
		_tmp5_ = binding;
#line 3309 "../src/main.vala"
		_tmp3_ = _tmp5_->source_location_args;
#line 36973 "main.c"
	} else {
#line 3309 "../src/main.vala"
		_tmp3_ = FALSE;
#line 36977 "main.c"
	}
#line 3309 "../src/main.vala"
	add_source_location = _tmp3_;
#line 3311 "../src/main.vala"
	_tmp6_ = function_name;
#line 3311 "../src/main.vala"
	_tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
#line 3311 "../src/main.vala"
	if (_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("class_exists")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 36989 "main.c"
			default:
			{
				const gchar* _tmp9_;
				GeeArrayList* _tmp10_;
				GeeArrayList* _tmp11_;
				gint _tmp12_;
				gint _tmp13_;
				gboolean _tmp14_;
				gchar* _tmp17_ = NULL;
				gchar* _tmp24_;
#line 3313 "../src/main.vala"
				_tmp9_ = converted_args;
#line 3313 "../src/main.vala"
				_tmp10_ = php_to_vala_transpiler_split_top_level (self, _tmp9_, ',');
#line 3313 "../src/main.vala"
				_tmp11_ = _tmp10_;
#line 3313 "../src/main.vala"
				_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
#line 3313 "../src/main.vala"
				_tmp13_ = _tmp12_;
#line 3313 "../src/main.vala"
				_tmp14_ = _tmp13_ == 1;
#line 3313 "../src/main.vala"
				_g_object_unref0 (_tmp11_);
#line 3313 "../src/main.vala"
				if (_tmp14_) {
#line 37016 "main.c"
					const gchar* _tmp15_;
					gchar* _tmp16_;
#line 3314 "../src/main.vala"
					_tmp15_ = converted_args;
#line 3314 "../src/main.vala"
					_tmp16_ = g_strconcat (_tmp15_, ", true", NULL);
#line 3314 "../src/main.vala"
					_g_free0 (converted_args);
#line 3314 "../src/main.vala"
					converted_args = _tmp16_;
#line 37027 "main.c"
				}
#line 3316 "../src/main.vala"
				if (add_source_location) {
#line 37031 "main.c"
					const gchar* _tmp18_;
					gchar* _tmp19_;
					gchar* _tmp20_;
					gchar* _tmp21_;
#line 3316 "../src/main.vala"
					_tmp18_ = converted_args;
#line 3316 "../src/main.vala"
					_tmp19_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3316 "../src/main.vala"
					_tmp20_ = _tmp19_;
#line 3316 "../src/main.vala"
					_tmp21_ = g_strconcat (_tmp18_, _tmp20_, NULL);
#line 3316 "../src/main.vala"
					_g_free0 (_tmp17_);
#line 3316 "../src/main.vala"
					_tmp17_ = _tmp21_;
#line 3316 "../src/main.vala"
					_g_free0 (_tmp20_);
#line 37050 "main.c"
				} else {
					const gchar* _tmp22_;
					gchar* _tmp23_;
#line 3316 "../src/main.vala"
					_tmp22_ = converted_args;
#line 3316 "../src/main.vala"
					_tmp23_ = g_strdup (_tmp22_);
#line 3316 "../src/main.vala"
					_g_free0 (_tmp17_);
#line 3316 "../src/main.vala"
					_tmp17_ = _tmp23_;
#line 37062 "main.c"
				}
#line 3316 "../src/main.vala"
				_tmp24_ = _tmp17_;
#line 3316 "../src/main.vala"
				_tmp17_ = NULL;
#line 3316 "../src/main.vala"
				result = _tmp24_;
#line 3316 "../src/main.vala"
				_g_free0 (_tmp17_);
#line 3316 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3316 "../src/main.vala"
				_g_free0 (converted_args);
#line 3316 "../src/main.vala"
				return result;
#line 37078 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("json_decode")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37084 "main.c"
			default:
			{
				const gchar* _tmp25_;
				const gchar* _tmp32_;
				GeeArrayList* _tmp33_;
				GeeArrayList* _tmp34_;
				gint _tmp35_;
				gint _tmp36_;
				gboolean _tmp37_;
				gchar* _tmp40_ = NULL;
				gchar* _tmp47_;
#line 3318 "../src/main.vala"
				_tmp25_ = converted_args;
#line 3318 "../src/main.vala"
				if (g_strcmp0 (_tmp25_, "") == 0) {
#line 37100 "main.c"
					gchar* _tmp26_ = NULL;
					gchar* _tmp31_;
#line 3319 "../src/main.vala"
					if (add_source_location) {
#line 37105 "main.c"
						gchar* _tmp27_;
						gchar* _tmp28_;
						gchar* _tmp29_;
#line 3319 "../src/main.vala"
						_tmp27_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3319 "../src/main.vala"
						_tmp28_ = _tmp27_;
#line 3319 "../src/main.vala"
						_tmp29_ = string_substring (_tmp28_, (glong) 2, (glong) -1);
#line 3319 "../src/main.vala"
						_g_free0 (_tmp26_);
#line 3319 "../src/main.vala"
						_tmp26_ = _tmp29_;
#line 3319 "../src/main.vala"
						_g_free0 (_tmp28_);
#line 37121 "main.c"
					} else {
						gchar* _tmp30_;
#line 3319 "../src/main.vala"
						_tmp30_ = g_strdup ("");
#line 3319 "../src/main.vala"
						_g_free0 (_tmp26_);
#line 3319 "../src/main.vala"
						_tmp26_ = _tmp30_;
#line 37130 "main.c"
					}
#line 3319 "../src/main.vala"
					_tmp31_ = _tmp26_;
#line 3319 "../src/main.vala"
					_tmp26_ = NULL;
#line 3319 "../src/main.vala"
					result = _tmp31_;
#line 3319 "../src/main.vala"
					_g_free0 (_tmp26_);
#line 3319 "../src/main.vala"
					_g_object_unref0 (binding);
#line 3319 "../src/main.vala"
					_g_free0 (converted_args);
#line 3319 "../src/main.vala"
					return result;
#line 37146 "main.c"
				}
#line 3321 "../src/main.vala"
				_tmp32_ = converted_args;
#line 3321 "../src/main.vala"
				_tmp33_ = php_to_vala_transpiler_split_top_level (self, _tmp32_, ',');
#line 3321 "../src/main.vala"
				_tmp34_ = _tmp33_;
#line 3321 "../src/main.vala"
				_tmp35_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp34_);
#line 3321 "../src/main.vala"
				_tmp36_ = _tmp35_;
#line 3321 "../src/main.vala"
				_tmp37_ = _tmp36_ == 1;
#line 3321 "../src/main.vala"
				_g_object_unref0 (_tmp34_);
#line 3321 "../src/main.vala"
				if (_tmp37_) {
#line 37164 "main.c"
					const gchar* _tmp38_;
					gchar* _tmp39_;
#line 3322 "../src/main.vala"
					_tmp38_ = converted_args;
#line 3322 "../src/main.vala"
					_tmp39_ = g_strconcat (_tmp38_, ", false", NULL);
#line 3322 "../src/main.vala"
					_g_free0 (converted_args);
#line 3322 "../src/main.vala"
					converted_args = _tmp39_;
#line 37175 "main.c"
				}
#line 3324 "../src/main.vala"
				if (add_source_location) {
#line 37179 "main.c"
					const gchar* _tmp41_;
					gchar* _tmp42_;
					gchar* _tmp43_;
					gchar* _tmp44_;
#line 3324 "../src/main.vala"
					_tmp41_ = converted_args;
#line 3324 "../src/main.vala"
					_tmp42_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3324 "../src/main.vala"
					_tmp43_ = _tmp42_;
#line 3324 "../src/main.vala"
					_tmp44_ = g_strconcat (_tmp41_, _tmp43_, NULL);
#line 3324 "../src/main.vala"
					_g_free0 (_tmp40_);
#line 3324 "../src/main.vala"
					_tmp40_ = _tmp44_;
#line 3324 "../src/main.vala"
					_g_free0 (_tmp43_);
#line 37198 "main.c"
				} else {
					const gchar* _tmp45_;
					gchar* _tmp46_;
#line 3324 "../src/main.vala"
					_tmp45_ = converted_args;
#line 3324 "../src/main.vala"
					_tmp46_ = g_strdup (_tmp45_);
#line 3324 "../src/main.vala"
					_g_free0 (_tmp40_);
#line 3324 "../src/main.vala"
					_tmp40_ = _tmp46_;
#line 37210 "main.c"
				}
#line 3324 "../src/main.vala"
				_tmp47_ = _tmp40_;
#line 3324 "../src/main.vala"
				_tmp40_ = NULL;
#line 3324 "../src/main.vala"
				result = _tmp47_;
#line 3324 "../src/main.vala"
				_g_free0 (_tmp40_);
#line 3324 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3324 "../src/main.vala"
				_g_free0 (converted_args);
#line 3324 "../src/main.vala"
				return result;
#line 37226 "main.c"
			}
		}
	} else if ((_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("json_last_error_msg")))) || (_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("phpinfo"))))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37232 "main.c"
			default:
			{
				gchar* _tmp48_ = NULL;
				gchar* _tmp53_;
#line 3327 "../src/main.vala"
				if (add_source_location) {
#line 37239 "main.c"
					gchar* _tmp49_;
					gchar* _tmp50_;
					gchar* _tmp51_;
#line 3327 "../src/main.vala"
					_tmp49_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3327 "../src/main.vala"
					_tmp50_ = _tmp49_;
#line 3327 "../src/main.vala"
					_tmp51_ = string_substring (_tmp50_, (glong) 2, (glong) -1);
#line 3327 "../src/main.vala"
					_g_free0 (_tmp48_);
#line 3327 "../src/main.vala"
					_tmp48_ = _tmp51_;
#line 3327 "../src/main.vala"
					_g_free0 (_tmp50_);
#line 37255 "main.c"
				} else {
					gchar* _tmp52_;
#line 3327 "../src/main.vala"
					_tmp52_ = g_strdup ("");
#line 3327 "../src/main.vala"
					_g_free0 (_tmp48_);
#line 3327 "../src/main.vala"
					_tmp48_ = _tmp52_;
#line 37264 "main.c"
				}
#line 3327 "../src/main.vala"
				_tmp53_ = _tmp48_;
#line 3327 "../src/main.vala"
				_tmp48_ = NULL;
#line 3327 "../src/main.vala"
				result = _tmp53_;
#line 3327 "../src/main.vala"
				_g_free0 (_tmp48_);
#line 3327 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3327 "../src/main.vala"
				_g_free0 (converted_args);
#line 3327 "../src/main.vala"
				return result;
#line 37280 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("token_get_all")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37286 "main.c"
			default:
			{
				GeeArrayList* token_parts = NULL;
				const gchar* _tmp54_;
				GeeArrayList* _tmp55_;
				GeeArrayList* _tmp56_;
				gint _tmp57_;
				gint _tmp58_;
				gchar* _tmp79_ = NULL;
				gchar* _tmp86_;
#line 3329 "../src/main.vala"
				_tmp54_ = converted_args;
#line 3329 "../src/main.vala"
				_tmp55_ = php_to_vala_transpiler_split_top_level (self, _tmp54_, ',');
#line 3329 "../src/main.vala"
				token_parts = _tmp55_;
#line 3330 "../src/main.vala"
				_tmp56_ = token_parts;
#line 3330 "../src/main.vala"
				_tmp57_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp56_);
#line 3330 "../src/main.vala"
				_tmp58_ = _tmp57_;
#line 3330 "../src/main.vala"
				if (_tmp58_ == 1) {
#line 37311 "main.c"
					const gchar* _tmp59_;
					gchar* _tmp60_;
#line 3331 "../src/main.vala"
					_tmp59_ = converted_args;
#line 3331 "../src/main.vala"
					_tmp60_ = g_strconcat (_tmp59_, ", false", NULL);
#line 3331 "../src/main.vala"
					_g_free0 (converted_args);
#line 3331 "../src/main.vala"
					converted_args = _tmp60_;
#line 37322 "main.c"
				} else {
					GeeArrayList* _tmp61_;
					gint _tmp62_;
					gint _tmp63_;
#line 3332 "../src/main.vala"
					_tmp61_ = token_parts;
#line 3332 "../src/main.vala"
					_tmp62_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp61_);
#line 3332 "../src/main.vala"
					_tmp63_ = _tmp62_;
#line 3332 "../src/main.vala"
					if (_tmp63_ == 2) {
#line 37335 "main.c"
						gchar* parse_arg = NULL;
						GeeArrayList* _tmp64_;
						gpointer _tmp65_;
						gchar* _tmp66_;
						gchar* _tmp67_;
						gchar* _tmp68_;
						gboolean _tmp69_ = FALSE;
						const gchar* _tmp70_;
#line 3333 "../src/main.vala"
						_tmp64_ = token_parts;
#line 3333 "../src/main.vala"
						_tmp65_ = gee_abstract_list_get ((GeeAbstractList*) _tmp64_, 1);
#line 3333 "../src/main.vala"
						_tmp66_ = (gchar*) _tmp65_;
#line 3333 "../src/main.vala"
						_tmp67_ = string_strip (_tmp66_);
#line 3333 "../src/main.vala"
						_tmp68_ = _tmp67_;
#line 3333 "../src/main.vala"
						_g_free0 (_tmp66_);
#line 3333 "../src/main.vala"
						parse_arg = _tmp68_;
#line 3334 "../src/main.vala"
						_tmp70_ = parse_arg;
#line 3334 "../src/main.vala"
						if (g_strcmp0 (_tmp70_, "true") != 0) {
#line 37362 "main.c"
							const gchar* _tmp71_;
#line 3334 "../src/main.vala"
							_tmp71_ = parse_arg;
#line 3334 "../src/main.vala"
							_tmp69_ = g_strcmp0 (_tmp71_, "false") != 0;
#line 37368 "main.c"
						} else {
#line 3334 "../src/main.vala"
							_tmp69_ = FALSE;
#line 37372 "main.c"
						}
#line 3334 "../src/main.vala"
						if (_tmp69_) {
#line 37376 "main.c"
							GeeArrayList* _tmp72_;
							gpointer _tmp73_;
							gchar* _tmp74_;
							gchar* _tmp75_;
							gchar* _tmp76_;
							const gchar* _tmp77_;
							gchar* _tmp78_;
#line 3335 "../src/main.vala"
							_tmp72_ = token_parts;
#line 3335 "../src/main.vala"
							_tmp73_ = gee_abstract_list_get ((GeeAbstractList*) _tmp72_, 0);
#line 3335 "../src/main.vala"
							_tmp74_ = (gchar*) _tmp73_;
#line 3335 "../src/main.vala"
							_tmp75_ = string_strip (_tmp74_);
#line 3335 "../src/main.vala"
							_tmp76_ = _tmp75_;
#line 3335 "../src/main.vala"
							_tmp77_ = parse_arg;
#line 3335 "../src/main.vala"
							_tmp78_ = g_strdup_printf ("%s, %s != 0", _tmp76_, _tmp77_);
#line 3335 "../src/main.vala"
							_g_free0 (converted_args);
#line 3335 "../src/main.vala"
							converted_args = _tmp78_;
#line 3335 "../src/main.vala"
							_g_free0 (_tmp76_);
#line 3335 "../src/main.vala"
							_g_free0 (_tmp74_);
#line 37406 "main.c"
						}
#line 3332 "../src/main.vala"
						_g_free0 (parse_arg);
#line 37410 "main.c"
					}
				}
#line 3338 "../src/main.vala"
				if (add_source_location) {
#line 37415 "main.c"
					const gchar* _tmp80_;
					gchar* _tmp81_;
					gchar* _tmp82_;
					gchar* _tmp83_;
#line 3338 "../src/main.vala"
					_tmp80_ = converted_args;
#line 3338 "../src/main.vala"
					_tmp81_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3338 "../src/main.vala"
					_tmp82_ = _tmp81_;
#line 3338 "../src/main.vala"
					_tmp83_ = g_strconcat (_tmp80_, _tmp82_, NULL);
#line 3338 "../src/main.vala"
					_g_free0 (_tmp79_);
#line 3338 "../src/main.vala"
					_tmp79_ = _tmp83_;
#line 3338 "../src/main.vala"
					_g_free0 (_tmp82_);
#line 37434 "main.c"
				} else {
					const gchar* _tmp84_;
					gchar* _tmp85_;
#line 3338 "../src/main.vala"
					_tmp84_ = converted_args;
#line 3338 "../src/main.vala"
					_tmp85_ = g_strdup (_tmp84_);
#line 3338 "../src/main.vala"
					_g_free0 (_tmp79_);
#line 3338 "../src/main.vala"
					_tmp79_ = _tmp85_;
#line 37446 "main.c"
				}
#line 3338 "../src/main.vala"
				_tmp86_ = _tmp79_;
#line 3338 "../src/main.vala"
				_tmp79_ = NULL;
#line 3338 "../src/main.vala"
				result = _tmp86_;
#line 3338 "../src/main.vala"
				_g_free0 (_tmp79_);
#line 3338 "../src/main.vala"
				_g_object_unref0 (token_parts);
#line 3338 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3338 "../src/main.vala"
				_g_free0 (converted_args);
#line 3338 "../src/main.vala"
				return result;
#line 37464 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("var_dump")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37470 "main.c"
			default:
			{
				gchar* _tmp87_ = NULL;
				gchar* _tmp94_;
#line 3340 "../src/main.vala"
				if (add_source_location) {
#line 37477 "main.c"
					const gchar* _tmp88_;
					gchar* _tmp89_;
					gchar* _tmp90_;
					gchar* _tmp91_;
#line 3340 "../src/main.vala"
					_tmp88_ = converted_args;
#line 3340 "../src/main.vala"
					_tmp89_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3340 "../src/main.vala"
					_tmp90_ = _tmp89_;
#line 3340 "../src/main.vala"
					_tmp91_ = g_strconcat (_tmp88_, _tmp90_, NULL);
#line 3340 "../src/main.vala"
					_g_free0 (_tmp87_);
#line 3340 "../src/main.vala"
					_tmp87_ = _tmp91_;
#line 3340 "../src/main.vala"
					_g_free0 (_tmp90_);
#line 37496 "main.c"
				} else {
					const gchar* _tmp92_;
					gchar* _tmp93_;
#line 3340 "../src/main.vala"
					_tmp92_ = converted_args;
#line 3340 "../src/main.vala"
					_tmp93_ = g_strdup (_tmp92_);
#line 3340 "../src/main.vala"
					_g_free0 (_tmp87_);
#line 3340 "../src/main.vala"
					_tmp87_ = _tmp93_;
#line 37508 "main.c"
				}
#line 3340 "../src/main.vala"
				_tmp94_ = _tmp87_;
#line 3340 "../src/main.vala"
				_tmp87_ = NULL;
#line 3340 "../src/main.vala"
				result = _tmp94_;
#line 3340 "../src/main.vala"
				_g_free0 (_tmp87_);
#line 3340 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3340 "../src/main.vala"
				_g_free0 (converted_args);
#line 3340 "../src/main.vala"
				return result;
#line 37524 "main.c"
			}
		}
	} else if ((_tmp8_ == ((0 != _tmp7_label6) ? _tmp7_label6 : (_tmp7_label6 = g_quark_from_static_string ("print_r")))) || (_tmp8_ == ((0 != _tmp7_label7) ? _tmp7_label7 : (_tmp7_label7 = g_quark_from_static_string ("var_export"))))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37530 "main.c"
			default:
			{
				const gchar* _tmp95_;
				GeeArrayList* _tmp96_;
				GeeArrayList* _tmp97_;
				gint _tmp98_;
				gint _tmp99_;
				gboolean _tmp100_;
				gchar* _tmp103_ = NULL;
				gchar* _tmp110_;
#line 3343 "../src/main.vala"
				_tmp95_ = converted_args;
#line 3343 "../src/main.vala"
				_tmp96_ = php_to_vala_transpiler_split_top_level (self, _tmp95_, ',');
#line 3343 "../src/main.vala"
				_tmp97_ = _tmp96_;
#line 3343 "../src/main.vala"
				_tmp98_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp97_);
#line 3343 "../src/main.vala"
				_tmp99_ = _tmp98_;
#line 3343 "../src/main.vala"
				_tmp100_ = _tmp99_ == 1;
#line 3343 "../src/main.vala"
				_g_object_unref0 (_tmp97_);
#line 3343 "../src/main.vala"
				if (_tmp100_) {
#line 37557 "main.c"
					const gchar* _tmp101_;
					gchar* _tmp102_;
#line 3344 "../src/main.vala"
					_tmp101_ = converted_args;
#line 3344 "../src/main.vala"
					_tmp102_ = g_strconcat (_tmp101_, ", false", NULL);
#line 3344 "../src/main.vala"
					_g_free0 (converted_args);
#line 3344 "../src/main.vala"
					converted_args = _tmp102_;
#line 37568 "main.c"
				}
#line 3346 "../src/main.vala"
				if (add_source_location) {
#line 37572 "main.c"
					const gchar* _tmp104_;
					gchar* _tmp105_;
					gchar* _tmp106_;
					gchar* _tmp107_;
#line 3346 "../src/main.vala"
					_tmp104_ = converted_args;
#line 3346 "../src/main.vala"
					_tmp105_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3346 "../src/main.vala"
					_tmp106_ = _tmp105_;
#line 3346 "../src/main.vala"
					_tmp107_ = g_strconcat (_tmp104_, _tmp106_, NULL);
#line 3346 "../src/main.vala"
					_g_free0 (_tmp103_);
#line 3346 "../src/main.vala"
					_tmp103_ = _tmp107_;
#line 3346 "../src/main.vala"
					_g_free0 (_tmp106_);
#line 37591 "main.c"
				} else {
					const gchar* _tmp108_;
					gchar* _tmp109_;
#line 3346 "../src/main.vala"
					_tmp108_ = converted_args;
#line 3346 "../src/main.vala"
					_tmp109_ = g_strdup (_tmp108_);
#line 3346 "../src/main.vala"
					_g_free0 (_tmp103_);
#line 3346 "../src/main.vala"
					_tmp103_ = _tmp109_;
#line 37603 "main.c"
				}
#line 3346 "../src/main.vala"
				_tmp110_ = _tmp103_;
#line 3346 "../src/main.vala"
				_tmp103_ = NULL;
#line 3346 "../src/main.vala"
				result = _tmp110_;
#line 3346 "../src/main.vala"
				_g_free0 (_tmp103_);
#line 3346 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3346 "../src/main.vala"
				_g_free0 (converted_args);
#line 3346 "../src/main.vala"
				return result;
#line 37619 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label8) ? _tmp7_label8 : (_tmp7_label8 = g_quark_from_static_string ("round")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37625 "main.c"
			default:
			{
				GeeArrayList* parts = NULL;
				const gchar* _tmp111_;
				GeeArrayList* _tmp112_;
				GeeArrayList* _tmp113_;
				gint _tmp114_;
				gint _tmp115_;
				GeeArrayList* _tmp118_;
				gint _tmp119_;
				gint _tmp120_;
				gchar* _tmp129_ = NULL;
				gchar* _tmp136_;
#line 3348 "../src/main.vala"
				_tmp111_ = converted_args;
#line 3348 "../src/main.vala"
				_tmp112_ = php_to_vala_transpiler_split_top_level (self, _tmp111_, ',');
#line 3348 "../src/main.vala"
				parts = _tmp112_;
#line 3349 "../src/main.vala"
				_tmp113_ = parts;
#line 3349 "../src/main.vala"
				_tmp114_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp113_);
#line 3349 "../src/main.vala"
				_tmp115_ = _tmp114_;
#line 3349 "../src/main.vala"
				if (_tmp115_ == 1) {
#line 37653 "main.c"
					const gchar* _tmp116_;
					gchar* _tmp117_;
#line 3350 "../src/main.vala"
					_tmp116_ = converted_args;
#line 3350 "../src/main.vala"
					_tmp117_ = g_strconcat (_tmp116_, ", 0", NULL);
#line 3350 "../src/main.vala"
					_g_free0 (converted_args);
#line 3350 "../src/main.vala"
					converted_args = _tmp117_;
#line 37664 "main.c"
				}
#line 3352 "../src/main.vala"
				_tmp118_ = parts;
#line 3352 "../src/main.vala"
				_tmp119_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp118_);
#line 3352 "../src/main.vala"
				_tmp120_ = _tmp119_;
#line 3352 "../src/main.vala"
				if (_tmp120_ <= 2) {
#line 37674 "main.c"
					const gchar* _tmp121_;
					gchar* _tmp122_;
					gchar* _tmp123_;
					gchar* _tmp124_;
					gchar* _tmp125_;
					gchar* _tmp126_;
					gchar* _tmp127_;
					gchar* _tmp128_;
#line 3353 "../src/main.vala"
					_tmp121_ = converted_args;
#line 3353 "../src/main.vala"
					_tmp122_ = php_to_vala_transpiler_enum_prefix_for_function (self, function_name);
#line 3353 "../src/main.vala"
					_tmp123_ = _tmp122_;
#line 3353 "../src/main.vala"
					_tmp124_ = g_strconcat (", ", _tmp123_, NULL);
#line 3353 "../src/main.vala"
					_tmp125_ = _tmp124_;
#line 3353 "../src/main.vala"
					_tmp126_ = g_strconcat (_tmp125_, ".RoundMode.HALF_UP", NULL);
#line 3353 "../src/main.vala"
					_tmp127_ = _tmp126_;
#line 3353 "../src/main.vala"
					_tmp128_ = g_strconcat (_tmp121_, _tmp127_, NULL);
#line 3353 "../src/main.vala"
					_g_free0 (converted_args);
#line 3353 "../src/main.vala"
					converted_args = _tmp128_;
#line 3353 "../src/main.vala"
					_g_free0 (_tmp127_);
#line 3353 "../src/main.vala"
					_g_free0 (_tmp125_);
#line 3353 "../src/main.vala"
					_g_free0 (_tmp123_);
#line 37709 "main.c"
				}
#line 3355 "../src/main.vala"
				if (add_source_location) {
#line 37713 "main.c"
					const gchar* _tmp130_;
					gchar* _tmp131_;
					gchar* _tmp132_;
					gchar* _tmp133_;
#line 3355 "../src/main.vala"
					_tmp130_ = converted_args;
#line 3355 "../src/main.vala"
					_tmp131_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3355 "../src/main.vala"
					_tmp132_ = _tmp131_;
#line 3355 "../src/main.vala"
					_tmp133_ = g_strconcat (_tmp130_, _tmp132_, NULL);
#line 3355 "../src/main.vala"
					_g_free0 (_tmp129_);
#line 3355 "../src/main.vala"
					_tmp129_ = _tmp133_;
#line 3355 "../src/main.vala"
					_g_free0 (_tmp132_);
#line 37732 "main.c"
				} else {
					const gchar* _tmp134_;
					gchar* _tmp135_;
#line 3355 "../src/main.vala"
					_tmp134_ = converted_args;
#line 3355 "../src/main.vala"
					_tmp135_ = g_strdup (_tmp134_);
#line 3355 "../src/main.vala"
					_g_free0 (_tmp129_);
#line 3355 "../src/main.vala"
					_tmp129_ = _tmp135_;
#line 37744 "main.c"
				}
#line 3355 "../src/main.vala"
				_tmp136_ = _tmp129_;
#line 3355 "../src/main.vala"
				_tmp129_ = NULL;
#line 3355 "../src/main.vala"
				result = _tmp136_;
#line 3355 "../src/main.vala"
				_g_free0 (_tmp129_);
#line 3355 "../src/main.vala"
				_g_object_unref0 (parts);
#line 3355 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3355 "../src/main.vala"
				_g_free0 (converted_args);
#line 3355 "../src/main.vala"
				return result;
#line 37762 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label9) ? _tmp7_label9 : (_tmp7_label9 = g_quark_from_static_string ("serialize")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37768 "main.c"
			default:
			{
				gchar* _tmp137_ = NULL;
				gchar* _tmp144_;
#line 3357 "../src/main.vala"
				if (add_source_location) {
#line 37775 "main.c"
					const gchar* _tmp138_;
					gchar* _tmp139_;
					gchar* _tmp140_;
					gchar* _tmp141_;
#line 3357 "../src/main.vala"
					_tmp138_ = converted_args;
#line 3357 "../src/main.vala"
					_tmp139_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3357 "../src/main.vala"
					_tmp140_ = _tmp139_;
#line 3357 "../src/main.vala"
					_tmp141_ = g_strconcat (_tmp138_, _tmp140_, NULL);
#line 3357 "../src/main.vala"
					_g_free0 (_tmp137_);
#line 3357 "../src/main.vala"
					_tmp137_ = _tmp141_;
#line 3357 "../src/main.vala"
					_g_free0 (_tmp140_);
#line 37794 "main.c"
				} else {
					const gchar* _tmp142_;
					gchar* _tmp143_;
#line 3357 "../src/main.vala"
					_tmp142_ = converted_args;
#line 3357 "../src/main.vala"
					_tmp143_ = g_strdup (_tmp142_);
#line 3357 "../src/main.vala"
					_g_free0 (_tmp137_);
#line 3357 "../src/main.vala"
					_tmp137_ = _tmp143_;
#line 37806 "main.c"
				}
#line 3357 "../src/main.vala"
				_tmp144_ = _tmp137_;
#line 3357 "../src/main.vala"
				_tmp137_ = NULL;
#line 3357 "../src/main.vala"
				result = _tmp144_;
#line 3357 "../src/main.vala"
				_g_free0 (_tmp137_);
#line 3357 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3357 "../src/main.vala"
				_g_free0 (converted_args);
#line 3357 "../src/main.vala"
				return result;
#line 37822 "main.c"
			}
		}
	} else if (((((((((((((((((((((((((_tmp8_ == ((0 != _tmp7_label10) ? _tmp7_label10 : (_tmp7_label10 = g_quark_from_static_string ("json_encode")))) || (_tmp8_ == ((0 != _tmp7_label11) ? _tmp7_label11 : (_tmp7_label11 = g_quark_from_static_string ("explode"))))) || (_tmp8_ == ((0 != _tmp7_label12) ? _tmp7_label12 : (_tmp7_label12 = g_quark_from_static_string ("flush"))))) || (_tmp8_ == ((0 != _tmp7_label13) ? _tmp7_label13 : (_tmp7_label13 = g_quark_from_static_string ("number_format"))))) || (_tmp8_ == ((0 != _tmp7_label14) ? _tmp7_label14 : (_tmp7_label14 = g_quark_from_static_string ("str_replace"))))) || (_tmp8_ == ((0 != _tmp7_label15) ? _tmp7_label15 : (_tmp7_label15 = g_quark_from_static_string ("stripos"))))) || (_tmp8_ == ((0 != _tmp7_label16) ? _tmp7_label16 : (_tmp7_label16 = g_quark_from_static_string ("unserialize"))))) || (_tmp8_ == ((0 != _tmp7_label17) ? _tmp7_label17 : (_tmp7_label17 = g_quark_from_static_string ("strlen"))))) || (_tmp8_ == ((0 != _tmp7_label18) ? _tmp7_label18 : (_tmp7_label18 = g_quark_from_static_string ("trim"))))) || (_tmp8_ == ((0 != _tmp7_label19) ? _tmp7_label19 : (_tmp7_label19 = g_quark_from_static_string ("count"))))) || (_tmp8_ == ((0 != _tmp7_label20) ? _tmp7_label20 : (_tmp7_label20 = g_quark_from_static_string ("gettype"))))) || (_tmp8_ == ((0 != _tmp7_label21) ? _tmp7_label21 : (_tmp7_label21 = g_quark_from_static_string ("is_array"))))) || (_tmp8_ == ((0 != _tmp7_label22) ? _tmp7_label22 : (_tmp7_label22 = g_quark_from_static_string ("is_object"))))) || (_tmp8_ == ((0 != _tmp7_label23) ? _tmp7_label23 : (_tmp7_label23 = g_quark_from_static_string ("is_null"))))) || (_tmp8_ == ((0 != _tmp7_label24) ? _tmp7_label24 : (_tmp7_label24 = g_quark_from_static_string ("is_string"))))) || (_tmp8_ == ((0 != _tmp7_label25) ? _tmp7_label25 : (_tmp7_label25 = g_quark_from_static_string ("is_int"))))) || (_tmp8_ == ((0 != _tmp7_label26) ? _tmp7_label26 : (_tmp7_label26 = g_quark_from_static_string ("is_integer"))))) || (_tmp8_ == ((0 != _tmp7_label27) ? _tmp7_label27 : (_tmp7_label27 = g_quark_from_static_string ("is_long"))))) || (_tmp8_ == ((0 != _tmp7_label28) ? _tmp7_label28 : (_tmp7_label28 = g_quark_from_static_string ("is_float"))))) || (_tmp8_ == ((0 != _tmp7_label29) ? _tmp7_label29 : (_tmp7_label29 = g_quark_from_static_string ("is_double"))))) || (_tmp8_ == ((0 != _tmp7_label30) ? _tmp7_label30 : (_tmp7_label30 = g_quark_from_static_string ("is_real"))))) || (_tmp8_ == ((0 != _tmp7_label31) ? _tmp7_label31 : (_tmp7_label31 = g_quark_from_static_string ("is_bool"))))) || (_tmp8_ == ((0 != _tmp7_label32) ? _tmp7_label32 : (_tmp7_label32 = g_quark_from_static_string ("is_numeric"))))) || (_tmp8_ == ((0 != _tmp7_label33) ? _tmp7_label33 : (_tmp7_label33 = g_quark_from_static_string ("isset"))))) || (_tmp8_ == ((0 != _tmp7_label34) ? _tmp7_label34 : (_tmp7_label34 = g_quark_from_static_string ("empty"))))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37828 "main.c"
			default:
			{
				gchar* _tmp145_ = NULL;
				gchar* _tmp152_;
#line 3383 "../src/main.vala"
				if (add_source_location) {
#line 37835 "main.c"
					const gchar* _tmp146_;
					gchar* _tmp147_;
					gchar* _tmp148_;
					gchar* _tmp149_;
#line 3383 "../src/main.vala"
					_tmp146_ = converted_args;
#line 3383 "../src/main.vala"
					_tmp147_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3383 "../src/main.vala"
					_tmp148_ = _tmp147_;
#line 3383 "../src/main.vala"
					_tmp149_ = g_strconcat (_tmp146_, _tmp148_, NULL);
#line 3383 "../src/main.vala"
					_g_free0 (_tmp145_);
#line 3383 "../src/main.vala"
					_tmp145_ = _tmp149_;
#line 3383 "../src/main.vala"
					_g_free0 (_tmp148_);
#line 37854 "main.c"
				} else {
					const gchar* _tmp150_;
					gchar* _tmp151_;
#line 3383 "../src/main.vala"
					_tmp150_ = converted_args;
#line 3383 "../src/main.vala"
					_tmp151_ = g_strdup (_tmp150_);
#line 3383 "../src/main.vala"
					_g_free0 (_tmp145_);
#line 3383 "../src/main.vala"
					_tmp145_ = _tmp151_;
#line 37866 "main.c"
				}
#line 3383 "../src/main.vala"
				_tmp152_ = _tmp145_;
#line 3383 "../src/main.vala"
				_tmp145_ = NULL;
#line 3383 "../src/main.vala"
				result = _tmp152_;
#line 3383 "../src/main.vala"
				_g_free0 (_tmp145_);
#line 3383 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3383 "../src/main.vala"
				_g_free0 (converted_args);
#line 3383 "../src/main.vala"
				return result;
#line 37882 "main.c"
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label35) ? _tmp7_label35 : (_tmp7_label35 = g_quark_from_static_string ("substr")))) {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37888 "main.c"
			default:
			{
				GeeArrayList* substr_parts = NULL;
				const gchar* _tmp153_;
				GeeArrayList* _tmp154_;
				GeeArrayList* _tmp155_;
				gint _tmp156_;
				gint _tmp157_;
				gchar* _tmp160_ = NULL;
				gchar* _tmp167_;
#line 3385 "../src/main.vala"
				_tmp153_ = converted_args;
#line 3385 "../src/main.vala"
				_tmp154_ = php_to_vala_transpiler_split_top_level (self, _tmp153_, ',');
#line 3385 "../src/main.vala"
				substr_parts = _tmp154_;
#line 3386 "../src/main.vala"
				_tmp155_ = substr_parts;
#line 3386 "../src/main.vala"
				_tmp156_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp155_);
#line 3386 "../src/main.vala"
				_tmp157_ = _tmp156_;
#line 3386 "../src/main.vala"
				if (_tmp157_ == 2) {
#line 37913 "main.c"
					const gchar* _tmp158_;
					gchar* _tmp159_;
#line 3387 "../src/main.vala"
					_tmp158_ = converted_args;
#line 3387 "../src/main.vala"
					_tmp159_ = g_strconcat (_tmp158_, ", 2147483647", NULL);
#line 3387 "../src/main.vala"
					_g_free0 (converted_args);
#line 3387 "../src/main.vala"
					converted_args = _tmp159_;
#line 37924 "main.c"
				}
#line 3389 "../src/main.vala"
				if (add_source_location) {
#line 37928 "main.c"
					const gchar* _tmp161_;
					gchar* _tmp162_;
					gchar* _tmp163_;
					gchar* _tmp164_;
#line 3389 "../src/main.vala"
					_tmp161_ = converted_args;
#line 3389 "../src/main.vala"
					_tmp162_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3389 "../src/main.vala"
					_tmp163_ = _tmp162_;
#line 3389 "../src/main.vala"
					_tmp164_ = g_strconcat (_tmp161_, _tmp163_, NULL);
#line 3389 "../src/main.vala"
					_g_free0 (_tmp160_);
#line 3389 "../src/main.vala"
					_tmp160_ = _tmp164_;
#line 3389 "../src/main.vala"
					_g_free0 (_tmp163_);
#line 37947 "main.c"
				} else {
					const gchar* _tmp165_;
					gchar* _tmp166_;
#line 3389 "../src/main.vala"
					_tmp165_ = converted_args;
#line 3389 "../src/main.vala"
					_tmp166_ = g_strdup (_tmp165_);
#line 3389 "../src/main.vala"
					_g_free0 (_tmp160_);
#line 3389 "../src/main.vala"
					_tmp160_ = _tmp166_;
#line 37959 "main.c"
				}
#line 3389 "../src/main.vala"
				_tmp167_ = _tmp160_;
#line 3389 "../src/main.vala"
				_tmp160_ = NULL;
#line 3389 "../src/main.vala"
				result = _tmp167_;
#line 3389 "../src/main.vala"
				_g_free0 (_tmp160_);
#line 3389 "../src/main.vala"
				_g_object_unref0 (substr_parts);
#line 3389 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3389 "../src/main.vala"
				_g_free0 (converted_args);
#line 3389 "../src/main.vala"
				return result;
#line 37977 "main.c"
			}
		}
	} else {
#line 3311 "../src/main.vala"
		switch (0) {
#line 37983 "main.c"
			default:
			{
				gchar* _tmp168_ = NULL;
				gchar* _tmp175_;
#line 3391 "../src/main.vala"
				if (add_source_location) {
#line 37990 "main.c"
					const gchar* _tmp169_;
					gchar* _tmp170_;
					gchar* _tmp171_;
					gchar* _tmp172_;
#line 3391 "../src/main.vala"
					_tmp169_ = converted_args;
#line 3391 "../src/main.vala"
					_tmp170_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3391 "../src/main.vala"
					_tmp171_ = _tmp170_;
#line 3391 "../src/main.vala"
					_tmp172_ = g_strconcat (_tmp169_, _tmp171_, NULL);
#line 3391 "../src/main.vala"
					_g_free0 (_tmp168_);
#line 3391 "../src/main.vala"
					_tmp168_ = _tmp172_;
#line 3391 "../src/main.vala"
					_g_free0 (_tmp171_);
#line 38009 "main.c"
				} else {
					const gchar* _tmp173_;
					gchar* _tmp174_;
#line 3391 "../src/main.vala"
					_tmp173_ = converted_args;
#line 3391 "../src/main.vala"
					_tmp174_ = g_strdup (_tmp173_);
#line 3391 "../src/main.vala"
					_g_free0 (_tmp168_);
#line 3391 "../src/main.vala"
					_tmp168_ = _tmp174_;
#line 38021 "main.c"
				}
#line 3391 "../src/main.vala"
				_tmp175_ = _tmp168_;
#line 3391 "../src/main.vala"
				_tmp168_ = NULL;
#line 3391 "../src/main.vala"
				result = _tmp175_;
#line 3391 "../src/main.vala"
				_g_free0 (_tmp168_);
#line 3391 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3391 "../src/main.vala"
				_g_free0 (converted_args);
#line 3391 "../src/main.vala"
				return result;
#line 38037 "main.c"
			}
		}
	}
}

gchar*
php_to_vala_transpiler_enum_prefix_for_function (PhpToValaTranspiler* self,
                                                 const gchar* function_name)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* result;
#line 3395 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3395 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3396 "../src/main.vala"
	_tmp0_ = self->priv->function_bindings;
#line 3396 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, function_name);
#line 3396 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 3397 "../src/main.vala"
	_tmp2_ = binding;
#line 3397 "../src/main.vala"
	if (_tmp2_ == NULL) {
#line 38069 "main.c"
		gchar* _tmp3_;
#line 3398 "../src/main.vala"
		_tmp3_ = g_strdup ("PhpEmbed");
#line 3398 "../src/main.vala"
		result = _tmp3_;
#line 3398 "../src/main.vala"
		_g_object_unref0 (binding);
#line 3398 "../src/main.vala"
		return result;
#line 38079 "main.c"
	}
#line 3400 "../src/main.vala"
	_tmp4_ = binding;
#line 3400 "../src/main.vala"
	_tmp5_ = _tmp4_->namespace_name;
#line 3400 "../src/main.vala"
	_tmp6_ = g_strdup (_tmp5_);
#line 3400 "../src/main.vala"
	result = _tmp6_;
#line 3400 "../src/main.vala"
	_g_object_unref0 (binding);
#line 3400 "../src/main.vala"
	return result;
#line 38093 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_function_argument_list (PhpToValaTranspiler* self,
                                                       const gchar* args,
                                                       gint php_line_number,
                                                       GError** error)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	GString* converted = NULL;
	GString* _tmp4_;
	GString* _tmp22_;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 3403 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3403 "../src/main.vala"
	g_return_val_if_fail (args != NULL, NULL);
#line 3404 "../src/main.vala"
	_tmp0_ = string_strip (args);
#line 3404 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 3404 "../src/main.vala"
	_tmp2_ = g_strcmp0 (_tmp1_, "") == 0;
#line 3404 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 3404 "../src/main.vala"
	if (_tmp2_) {
#line 38126 "main.c"
		gchar* _tmp3_;
#line 3405 "../src/main.vala"
		_tmp3_ = g_strdup ("");
#line 3405 "../src/main.vala"
		result = _tmp3_;
#line 3405 "../src/main.vala"
		return result;
#line 38134 "main.c"
	}
#line 3408 "../src/main.vala"
	_tmp4_ = g_string_new ("");
#line 3408 "../src/main.vala"
	converted = _tmp4_;
#line 38140 "main.c"
	{
		GeeArrayList* _arg_list = NULL;
		GeeArrayList* _tmp5_;
		gint _arg_size = 0;
		GeeArrayList* _tmp6_;
		gint _tmp7_;
		gint _tmp8_;
		gint _arg_index = 0;
#line 3409 "../src/main.vala"
		_tmp5_ = php_to_vala_transpiler_split_top_level (self, args, ',');
#line 3409 "../src/main.vala"
		_arg_list = _tmp5_;
#line 3409 "../src/main.vala"
		_tmp6_ = _arg_list;
#line 3409 "../src/main.vala"
		_tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
#line 3409 "../src/main.vala"
		_tmp8_ = _tmp7_;
#line 3409 "../src/main.vala"
		_arg_size = _tmp8_;
#line 3409 "../src/main.vala"
		_arg_index = -1;
#line 3409 "../src/main.vala"
		while (TRUE) {
#line 38165 "main.c"
			gint _tmp9_;
			gint _tmp10_;
			gchar* arg = NULL;
			GeeArrayList* _tmp11_;
			gpointer _tmp12_;
			GString* _tmp13_;
			gchar* _tmp15_ = NULL;
			const gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
			GString* _tmp21_;
#line 3409 "../src/main.vala"
			_arg_index = _arg_index + 1;
#line 3409 "../src/main.vala"
			_tmp9_ = _arg_index;
#line 3409 "../src/main.vala"
			_tmp10_ = _arg_size;
#line 3409 "../src/main.vala"
			if (!(_tmp9_ < _tmp10_)) {
#line 3409 "../src/main.vala"
				break;
#line 38189 "main.c"
			}
#line 3409 "../src/main.vala"
			_tmp11_ = _arg_list;
#line 3409 "../src/main.vala"
			_tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, _arg_index);
#line 3409 "../src/main.vala"
			arg = (gchar*) _tmp12_;
#line 3410 "../src/main.vala"
			_tmp13_ = converted;
#line 3410 "../src/main.vala"
			if (_tmp13_->len > ((gssize) 0)) {
#line 38201 "main.c"
				GString* _tmp14_;
#line 3411 "../src/main.vala"
				_tmp14_ = converted;
#line 3411 "../src/main.vala"
				g_string_append (_tmp14_, ", ");
#line 38207 "main.c"
			}
#line 3413 "../src/main.vala"
			_tmp16_ = arg;
#line 3413 "../src/main.vala"
			_tmp17_ = string_strip (_tmp16_);
#line 3413 "../src/main.vala"
			_tmp18_ = _tmp17_;
#line 3413 "../src/main.vala"
			_tmp19_ = php_to_vala_transpiler_convert_expression (self, _tmp18_, php_line_number, &_inner_error0_);
#line 3413 "../src/main.vala"
			_tmp20_ = _tmp19_;
#line 3413 "../src/main.vala"
			_g_free0 (_tmp18_);
#line 3413 "../src/main.vala"
			_tmp15_ = _tmp20_;
#line 3413 "../src/main.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3413 "../src/main.vala"
				g_propagate_error (error, _inner_error0_);
#line 3413 "../src/main.vala"
				_g_free0 (arg);
#line 3413 "../src/main.vala"
				_g_object_unref0 (_arg_list);
#line 3413 "../src/main.vala"
				_g_string_free0 (converted);
#line 3413 "../src/main.vala"
				return NULL;
#line 38235 "main.c"
			}
#line 3413 "../src/main.vala"
			_tmp21_ = converted;
#line 3413 "../src/main.vala"
			g_string_append (_tmp21_, _tmp15_);
#line 3409 "../src/main.vala"
			_g_free0 (_tmp15_);
#line 3409 "../src/main.vala"
			_g_free0 (arg);
#line 38245 "main.c"
		}
#line 3409 "../src/main.vala"
		_g_object_unref0 (_arg_list);
#line 38249 "main.c"
	}
#line 3416 "../src/main.vala"
	_tmp22_ = converted;
#line 3416 "../src/main.vala"
	_tmp23_ = _tmp22_->str;
#line 3416 "../src/main.vala"
	_tmp24_ = g_strdup (_tmp23_);
#line 3416 "../src/main.vala"
	result = _tmp24_;
#line 3416 "../src/main.vala"
	_g_string_free0 (converted);
#line 3416 "../src/main.vala"
	return result;
#line 38263 "main.c"
}

gchar*
php_to_vala_transpiler_source_location_args (PhpToValaTranspiler* self,
                                             gint php_line_number)
{
	gchar* mapped_source_path = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gint mapped_line_number = 0;
	gint index = 0;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* result;
#line 3419 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3420 "../src/main.vala"
	_tmp0_ = self->priv->source_path;
#line 3420 "../src/main.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 3420 "../src/main.vala"
	mapped_source_path = _tmp1_;
#line 3421 "../src/main.vala"
	mapped_line_number = php_line_number;
#line 3422 "../src/main.vala"
	index = php_line_number - 1;
#line 3423 "../src/main.vala"
	if (index >= 0) {
#line 38300 "main.c"
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 3423 "../src/main.vala"
		_tmp4_ = self->priv->source_line_files;
#line 3423 "../src/main.vala"
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
#line 3423 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3423 "../src/main.vala"
		_tmp3_ = index < _tmp6_;
#line 38312 "main.c"
	} else {
#line 3423 "../src/main.vala"
		_tmp3_ = FALSE;
#line 38316 "main.c"
	}
#line 3423 "../src/main.vala"
	if (_tmp3_) {
#line 38320 "main.c"
		GeeArrayList* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
#line 3423 "../src/main.vala"
		_tmp7_ = self->priv->source_line_numbers;
#line 3423 "../src/main.vala"
		_tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp7_);
#line 3423 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 3423 "../src/main.vala"
		_tmp2_ = index < _tmp9_;
#line 38332 "main.c"
	} else {
#line 3423 "../src/main.vala"
		_tmp2_ = FALSE;
#line 38336 "main.c"
	}
#line 3423 "../src/main.vala"
	if (_tmp2_) {
#line 38340 "main.c"
		GeeArrayList* _tmp10_;
		gpointer _tmp11_;
		GeeArrayList* _tmp12_;
		gpointer _tmp13_;
#line 3424 "../src/main.vala"
		_tmp10_ = self->priv->source_line_files;
#line 3424 "../src/main.vala"
		_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, index);
#line 3424 "../src/main.vala"
		_g_free0 (mapped_source_path);
#line 3424 "../src/main.vala"
		mapped_source_path = (gchar*) _tmp11_;
#line 3425 "../src/main.vala"
		_tmp12_ = self->priv->source_line_numbers;
#line 3425 "../src/main.vala"
		_tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, index);
#line 3425 "../src/main.vala"
		mapped_line_number = (gint) ((gintptr) _tmp13_);
#line 38359 "main.c"
	}
#line 3427 "../src/main.vala"
	_tmp14_ = mapped_source_path;
#line 3427 "../src/main.vala"
	_tmp15_ = php_to_vala_transpiler_escape_vala_string (_tmp14_);
#line 3427 "../src/main.vala"
	_tmp16_ = _tmp15_;
#line 3427 "../src/main.vala"
	_tmp17_ = string_to_string (_tmp16_);
#line 3427 "../src/main.vala"
	_tmp18_ = g_strdup_printf ("%i", mapped_line_number);
#line 3427 "../src/main.vala"
	_tmp19_ = _tmp18_;
#line 3427 "../src/main.vala"
	_tmp20_ = g_strconcat (", \"", _tmp17_, "\", ", _tmp19_, NULL);
#line 3427 "../src/main.vala"
	_tmp21_ = _tmp20_;
#line 3427 "../src/main.vala"
	_g_free0 (_tmp19_);
#line 3427 "../src/main.vala"
	_g_free0 (_tmp16_);
#line 3427 "../src/main.vala"
	result = _tmp21_;
#line 3427 "../src/main.vala"
	_g_free0 (mapped_source_path);
#line 3427 "../src/main.vala"
	return result;
#line 38387 "main.c"
}

static gchar*
php_to_vala_transpiler_source_file_for_line (PhpToValaTranspiler* self,
                                             gint php_line_number)
{
	gint index = 0;
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* result;
#line 3430 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3431 "../src/main.vala"
	index = php_line_number - 1;
#line 3432 "../src/main.vala"
	if (index >= 0) {
#line 38405 "main.c"
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
#line 3432 "../src/main.vala"
		_tmp1_ = self->priv->source_line_files;
#line 3432 "../src/main.vala"
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 3432 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 3432 "../src/main.vala"
		_tmp0_ = index < _tmp3_;
#line 38417 "main.c"
	} else {
#line 3432 "../src/main.vala"
		_tmp0_ = FALSE;
#line 38421 "main.c"
	}
#line 3432 "../src/main.vala"
	if (_tmp0_) {
#line 38425 "main.c"
		GeeArrayList* _tmp4_;
		gpointer _tmp5_;
#line 3433 "../src/main.vala"
		_tmp4_ = self->priv->source_line_files;
#line 3433 "../src/main.vala"
		_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _tmp4_, index);
#line 3433 "../src/main.vala"
		result = (gchar*) _tmp5_;
#line 3433 "../src/main.vala"
		return result;
#line 38436 "main.c"
	}
#line 3435 "../src/main.vala"
	_tmp6_ = self->priv->source_path;
#line 3435 "../src/main.vala"
	_tmp7_ = g_strdup (_tmp6_);
#line 3435 "../src/main.vala"
	result = _tmp7_;
#line 3435 "../src/main.vala"
	return result;
#line 38446 "main.c"
}

static gint
php_to_vala_transpiler_source_original_line_for_line (PhpToValaTranspiler* self,
                                                      gint php_line_number)
{
	gint index = 0;
	gboolean _tmp0_ = FALSE;
	gint result;
#line 3438 "../src/main.vala"
	g_return_val_if_fail (self != NULL, -1);
#line 3439 "../src/main.vala"
	index = php_line_number - 1;
#line 3440 "../src/main.vala"
	if (index >= 0) {
#line 38462 "main.c"
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
#line 3440 "../src/main.vala"
		_tmp1_ = self->priv->source_line_numbers;
#line 3440 "../src/main.vala"
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 3440 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 3440 "../src/main.vala"
		_tmp0_ = index < _tmp3_;
#line 38474 "main.c"
	} else {
#line 3440 "../src/main.vala"
		_tmp0_ = FALSE;
#line 38478 "main.c"
	}
#line 3440 "../src/main.vala"
	if (_tmp0_) {
#line 38482 "main.c"
		GeeArrayList* _tmp4_;
		gpointer _tmp5_;
#line 3441 "../src/main.vala"
		_tmp4_ = self->priv->source_line_numbers;
#line 3441 "../src/main.vala"
		_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _tmp4_, index);
#line 3441 "../src/main.vala"
		result = (gint) ((gintptr) _tmp5_);
#line 3441 "../src/main.vala"
		return result;
#line 38493 "main.c"
	}
#line 3443 "../src/main.vala"
	result = php_line_number;
#line 3443 "../src/main.vala"
	return result;
#line 38499 "main.c"
}

static gchar*
php_to_vala_transpiler_escape_vala_string (const gchar* value)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* result;
#line 3446 "../src/main.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 3447 "../src/main.vala"
	_tmp0_ = string_replace (value, "\\", "\\\\");
#line 3447 "../src/main.vala"
	_tmp1_ = _tmp0_;
#line 3447 "../src/main.vala"
	_tmp2_ = string_replace (_tmp1_, "\"", "\\\"");
#line 3447 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 3447 "../src/main.vala"
	_tmp4_ = string_replace (_tmp3_, "\r", "\\r");
#line 3447 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 3447 "../src/main.vala"
	_tmp6_ = string_replace (_tmp5_, "\n", "\\n");
#line 3447 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 3447 "../src/main.vala"
	_tmp8_ = string_replace (_tmp7_, "\t", "\\t");
#line 3447 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 3447 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 3447 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 3447 "../src/main.vala"
	_g_free0 (_tmp3_);
#line 3447 "../src/main.vala"
	_g_free0 (_tmp1_);
#line 3447 "../src/main.vala"
	result = _tmp9_;
#line 3447 "../src/main.vala"
	return result;
#line 38550 "main.c"
}

gchar*
php_to_vala_transpiler_trim_trailing_semicolon (const gchar* value)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* result;
#line 3455 "../src/main.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 3456 "../src/main.vala"
	_tmp0_ = string_strip (value);
#line 3456 "../src/main.vala"
	_result_ = _tmp0_;
#line 3457 "../src/main.vala"
	_tmp1_ = _result_;
#line 3457 "../src/main.vala"
	if (g_str_has_suffix (_tmp1_, ";")) {
#line 38570 "main.c"
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
#line 3458 "../src/main.vala"
		_tmp2_ = _result_;
#line 3458 "../src/main.vala"
		_tmp3_ = _result_;
#line 3458 "../src/main.vala"
		_tmp4_ = strlen (_tmp3_);
#line 3458 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3458 "../src/main.vala"
		_tmp6_ = string_substring (_tmp2_, (glong) 0, (glong) (_tmp5_ - 1));
#line 3458 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 3458 "../src/main.vala"
		_tmp8_ = string_strip (_tmp7_);
#line 3458 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 3458 "../src/main.vala"
		_g_free0 (_tmp7_);
#line 3458 "../src/main.vala"
		result = _tmp9_;
#line 3458 "../src/main.vala"
		_g_free0 (_result_);
#line 3458 "../src/main.vala"
		return result;
#line 38603 "main.c"
	}
#line 3460 "../src/main.vala"
	result = _result_;
#line 3460 "../src/main.vala"
	return result;
#line 38609 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_php_variables (const gchar* expression)
{
	GString* output = NULL;
	GString* _tmp0_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	GString* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* result;
#line 3463 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3464 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 3464 "../src/main.vala"
	output = _tmp0_;
#line 3465 "../src/main.vala"
	in_single_quote = FALSE;
#line 3466 "../src/main.vala"
	in_double_quote = FALSE;
#line 38633 "main.c"
	{
		gint i = 0;
#line 3468 "../src/main.vala"
		i = 0;
#line 38638 "main.c"
		{
			gboolean _tmp1_ = FALSE;
#line 3468 "../src/main.vala"
			_tmp1_ = TRUE;
#line 3468 "../src/main.vala"
			while (TRUE) {
#line 38645 "main.c"
				gint _tmp3_;
				gint _tmp4_;
				gchar c = '\0';
				gboolean _tmp5_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				GString* _tmp11_;
#line 3468 "../src/main.vala"
				if (!_tmp1_) {
#line 38656 "main.c"
					gint _tmp2_;
#line 3468 "../src/main.vala"
					_tmp2_ = i;
#line 3468 "../src/main.vala"
					i = _tmp2_ + 1;
#line 38662 "main.c"
				}
#line 3468 "../src/main.vala"
				_tmp1_ = FALSE;
#line 3468 "../src/main.vala"
				_tmp3_ = strlen (expression);
#line 3468 "../src/main.vala"
				_tmp4_ = _tmp3_;
#line 3468 "../src/main.vala"
				if (!(i < _tmp4_)) {
#line 3468 "../src/main.vala"
					break;
#line 38674 "main.c"
				}
#line 3469 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 3471 "../src/main.vala"
				if (c == '\'') {
#line 3471 "../src/main.vala"
					_tmp5_ = !in_double_quote;
#line 38682 "main.c"
				} else {
#line 3471 "../src/main.vala"
					_tmp5_ = FALSE;
#line 38686 "main.c"
				}
#line 3471 "../src/main.vala"
				if (_tmp5_) {
#line 38690 "main.c"
					GString* _tmp6_;
#line 3472 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 3473 "../src/main.vala"
					_tmp6_ = output;
#line 3473 "../src/main.vala"
					g_string_append_c (_tmp6_, c);
#line 3474 "../src/main.vala"
					continue;
#line 38700 "main.c"
				}
#line 3477 "../src/main.vala"
				if (c == '"') {
#line 3477 "../src/main.vala"
					_tmp7_ = !in_single_quote;
#line 38706 "main.c"
				} else {
#line 3477 "../src/main.vala"
					_tmp7_ = FALSE;
#line 38710 "main.c"
				}
#line 3477 "../src/main.vala"
				if (_tmp7_) {
#line 38714 "main.c"
					GString* _tmp8_;
#line 3478 "../src/main.vala"
					in_double_quote = !in_double_quote;
#line 3479 "../src/main.vala"
					_tmp8_ = output;
#line 3479 "../src/main.vala"
					g_string_append_c (_tmp8_, c);
#line 3480 "../src/main.vala"
					continue;
#line 38724 "main.c"
				}
#line 3483 "../src/main.vala"
				if (c == '$') {
#line 3483 "../src/main.vala"
					_tmp10_ = !in_single_quote;
#line 38730 "main.c"
				} else {
#line 3483 "../src/main.vala"
					_tmp10_ = FALSE;
#line 38734 "main.c"
				}
#line 3483 "../src/main.vala"
				if (_tmp10_) {
#line 3483 "../src/main.vala"
					_tmp9_ = !in_double_quote;
#line 38740 "main.c"
				} else {
#line 3483 "../src/main.vala"
					_tmp9_ = FALSE;
#line 38744 "main.c"
				}
#line 3483 "../src/main.vala"
				if (_tmp9_) {
#line 3484 "../src/main.vala"
					continue;
#line 38750 "main.c"
				}
#line 3487 "../src/main.vala"
				_tmp11_ = output;
#line 3487 "../src/main.vala"
				g_string_append_c (_tmp11_, c);
#line 38756 "main.c"
			}
		}
	}
#line 3490 "../src/main.vala"
	_tmp12_ = output;
#line 3490 "../src/main.vala"
	_tmp13_ = _tmp12_->str;
#line 3490 "../src/main.vala"
	_tmp14_ = g_strdup (_tmp13_);
#line 3490 "../src/main.vala"
	result = _tmp14_;
#line 3490 "../src/main.vala"
	_g_string_free0 (output);
#line 3490 "../src/main.vala"
	return result;
#line 38772 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_php_variables_with_aliases (PhpToValaTranspiler* self,
                                                           const gchar* expression)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
#line 3493 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3493 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3494 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_replace_php_variables (expression);
#line 3494 "../src/main.vala"
	_result_ = _tmp0_;
#line 38790 "main.c"
	{
		GeeIterator* _name_it = NULL;
		GeeHashMap* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeSet* _tmp4_;
		GeeIterator* _tmp5_;
		GeeIterator* _tmp6_;
#line 3495 "../src/main.vala"
		_tmp1_ = self->variable_aliases;
#line 3495 "../src/main.vala"
		_tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
#line 3495 "../src/main.vala"
		_tmp3_ = _tmp2_;
#line 3495 "../src/main.vala"
		_tmp4_ = _tmp3_;
#line 3495 "../src/main.vala"
		_tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
#line 3495 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3495 "../src/main.vala"
		_g_object_unref0 (_tmp4_);
#line 3495 "../src/main.vala"
		_name_it = _tmp6_;
#line 3495 "../src/main.vala"
		while (TRUE) {
#line 38817 "main.c"
			GeeIterator* _tmp7_;
			gchar* name = NULL;
			GeeIterator* _tmp8_;
			gpointer _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			GeeHashMap* _tmp12_;
			const gchar* _tmp13_;
			gpointer _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
#line 3495 "../src/main.vala"
			_tmp7_ = _name_it;
#line 3495 "../src/main.vala"
			if (!gee_iterator_next (_tmp7_)) {
#line 3495 "../src/main.vala"
				break;
#line 38835 "main.c"
			}
#line 3495 "../src/main.vala"
			_tmp8_ = _name_it;
#line 3495 "../src/main.vala"
			_tmp9_ = gee_iterator_get (_tmp8_);
#line 3495 "../src/main.vala"
			name = (gchar*) _tmp9_;
#line 3496 "../src/main.vala"
			_tmp10_ = _result_;
#line 3496 "../src/main.vala"
			_tmp11_ = name;
#line 3496 "../src/main.vala"
			_tmp12_ = self->variable_aliases;
#line 3496 "../src/main.vala"
			_tmp13_ = name;
#line 3496 "../src/main.vala"
			_tmp14_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp13_);
#line 3496 "../src/main.vala"
			_tmp15_ = (gchar*) _tmp14_;
#line 3496 "../src/main.vala"
			_tmp16_ = php_to_vala_transpiler_replace_identifier_token (_tmp10_, _tmp11_, _tmp15_);
#line 3496 "../src/main.vala"
			_g_free0 (_result_);
#line 3496 "../src/main.vala"
			_result_ = _tmp16_;
#line 3496 "../src/main.vala"
			_g_free0 (_tmp15_);
#line 3495 "../src/main.vala"
			_g_free0 (name);
#line 38865 "main.c"
		}
#line 3495 "../src/main.vala"
		_g_object_unref0 (_name_it);
#line 38869 "main.c"
	}
#line 3498 "../src/main.vala"
	result = _result_;
#line 3498 "../src/main.vala"
	return result;
#line 38875 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_identifier_token (const gchar* expression,
                                                 const gchar* name,
                                                 const gchar* replacement)
{
	GString* output = NULL;
	GString* _tmp0_;
	gint i = 0;
	GString* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* result;
#line 3501 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3501 "../src/main.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 3501 "../src/main.vala"
	g_return_val_if_fail (replacement != NULL, NULL);
#line 3502 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 3502 "../src/main.vala"
	output = _tmp0_;
#line 3503 "../src/main.vala"
	i = 0;
#line 3504 "../src/main.vala"
	while (TRUE) {
#line 38904 "main.c"
		gint _tmp1_;
		gint _tmp2_;
		gboolean _tmp3_ = FALSE;
		gboolean _tmp4_ = FALSE;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gboolean _tmp7_;
		GString* _tmp19_;
		gint _tmp20_;
#line 3504 "../src/main.vala"
		_tmp1_ = strlen (expression);
#line 3504 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 3504 "../src/main.vala"
		if (!(i < _tmp2_)) {
#line 3504 "../src/main.vala"
			break;
#line 38922 "main.c"
		}
#line 3505 "../src/main.vala"
		_tmp5_ = string_substring (expression, (glong) i, (glong) -1);
#line 3505 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3505 "../src/main.vala"
		_tmp7_ = g_str_has_prefix (_tmp6_, name);
#line 3505 "../src/main.vala"
		_g_free0 (_tmp6_);
#line 3505 "../src/main.vala"
		if (_tmp7_) {
#line 38934 "main.c"
			gboolean _tmp8_ = FALSE;
#line 3506 "../src/main.vala"
			if (i == 0) {
#line 3506 "../src/main.vala"
				_tmp8_ = TRUE;
#line 38940 "main.c"
			} else {
#line 3506 "../src/main.vala"
				_tmp8_ = !php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (i - 1)));
#line 38944 "main.c"
			}
#line 3506 "../src/main.vala"
			_tmp4_ = _tmp8_;
#line 38948 "main.c"
		} else {
#line 3505 "../src/main.vala"
			_tmp4_ = FALSE;
#line 38952 "main.c"
		}
#line 3505 "../src/main.vala"
		if (_tmp4_) {
#line 38956 "main.c"
			gboolean _tmp9_ = FALSE;
			gint _tmp10_;
			gint _tmp11_;
			gint _tmp12_;
			gint _tmp13_;
#line 3507 "../src/main.vala"
			_tmp10_ = strlen (name);
#line 3507 "../src/main.vala"
			_tmp11_ = _tmp10_;
#line 3507 "../src/main.vala"
			_tmp12_ = strlen (expression);
#line 3507 "../src/main.vala"
			_tmp13_ = _tmp12_;
#line 3507 "../src/main.vala"
			if ((i + _tmp11_) >= _tmp13_) {
#line 3507 "../src/main.vala"
				_tmp9_ = TRUE;
#line 38974 "main.c"
			} else {
				gint _tmp14_;
				gint _tmp15_;
#line 3507 "../src/main.vala"
				_tmp14_ = strlen (name);
#line 3507 "../src/main.vala"
				_tmp15_ = _tmp14_;
#line 3507 "../src/main.vala"
				_tmp9_ = !php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (i + _tmp15_)));
#line 38984 "main.c"
			}
#line 3507 "../src/main.vala"
			_tmp3_ = _tmp9_;
#line 38988 "main.c"
		} else {
#line 3505 "../src/main.vala"
			_tmp3_ = FALSE;
#line 38992 "main.c"
		}
#line 3505 "../src/main.vala"
		if (_tmp3_) {
#line 38996 "main.c"
			GString* _tmp16_;
			gint _tmp17_;
			gint _tmp18_;
#line 3508 "../src/main.vala"
			_tmp16_ = output;
#line 3508 "../src/main.vala"
			g_string_append (_tmp16_, replacement);
#line 3509 "../src/main.vala"
			_tmp17_ = strlen (name);
#line 3509 "../src/main.vala"
			_tmp18_ = _tmp17_;
#line 3509 "../src/main.vala"
			i += _tmp18_;
#line 3510 "../src/main.vala"
			continue;
#line 39012 "main.c"
		}
#line 3512 "../src/main.vala"
		_tmp19_ = output;
#line 3512 "../src/main.vala"
		g_string_append_c (_tmp19_, string_get (expression, (glong) i));
#line 3513 "../src/main.vala"
		_tmp20_ = i;
#line 3513 "../src/main.vala"
		i = _tmp20_ + 1;
#line 39022 "main.c"
	}
#line 3515 "../src/main.vala"
	_tmp21_ = output;
#line 3515 "../src/main.vala"
	_tmp22_ = _tmp21_->str;
#line 3515 "../src/main.vala"
	_tmp23_ = g_strdup (_tmp22_);
#line 3515 "../src/main.vala"
	result = _tmp23_;
#line 3515 "../src/main.vala"
	_g_string_free0 (output);
#line 3515 "../src/main.vala"
	return result;
#line 39036 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_array_accesses (PhpToValaTranspiler* self,
                                               const gchar* expression)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gboolean changed = FALSE;
	const gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* result;
#line 3518 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3518 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3519 "../src/main.vala"
	_tmp0_ = g_strdup (expression);
#line 3519 "../src/main.vala"
	_result_ = _tmp0_;
#line 3520 "../src/main.vala"
	changed = TRUE;
#line 3521 "../src/main.vala"
	while (TRUE) {
#line 3521 "../src/main.vala"
		if (!changed) {
#line 3521 "../src/main.vala"
			break;
#line 39065 "main.c"
		}
#line 3522 "../src/main.vala"
		changed = FALSE;
#line 39069 "main.c"
		{
			GeeIterator* _name_it = NULL;
			GeeHashMap* _tmp1_;
			GeeSet* _tmp2_;
			GeeSet* _tmp3_;
			GeeSet* _tmp4_;
			GeeIterator* _tmp5_;
			GeeIterator* _tmp6_;
#line 3523 "../src/main.vala"
			_tmp1_ = self->variable_types;
#line 3523 "../src/main.vala"
			_tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
#line 3523 "../src/main.vala"
			_tmp3_ = _tmp2_;
#line 3523 "../src/main.vala"
			_tmp4_ = _tmp3_;
#line 3523 "../src/main.vala"
			_tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
#line 3523 "../src/main.vala"
			_tmp6_ = _tmp5_;
#line 3523 "../src/main.vala"
			_g_object_unref0 (_tmp4_);
#line 3523 "../src/main.vala"
			_name_it = _tmp6_;
#line 3523 "../src/main.vala"
			while (TRUE) {
#line 39096 "main.c"
				GeeIterator* _tmp7_;
				gchar* name = NULL;
				GeeIterator* _tmp8_;
				gpointer _tmp9_;
				gchar* type_name = NULL;
				GeeHashMap* _tmp10_;
				const gchar* _tmp11_;
				gpointer _tmp12_;
				gchar* prefix = NULL;
				const gchar* _tmp13_;
				gchar* _tmp14_;
				gint index = 0;
				const gchar* _tmp15_;
				const gchar* _tmp16_;
				gint open = 0;
				const gchar* _tmp17_;
				gint _tmp18_;
				gint _tmp19_;
				gint close = 0;
				const gchar* _tmp20_;
				gchar* key = NULL;
				const gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* replacement = NULL;
				const gchar* _tmp26_;
				const gchar* _tmp27_;
				const gchar* _tmp28_;
				gchar* _tmp29_;
				const gchar* _tmp30_;
				gchar* _tmp31_;
				gchar* _tmp32_;
				const gchar* _tmp33_;
				gchar* _tmp34_;
				gchar* _tmp35_;
				const gchar* _tmp36_;
				gchar* _tmp37_;
				gchar* _tmp38_;
				gchar* _tmp39_;
#line 3523 "../src/main.vala"
				_tmp7_ = _name_it;
#line 3523 "../src/main.vala"
				if (!gee_iterator_next (_tmp7_)) {
#line 3523 "../src/main.vala"
					break;
#line 39144 "main.c"
				}
#line 3523 "../src/main.vala"
				_tmp8_ = _name_it;
#line 3523 "../src/main.vala"
				_tmp9_ = gee_iterator_get (_tmp8_);
#line 3523 "../src/main.vala"
				name = (gchar*) _tmp9_;
#line 3524 "../src/main.vala"
				_tmp10_ = self->variable_types;
#line 3524 "../src/main.vala"
				_tmp11_ = name;
#line 3524 "../src/main.vala"
				_tmp12_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp10_, _tmp11_);
#line 3524 "../src/main.vala"
				type_name = (gchar*) _tmp12_;
#line 3525 "../src/main.vala"
				_tmp13_ = name;
#line 3525 "../src/main.vala"
				_tmp14_ = g_strconcat (_tmp13_, "[", NULL);
#line 3525 "../src/main.vala"
				prefix = _tmp14_;
#line 3526 "../src/main.vala"
				_tmp15_ = _result_;
#line 3526 "../src/main.vala"
				_tmp16_ = prefix;
#line 3526 "../src/main.vala"
				index = string_index_of (_tmp15_, _tmp16_, 0);
#line 3527 "../src/main.vala"
				if (index < 0) {
#line 3528 "../src/main.vala"
					_g_free0 (prefix);
#line 3528 "../src/main.vala"
					_g_free0 (type_name);
#line 3528 "../src/main.vala"
					_g_free0 (name);
#line 3528 "../src/main.vala"
					continue;
#line 39182 "main.c"
				}
#line 3530 "../src/main.vala"
				_tmp17_ = name;
#line 3530 "../src/main.vala"
				_tmp18_ = strlen (_tmp17_);
#line 3530 "../src/main.vala"
				_tmp19_ = _tmp18_;
#line 3530 "../src/main.vala"
				open = index + _tmp19_;
#line 3531 "../src/main.vala"
				_tmp20_ = _result_;
#line 3531 "../src/main.vala"
				close = php_to_vala_transpiler_find_matching_bracket (_tmp20_, open);
#line 3532 "../src/main.vala"
				if (close < 0) {
#line 3533 "../src/main.vala"
					_g_free0 (prefix);
#line 3533 "../src/main.vala"
					_g_free0 (type_name);
#line 3533 "../src/main.vala"
					_g_free0 (name);
#line 3533 "../src/main.vala"
					continue;
#line 39206 "main.c"
				}
#line 3535 "../src/main.vala"
				_tmp21_ = _result_;
#line 3535 "../src/main.vala"
				_tmp22_ = string_substring (_tmp21_, (glong) (open + 1), (glong) ((close - open) - 1));
#line 3535 "../src/main.vala"
				_tmp23_ = _tmp22_;
#line 3535 "../src/main.vala"
				_tmp24_ = string_strip (_tmp23_);
#line 3535 "../src/main.vala"
				_tmp25_ = _tmp24_;
#line 3535 "../src/main.vala"
				_g_free0 (_tmp23_);
#line 3535 "../src/main.vala"
				key = _tmp25_;
#line 3536 "../src/main.vala"
				_tmp26_ = name;
#line 3536 "../src/main.vala"
				_tmp27_ = type_name;
#line 3536 "../src/main.vala"
				_tmp28_ = key;
#line 3536 "../src/main.vala"
				_tmp29_ = php_to_vala_transpiler_array_access_expression (self, _tmp26_, _tmp27_, _tmp28_);
#line 3536 "../src/main.vala"
				replacement = _tmp29_;
#line 3537 "../src/main.vala"
				_tmp30_ = _result_;
#line 3537 "../src/main.vala"
				_tmp31_ = string_substring (_tmp30_, (glong) 0, (glong) index);
#line 3537 "../src/main.vala"
				_tmp32_ = _tmp31_;
#line 3537 "../src/main.vala"
				_tmp33_ = replacement;
#line 3537 "../src/main.vala"
				_tmp34_ = g_strconcat (_tmp32_, _tmp33_, NULL);
#line 3537 "../src/main.vala"
				_tmp35_ = _tmp34_;
#line 3537 "../src/main.vala"
				_tmp36_ = _result_;
#line 3537 "../src/main.vala"
				_tmp37_ = string_substring (_tmp36_, (glong) (close + 1), (glong) -1);
#line 3537 "../src/main.vala"
				_tmp38_ = _tmp37_;
#line 3537 "../src/main.vala"
				_tmp39_ = g_strconcat (_tmp35_, _tmp38_, NULL);
#line 3537 "../src/main.vala"
				_g_free0 (_result_);
#line 3537 "../src/main.vala"
				_result_ = _tmp39_;
#line 3537 "../src/main.vala"
				_g_free0 (_tmp38_);
#line 3537 "../src/main.vala"
				_g_free0 (_tmp35_);
#line 3537 "../src/main.vala"
				_g_free0 (_tmp32_);
#line 3538 "../src/main.vala"
				changed = TRUE;
#line 3539 "../src/main.vala"
				_g_free0 (replacement);
#line 3539 "../src/main.vala"
				_g_free0 (key);
#line 3539 "../src/main.vala"
				_g_free0 (prefix);
#line 3539 "../src/main.vala"
				_g_free0 (type_name);
#line 3539 "../src/main.vala"
				_g_free0 (name);
#line 3539 "../src/main.vala"
				break;
#line 39276 "main.c"
			}
#line 3523 "../src/main.vala"
			_g_object_unref0 (_name_it);
#line 39280 "main.c"
		}
	}
#line 3542 "../src/main.vala"
	_tmp40_ = _result_;
#line 3542 "../src/main.vala"
	_tmp41_ = php_to_vala_transpiler_convert_get_bracket_accesses (_tmp40_);
#line 3542 "../src/main.vala"
	_g_free0 (_result_);
#line 3542 "../src/main.vala"
	_result_ = _tmp41_;
#line 3543 "../src/main.vala"
	result = _result_;
#line 3543 "../src/main.vala"
	return result;
#line 39295 "main.c"
}

static gchar*
php_to_vala_transpiler_convert_get_bracket_accesses (const gchar* expression)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gboolean changed = FALSE;
	gchar* result;
#line 3546 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3547 "../src/main.vala"
	_tmp0_ = g_strdup (expression);
#line 3547 "../src/main.vala"
	_result_ = _tmp0_;
#line 3548 "../src/main.vala"
	changed = TRUE;
#line 3549 "../src/main.vala"
	while (TRUE) {
#line 39315 "main.c"
		gint bracket = 0;
		const gchar* _tmp1_;
		gint open = 0;
		gint close = 0;
		const gchar* _tmp2_;
		gchar* key = NULL;
		const gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		const gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		const gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
#line 3549 "../src/main.vala"
		if (!changed) {
#line 3549 "../src/main.vala"
			break;
#line 39345 "main.c"
		}
#line 3550 "../src/main.vala"
		changed = FALSE;
#line 3551 "../src/main.vala"
		_tmp1_ = _result_;
#line 3551 "../src/main.vala"
		bracket = string_index_of (_tmp1_, ")[", 0);
#line 3552 "../src/main.vala"
		if (bracket < 0) {
#line 3553 "../src/main.vala"
			break;
#line 39357 "main.c"
		}
#line 3555 "../src/main.vala"
		open = bracket + 1;
#line 3556 "../src/main.vala"
		_tmp2_ = _result_;
#line 3556 "../src/main.vala"
		close = php_to_vala_transpiler_find_matching_bracket (_tmp2_, open);
#line 3557 "../src/main.vala"
		if (close < 0) {
#line 3558 "../src/main.vala"
			break;
#line 39369 "main.c"
		}
#line 3560 "../src/main.vala"
		_tmp3_ = _result_;
#line 3560 "../src/main.vala"
		_tmp4_ = string_substring (_tmp3_, (glong) (open + 1), (glong) ((close - open) - 1));
#line 3560 "../src/main.vala"
		_tmp5_ = _tmp4_;
#line 3560 "../src/main.vala"
		_tmp6_ = string_strip (_tmp5_);
#line 3560 "../src/main.vala"
		_tmp7_ = _tmp6_;
#line 3560 "../src/main.vala"
		_g_free0 (_tmp5_);
#line 3560 "../src/main.vala"
		key = _tmp7_;
#line 3561 "../src/main.vala"
		_tmp8_ = _result_;
#line 3561 "../src/main.vala"
		_tmp9_ = string_substring (_tmp8_, (glong) 0, (glong) (bracket + 1));
#line 3561 "../src/main.vala"
		_tmp10_ = _tmp9_;
#line 3561 "../src/main.vala"
		_tmp11_ = g_strconcat (_tmp10_, ".get (", NULL);
#line 3561 "../src/main.vala"
		_tmp12_ = _tmp11_;
#line 3561 "../src/main.vala"
		_tmp13_ = key;
#line 3561 "../src/main.vala"
		_tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
#line 3561 "../src/main.vala"
		_tmp15_ = _tmp14_;
#line 3561 "../src/main.vala"
		_tmp16_ = g_strconcat (_tmp15_, ")", NULL);
#line 3561 "../src/main.vala"
		_tmp17_ = _tmp16_;
#line 3561 "../src/main.vala"
		_tmp18_ = _result_;
#line 3561 "../src/main.vala"
		_tmp19_ = string_substring (_tmp18_, (glong) (close + 1), (glong) -1);
#line 3561 "../src/main.vala"
		_tmp20_ = _tmp19_;
#line 3561 "../src/main.vala"
		_tmp21_ = g_strconcat (_tmp17_, _tmp20_, NULL);
#line 3561 "../src/main.vala"
		_g_free0 (_result_);
#line 3561 "../src/main.vala"
		_result_ = _tmp21_;
#line 3561 "../src/main.vala"
		_g_free0 (_tmp20_);
#line 3561 "../src/main.vala"
		_g_free0 (_tmp17_);
#line 3561 "../src/main.vala"
		_g_free0 (_tmp15_);
#line 3561 "../src/main.vala"
		_g_free0 (_tmp12_);
#line 3561 "../src/main.vala"
		_g_free0 (_tmp10_);
#line 3562 "../src/main.vala"
		changed = TRUE;
#line 3549 "../src/main.vala"
		_g_free0 (key);
#line 39431 "main.c"
	}
#line 3564 "../src/main.vala"
	result = _result_;
#line 3564 "../src/main.vala"
	return result;
#line 39437 "main.c"
}

static gchar*
php_to_vala_transpiler_array_access_expression (PhpToValaTranspiler* self,
                                                const gchar* name,
                                                const gchar* type_name,
                                                const gchar* key)
{
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* result;
#line 3567 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3567 "../src/main.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 3567 "../src/main.vala"
	g_return_val_if_fail (type_name != NULL, NULL);
#line 3567 "../src/main.vala"
	g_return_val_if_fail (key != NULL, NULL);
#line 3568 "../src/main.vala"
	if (g_strcmp0 (type_name, "Gee.HashMap<string, double?>") == 0) {
#line 39460 "main.c"
		const gchar* _tmp0_;
		const gchar* _tmp1_;
		gchar* _tmp2_;
#line 3569 "../src/main.vala"
		_tmp0_ = string_to_string (name);
#line 3569 "../src/main.vala"
		_tmp1_ = string_to_string (key);
#line 3569 "../src/main.vala"
		_tmp2_ = g_strconcat ("(", _tmp0_, ".get (", _tmp1_, ") ?? 0.0)", NULL);
#line 3569 "../src/main.vala"
		result = _tmp2_;
#line 3569 "../src/main.vala"
		return result;
#line 39474 "main.c"
	}
#line 3571 "../src/main.vala"
	if (g_strcmp0 (type_name, "Gee.HashMap<string, string>") == 0) {
#line 39478 "main.c"
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		gchar* _tmp5_;
#line 3572 "../src/main.vala"
		_tmp3_ = string_to_string (name);
#line 3572 "../src/main.vala"
		_tmp4_ = string_to_string (key);
#line 3572 "../src/main.vala"
		_tmp5_ = g_strconcat ("(", _tmp3_, ".get (", _tmp4_, ") ?? \"\")", NULL);
#line 3572 "../src/main.vala"
		result = _tmp5_;
#line 3572 "../src/main.vala"
		return result;
#line 39492 "main.c"
	}
#line 3574 "../src/main.vala"
	if (g_strcmp0 (type_name, "Gee.HashMap<string, Gee.HashMap<string, string>>") == 0) {
#line 39496 "main.c"
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
#line 3575 "../src/main.vala"
		_tmp6_ = string_to_string (name);
#line 3575 "../src/main.vala"
		_tmp7_ = string_to_string (key);
#line 3575 "../src/main.vala"
		_tmp8_ = g_strconcat (_tmp6_, ".get (", _tmp7_, ")", NULL);
#line 3575 "../src/main.vala"
		result = _tmp8_;
#line 3575 "../src/main.vala"
		return result;
#line 39510 "main.c"
	}
#line 3577 "../src/main.vala"
	if (g_str_has_prefix (type_name, "Gee.ArrayList<")) {
#line 39514 "main.c"
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
#line 3578 "../src/main.vala"
		_tmp9_ = string_to_string (name);
#line 3578 "../src/main.vala"
		_tmp10_ = string_to_string (key);
#line 3578 "../src/main.vala"
		_tmp11_ = g_strconcat (_tmp9_, ".get (", _tmp10_, ")", NULL);
#line 3578 "../src/main.vala"
		result = _tmp11_;
#line 3578 "../src/main.vala"
		return result;
#line 39528 "main.c"
	}
#line 3580 "../src/main.vala"
	_tmp12_ = string_to_string (name);
#line 3580 "../src/main.vala"
	_tmp13_ = string_to_string (key);
#line 3580 "../src/main.vala"
	_tmp14_ = g_strconcat (_tmp12_, ".get (", _tmp13_, ")", NULL);
#line 3580 "../src/main.vala"
	result = _tmp14_;
#line 3580 "../src/main.vala"
	return result;
#line 39540 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_concat_operator (const gchar* expression)
{
	GString* output = NULL;
	GString* _tmp0_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	GString* _tmp15_;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* result;
#line 3583 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3584 "../src/main.vala"
	_tmp0_ = g_string_new ("");
#line 3584 "../src/main.vala"
	output = _tmp0_;
#line 3585 "../src/main.vala"
	in_single_quote = FALSE;
#line 3586 "../src/main.vala"
	in_double_quote = FALSE;
#line 39564 "main.c"
	{
		gint i = 0;
#line 3588 "../src/main.vala"
		i = 0;
#line 39569 "main.c"
		{
			gboolean _tmp1_ = FALSE;
#line 3588 "../src/main.vala"
			_tmp1_ = TRUE;
#line 3588 "../src/main.vala"
			while (TRUE) {
#line 39576 "main.c"
				gint _tmp3_;
				gint _tmp4_;
				gchar c = '\0';
				gboolean _tmp5_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				gboolean _tmp11_ = FALSE;
				gboolean _tmp12_ = FALSE;
				GString* _tmp14_;
#line 3588 "../src/main.vala"
				if (!_tmp1_) {
#line 39589 "main.c"
					gint _tmp2_;
#line 3588 "../src/main.vala"
					_tmp2_ = i;
#line 3588 "../src/main.vala"
					i = _tmp2_ + 1;
#line 39595 "main.c"
				}
#line 3588 "../src/main.vala"
				_tmp1_ = FALSE;
#line 3588 "../src/main.vala"
				_tmp3_ = strlen (expression);
#line 3588 "../src/main.vala"
				_tmp4_ = _tmp3_;
#line 3588 "../src/main.vala"
				if (!(i < _tmp4_)) {
#line 3588 "../src/main.vala"
					break;
#line 39607 "main.c"
				}
#line 3589 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 3591 "../src/main.vala"
				if (c == '\'') {
#line 3591 "../src/main.vala"
					_tmp5_ = !in_double_quote;
#line 39615 "main.c"
				} else {
#line 3591 "../src/main.vala"
					_tmp5_ = FALSE;
#line 39619 "main.c"
				}
#line 3591 "../src/main.vala"
				if (_tmp5_) {
#line 39623 "main.c"
					GString* _tmp6_;
#line 3592 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 3593 "../src/main.vala"
					_tmp6_ = output;
#line 3593 "../src/main.vala"
					g_string_append_c (_tmp6_, c);
#line 3594 "../src/main.vala"
					continue;
#line 39633 "main.c"
				}
#line 3597 "../src/main.vala"
				if (c == '"') {
#line 3597 "../src/main.vala"
					_tmp7_ = !in_single_quote;
#line 39639 "main.c"
				} else {
#line 3597 "../src/main.vala"
					_tmp7_ = FALSE;
#line 39643 "main.c"
				}
#line 3597 "../src/main.vala"
				if (_tmp7_) {
#line 39647 "main.c"
					GString* _tmp8_;
#line 3598 "../src/main.vala"
					in_double_quote = !in_double_quote;
#line 3599 "../src/main.vala"
					_tmp8_ = output;
#line 3599 "../src/main.vala"
					g_string_append_c (_tmp8_, c);
#line 3600 "../src/main.vala"
					continue;
#line 39657 "main.c"
				}
#line 3603 "../src/main.vala"
				if (c == '.') {
#line 3603 "../src/main.vala"
					_tmp12_ = !in_single_quote;
#line 39663 "main.c"
				} else {
#line 3603 "../src/main.vala"
					_tmp12_ = FALSE;
#line 39667 "main.c"
				}
#line 3603 "../src/main.vala"
				if (_tmp12_) {
#line 3603 "../src/main.vala"
					_tmp11_ = !in_double_quote;
#line 39673 "main.c"
				} else {
#line 3603 "../src/main.vala"
					_tmp11_ = FALSE;
#line 39677 "main.c"
				}
#line 3603 "../src/main.vala"
				if (_tmp11_) {
#line 3604 "../src/main.vala"
					_tmp10_ = !php_to_vala_transpiler_is_decimal_point (expression, i);
#line 39683 "main.c"
				} else {
#line 3603 "../src/main.vala"
					_tmp10_ = FALSE;
#line 39687 "main.c"
				}
#line 3603 "../src/main.vala"
				if (_tmp10_) {
#line 3605 "../src/main.vala"
					_tmp9_ = !php_to_vala_transpiler_is_qualified_name_dot (expression, i);
#line 39693 "main.c"
				} else {
#line 3603 "../src/main.vala"
					_tmp9_ = FALSE;
#line 39697 "main.c"
				}
#line 3603 "../src/main.vala"
				if (_tmp9_) {
#line 39701 "main.c"
					GString* _tmp13_;
#line 3606 "../src/main.vala"
					_tmp13_ = output;
#line 3606 "../src/main.vala"
					g_string_append (_tmp13_, "+");
#line 3607 "../src/main.vala"
					continue;
#line 39709 "main.c"
				}
#line 3610 "../src/main.vala"
				_tmp14_ = output;
#line 3610 "../src/main.vala"
				g_string_append_c (_tmp14_, c);
#line 39715 "main.c"
			}
		}
	}
#line 3613 "../src/main.vala"
	_tmp15_ = output;
#line 3613 "../src/main.vala"
	_tmp16_ = _tmp15_->str;
#line 3613 "../src/main.vala"
	_tmp17_ = g_strdup (_tmp16_);
#line 3613 "../src/main.vala"
	result = _tmp17_;
#line 3613 "../src/main.vala"
	_g_string_free0 (output);
#line 3613 "../src/main.vala"
	return result;
#line 39731 "main.c"
}

static gboolean
php_to_vala_transpiler_is_decimal_point (const gchar* expression,
                                         gint index)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean result;
#line 3616 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 3617 "../src/main.vala"
	if (index <= 0) {
#line 3617 "../src/main.vala"
		_tmp0_ = TRUE;
#line 39747 "main.c"
	} else {
		gint _tmp1_;
		gint _tmp2_;
#line 3617 "../src/main.vala"
		_tmp1_ = strlen (expression);
#line 3617 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 3617 "../src/main.vala"
		_tmp0_ = index >= (_tmp2_ - 1);
#line 39757 "main.c"
	}
#line 3617 "../src/main.vala"
	if (_tmp0_) {
#line 3618 "../src/main.vala"
		result = FALSE;
#line 3618 "../src/main.vala"
		return result;
#line 39765 "main.c"
	}
#line 3621 "../src/main.vala"
	if (g_ascii_isdigit (string_get (expression, (glong) (index - 1)))) {
#line 3621 "../src/main.vala"
		_tmp3_ = g_ascii_isdigit (string_get (expression, (glong) (index + 1)));
#line 39771 "main.c"
	} else {
#line 3621 "../src/main.vala"
		_tmp3_ = FALSE;
#line 39775 "main.c"
	}
#line 3621 "../src/main.vala"
	result = _tmp3_;
#line 3621 "../src/main.vala"
	return result;
#line 39781 "main.c"
}

static gboolean
php_to_vala_transpiler_is_qualified_name_dot (const gchar* expression,
                                              gint index)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean result;
#line 3624 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 3625 "../src/main.vala"
	if (index <= 0) {
#line 3625 "../src/main.vala"
		_tmp0_ = TRUE;
#line 39797 "main.c"
	} else {
		gint _tmp1_;
		gint _tmp2_;
#line 3625 "../src/main.vala"
		_tmp1_ = strlen (expression);
#line 3625 "../src/main.vala"
		_tmp2_ = _tmp1_;
#line 3625 "../src/main.vala"
		_tmp0_ = index >= (_tmp2_ - 1);
#line 39807 "main.c"
	}
#line 3625 "../src/main.vala"
	if (_tmp0_) {
#line 3626 "../src/main.vala"
		result = FALSE;
#line 3626 "../src/main.vala"
		return result;
#line 39815 "main.c"
	}
#line 3629 "../src/main.vala"
	if (php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (index - 1)))) {
#line 3630 "../src/main.vala"
		_tmp3_ = php_to_vala_transpiler_is_identifier_char (string_get (expression, (glong) (index + 1)));
#line 39821 "main.c"
	} else {
#line 3629 "../src/main.vala"
		_tmp3_ = FALSE;
#line 39825 "main.c"
	}
#line 3629 "../src/main.vala"
	result = _tmp3_;
#line 3629 "../src/main.vala"
	return result;
#line 39831 "main.c"
}

gboolean
php_to_vala_transpiler_is_identifier_char (gchar c)
{
	gboolean _tmp0_ = FALSE;
	gboolean result;
#line 3634 "../src/main.vala"
	if (g_ascii_isalnum (c)) {
#line 3634 "../src/main.vala"
		_tmp0_ = TRUE;
#line 39843 "main.c"
	} else {
#line 3634 "../src/main.vala"
		_tmp0_ = c == '_';
#line 39847 "main.c"
	}
#line 3634 "../src/main.vala"
	result = _tmp0_;
#line 3634 "../src/main.vala"
	return result;
#line 39853 "main.c"
}

static gchar*
php_to_vala_transpiler_replace_division_operator (PhpToValaTranspiler* self,
                                                  const gchar* expression,
                                                  gint php_line_number,
                                                  GError** error)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gchar* _result_ = NULL;
	GeeArrayList* _tmp5_;
	gpointer _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GError* _inner_error0_ = NULL;
	gchar* result;
#line 3637 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3637 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3638 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_split_division (expression);
#line 3638 "../src/main.vala"
	parts = _tmp0_;
#line 3639 "../src/main.vala"
	_tmp1_ = parts;
#line 3639 "../src/main.vala"
	_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
#line 3639 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 3639 "../src/main.vala"
	if (_tmp3_ <= 1) {
#line 39891 "main.c"
		gchar* _tmp4_;
#line 3640 "../src/main.vala"
		_tmp4_ = g_strdup (expression);
#line 3640 "../src/main.vala"
		result = _tmp4_;
#line 3640 "../src/main.vala"
		_g_object_unref0 (parts);
#line 3640 "../src/main.vala"
		return result;
#line 39901 "main.c"
	}
#line 3643 "../src/main.vala"
	_tmp5_ = parts;
#line 3643 "../src/main.vala"
	_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, 0);
#line 3643 "../src/main.vala"
	_tmp7_ = (gchar*) _tmp6_;
#line 3643 "../src/main.vala"
	_tmp8_ = string_strip (_tmp7_);
#line 3643 "../src/main.vala"
	_tmp9_ = _tmp8_;
#line 3643 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 3643 "../src/main.vala"
	_result_ = _tmp9_;
#line 39917 "main.c"
	{
		gint i = 0;
#line 3644 "../src/main.vala"
		i = 1;
#line 39922 "main.c"
		{
			gboolean _tmp10_ = FALSE;
#line 3644 "../src/main.vala"
			_tmp10_ = TRUE;
#line 3644 "../src/main.vala"
			while (TRUE) {
#line 39929 "main.c"
				GeeArrayList* _tmp12_;
				gint _tmp13_;
				gint _tmp14_;
				gchar* function_name = NULL;
				gchar* _tmp15_;
				FunctionBinding* binding = NULL;
				GeeHashMap* _tmp16_;
				gpointer _tmp17_;
				gchar* _tmp18_ = NULL;
				gboolean _tmp19_ = FALSE;
				FunctionBinding* _tmp20_;
				gchar* location_args = NULL;
				gchar* _tmp24_;
				const gchar* _tmp25_;
				const gchar* _tmp26_;
				const gchar* _tmp27_;
				const gchar* _tmp28_;
				GeeArrayList* _tmp29_;
				gpointer _tmp30_;
				gchar* _tmp31_;
				gchar* _tmp32_;
				gchar* _tmp33_;
				const gchar* _tmp34_;
				const gchar* _tmp35_;
				const gchar* _tmp36_;
				gchar* _tmp37_;
#line 3644 "../src/main.vala"
				if (!_tmp10_) {
#line 39958 "main.c"
					gint _tmp11_;
#line 3644 "../src/main.vala"
					_tmp11_ = i;
#line 3644 "../src/main.vala"
					i = _tmp11_ + 1;
#line 39964 "main.c"
				}
#line 3644 "../src/main.vala"
				_tmp10_ = FALSE;
#line 3644 "../src/main.vala"
				_tmp12_ = parts;
#line 3644 "../src/main.vala"
				_tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
#line 3644 "../src/main.vala"
				_tmp14_ = _tmp13_;
#line 3644 "../src/main.vala"
				if (!(i < _tmp14_)) {
#line 3644 "../src/main.vala"
					break;
#line 39978 "main.c"
				}
#line 3645 "../src/main.vala"
				_tmp15_ = php_to_vala_transpiler_map_php_function_name (self, "div", php_line_number, &_inner_error0_);
#line 3645 "../src/main.vala"
				function_name = _tmp15_;
#line 3645 "../src/main.vala"
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3645 "../src/main.vala"
					g_propagate_error (error, _inner_error0_);
#line 3645 "../src/main.vala"
					_g_free0 (_result_);
#line 3645 "../src/main.vala"
					_g_object_unref0 (parts);
#line 3645 "../src/main.vala"
					return NULL;
#line 39994 "main.c"
				}
#line 3646 "../src/main.vala"
				_tmp16_ = self->priv->function_bindings;
#line 3646 "../src/main.vala"
				_tmp17_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp16_, "div");
#line 3646 "../src/main.vala"
				binding = (FunctionBinding*) _tmp17_;
#line 3647 "../src/main.vala"
				_tmp20_ = binding;
#line 3647 "../src/main.vala"
				if (_tmp20_ != NULL) {
#line 40006 "main.c"
					FunctionBinding* _tmp21_;
#line 3647 "../src/main.vala"
					_tmp21_ = binding;
#line 3647 "../src/main.vala"
					_tmp19_ = _tmp21_->source_location_args;
#line 40012 "main.c"
				} else {
#line 3647 "../src/main.vala"
					_tmp19_ = FALSE;
#line 40016 "main.c"
				}
#line 3647 "../src/main.vala"
				if (_tmp19_) {
#line 40020 "main.c"
					gchar* _tmp22_;
#line 3647 "../src/main.vala"
					_tmp22_ = php_to_vala_transpiler_source_location_args (self, php_line_number);
#line 3647 "../src/main.vala"
					_g_free0 (_tmp18_);
#line 3647 "../src/main.vala"
					_tmp18_ = _tmp22_;
#line 40028 "main.c"
				} else {
					gchar* _tmp23_;
#line 3647 "../src/main.vala"
					_tmp23_ = g_strdup ("");
#line 3647 "../src/main.vala"
					_g_free0 (_tmp18_);
#line 3647 "../src/main.vala"
					_tmp18_ = _tmp23_;
#line 40037 "main.c"
				}
#line 3647 "../src/main.vala"
				_tmp24_ = _tmp18_;
#line 3647 "../src/main.vala"
				_tmp18_ = NULL;
#line 3647 "../src/main.vala"
				location_args = _tmp24_;
#line 3648 "../src/main.vala"
				_tmp25_ = function_name;
#line 3648 "../src/main.vala"
				_tmp26_ = string_to_string (_tmp25_);
#line 3648 "../src/main.vala"
				_tmp27_ = _result_;
#line 3648 "../src/main.vala"
				_tmp28_ = string_to_string (_tmp27_);
#line 3648 "../src/main.vala"
				_tmp29_ = parts;
#line 3648 "../src/main.vala"
				_tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, i);
#line 3648 "../src/main.vala"
				_tmp31_ = (gchar*) _tmp30_;
#line 3648 "../src/main.vala"
				_tmp32_ = string_strip (_tmp31_);
#line 3648 "../src/main.vala"
				_tmp33_ = _tmp32_;
#line 3648 "../src/main.vala"
				_tmp34_ = string_to_string (_tmp33_);
#line 3648 "../src/main.vala"
				_tmp35_ = location_args;
#line 3648 "../src/main.vala"
				_tmp36_ = string_to_string (_tmp35_);
#line 3648 "../src/main.vala"
				_tmp37_ = g_strconcat (_tmp26_, "(", _tmp28_, ", ", _tmp34_, _tmp36_, ")", NULL);
#line 3648 "../src/main.vala"
				_g_free0 (_result_);
#line 3648 "../src/main.vala"
				_result_ = _tmp37_;
#line 3648 "../src/main.vala"
				_g_free0 (_tmp33_);
#line 3648 "../src/main.vala"
				_g_free0 (_tmp31_);
#line 3644 "../src/main.vala"
				_g_free0 (location_args);
#line 3644 "../src/main.vala"
				_g_free0 (_tmp18_);
#line 3644 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3644 "../src/main.vala"
				_g_free0 (function_name);
#line 40087 "main.c"
			}
		}
	}
#line 3651 "../src/main.vala"
	result = _result_;
#line 3651 "../src/main.vala"
	_g_object_unref0 (parts);
#line 3651 "../src/main.vala"
	return result;
#line 40097 "main.c"
}

static GError*
php_to_vala_transpiler_unsupported_function (PhpToValaTranspiler* self,
                                             gint php_line_number,
                                             const gchar* function_name)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	const gchar* _tmp4_;
	GError* _tmp5_;
	GError* result;
#line 3654 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3654 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, NULL);
#line 3655 "../src/main.vala"
	_tmp1_ = self->priv->runtime_name;
#line 3655 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "native-runtime") == 0) {
#line 3655 "../src/main.vala"
		_tmp0_ = php_to_vala_runtime_bindings_has_embed_runtime_binding (function_name);
#line 40120 "main.c"
	} else {
#line 3655 "../src/main.vala"
		_tmp0_ = FALSE;
#line 40124 "main.c"
	}
#line 3655 "../src/main.vala"
	if (_tmp0_) {
#line 40128 "main.c"
		const gchar* _tmp2_;
		GError* _tmp3_;
#line 3656 "../src/main.vala"
		_tmp2_ = self->priv->source_path;
#line 3656 "../src/main.vala"
		_tmp3_ = g_error_new (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Unsupported PHP function or construct '%s' at %s:%d: no native-runtime" \
" binding exists, but an embed-runtime binding is available; use --both" \
"-runtimes to allow embed fallback", function_name, _tmp2_, php_line_number);
#line 3656 "../src/main.vala"
		result = _tmp3_;
#line 3656 "../src/main.vala"
		return result;
#line 40139 "main.c"
	}
#line 3664 "../src/main.vala"
	_tmp4_ = self->priv->source_path;
#line 3664 "../src/main.vala"
	_tmp5_ = g_error_new (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Unsupported PHP function or construct '%s' at %s:%d", function_name, _tmp4_, php_line_number);
#line 3664 "../src/main.vala"
	result = _tmp5_;
#line 3664 "../src/main.vala"
	return result;
#line 40149 "main.c"
}

static GError*
php_to_vala_transpiler_unsupported_syntax (PhpToValaTranspiler* self,
                                           gint php_line_number,
                                           const gchar* line)
{
	gchar* mapped_source_path = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gint mapped_line_number = 0;
	gint index = 0;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gchar* token_context = NULL;
	const gchar* _tmp14_;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gboolean _tmp17_ = FALSE;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	GError* _tmp29_;
	GError* result;
#line 3672 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3672 "../src/main.vala"
	g_return_val_if_fail (line != NULL, NULL);
#line 3673 "../src/main.vala"
	_tmp0_ = self->priv->source_path;
#line 3673 "../src/main.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 3673 "../src/main.vala"
	mapped_source_path = _tmp1_;
#line 3674 "../src/main.vala"
	mapped_line_number = php_line_number;
#line 3675 "../src/main.vala"
	index = php_line_number - 1;
#line 3676 "../src/main.vala"
	if (index >= 0) {
#line 40191 "main.c"
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 3676 "../src/main.vala"
		_tmp4_ = self->priv->source_line_files;
#line 3676 "../src/main.vala"
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
#line 3676 "../src/main.vala"
		_tmp6_ = _tmp5_;
#line 3676 "../src/main.vala"
		_tmp3_ = index < _tmp6_;
#line 40203 "main.c"
	} else {
#line 3676 "../src/main.vala"
		_tmp3_ = FALSE;
#line 40207 "main.c"
	}
#line 3676 "../src/main.vala"
	if (_tmp3_) {
#line 40211 "main.c"
		GeeArrayList* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
#line 3676 "../src/main.vala"
		_tmp7_ = self->priv->source_line_numbers;
#line 3676 "../src/main.vala"
		_tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp7_);
#line 3676 "../src/main.vala"
		_tmp9_ = _tmp8_;
#line 3676 "../src/main.vala"
		_tmp2_ = index < _tmp9_;
#line 40223 "main.c"
	} else {
#line 3676 "../src/main.vala"
		_tmp2_ = FALSE;
#line 40227 "main.c"
	}
#line 3676 "../src/main.vala"
	if (_tmp2_) {
#line 40231 "main.c"
		GeeArrayList* _tmp10_;
		gpointer _tmp11_;
		GeeArrayList* _tmp12_;
		gpointer _tmp13_;
#line 3677 "../src/main.vala"
		_tmp10_ = self->priv->source_line_files;
#line 3677 "../src/main.vala"
		_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, index);
#line 3677 "../src/main.vala"
		_g_free0 (mapped_source_path);
#line 3677 "../src/main.vala"
		mapped_source_path = (gchar*) _tmp11_;
#line 3678 "../src/main.vala"
		_tmp12_ = self->priv->source_line_numbers;
#line 3678 "../src/main.vala"
		_tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, index);
#line 3678 "../src/main.vala"
		mapped_line_number = (gint) ((gintptr) _tmp13_);
#line 40250 "main.c"
	}
#line 3680 "../src/main.vala"
	_tmp14_ = self->priv->source_path;
#line 3680 "../src/main.vala"
	_tmp15_ = self->priv->last_resolved_source;
#line 3680 "../src/main.vala"
	_tmp16_ = php_to_vala_source_parser_debug_tokens_for_source_line (_tmp14_, _tmp15_, php_line_number, 1);
#line 3680 "../src/main.vala"
	token_context = _tmp16_;
#line 3681 "../src/main.vala"
	_tmp18_ = mapped_source_path;
#line 3681 "../src/main.vala"
	_tmp19_ = self->priv->source_path;
#line 3681 "../src/main.vala"
	if (g_strcmp0 (_tmp18_, _tmp19_) != 0) {
#line 3681 "../src/main.vala"
		_tmp17_ = TRUE;
#line 40268 "main.c"
	} else {
#line 3681 "../src/main.vala"
		_tmp17_ = mapped_line_number != php_line_number;
#line 40272 "main.c"
	}
#line 3681 "../src/main.vala"
	if (_tmp17_) {
#line 40276 "main.c"
		const gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		const gchar* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
#line 3682 "../src/main.vala"
		_tmp20_ = token_context;
#line 3682 "../src/main.vala"
		_tmp21_ = g_strdup_printf ("PHP tokens near line %d:", php_line_number);
#line 3682 "../src/main.vala"
		_tmp22_ = _tmp21_;
#line 3682 "../src/main.vala"
		_tmp23_ = mapped_source_path;
#line 3682 "../src/main.vala"
		_tmp24_ = g_strdup_printf ("PHP tokens near expanded source line %d (mapped to %s:%d):", php_line_number, _tmp23_, mapped_line_number);
#line 3682 "../src/main.vala"
		_tmp25_ = _tmp24_;
#line 3682 "../src/main.vala"
		_tmp26_ = string_replace (_tmp20_, _tmp22_, _tmp25_);
#line 3682 "../src/main.vala"
		_g_free0 (token_context);
#line 3682 "../src/main.vala"
		token_context = _tmp26_;
#line 3682 "../src/main.vala"
		_g_free0 (_tmp25_);
#line 3682 "../src/main.vala"
		_g_free0 (_tmp22_);
#line 40306 "main.c"
	}
#line 3687 "../src/main.vala"
	_tmp27_ = mapped_source_path;
#line 3687 "../src/main.vala"
	_tmp28_ = token_context;
#line 3687 "../src/main.vala"
	_tmp29_ = g_error_new (PHP_TO_VALA_ERROR, PHP_TO_VALA_ERROR_UNSUPPORTED, "Unsupported PHP syntax at %s:%d: %s\n%s", _tmp27_, mapped_line_number, line, _tmp28_);
#line 3687 "../src/main.vala"
	result = _tmp29_;
#line 3687 "../src/main.vala"
	_g_free0 (token_context);
#line 3687 "../src/main.vala"
	_g_free0 (mapped_source_path);
#line 3687 "../src/main.vala"
	return result;
#line 40322 "main.c"
}

GeeArrayList*
php_to_vala_transpiler_split_top_level (PhpToValaTranspiler* self,
                                        const gchar* expression,
                                        gchar separator)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GString* current = NULL;
	GString* _tmp1_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	GeeArrayList* _tmp24_;
	GString* _tmp25_;
	const gchar* _tmp26_;
	GeeArrayList* result;
#line 3696 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3696 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3697 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 3697 "../src/main.vala"
	parts = _tmp0_;
#line 3698 "../src/main.vala"
	_tmp1_ = g_string_new ("");
#line 3698 "../src/main.vala"
	current = _tmp1_;
#line 3699 "../src/main.vala"
	in_single_quote = FALSE;
#line 3700 "../src/main.vala"
	in_double_quote = FALSE;
#line 3701 "../src/main.vala"
	depth = 0;
#line 40359 "main.c"
	{
		gint i = 0;
#line 3703 "../src/main.vala"
		i = 0;
#line 40364 "main.c"
		{
			gboolean _tmp2_ = FALSE;
#line 3703 "../src/main.vala"
			_tmp2_ = TRUE;
#line 3703 "../src/main.vala"
			while (TRUE) {
#line 40371 "main.c"
				gint _tmp4_;
				gint _tmp5_;
				gchar c = '\0';
				gboolean _tmp6_ = FALSE;
				GString* _tmp23_;
#line 3703 "../src/main.vala"
				if (!_tmp2_) {
#line 40379 "main.c"
					gint _tmp3_;
#line 3703 "../src/main.vala"
					_tmp3_ = i;
#line 3703 "../src/main.vala"
					i = _tmp3_ + 1;
#line 40385 "main.c"
				}
#line 3703 "../src/main.vala"
				_tmp2_ = FALSE;
#line 3703 "../src/main.vala"
				_tmp4_ = strlen (expression);
#line 3703 "../src/main.vala"
				_tmp5_ = _tmp4_;
#line 3703 "../src/main.vala"
				if (!(i < _tmp5_)) {
#line 3703 "../src/main.vala"
					break;
#line 40397 "main.c"
				}
#line 3704 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 3706 "../src/main.vala"
				if (c == '\'') {
#line 3706 "../src/main.vala"
					_tmp6_ = !in_double_quote;
#line 40405 "main.c"
				} else {
#line 3706 "../src/main.vala"
					_tmp6_ = FALSE;
#line 40409 "main.c"
				}
#line 3706 "../src/main.vala"
				if (_tmp6_) {
#line 3707 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 40415 "main.c"
				} else {
					gboolean _tmp7_ = FALSE;
#line 3708 "../src/main.vala"
					if (c == '"') {
#line 3708 "../src/main.vala"
						_tmp7_ = !in_single_quote;
#line 40422 "main.c"
					} else {
#line 3708 "../src/main.vala"
						_tmp7_ = FALSE;
#line 40426 "main.c"
					}
#line 3708 "../src/main.vala"
					if (_tmp7_) {
#line 3709 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 40432 "main.c"
					} else {
						gboolean _tmp8_ = FALSE;
#line 3710 "../src/main.vala"
						if (!in_single_quote) {
#line 3710 "../src/main.vala"
							_tmp8_ = !in_double_quote;
#line 40439 "main.c"
						} else {
#line 3710 "../src/main.vala"
							_tmp8_ = FALSE;
#line 40443 "main.c"
						}
#line 3710 "../src/main.vala"
						if (_tmp8_) {
#line 40447 "main.c"
							gboolean _tmp9_ = FALSE;
							gboolean _tmp10_ = FALSE;
#line 3711 "../src/main.vala"
							if (c == '(') {
#line 3711 "../src/main.vala"
								_tmp10_ = TRUE;
#line 40454 "main.c"
							} else {
#line 3711 "../src/main.vala"
								_tmp10_ = c == '[';
#line 40458 "main.c"
							}
#line 3711 "../src/main.vala"
							if (_tmp10_) {
#line 3711 "../src/main.vala"
								_tmp9_ = TRUE;
#line 40464 "main.c"
							} else {
#line 3711 "../src/main.vala"
								_tmp9_ = c == '{';
#line 40468 "main.c"
							}
#line 3711 "../src/main.vala"
							if (_tmp9_) {
#line 40472 "main.c"
								gint _tmp11_;
#line 3712 "../src/main.vala"
								_tmp11_ = depth;
#line 3712 "../src/main.vala"
								depth = _tmp11_ + 1;
#line 40478 "main.c"
							} else {
								gboolean _tmp12_ = FALSE;
								gboolean _tmp13_ = FALSE;
#line 3713 "../src/main.vala"
								if (c == ')') {
#line 3713 "../src/main.vala"
									_tmp13_ = TRUE;
#line 40486 "main.c"
								} else {
#line 3713 "../src/main.vala"
									_tmp13_ = c == ']';
#line 40490 "main.c"
								}
#line 3713 "../src/main.vala"
								if (_tmp13_) {
#line 3713 "../src/main.vala"
									_tmp12_ = TRUE;
#line 40496 "main.c"
								} else {
#line 3713 "../src/main.vala"
									_tmp12_ = c == '}';
#line 40500 "main.c"
								}
#line 3713 "../src/main.vala"
								if (_tmp12_) {
#line 40504 "main.c"
									gint _tmp14_;
#line 3714 "../src/main.vala"
									_tmp14_ = depth;
#line 3714 "../src/main.vala"
									depth = _tmp14_ - 1;
#line 40510 "main.c"
								} else {
									gboolean _tmp15_ = FALSE;
#line 3715 "../src/main.vala"
									if (c == separator) {
#line 3715 "../src/main.vala"
										_tmp15_ = depth == 0;
#line 40517 "main.c"
									} else {
#line 3715 "../src/main.vala"
										_tmp15_ = FALSE;
#line 40521 "main.c"
									}
#line 3715 "../src/main.vala"
									if (_tmp15_) {
#line 40525 "main.c"
										gboolean _tmp16_ = FALSE;
										gboolean _tmp17_ = FALSE;
										GeeArrayList* _tmp19_;
										GString* _tmp20_;
										const gchar* _tmp21_;
										GString* _tmp22_;
#line 3716 "../src/main.vala"
										if (separator == '-') {
#line 3716 "../src/main.vala"
											_tmp17_ = TRUE;
#line 40536 "main.c"
										} else {
#line 3716 "../src/main.vala"
											_tmp17_ = separator == '+';
#line 40540 "main.c"
										}
#line 3716 "../src/main.vala"
										if (_tmp17_) {
#line 3716 "../src/main.vala"
											_tmp16_ = php_to_vala_transpiler_is_unary_sign_position (expression, i);
#line 40546 "main.c"
										} else {
#line 3716 "../src/main.vala"
											_tmp16_ = FALSE;
#line 40550 "main.c"
										}
#line 3716 "../src/main.vala"
										if (_tmp16_) {
#line 40554 "main.c"
											GString* _tmp18_;
#line 3717 "../src/main.vala"
											_tmp18_ = current;
#line 3717 "../src/main.vala"
											g_string_append_c (_tmp18_, c);
#line 3718 "../src/main.vala"
											continue;
#line 40562 "main.c"
										}
#line 3720 "../src/main.vala"
										_tmp19_ = parts;
#line 3720 "../src/main.vala"
										_tmp20_ = current;
#line 3720 "../src/main.vala"
										_tmp21_ = _tmp20_->str;
#line 3720 "../src/main.vala"
										gee_abstract_collection_add ((GeeAbstractCollection*) _tmp19_, _tmp21_);
#line 3721 "../src/main.vala"
										_tmp22_ = current;
#line 3721 "../src/main.vala"
										g_string_truncate (_tmp22_, (gsize) 0);
#line 3722 "../src/main.vala"
										continue;
#line 40578 "main.c"
									}
								}
							}
						}
					}
				}
#line 3726 "../src/main.vala"
				_tmp23_ = current;
#line 3726 "../src/main.vala"
				g_string_append_c (_tmp23_, c);
#line 40589 "main.c"
			}
		}
	}
#line 3729 "../src/main.vala"
	_tmp24_ = parts;
#line 3729 "../src/main.vala"
	_tmp25_ = current;
#line 3729 "../src/main.vala"
	_tmp26_ = _tmp25_->str;
#line 3729 "../src/main.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _tmp26_);
#line 3730 "../src/main.vala"
	result = parts;
#line 3730 "../src/main.vala"
	_g_string_free0 (current);
#line 3730 "../src/main.vala"
	return result;
#line 40607 "main.c"
}

static gboolean
php_to_vala_transpiler_is_unary_sign_position (const gchar* expression,
                                               gint index)
{
	gboolean result;
#line 3733 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 3734 "../src/main.vala"
	if (index <= 0) {
#line 3735 "../src/main.vala"
		result = TRUE;
#line 3735 "../src/main.vala"
		return result;
#line 40623 "main.c"
	}
	{
		gint i = 0;
#line 3737 "../src/main.vala"
		i = index - 1;
#line 40629 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 3737 "../src/main.vala"
			_tmp0_ = TRUE;
#line 3737 "../src/main.vala"
			while (TRUE) {
#line 40636 "main.c"
				gchar previous = '\0';
				gboolean _tmp2_ = FALSE;
				gboolean _tmp3_ = FALSE;
				gboolean _tmp4_ = FALSE;
				gboolean _tmp5_ = FALSE;
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gboolean _tmp8_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				gboolean _tmp11_ = FALSE;
				gboolean _tmp12_ = FALSE;
				gboolean _tmp13_ = FALSE;
				gboolean _tmp14_ = FALSE;
				gboolean _tmp15_ = FALSE;
				gboolean _tmp16_ = FALSE;
				gboolean _tmp17_ = FALSE;
				gboolean _tmp18_ = FALSE;
#line 3737 "../src/main.vala"
				if (!_tmp0_) {
#line 40657 "main.c"
					gint _tmp1_;
#line 3737 "../src/main.vala"
					_tmp1_ = i;
#line 3737 "../src/main.vala"
					i = _tmp1_ - 1;
#line 40663 "main.c"
				}
#line 3737 "../src/main.vala"
				_tmp0_ = FALSE;
#line 3737 "../src/main.vala"
				if (!(i >= 0)) {
#line 3737 "../src/main.vala"
					break;
#line 40671 "main.c"
				}
#line 3738 "../src/main.vala"
				previous = string_get (expression, (glong) i);
#line 3739 "../src/main.vala"
				if (g_ascii_isspace (previous)) {
#line 3740 "../src/main.vala"
					continue;
#line 40679 "main.c"
				}
#line 3742 "../src/main.vala"
				if (previous == '(') {
#line 3742 "../src/main.vala"
					_tmp18_ = TRUE;
#line 40685 "main.c"
				} else {
#line 3743 "../src/main.vala"
					_tmp18_ = previous == '[';
#line 40689 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp18_) {
#line 3742 "../src/main.vala"
					_tmp17_ = TRUE;
#line 40695 "main.c"
				} else {
#line 3744 "../src/main.vala"
					_tmp17_ = previous == '{';
#line 40699 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp17_) {
#line 3742 "../src/main.vala"
					_tmp16_ = TRUE;
#line 40705 "main.c"
				} else {
#line 3745 "../src/main.vala"
					_tmp16_ = previous == ',';
#line 40709 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp16_) {
#line 3742 "../src/main.vala"
					_tmp15_ = TRUE;
#line 40715 "main.c"
				} else {
#line 3746 "../src/main.vala"
					_tmp15_ = previous == '+';
#line 40719 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp15_) {
#line 3742 "../src/main.vala"
					_tmp14_ = TRUE;
#line 40725 "main.c"
				} else {
#line 3747 "../src/main.vala"
					_tmp14_ = previous == '-';
#line 40729 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp14_) {
#line 3742 "../src/main.vala"
					_tmp13_ = TRUE;
#line 40735 "main.c"
				} else {
#line 3748 "../src/main.vala"
					_tmp13_ = previous == '*';
#line 40739 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp13_) {
#line 3742 "../src/main.vala"
					_tmp12_ = TRUE;
#line 40745 "main.c"
				} else {
#line 3749 "../src/main.vala"
					_tmp12_ = previous == '/';
#line 40749 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp12_) {
#line 3742 "../src/main.vala"
					_tmp11_ = TRUE;
#line 40755 "main.c"
				} else {
#line 3750 "../src/main.vala"
					_tmp11_ = previous == '%';
#line 40759 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp11_) {
#line 3742 "../src/main.vala"
					_tmp10_ = TRUE;
#line 40765 "main.c"
				} else {
#line 3751 "../src/main.vala"
					_tmp10_ = previous == '.';
#line 40769 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp10_) {
#line 3742 "../src/main.vala"
					_tmp9_ = TRUE;
#line 40775 "main.c"
				} else {
#line 3752 "../src/main.vala"
					_tmp9_ = previous == '=';
#line 40779 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp9_) {
#line 3742 "../src/main.vala"
					_tmp8_ = TRUE;
#line 40785 "main.c"
				} else {
#line 3753 "../src/main.vala"
					_tmp8_ = previous == '<';
#line 40789 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp8_) {
#line 3742 "../src/main.vala"
					_tmp7_ = TRUE;
#line 40795 "main.c"
				} else {
#line 3754 "../src/main.vala"
					_tmp7_ = previous == '>';
#line 40799 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp7_) {
#line 3742 "../src/main.vala"
					_tmp6_ = TRUE;
#line 40805 "main.c"
				} else {
#line 3755 "../src/main.vala"
					_tmp6_ = previous == '!';
#line 40809 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp6_) {
#line 3742 "../src/main.vala"
					_tmp5_ = TRUE;
#line 40815 "main.c"
				} else {
#line 3756 "../src/main.vala"
					_tmp5_ = previous == '&';
#line 40819 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp5_) {
#line 3742 "../src/main.vala"
					_tmp4_ = TRUE;
#line 40825 "main.c"
				} else {
#line 3757 "../src/main.vala"
					_tmp4_ = previous == '|';
#line 40829 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp4_) {
#line 3742 "../src/main.vala"
					_tmp3_ = TRUE;
#line 40835 "main.c"
				} else {
#line 3758 "../src/main.vala"
					_tmp3_ = previous == '?';
#line 40839 "main.c"
				}
#line 3742 "../src/main.vala"
				if (_tmp3_) {
#line 3742 "../src/main.vala"
					_tmp2_ = TRUE;
#line 40845 "main.c"
				} else {
#line 3759 "../src/main.vala"
					_tmp2_ = previous == ':';
#line 40849 "main.c"
				}
#line 3742 "../src/main.vala"
				result = _tmp2_;
#line 3742 "../src/main.vala"
				return result;
#line 40855 "main.c"
			}
		}
	}
#line 3761 "../src/main.vala"
	result = TRUE;
#line 3761 "../src/main.vala"
	return result;
#line 40863 "main.c"
}

static GeeArrayList*
php_to_vala_transpiler_split_concat (PhpToValaTranspiler* self,
                                     const gchar* expression)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GString* current = NULL;
	GString* _tmp1_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	GeeArrayList* _tmp22_;
	GString* _tmp23_;
	const gchar* _tmp24_;
	GeeArrayList* result;
#line 3764 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3764 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3765 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 3765 "../src/main.vala"
	parts = _tmp0_;
#line 3766 "../src/main.vala"
	_tmp1_ = g_string_new ("");
#line 3766 "../src/main.vala"
	current = _tmp1_;
#line 3767 "../src/main.vala"
	in_single_quote = FALSE;
#line 3768 "../src/main.vala"
	in_double_quote = FALSE;
#line 3769 "../src/main.vala"
	depth = 0;
#line 40899 "main.c"
	{
		gint i = 0;
#line 3771 "../src/main.vala"
		i = 0;
#line 40904 "main.c"
		{
			gboolean _tmp2_ = FALSE;
#line 3771 "../src/main.vala"
			_tmp2_ = TRUE;
#line 3771 "../src/main.vala"
			while (TRUE) {
#line 40911 "main.c"
				gint _tmp4_;
				gint _tmp5_;
				gchar c = '\0';
				gboolean _tmp6_ = FALSE;
				GString* _tmp21_;
#line 3771 "../src/main.vala"
				if (!_tmp2_) {
#line 40919 "main.c"
					gint _tmp3_;
#line 3771 "../src/main.vala"
					_tmp3_ = i;
#line 3771 "../src/main.vala"
					i = _tmp3_ + 1;
#line 40925 "main.c"
				}
#line 3771 "../src/main.vala"
				_tmp2_ = FALSE;
#line 3771 "../src/main.vala"
				_tmp4_ = strlen (expression);
#line 3771 "../src/main.vala"
				_tmp5_ = _tmp4_;
#line 3771 "../src/main.vala"
				if (!(i < _tmp5_)) {
#line 3771 "../src/main.vala"
					break;
#line 40937 "main.c"
				}
#line 3772 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 3774 "../src/main.vala"
				if (c == '\'') {
#line 3774 "../src/main.vala"
					_tmp6_ = !in_double_quote;
#line 40945 "main.c"
				} else {
#line 3774 "../src/main.vala"
					_tmp6_ = FALSE;
#line 40949 "main.c"
				}
#line 3774 "../src/main.vala"
				if (_tmp6_) {
#line 3775 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 40955 "main.c"
				} else {
					gboolean _tmp7_ = FALSE;
#line 3776 "../src/main.vala"
					if (c == '"') {
#line 3776 "../src/main.vala"
						_tmp7_ = !in_single_quote;
#line 40962 "main.c"
					} else {
#line 3776 "../src/main.vala"
						_tmp7_ = FALSE;
#line 40966 "main.c"
					}
#line 3776 "../src/main.vala"
					if (_tmp7_) {
#line 3777 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 40972 "main.c"
					} else {
						gboolean _tmp8_ = FALSE;
#line 3778 "../src/main.vala"
						if (!in_single_quote) {
#line 3778 "../src/main.vala"
							_tmp8_ = !in_double_quote;
#line 40979 "main.c"
						} else {
#line 3778 "../src/main.vala"
							_tmp8_ = FALSE;
#line 40983 "main.c"
						}
#line 3778 "../src/main.vala"
						if (_tmp8_) {
#line 40987 "main.c"
							gboolean _tmp9_ = FALSE;
							gboolean _tmp10_ = FALSE;
#line 3779 "../src/main.vala"
							if (c == '(') {
#line 3779 "../src/main.vala"
								_tmp10_ = TRUE;
#line 40994 "main.c"
							} else {
#line 3779 "../src/main.vala"
								_tmp10_ = c == '[';
#line 40998 "main.c"
							}
#line 3779 "../src/main.vala"
							if (_tmp10_) {
#line 3779 "../src/main.vala"
								_tmp9_ = TRUE;
#line 41004 "main.c"
							} else {
#line 3779 "../src/main.vala"
								_tmp9_ = c == '{';
#line 41008 "main.c"
							}
#line 3779 "../src/main.vala"
							if (_tmp9_) {
#line 41012 "main.c"
								gint _tmp11_;
#line 3780 "../src/main.vala"
								_tmp11_ = depth;
#line 3780 "../src/main.vala"
								depth = _tmp11_ + 1;
#line 41018 "main.c"
							} else {
								gboolean _tmp12_ = FALSE;
								gboolean _tmp13_ = FALSE;
#line 3781 "../src/main.vala"
								if (c == ')') {
#line 3781 "../src/main.vala"
									_tmp13_ = TRUE;
#line 41026 "main.c"
								} else {
#line 3781 "../src/main.vala"
									_tmp13_ = c == ']';
#line 41030 "main.c"
								}
#line 3781 "../src/main.vala"
								if (_tmp13_) {
#line 3781 "../src/main.vala"
									_tmp12_ = TRUE;
#line 41036 "main.c"
								} else {
#line 3781 "../src/main.vala"
									_tmp12_ = c == '}';
#line 41040 "main.c"
								}
#line 3781 "../src/main.vala"
								if (_tmp12_) {
#line 41044 "main.c"
									gint _tmp14_;
#line 3782 "../src/main.vala"
									_tmp14_ = depth;
#line 3782 "../src/main.vala"
									depth = _tmp14_ - 1;
#line 41050 "main.c"
								} else {
									gboolean _tmp15_ = FALSE;
									gboolean _tmp16_ = FALSE;
#line 3783 "../src/main.vala"
									if (c == '.') {
#line 3783 "../src/main.vala"
										_tmp16_ = depth == 0;
#line 41058 "main.c"
									} else {
#line 3783 "../src/main.vala"
										_tmp16_ = FALSE;
#line 41062 "main.c"
									}
#line 3783 "../src/main.vala"
									if (_tmp16_) {
#line 3783 "../src/main.vala"
										_tmp15_ = !php_to_vala_transpiler_is_decimal_point (expression, i);
#line 41068 "main.c"
									} else {
#line 3783 "../src/main.vala"
										_tmp15_ = FALSE;
#line 41072 "main.c"
									}
#line 3783 "../src/main.vala"
									if (_tmp15_) {
#line 41076 "main.c"
										GeeArrayList* _tmp17_;
										GString* _tmp18_;
										const gchar* _tmp19_;
										GString* _tmp20_;
#line 3784 "../src/main.vala"
										_tmp17_ = parts;
#line 3784 "../src/main.vala"
										_tmp18_ = current;
#line 3784 "../src/main.vala"
										_tmp19_ = _tmp18_->str;
#line 3784 "../src/main.vala"
										gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, _tmp19_);
#line 3785 "../src/main.vala"
										_tmp20_ = current;
#line 3785 "../src/main.vala"
										g_string_truncate (_tmp20_, (gsize) 0);
#line 3786 "../src/main.vala"
										continue;
#line 41095 "main.c"
									}
								}
							}
						}
					}
				}
#line 3790 "../src/main.vala"
				_tmp21_ = current;
#line 3790 "../src/main.vala"
				g_string_append_c (_tmp21_, c);
#line 41106 "main.c"
			}
		}
	}
#line 3793 "../src/main.vala"
	_tmp22_ = parts;
#line 3793 "../src/main.vala"
	_tmp23_ = current;
#line 3793 "../src/main.vala"
	_tmp24_ = _tmp23_->str;
#line 3793 "../src/main.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp22_, _tmp24_);
#line 3794 "../src/main.vala"
	result = parts;
#line 3794 "../src/main.vala"
	_g_string_free0 (current);
#line 3794 "../src/main.vala"
	return result;
#line 41124 "main.c"
}

static GeeArrayList*
php_to_vala_transpiler_split_division (const gchar* expression)
{
	GeeArrayList* parts = NULL;
	GeeArrayList* _tmp0_;
	GString* current = NULL;
	GString* _tmp1_;
	gboolean in_single_quote = FALSE;
	gboolean in_double_quote = FALSE;
	gint depth = 0;
	GeeArrayList* _tmp21_;
	GString* _tmp22_;
	const gchar* _tmp23_;
	GeeArrayList* result;
#line 3797 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3798 "../src/main.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 3798 "../src/main.vala"
	parts = _tmp0_;
#line 3799 "../src/main.vala"
	_tmp1_ = g_string_new ("");
#line 3799 "../src/main.vala"
	current = _tmp1_;
#line 3800 "../src/main.vala"
	in_single_quote = FALSE;
#line 3801 "../src/main.vala"
	in_double_quote = FALSE;
#line 3802 "../src/main.vala"
	depth = 0;
#line 41157 "main.c"
	{
		gint i = 0;
#line 3804 "../src/main.vala"
		i = 0;
#line 41162 "main.c"
		{
			gboolean _tmp2_ = FALSE;
#line 3804 "../src/main.vala"
			_tmp2_ = TRUE;
#line 3804 "../src/main.vala"
			while (TRUE) {
#line 41169 "main.c"
				gint _tmp4_;
				gint _tmp5_;
				gchar c = '\0';
				gboolean _tmp6_ = FALSE;
				GString* _tmp20_;
#line 3804 "../src/main.vala"
				if (!_tmp2_) {
#line 41177 "main.c"
					gint _tmp3_;
#line 3804 "../src/main.vala"
					_tmp3_ = i;
#line 3804 "../src/main.vala"
					i = _tmp3_ + 1;
#line 41183 "main.c"
				}
#line 3804 "../src/main.vala"
				_tmp2_ = FALSE;
#line 3804 "../src/main.vala"
				_tmp4_ = strlen (expression);
#line 3804 "../src/main.vala"
				_tmp5_ = _tmp4_;
#line 3804 "../src/main.vala"
				if (!(i < _tmp5_)) {
#line 3804 "../src/main.vala"
					break;
#line 41195 "main.c"
				}
#line 3805 "../src/main.vala"
				c = string_get (expression, (glong) i);
#line 3807 "../src/main.vala"
				if (c == '\'') {
#line 3807 "../src/main.vala"
					_tmp6_ = !in_double_quote;
#line 41203 "main.c"
				} else {
#line 3807 "../src/main.vala"
					_tmp6_ = FALSE;
#line 41207 "main.c"
				}
#line 3807 "../src/main.vala"
				if (_tmp6_) {
#line 3808 "../src/main.vala"
					in_single_quote = !in_single_quote;
#line 41213 "main.c"
				} else {
					gboolean _tmp7_ = FALSE;
#line 3809 "../src/main.vala"
					if (c == '"') {
#line 3809 "../src/main.vala"
						_tmp7_ = !in_single_quote;
#line 41220 "main.c"
					} else {
#line 3809 "../src/main.vala"
						_tmp7_ = FALSE;
#line 41224 "main.c"
					}
#line 3809 "../src/main.vala"
					if (_tmp7_) {
#line 3810 "../src/main.vala"
						in_double_quote = !in_double_quote;
#line 41230 "main.c"
					} else {
						gboolean _tmp8_ = FALSE;
#line 3811 "../src/main.vala"
						if (!in_single_quote) {
#line 3811 "../src/main.vala"
							_tmp8_ = !in_double_quote;
#line 41237 "main.c"
						} else {
#line 3811 "../src/main.vala"
							_tmp8_ = FALSE;
#line 41241 "main.c"
						}
#line 3811 "../src/main.vala"
						if (_tmp8_) {
#line 41245 "main.c"
							gboolean _tmp9_ = FALSE;
							gboolean _tmp10_ = FALSE;
#line 3812 "../src/main.vala"
							if (c == '(') {
#line 3812 "../src/main.vala"
								_tmp10_ = TRUE;
#line 41252 "main.c"
							} else {
#line 3812 "../src/main.vala"
								_tmp10_ = c == '[';
#line 41256 "main.c"
							}
#line 3812 "../src/main.vala"
							if (_tmp10_) {
#line 3812 "../src/main.vala"
								_tmp9_ = TRUE;
#line 41262 "main.c"
							} else {
#line 3812 "../src/main.vala"
								_tmp9_ = c == '{';
#line 41266 "main.c"
							}
#line 3812 "../src/main.vala"
							if (_tmp9_) {
#line 41270 "main.c"
								gint _tmp11_;
#line 3813 "../src/main.vala"
								_tmp11_ = depth;
#line 3813 "../src/main.vala"
								depth = _tmp11_ + 1;
#line 41276 "main.c"
							} else {
								gboolean _tmp12_ = FALSE;
								gboolean _tmp13_ = FALSE;
#line 3814 "../src/main.vala"
								if (c == ')') {
#line 3814 "../src/main.vala"
									_tmp13_ = TRUE;
#line 41284 "main.c"
								} else {
#line 3814 "../src/main.vala"
									_tmp13_ = c == ']';
#line 41288 "main.c"
								}
#line 3814 "../src/main.vala"
								if (_tmp13_) {
#line 3814 "../src/main.vala"
									_tmp12_ = TRUE;
#line 41294 "main.c"
								} else {
#line 3814 "../src/main.vala"
									_tmp12_ = c == '}';
#line 41298 "main.c"
								}
#line 3814 "../src/main.vala"
								if (_tmp12_) {
#line 41302 "main.c"
									gint _tmp14_;
#line 3815 "../src/main.vala"
									_tmp14_ = depth;
#line 3815 "../src/main.vala"
									depth = _tmp14_ - 1;
#line 41308 "main.c"
								} else {
									gboolean _tmp15_ = FALSE;
#line 3816 "../src/main.vala"
									if (c == '/') {
#line 3816 "../src/main.vala"
										_tmp15_ = depth == 0;
#line 41315 "main.c"
									} else {
#line 3816 "../src/main.vala"
										_tmp15_ = FALSE;
#line 41319 "main.c"
									}
#line 3816 "../src/main.vala"
									if (_tmp15_) {
#line 41323 "main.c"
										GeeArrayList* _tmp16_;
										GString* _tmp17_;
										const gchar* _tmp18_;
										GString* _tmp19_;
#line 3817 "../src/main.vala"
										_tmp16_ = parts;
#line 3817 "../src/main.vala"
										_tmp17_ = current;
#line 3817 "../src/main.vala"
										_tmp18_ = _tmp17_->str;
#line 3817 "../src/main.vala"
										gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp18_);
#line 3818 "../src/main.vala"
										_tmp19_ = current;
#line 3818 "../src/main.vala"
										g_string_truncate (_tmp19_, (gsize) 0);
#line 3819 "../src/main.vala"
										continue;
#line 41342 "main.c"
									}
								}
							}
						}
					}
				}
#line 3823 "../src/main.vala"
				_tmp20_ = current;
#line 3823 "../src/main.vala"
				g_string_append_c (_tmp20_, c);
#line 41353 "main.c"
			}
		}
	}
#line 3826 "../src/main.vala"
	_tmp21_ = parts;
#line 3826 "../src/main.vala"
	_tmp22_ = current;
#line 3826 "../src/main.vala"
	_tmp23_ = _tmp22_->str;
#line 3826 "../src/main.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, _tmp23_);
#line 3827 "../src/main.vala"
	result = parts;
#line 3827 "../src/main.vala"
	_g_string_free0 (current);
#line 3827 "../src/main.vala"
	return result;
#line 41371 "main.c"
}

static gchar*
php_to_vala_transpiler_infer_type (PhpToValaTranspiler* self,
                                   const gchar* expression)
{
	gchar* expression_type = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	GRegex* _tmp4_;
	GRegex* _tmp6_;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp19_ = FALSE;
	gboolean _tmp21_ = FALSE;
	gboolean _tmp22_ = FALSE;
	gboolean _tmp23_ = FALSE;
	gboolean _tmp24_ = FALSE;
	gboolean _tmp25_ = FALSE;
	gboolean _tmp26_ = FALSE;
	gboolean _tmp27_ = FALSE;
	gboolean _tmp28_ = FALSE;
	gboolean _tmp29_ = FALSE;
	gboolean _tmp30_ = FALSE;
	gboolean _tmp31_ = FALSE;
	gboolean _tmp32_ = FALSE;
	gboolean _tmp33_ = FALSE;
	gboolean _tmp35_ = FALSE;
	gboolean _tmp36_ = FALSE;
	gboolean _tmp37_ = FALSE;
	gboolean _tmp38_ = FALSE;
	gboolean _tmp39_ = FALSE;
	gboolean _tmp40_ = FALSE;
	gboolean _tmp41_ = FALSE;
	gboolean _tmp42_ = FALSE;
	gboolean _tmp43_ = FALSE;
	gboolean _tmp44_ = FALSE;
	gboolean _tmp45_ = FALSE;
	gboolean _tmp46_ = FALSE;
	gboolean _tmp48_ = FALSE;
	gchar* _tmp50_;
	gchar* result;
#line 3830 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3830 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3831 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_infer_expression_type (self, expression);
#line 3831 "../src/main.vala"
	expression_type = _tmp0_;
#line 3832 "../src/main.vala"
	_tmp1_ = expression_type;
#line 3832 "../src/main.vala"
	if (g_strcmp0 (_tmp1_, "") != 0) {
#line 3833 "../src/main.vala"
		result = expression_type;
#line 3833 "../src/main.vala"
		return result;
#line 41429 "main.c"
	}
#line 3835 "../src/main.vala"
	if (php_to_vala_transpiler_is_string_literal (expression)) {
#line 41433 "main.c"
		gchar* _tmp2_;
#line 3836 "../src/main.vala"
		_tmp2_ = g_strdup ("string");
#line 3836 "../src/main.vala"
		result = _tmp2_;
#line 3836 "../src/main.vala"
		_g_free0 (expression_type);
#line 3836 "../src/main.vala"
		return result;
#line 41443 "main.c"
	}
#line 3838 "../src/main.vala"
	if (string_index_of (expression, "?? \"\"", 0) >= 0) {
#line 41447 "main.c"
		gchar* _tmp3_;
#line 3839 "../src/main.vala"
		_tmp3_ = g_strdup ("string");
#line 3839 "../src/main.vala"
		result = _tmp3_;
#line 3839 "../src/main.vala"
		_g_free0 (expression_type);
#line 3839 "../src/main.vala"
		return result;
#line 41457 "main.c"
	}
#line 3841 "../src/main.vala"
	_tmp4_ = self->priv->int_regex;
#line 3841 "../src/main.vala"
	if (g_regex_match (_tmp4_, expression, 0, NULL)) {
#line 41463 "main.c"
		gchar* _tmp5_;
#line 3842 "../src/main.vala"
		_tmp5_ = g_strdup ("int");
#line 3842 "../src/main.vala"
		result = _tmp5_;
#line 3842 "../src/main.vala"
		_g_free0 (expression_type);
#line 3842 "../src/main.vala"
		return result;
#line 41473 "main.c"
	}
#line 3844 "../src/main.vala"
	_tmp6_ = self->priv->double_regex;
#line 3844 "../src/main.vala"
	if (g_regex_match (_tmp6_, expression, 0, NULL)) {
#line 41479 "main.c"
		gchar* _tmp7_;
#line 3845 "../src/main.vala"
		_tmp7_ = g_strdup ("double");
#line 3845 "../src/main.vala"
		result = _tmp7_;
#line 3845 "../src/main.vala"
		_g_free0 (expression_type);
#line 3845 "../src/main.vala"
		return result;
#line 41489 "main.c"
	}
#line 3847 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "round")) {
#line 41493 "main.c"
		gchar* _tmp8_;
#line 3848 "../src/main.vala"
		_tmp8_ = g_strdup ("double");
#line 3848 "../src/main.vala"
		result = _tmp8_;
#line 3848 "../src/main.vala"
		_g_free0 (expression_type);
#line 3848 "../src/main.vala"
		return result;
#line 41503 "main.c"
	}
#line 3850 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "div")) {
#line 41507 "main.c"
		gchar* _tmp9_;
#line 3851 "../src/main.vala"
		_tmp9_ = g_strdup ("double");
#line 3851 "../src/main.vala"
		result = _tmp9_;
#line 3851 "../src/main.vala"
		_g_free0 (expression_type);
#line 3851 "../src/main.vala"
		return result;
#line 41517 "main.c"
	}
#line 3853 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "json_decode")) {
#line 3853 "../src/main.vala"
		_tmp10_ = TRUE;
#line 41523 "main.c"
	} else {
#line 3854 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "unserialize");
#line 41527 "main.c"
	}
#line 3853 "../src/main.vala"
	if (_tmp10_) {
#line 41531 "main.c"
		const gchar* _tmp11_ = NULL;
		FunctionBinding* binding = NULL;
		GeeHashMap* _tmp12_;
		gpointer _tmp13_;
		const gchar* _tmp14_ = NULL;
		FunctionBinding* _tmp15_;
		gchar* _tmp18_;
#line 3855 "../src/main.vala"
		if (php_to_vala_transpiler_is_function_call_expression (self, expression, "json_decode")) {
#line 3855 "../src/main.vala"
			_tmp11_ = "json_decode";
#line 41543 "main.c"
		} else {
#line 3855 "../src/main.vala"
			_tmp11_ = "unserialize";
#line 41547 "main.c"
		}
#line 3855 "../src/main.vala"
		_tmp12_ = self->priv->function_bindings;
#line 3855 "../src/main.vala"
		_tmp13_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp11_);
#line 3855 "../src/main.vala"
		binding = (FunctionBinding*) _tmp13_;
#line 3856 "../src/main.vala"
		_tmp15_ = binding;
#line 3856 "../src/main.vala"
		if (_tmp15_ != NULL) {
#line 41559 "main.c"
			FunctionBinding* _tmp16_;
			const gchar* _tmp17_;
#line 3856 "../src/main.vala"
			_tmp16_ = binding;
#line 3856 "../src/main.vala"
			_tmp17_ = _tmp16_->return_type;
#line 3856 "../src/main.vala"
			_tmp14_ = _tmp17_;
#line 41568 "main.c"
		} else {
#line 3856 "../src/main.vala"
			_tmp14_ = "Php.zval";
#line 41572 "main.c"
		}
#line 3856 "../src/main.vala"
		_tmp18_ = g_strdup (_tmp14_);
#line 3856 "../src/main.vala"
		result = _tmp18_;
#line 3856 "../src/main.vala"
		_g_object_unref0 (binding);
#line 3856 "../src/main.vala"
		_g_free0 (expression_type);
#line 3856 "../src/main.vala"
		return result;
#line 41584 "main.c"
	}
#line 3858 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "strlen")) {
#line 3858 "../src/main.vala"
		_tmp19_ = TRUE;
#line 41590 "main.c"
	} else {
#line 3859 "../src/main.vala"
		_tmp19_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "count");
#line 41594 "main.c"
	}
#line 3858 "../src/main.vala"
	if (_tmp19_) {
#line 41598 "main.c"
		gchar* _tmp20_;
#line 3860 "../src/main.vala"
		_tmp20_ = g_strdup ("int");
#line 3860 "../src/main.vala"
		result = _tmp20_;
#line 3860 "../src/main.vala"
		_g_free0 (expression_type);
#line 3860 "../src/main.vala"
		return result;
#line 41608 "main.c"
	}
#line 3862 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "is_array")) {
#line 3862 "../src/main.vala"
		_tmp33_ = TRUE;
#line 41614 "main.c"
	} else {
#line 3863 "../src/main.vala"
		_tmp33_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_object");
#line 41618 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp33_) {
#line 3862 "../src/main.vala"
		_tmp32_ = TRUE;
#line 41624 "main.c"
	} else {
#line 3864 "../src/main.vala"
		_tmp32_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_null");
#line 41628 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp32_) {
#line 3862 "../src/main.vala"
		_tmp31_ = TRUE;
#line 41634 "main.c"
	} else {
#line 3865 "../src/main.vala"
		_tmp31_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_string");
#line 41638 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp31_) {
#line 3862 "../src/main.vala"
		_tmp30_ = TRUE;
#line 41644 "main.c"
	} else {
#line 3866 "../src/main.vala"
		_tmp30_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_int");
#line 41648 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp30_) {
#line 3862 "../src/main.vala"
		_tmp29_ = TRUE;
#line 41654 "main.c"
	} else {
#line 3867 "../src/main.vala"
		_tmp29_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_integer");
#line 41658 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp29_) {
#line 3862 "../src/main.vala"
		_tmp28_ = TRUE;
#line 41664 "main.c"
	} else {
#line 3868 "../src/main.vala"
		_tmp28_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_long");
#line 41668 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp28_) {
#line 3862 "../src/main.vala"
		_tmp27_ = TRUE;
#line 41674 "main.c"
	} else {
#line 3869 "../src/main.vala"
		_tmp27_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_float");
#line 41678 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp27_) {
#line 3862 "../src/main.vala"
		_tmp26_ = TRUE;
#line 41684 "main.c"
	} else {
#line 3870 "../src/main.vala"
		_tmp26_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_double");
#line 41688 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp26_) {
#line 3862 "../src/main.vala"
		_tmp25_ = TRUE;
#line 41694 "main.c"
	} else {
#line 3871 "../src/main.vala"
		_tmp25_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_real");
#line 41698 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp25_) {
#line 3862 "../src/main.vala"
		_tmp24_ = TRUE;
#line 41704 "main.c"
	} else {
#line 3872 "../src/main.vala"
		_tmp24_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_bool");
#line 41708 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp24_) {
#line 3862 "../src/main.vala"
		_tmp23_ = TRUE;
#line 41714 "main.c"
	} else {
#line 3873 "../src/main.vala"
		_tmp23_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_numeric");
#line 41718 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp23_) {
#line 3862 "../src/main.vala"
		_tmp22_ = TRUE;
#line 41724 "main.c"
	} else {
#line 3874 "../src/main.vala"
		_tmp22_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "isset");
#line 41728 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp22_) {
#line 3862 "../src/main.vala"
		_tmp21_ = TRUE;
#line 41734 "main.c"
	} else {
#line 3875 "../src/main.vala"
		_tmp21_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "empty");
#line 41738 "main.c"
	}
#line 3862 "../src/main.vala"
	if (_tmp21_) {
#line 41742 "main.c"
		gchar* _tmp34_;
#line 3876 "../src/main.vala"
		_tmp34_ = g_strdup ("bool");
#line 3876 "../src/main.vala"
		result = _tmp34_;
#line 3876 "../src/main.vala"
		_g_free0 (expression_type);
#line 3876 "../src/main.vala"
		return result;
#line 41752 "main.c"
	}
#line 3878 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "json_last_error_msg")) {
#line 3878 "../src/main.vala"
		_tmp46_ = TRUE;
#line 41758 "main.c"
	} else {
#line 3879 "../src/main.vala"
		_tmp46_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "json_encode");
#line 41762 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp46_) {
#line 3878 "../src/main.vala"
		_tmp45_ = TRUE;
#line 41768 "main.c"
	} else {
#line 3880 "../src/main.vala"
		_tmp45_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "phpinfo");
#line 41772 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp45_) {
#line 3878 "../src/main.vala"
		_tmp44_ = TRUE;
#line 41778 "main.c"
	} else {
#line 3881 "../src/main.vala"
		_tmp44_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "print_r");
#line 41782 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp44_) {
#line 3878 "../src/main.vala"
		_tmp43_ = TRUE;
#line 41788 "main.c"
	} else {
#line 3882 "../src/main.vala"
		_tmp43_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "serialize");
#line 41792 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp43_) {
#line 3878 "../src/main.vala"
		_tmp42_ = TRUE;
#line 41798 "main.c"
	} else {
#line 3883 "../src/main.vala"
		_tmp42_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "var_dump");
#line 41802 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp42_) {
#line 3878 "../src/main.vala"
		_tmp41_ = TRUE;
#line 41808 "main.c"
	} else {
#line 3884 "../src/main.vala"
		_tmp41_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "var_export");
#line 41812 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp41_) {
#line 3878 "../src/main.vala"
		_tmp40_ = TRUE;
#line 41818 "main.c"
	} else {
#line 3885 "../src/main.vala"
		_tmp40_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "gettype");
#line 41822 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp40_) {
#line 3878 "../src/main.vala"
		_tmp39_ = TRUE;
#line 41828 "main.c"
	} else {
#line 3886 "../src/main.vala"
		_tmp39_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "trim");
#line 41832 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp39_) {
#line 3878 "../src/main.vala"
		_tmp38_ = TRUE;
#line 41838 "main.c"
	} else {
#line 3887 "../src/main.vala"
		_tmp38_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "substr");
#line 41842 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp38_) {
#line 3878 "../src/main.vala"
		_tmp37_ = TRUE;
#line 41848 "main.c"
	} else {
#line 3888 "../src/main.vala"
		_tmp37_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "exec");
#line 41852 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp37_) {
#line 3878 "../src/main.vala"
		_tmp36_ = TRUE;
#line 41858 "main.c"
	} else {
#line 3889 "../src/main.vala"
		_tmp36_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "shell_exec");
#line 41862 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp36_) {
#line 3878 "../src/main.vala"
		_tmp35_ = TRUE;
#line 41868 "main.c"
	} else {
#line 3890 "../src/main.vala"
		_tmp35_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "file_get_contents");
#line 41872 "main.c"
	}
#line 3878 "../src/main.vala"
	if (_tmp35_) {
#line 41876 "main.c"
		gchar* _tmp47_;
#line 3891 "../src/main.vala"
		_tmp47_ = g_strdup ("string");
#line 3891 "../src/main.vala"
		result = _tmp47_;
#line 3891 "../src/main.vala"
		_g_free0 (expression_type);
#line 3891 "../src/main.vala"
		return result;
#line 41886 "main.c"
	}
#line 3893 "../src/main.vala"
	if (g_strcmp0 (expression, "true") == 0) {
#line 3893 "../src/main.vala"
		_tmp48_ = TRUE;
#line 41892 "main.c"
	} else {
#line 3893 "../src/main.vala"
		_tmp48_ = g_strcmp0 (expression, "false") == 0;
#line 41896 "main.c"
	}
#line 3893 "../src/main.vala"
	if (_tmp48_) {
#line 41900 "main.c"
		gchar* _tmp49_;
#line 3894 "../src/main.vala"
		_tmp49_ = g_strdup ("bool");
#line 3894 "../src/main.vala"
		result = _tmp49_;
#line 3894 "../src/main.vala"
		_g_free0 (expression_type);
#line 3894 "../src/main.vala"
		return result;
#line 41910 "main.c"
	}
#line 3896 "../src/main.vala"
	_tmp50_ = g_strdup ("var");
#line 3896 "../src/main.vala"
	result = _tmp50_;
#line 3896 "../src/main.vala"
	_g_free0 (expression_type);
#line 3896 "../src/main.vala"
	return result;
#line 41920 "main.c"
}

static gchar*
php_to_vala_transpiler_infer_expression_type (PhpToValaTranspiler* self,
                                              const gchar* expression)
{
	gchar* clean = NULL;
	gchar* _tmp0_;
	GeeHashMap* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp6_;
	gchar* _tmp32_;
	gchar* result;
#line 3899 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3899 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3900 "../src/main.vala"
	_tmp0_ = string_strip (expression);
#line 3900 "../src/main.vala"
	clean = _tmp0_;
#line 3901 "../src/main.vala"
	_tmp1_ = self->variable_types;
#line 3901 "../src/main.vala"
	_tmp2_ = clean;
#line 3901 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp1_, _tmp2_)) {
#line 41948 "main.c"
		GeeHashMap* _tmp3_;
		const gchar* _tmp4_;
		gpointer _tmp5_;
#line 3902 "../src/main.vala"
		_tmp3_ = self->variable_types;
#line 3902 "../src/main.vala"
		_tmp4_ = clean;
#line 3902 "../src/main.vala"
		_tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, _tmp4_);
#line 3902 "../src/main.vala"
		result = (gchar*) _tmp5_;
#line 3902 "../src/main.vala"
		_g_free0 (clean);
#line 3902 "../src/main.vala"
		return result;
#line 41964 "main.c"
	}
#line 3904 "../src/main.vala"
	_tmp6_ = clean;
#line 3904 "../src/main.vala"
	if (g_str_has_prefix (_tmp6_, "PhpEmbed.explode_static(")) {
#line 41970 "main.c"
		gchar* _tmp7_;
#line 3905 "../src/main.vala"
		_tmp7_ = g_strdup ("Gee.ArrayList<string>");
#line 3905 "../src/main.vala"
		result = _tmp7_;
#line 3905 "../src/main.vala"
		_g_free0 (clean);
#line 3905 "../src/main.vala"
		return result;
#line 41980 "main.c"
	}
	{
		GeeIterator* _function_name_it = NULL;
		GeeHashMap* _tmp8_;
		GeeSet* _tmp9_;
		GeeSet* _tmp10_;
		GeeSet* _tmp11_;
		GeeIterator* _tmp12_;
		GeeIterator* _tmp13_;
#line 3907 "../src/main.vala"
		_tmp8_ = self->priv->function_bindings;
#line 3907 "../src/main.vala"
		_tmp9_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp8_);
#line 3907 "../src/main.vala"
		_tmp10_ = _tmp9_;
#line 3907 "../src/main.vala"
		_tmp11_ = _tmp10_;
#line 3907 "../src/main.vala"
		_tmp12_ = gee_iterable_iterator ((GeeIterable*) _tmp11_);
#line 3907 "../src/main.vala"
		_tmp13_ = _tmp12_;
#line 3907 "../src/main.vala"
		_g_object_unref0 (_tmp11_);
#line 3907 "../src/main.vala"
		_function_name_it = _tmp13_;
#line 3907 "../src/main.vala"
		while (TRUE) {
#line 42008 "main.c"
			GeeIterator* _tmp14_;
			gchar* function_name = NULL;
			GeeIterator* _tmp15_;
			gpointer _tmp16_;
			FunctionBinding* binding = NULL;
			GeeHashMap* _tmp17_;
			const gchar* _tmp18_;
			gpointer _tmp19_;
			gboolean _tmp20_ = FALSE;
			FunctionBinding* _tmp21_;
#line 3907 "../src/main.vala"
			_tmp14_ = _function_name_it;
#line 3907 "../src/main.vala"
			if (!gee_iterator_next (_tmp14_)) {
#line 3907 "../src/main.vala"
				break;
#line 42025 "main.c"
			}
#line 3907 "../src/main.vala"
			_tmp15_ = _function_name_it;
#line 3907 "../src/main.vala"
			_tmp16_ = gee_iterator_get (_tmp15_);
#line 3907 "../src/main.vala"
			function_name = (gchar*) _tmp16_;
#line 3908 "../src/main.vala"
			_tmp17_ = self->priv->function_bindings;
#line 3908 "../src/main.vala"
			_tmp18_ = function_name;
#line 3908 "../src/main.vala"
			_tmp19_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp17_, _tmp18_);
#line 3908 "../src/main.vala"
			binding = (FunctionBinding*) _tmp19_;
#line 3909 "../src/main.vala"
			_tmp21_ = binding;
#line 3909 "../src/main.vala"
			if (_tmp21_ != NULL) {
#line 42045 "main.c"
				const gchar* _tmp22_;
				FunctionBinding* _tmp23_;
				const gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				gchar* _tmp28_;
#line 3909 "../src/main.vala"
				_tmp22_ = clean;
#line 3909 "../src/main.vala"
				_tmp23_ = binding;
#line 3909 "../src/main.vala"
				_tmp24_ = function_name;
#line 3909 "../src/main.vala"
				_tmp25_ = function_binding_call_name (_tmp23_, _tmp24_);
#line 3909 "../src/main.vala"
				_tmp26_ = _tmp25_;
#line 3909 "../src/main.vala"
				_tmp27_ = g_strconcat (_tmp26_, "(", NULL);
#line 3909 "../src/main.vala"
				_tmp28_ = _tmp27_;
#line 3909 "../src/main.vala"
				_tmp20_ = g_str_has_prefix (_tmp22_, _tmp28_);
#line 3909 "../src/main.vala"
				_g_free0 (_tmp28_);
#line 3909 "../src/main.vala"
				_g_free0 (_tmp26_);
#line 42073 "main.c"
			} else {
#line 3909 "../src/main.vala"
				_tmp20_ = FALSE;
#line 42077 "main.c"
			}
#line 3909 "../src/main.vala"
			if (_tmp20_) {
#line 42081 "main.c"
				FunctionBinding* _tmp29_;
				const gchar* _tmp30_;
				gchar* _tmp31_;
#line 3910 "../src/main.vala"
				_tmp29_ = binding;
#line 3910 "../src/main.vala"
				_tmp30_ = _tmp29_->return_type;
#line 3910 "../src/main.vala"
				_tmp31_ = g_strdup (_tmp30_);
#line 3910 "../src/main.vala"
				result = _tmp31_;
#line 3910 "../src/main.vala"
				_g_object_unref0 (binding);
#line 3910 "../src/main.vala"
				_g_free0 (function_name);
#line 3910 "../src/main.vala"
				_g_object_unref0 (_function_name_it);
#line 3910 "../src/main.vala"
				_g_free0 (clean);
#line 3910 "../src/main.vala"
				return result;
#line 42103 "main.c"
			}
#line 3907 "../src/main.vala"
			_g_object_unref0 (binding);
#line 3907 "../src/main.vala"
			_g_free0 (function_name);
#line 42109 "main.c"
		}
#line 3907 "../src/main.vala"
		_g_object_unref0 (_function_name_it);
#line 42113 "main.c"
	}
#line 3913 "../src/main.vala"
	_tmp32_ = g_strdup ("");
#line 3913 "../src/main.vala"
	result = _tmp32_;
#line 3913 "../src/main.vala"
	_g_free0 (clean);
#line 3913 "../src/main.vala"
	return result;
#line 42123 "main.c"
}

static gchar*
php_to_vala_transpiler_hash_key_type (const gchar* type_name)
{
	gchar* inner = NULL;
	gchar* _tmp0_;
	gchar** parts = NULL;
	gint _tmp1_ = 0;
	gchar** _tmp2_;
	gint parts_length1;
	gint _parts_size_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
#line 3916 "../src/main.vala"
	g_return_val_if_fail (type_name != NULL, NULL);
#line 3917 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_generic_inner (type_name, "Gee.HashMap<");
#line 3917 "../src/main.vala"
	inner = _tmp0_;
#line 3918 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_split_generic_pair (inner, &_tmp1_);
#line 3918 "../src/main.vala"
	parts = _tmp2_;
#line 3918 "../src/main.vala"
	parts_length1 = _tmp1_;
#line 3918 "../src/main.vala"
	_parts_size_ = parts_length1;
#line 3919 "../src/main.vala"
	_tmp3_ = parts[0];
#line 3919 "../src/main.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 3919 "../src/main.vala"
	result = _tmp4_;
#line 3919 "../src/main.vala"
	parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 3919 "../src/main.vala"
	_g_free0 (inner);
#line 3919 "../src/main.vala"
	return result;
#line 42165 "main.c"
}

static gchar*
php_to_vala_transpiler_hash_value_type (const gchar* type_name)
{
	gchar* inner = NULL;
	gchar* _tmp0_;
	gchar** parts = NULL;
	gint _tmp1_ = 0;
	gchar** _tmp2_;
	gint parts_length1;
	gint _parts_size_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
#line 3922 "../src/main.vala"
	g_return_val_if_fail (type_name != NULL, NULL);
#line 3923 "../src/main.vala"
	_tmp0_ = php_to_vala_transpiler_generic_inner (type_name, "Gee.HashMap<");
#line 3923 "../src/main.vala"
	inner = _tmp0_;
#line 3924 "../src/main.vala"
	_tmp2_ = php_to_vala_transpiler_split_generic_pair (inner, &_tmp1_);
#line 3924 "../src/main.vala"
	parts = _tmp2_;
#line 3924 "../src/main.vala"
	parts_length1 = _tmp1_;
#line 3924 "../src/main.vala"
	_parts_size_ = parts_length1;
#line 3925 "../src/main.vala"
	_tmp3_ = parts[1];
#line 3925 "../src/main.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 3925 "../src/main.vala"
	result = _tmp4_;
#line 3925 "../src/main.vala"
	parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
#line 3925 "../src/main.vala"
	_g_free0 (inner);
#line 3925 "../src/main.vala"
	return result;
#line 42207 "main.c"
}

static gchar*
php_to_vala_transpiler_generic_inner (const gchar* type_name,
                                      const gchar* prefix)
{
	gboolean _tmp0_ = FALSE;
	gint _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gchar* _tmp8_;
	gchar* result;
#line 3928 "../src/main.vala"
	g_return_val_if_fail (type_name != NULL, NULL);
#line 3928 "../src/main.vala"
	g_return_val_if_fail (prefix != NULL, NULL);
#line 3929 "../src/main.vala"
	if (!g_str_has_prefix (type_name, prefix)) {
#line 3929 "../src/main.vala"
		_tmp0_ = TRUE;
#line 42231 "main.c"
	} else {
#line 3929 "../src/main.vala"
		_tmp0_ = !g_str_has_suffix (type_name, ">");
#line 42235 "main.c"
	}
#line 3929 "../src/main.vala"
	if (_tmp0_) {
#line 42239 "main.c"
		gchar* _tmp1_;
#line 3930 "../src/main.vala"
		_tmp1_ = g_strdup ("");
#line 3930 "../src/main.vala"
		result = _tmp1_;
#line 3930 "../src/main.vala"
		return result;
#line 42247 "main.c"
	}
#line 3932 "../src/main.vala"
	_tmp2_ = strlen (prefix);
#line 3932 "../src/main.vala"
	_tmp3_ = _tmp2_;
#line 3932 "../src/main.vala"
	_tmp4_ = strlen (type_name);
#line 3932 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 3932 "../src/main.vala"
	_tmp6_ = strlen (prefix);
#line 3932 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 3932 "../src/main.vala"
	_tmp8_ = string_substring (type_name, (glong) _tmp3_, (glong) ((_tmp5_ - _tmp7_) - 1));
#line 3932 "../src/main.vala"
	result = _tmp8_;
#line 3932 "../src/main.vala"
	return result;
#line 42267 "main.c"
}

static gchar**
php_to_vala_transpiler_split_generic_pair (const gchar* inner,
                                           gint* result_length1)
{
	gint depth = 0;
	gchar** fallback = NULL;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar** _tmp18_;
	gint fallback_length1;
	gint _fallback_size_;
	gchar** _tmp19_;
	gint _tmp19__length1;
	gchar** result;
#line 3935 "../src/main.vala"
	g_return_val_if_fail (inner != NULL, NULL);
#line 3936 "../src/main.vala"
	depth = 0;
#line 42288 "main.c"
	{
		gint i = 0;
#line 3937 "../src/main.vala"
		i = 0;
#line 42293 "main.c"
		{
			gboolean _tmp0_ = FALSE;
#line 3937 "../src/main.vala"
			_tmp0_ = TRUE;
#line 3937 "../src/main.vala"
			while (TRUE) {
#line 42300 "main.c"
				gint _tmp2_;
				gint _tmp3_;
				gchar c = '\0';
#line 3937 "../src/main.vala"
				if (!_tmp0_) {
#line 42306 "main.c"
					gint _tmp1_;
#line 3937 "../src/main.vala"
					_tmp1_ = i;
#line 3937 "../src/main.vala"
					i = _tmp1_ + 1;
#line 42312 "main.c"
				}
#line 3937 "../src/main.vala"
				_tmp0_ = FALSE;
#line 3937 "../src/main.vala"
				_tmp2_ = strlen (inner);
#line 3937 "../src/main.vala"
				_tmp3_ = _tmp2_;
#line 3937 "../src/main.vala"
				if (!(i < _tmp3_)) {
#line 3937 "../src/main.vala"
					break;
#line 42324 "main.c"
				}
#line 3938 "../src/main.vala"
				c = string_get (inner, (glong) i);
#line 3939 "../src/main.vala"
				if (c == '<') {
#line 42330 "main.c"
					gint _tmp4_;
#line 3940 "../src/main.vala"
					_tmp4_ = depth;
#line 3940 "../src/main.vala"
					depth = _tmp4_ + 1;
#line 42336 "main.c"
				} else {
#line 3941 "../src/main.vala"
					if (c == '>') {
#line 42340 "main.c"
						gint _tmp5_;
#line 3942 "../src/main.vala"
						_tmp5_ = depth;
#line 3942 "../src/main.vala"
						depth = _tmp5_ - 1;
#line 42346 "main.c"
					} else {
						gboolean _tmp6_ = FALSE;
#line 3943 "../src/main.vala"
						if (c == ',') {
#line 3943 "../src/main.vala"
							_tmp6_ = depth == 0;
#line 42353 "main.c"
						} else {
#line 3943 "../src/main.vala"
							_tmp6_ = FALSE;
#line 42357 "main.c"
						}
#line 3943 "../src/main.vala"
						if (_tmp6_) {
#line 42361 "main.c"
							gchar** _result_ = NULL;
							gchar* _tmp7_;
							gchar* _tmp8_;
							gchar* _tmp9_;
							gchar* _tmp10_;
							gchar* _tmp11_;
							gchar* _tmp12_;
							gchar** _tmp13_;
							gchar** _tmp14_;
							gint _tmp14__length1;
							gint _result__length1;
							gint __result__size_;
							gchar** _tmp15_;
							gint _tmp15__length1;
#line 3944 "../src/main.vala"
							_tmp7_ = string_substring (inner, (glong) 0, (glong) i);
#line 3944 "../src/main.vala"
							_tmp8_ = _tmp7_;
#line 3944 "../src/main.vala"
							_tmp9_ = string_strip (_tmp8_);
#line 3944 "../src/main.vala"
							_tmp10_ = string_substring (inner, (glong) (i + 1), (glong) -1);
#line 3944 "../src/main.vala"
							_tmp11_ = _tmp10_;
#line 3944 "../src/main.vala"
							_tmp12_ = string_strip (_tmp11_);
#line 3944 "../src/main.vala"
							_tmp13_ = g_new0 (gchar*, 2 + 1);
#line 3944 "../src/main.vala"
							_tmp13_[0] = _tmp9_;
#line 3944 "../src/main.vala"
							_tmp13_[1] = _tmp12_;
#line 3944 "../src/main.vala"
							_tmp14_ = _tmp13_;
#line 3944 "../src/main.vala"
							_tmp14__length1 = 2;
#line 3944 "../src/main.vala"
							_g_free0 (_tmp11_);
#line 3944 "../src/main.vala"
							_g_free0 (_tmp8_);
#line 3944 "../src/main.vala"
							_result_ = _tmp14_;
#line 3944 "../src/main.vala"
							_result__length1 = _tmp14__length1;
#line 3944 "../src/main.vala"
							__result__size_ = _result__length1;
#line 3945 "../src/main.vala"
							_tmp15_ = _result_;
#line 3945 "../src/main.vala"
							_tmp15__length1 = _result__length1;
#line 3945 "../src/main.vala"
							if (result_length1) {
#line 3945 "../src/main.vala"
								*result_length1 = _tmp15__length1;
#line 42416 "main.c"
							}
#line 3945 "../src/main.vala"
							result = _tmp15_;
#line 3945 "../src/main.vala"
							return result;
#line 42422 "main.c"
						}
					}
				}
			}
		}
	}
#line 3948 "../src/main.vala"
	_tmp16_ = g_strdup ("string");
#line 3948 "../src/main.vala"
	_tmp17_ = g_strdup ("var");
#line 3948 "../src/main.vala"
	_tmp18_ = g_new0 (gchar*, 2 + 1);
#line 3948 "../src/main.vala"
	_tmp18_[0] = _tmp16_;
#line 3948 "../src/main.vala"
	_tmp18_[1] = _tmp17_;
#line 3948 "../src/main.vala"
	fallback = _tmp18_;
#line 3948 "../src/main.vala"
	fallback_length1 = 2;
#line 3948 "../src/main.vala"
	_fallback_size_ = fallback_length1;
#line 3949 "../src/main.vala"
	_tmp19_ = fallback;
#line 3949 "../src/main.vala"
	_tmp19__length1 = fallback_length1;
#line 3949 "../src/main.vala"
	if (result_length1) {
#line 3949 "../src/main.vala"
		*result_length1 = _tmp19__length1;
#line 42453 "main.c"
	}
#line 3949 "../src/main.vala"
	result = _tmp19_;
#line 3949 "../src/main.vala"
	return result;
#line 42459 "main.c"
}

static gchar*
php_to_vala_transpiler_format_for_expression (PhpToValaTranspiler* self,
                                              const gchar* expression)
{
	GRegex* _tmp1_;
	GRegex* _tmp3_;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
	gboolean _tmp13_ = FALSE;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_ = FALSE;
	gboolean _tmp16_ = FALSE;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_ = FALSE;
	gboolean _tmp19_ = FALSE;
	gboolean _tmp20_ = FALSE;
	gboolean _tmp21_ = FALSE;
	gboolean _tmp23_ = FALSE;
	gboolean _tmp24_ = FALSE;
	gboolean _tmp25_ = FALSE;
	gboolean _tmp26_ = FALSE;
	gboolean _tmp27_ = FALSE;
	gboolean _tmp28_ = FALSE;
	gboolean _tmp29_ = FALSE;
	gboolean _tmp30_ = FALSE;
	gboolean _tmp31_ = FALSE;
	gboolean _tmp32_ = FALSE;
	gboolean _tmp33_ = FALSE;
	gboolean _tmp34_ = FALSE;
	gboolean _tmp36_ = FALSE;
	GeeHashMap* _tmp38_;
	gchar* _tmp46_;
	gchar* result;
#line 3952 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 3952 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 3953 "../src/main.vala"
	if (php_to_vala_transpiler_is_string_literal (expression)) {
#line 42504 "main.c"
		gchar* _tmp0_;
#line 3954 "../src/main.vala"
		_tmp0_ = g_strdup ("%s");
#line 3954 "../src/main.vala"
		result = _tmp0_;
#line 3954 "../src/main.vala"
		return result;
#line 42512 "main.c"
	}
#line 3956 "../src/main.vala"
	_tmp1_ = self->priv->int_regex;
#line 3956 "../src/main.vala"
	if (g_regex_match (_tmp1_, expression, 0, NULL)) {
#line 42518 "main.c"
		gchar* _tmp2_;
#line 3957 "../src/main.vala"
		_tmp2_ = g_strdup ("%d");
#line 3957 "../src/main.vala"
		result = _tmp2_;
#line 3957 "../src/main.vala"
		return result;
#line 42526 "main.c"
	}
#line 3959 "../src/main.vala"
	_tmp3_ = self->priv->double_regex;
#line 3959 "../src/main.vala"
	if (g_regex_match (_tmp3_, expression, 0, NULL)) {
#line 42532 "main.c"
		gchar* _tmp4_;
#line 3960 "../src/main.vala"
		_tmp4_ = g_strdup ("%g");
#line 3960 "../src/main.vala"
		result = _tmp4_;
#line 3960 "../src/main.vala"
		return result;
#line 42540 "main.c"
	}
#line 3962 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "round")) {
#line 42544 "main.c"
		gchar* _tmp5_;
#line 3963 "../src/main.vala"
		_tmp5_ = g_strdup ("%g");
#line 3963 "../src/main.vala"
		result = _tmp5_;
#line 3963 "../src/main.vala"
		return result;
#line 42552 "main.c"
	}
#line 3965 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "div")) {
#line 42556 "main.c"
		gchar* _tmp6_;
#line 3966 "../src/main.vala"
		_tmp6_ = g_strdup ("%g");
#line 3966 "../src/main.vala"
		result = _tmp6_;
#line 3966 "../src/main.vala"
		return result;
#line 42564 "main.c"
	}
#line 3968 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "strlen")) {
#line 3968 "../src/main.vala"
		_tmp7_ = TRUE;
#line 42570 "main.c"
	} else {
#line 3969 "../src/main.vala"
		_tmp7_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "count");
#line 42574 "main.c"
	}
#line 3968 "../src/main.vala"
	if (_tmp7_) {
#line 42578 "main.c"
		gchar* _tmp8_;
#line 3970 "../src/main.vala"
		_tmp8_ = g_strdup ("%d");
#line 3970 "../src/main.vala"
		result = _tmp8_;
#line 3970 "../src/main.vala"
		return result;
#line 42586 "main.c"
	}
#line 3972 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "is_array")) {
#line 3972 "../src/main.vala"
		_tmp21_ = TRUE;
#line 42592 "main.c"
	} else {
#line 3973 "../src/main.vala"
		_tmp21_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_object");
#line 42596 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp21_) {
#line 3972 "../src/main.vala"
		_tmp20_ = TRUE;
#line 42602 "main.c"
	} else {
#line 3974 "../src/main.vala"
		_tmp20_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_null");
#line 42606 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp20_) {
#line 3972 "../src/main.vala"
		_tmp19_ = TRUE;
#line 42612 "main.c"
	} else {
#line 3975 "../src/main.vala"
		_tmp19_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_string");
#line 42616 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp19_) {
#line 3972 "../src/main.vala"
		_tmp18_ = TRUE;
#line 42622 "main.c"
	} else {
#line 3976 "../src/main.vala"
		_tmp18_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_int");
#line 42626 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp18_) {
#line 3972 "../src/main.vala"
		_tmp17_ = TRUE;
#line 42632 "main.c"
	} else {
#line 3977 "../src/main.vala"
		_tmp17_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_integer");
#line 42636 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp17_) {
#line 3972 "../src/main.vala"
		_tmp16_ = TRUE;
#line 42642 "main.c"
	} else {
#line 3978 "../src/main.vala"
		_tmp16_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_long");
#line 42646 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp16_) {
#line 3972 "../src/main.vala"
		_tmp15_ = TRUE;
#line 42652 "main.c"
	} else {
#line 3979 "../src/main.vala"
		_tmp15_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_float");
#line 42656 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp15_) {
#line 3972 "../src/main.vala"
		_tmp14_ = TRUE;
#line 42662 "main.c"
	} else {
#line 3980 "../src/main.vala"
		_tmp14_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_double");
#line 42666 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp14_) {
#line 3972 "../src/main.vala"
		_tmp13_ = TRUE;
#line 42672 "main.c"
	} else {
#line 3981 "../src/main.vala"
		_tmp13_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_real");
#line 42676 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp13_) {
#line 3972 "../src/main.vala"
		_tmp12_ = TRUE;
#line 42682 "main.c"
	} else {
#line 3982 "../src/main.vala"
		_tmp12_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_bool");
#line 42686 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp12_) {
#line 3972 "../src/main.vala"
		_tmp11_ = TRUE;
#line 42692 "main.c"
	} else {
#line 3983 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_numeric");
#line 42696 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp11_) {
#line 3972 "../src/main.vala"
		_tmp10_ = TRUE;
#line 42702 "main.c"
	} else {
#line 3984 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "isset");
#line 42706 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp10_) {
#line 3972 "../src/main.vala"
		_tmp9_ = TRUE;
#line 42712 "main.c"
	} else {
#line 3985 "../src/main.vala"
		_tmp9_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "empty");
#line 42716 "main.c"
	}
#line 3972 "../src/main.vala"
	if (_tmp9_) {
#line 42720 "main.c"
		gchar* _tmp22_;
#line 3986 "../src/main.vala"
		_tmp22_ = g_strdup ("%s");
#line 3986 "../src/main.vala"
		result = _tmp22_;
#line 3986 "../src/main.vala"
		return result;
#line 42728 "main.c"
	}
#line 3988 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "json_last_error_msg")) {
#line 3988 "../src/main.vala"
		_tmp34_ = TRUE;
#line 42734 "main.c"
	} else {
#line 3989 "../src/main.vala"
		_tmp34_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "json_encode");
#line 42738 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp34_) {
#line 3988 "../src/main.vala"
		_tmp33_ = TRUE;
#line 42744 "main.c"
	} else {
#line 3990 "../src/main.vala"
		_tmp33_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "phpinfo");
#line 42748 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp33_) {
#line 3988 "../src/main.vala"
		_tmp32_ = TRUE;
#line 42754 "main.c"
	} else {
#line 3991 "../src/main.vala"
		_tmp32_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "print_r");
#line 42758 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp32_) {
#line 3988 "../src/main.vala"
		_tmp31_ = TRUE;
#line 42764 "main.c"
	} else {
#line 3992 "../src/main.vala"
		_tmp31_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "serialize");
#line 42768 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp31_) {
#line 3988 "../src/main.vala"
		_tmp30_ = TRUE;
#line 42774 "main.c"
	} else {
#line 3993 "../src/main.vala"
		_tmp30_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "var_dump");
#line 42778 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp30_) {
#line 3988 "../src/main.vala"
		_tmp29_ = TRUE;
#line 42784 "main.c"
	} else {
#line 3994 "../src/main.vala"
		_tmp29_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "var_export");
#line 42788 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp29_) {
#line 3988 "../src/main.vala"
		_tmp28_ = TRUE;
#line 42794 "main.c"
	} else {
#line 3995 "../src/main.vala"
		_tmp28_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "gettype");
#line 42798 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp28_) {
#line 3988 "../src/main.vala"
		_tmp27_ = TRUE;
#line 42804 "main.c"
	} else {
#line 3996 "../src/main.vala"
		_tmp27_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "trim");
#line 42808 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp27_) {
#line 3988 "../src/main.vala"
		_tmp26_ = TRUE;
#line 42814 "main.c"
	} else {
#line 3997 "../src/main.vala"
		_tmp26_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "substr");
#line 42818 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp26_) {
#line 3988 "../src/main.vala"
		_tmp25_ = TRUE;
#line 42824 "main.c"
	} else {
#line 3998 "../src/main.vala"
		_tmp25_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "exec");
#line 42828 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp25_) {
#line 3988 "../src/main.vala"
		_tmp24_ = TRUE;
#line 42834 "main.c"
	} else {
#line 3999 "../src/main.vala"
		_tmp24_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "shell_exec");
#line 42838 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp24_) {
#line 3988 "../src/main.vala"
		_tmp23_ = TRUE;
#line 42844 "main.c"
	} else {
#line 4000 "../src/main.vala"
		_tmp23_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "file_get_contents");
#line 42848 "main.c"
	}
#line 3988 "../src/main.vala"
	if (_tmp23_) {
#line 42852 "main.c"
		gchar* _tmp35_;
#line 4001 "../src/main.vala"
		_tmp35_ = g_strdup ("%s");
#line 4001 "../src/main.vala"
		result = _tmp35_;
#line 4001 "../src/main.vala"
		return result;
#line 42860 "main.c"
	}
#line 4003 "../src/main.vala"
	if (g_strcmp0 (expression, "true") == 0) {
#line 4003 "../src/main.vala"
		_tmp36_ = TRUE;
#line 42866 "main.c"
	} else {
#line 4003 "../src/main.vala"
		_tmp36_ = g_strcmp0 (expression, "false") == 0;
#line 42870 "main.c"
	}
#line 4003 "../src/main.vala"
	if (_tmp36_) {
#line 42874 "main.c"
		gchar* _tmp37_;
#line 4004 "../src/main.vala"
		_tmp37_ = g_strdup ("%s");
#line 4004 "../src/main.vala"
		result = _tmp37_;
#line 4004 "../src/main.vala"
		return result;
#line 42882 "main.c"
	}
#line 4006 "../src/main.vala"
	_tmp38_ = self->variable_types;
#line 4006 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp38_, expression)) {
#line 42888 "main.c"
		gchar* type_name = NULL;
		GeeHashMap* _tmp39_;
		gpointer _tmp40_;
		const gchar* _tmp41_;
		const gchar* _tmp43_;
		gchar* _tmp45_;
#line 4007 "../src/main.vala"
		_tmp39_ = self->variable_types;
#line 4007 "../src/main.vala"
		_tmp40_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp39_, expression);
#line 4007 "../src/main.vala"
		type_name = (gchar*) _tmp40_;
#line 4008 "../src/main.vala"
		_tmp41_ = type_name;
#line 4008 "../src/main.vala"
		if (g_strcmp0 (_tmp41_, "int") == 0) {
#line 42905 "main.c"
			gchar* _tmp42_;
#line 4009 "../src/main.vala"
			_tmp42_ = g_strdup ("%d");
#line 4009 "../src/main.vala"
			result = _tmp42_;
#line 4009 "../src/main.vala"
			_g_free0 (type_name);
#line 4009 "../src/main.vala"
			return result;
#line 42915 "main.c"
		}
#line 4011 "../src/main.vala"
		_tmp43_ = type_name;
#line 4011 "../src/main.vala"
		if (g_strcmp0 (_tmp43_, "double") == 0) {
#line 42921 "main.c"
			gchar* _tmp44_;
#line 4012 "../src/main.vala"
			_tmp44_ = g_strdup ("%g");
#line 4012 "../src/main.vala"
			result = _tmp44_;
#line 4012 "../src/main.vala"
			_g_free0 (type_name);
#line 4012 "../src/main.vala"
			return result;
#line 42931 "main.c"
		}
#line 4014 "../src/main.vala"
		_tmp45_ = g_strdup ("%s");
#line 4014 "../src/main.vala"
		result = _tmp45_;
#line 4014 "../src/main.vala"
		_g_free0 (type_name);
#line 4014 "../src/main.vala"
		return result;
#line 42941 "main.c"
	}
#line 4016 "../src/main.vala"
	_tmp46_ = g_strdup ("%s");
#line 4016 "../src/main.vala"
	result = _tmp46_;
#line 4016 "../src/main.vala"
	return result;
#line 42949 "main.c"
}

static gchar*
php_to_vala_transpiler_value_for_format (PhpToValaTranspiler* self,
                                         const gchar* expression)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp8_ = FALSE;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
	gboolean _tmp13_ = FALSE;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_ = FALSE;
	gboolean _tmp18_ = FALSE;
	GeeHashMap* _tmp19_;
	gchar* _tmp25_;
	gchar* result;
#line 4019 "../src/main.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 4019 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, NULL);
#line 4020 "../src/main.vala"
	if (g_strcmp0 (expression, "true") == 0) {
#line 4020 "../src/main.vala"
		_tmp0_ = TRUE;
#line 42982 "main.c"
	} else {
#line 4020 "../src/main.vala"
		_tmp0_ = g_strcmp0 (expression, "false") == 0;
#line 42986 "main.c"
	}
#line 4020 "../src/main.vala"
	if (_tmp0_) {
#line 42990 "main.c"
		const gchar* _tmp1_;
		gchar* _tmp2_;
#line 4021 "../src/main.vala"
		_tmp1_ = string_to_string (expression);
#line 4021 "../src/main.vala"
		_tmp2_ = g_strconcat (_tmp1_, " ? \"1\" : \"\"", NULL);
#line 4021 "../src/main.vala"
		result = _tmp2_;
#line 4021 "../src/main.vala"
		return result;
#line 43001 "main.c"
	}
#line 4023 "../src/main.vala"
	if (php_to_vala_transpiler_is_function_call_expression (self, expression, "is_array")) {
#line 4023 "../src/main.vala"
		_tmp15_ = TRUE;
#line 43007 "main.c"
	} else {
#line 4024 "../src/main.vala"
		_tmp15_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_object");
#line 43011 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp15_) {
#line 4023 "../src/main.vala"
		_tmp14_ = TRUE;
#line 43017 "main.c"
	} else {
#line 4025 "../src/main.vala"
		_tmp14_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_null");
#line 43021 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp14_) {
#line 4023 "../src/main.vala"
		_tmp13_ = TRUE;
#line 43027 "main.c"
	} else {
#line 4026 "../src/main.vala"
		_tmp13_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_string");
#line 43031 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp13_) {
#line 4023 "../src/main.vala"
		_tmp12_ = TRUE;
#line 43037 "main.c"
	} else {
#line 4027 "../src/main.vala"
		_tmp12_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_int");
#line 43041 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp12_) {
#line 4023 "../src/main.vala"
		_tmp11_ = TRUE;
#line 43047 "main.c"
	} else {
#line 4028 "../src/main.vala"
		_tmp11_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_integer");
#line 43051 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp11_) {
#line 4023 "../src/main.vala"
		_tmp10_ = TRUE;
#line 43057 "main.c"
	} else {
#line 4029 "../src/main.vala"
		_tmp10_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_long");
#line 43061 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp10_) {
#line 4023 "../src/main.vala"
		_tmp9_ = TRUE;
#line 43067 "main.c"
	} else {
#line 4030 "../src/main.vala"
		_tmp9_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_float");
#line 43071 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp9_) {
#line 4023 "../src/main.vala"
		_tmp8_ = TRUE;
#line 43077 "main.c"
	} else {
#line 4031 "../src/main.vala"
		_tmp8_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_double");
#line 43081 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp8_) {
#line 4023 "../src/main.vala"
		_tmp7_ = TRUE;
#line 43087 "main.c"
	} else {
#line 4032 "../src/main.vala"
		_tmp7_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_real");
#line 43091 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp7_) {
#line 4023 "../src/main.vala"
		_tmp6_ = TRUE;
#line 43097 "main.c"
	} else {
#line 4033 "../src/main.vala"
		_tmp6_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_bool");
#line 43101 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp6_) {
#line 4023 "../src/main.vala"
		_tmp5_ = TRUE;
#line 43107 "main.c"
	} else {
#line 4034 "../src/main.vala"
		_tmp5_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "is_numeric");
#line 43111 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp5_) {
#line 4023 "../src/main.vala"
		_tmp4_ = TRUE;
#line 43117 "main.c"
	} else {
#line 4035 "../src/main.vala"
		_tmp4_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "isset");
#line 43121 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp4_) {
#line 4023 "../src/main.vala"
		_tmp3_ = TRUE;
#line 43127 "main.c"
	} else {
#line 4036 "../src/main.vala"
		_tmp3_ = php_to_vala_transpiler_is_function_call_expression (self, expression, "empty");
#line 43131 "main.c"
	}
#line 4023 "../src/main.vala"
	if (_tmp3_) {
#line 43135 "main.c"
		const gchar* _tmp16_;
		gchar* _tmp17_;
#line 4037 "../src/main.vala"
		_tmp16_ = string_to_string (expression);
#line 4037 "../src/main.vala"
		_tmp17_ = g_strconcat (_tmp16_, " ? \"1\" : \"\"", NULL);
#line 4037 "../src/main.vala"
		result = _tmp17_;
#line 4037 "../src/main.vala"
		return result;
#line 43146 "main.c"
	}
#line 4039 "../src/main.vala"
	_tmp19_ = self->variable_types;
#line 4039 "../src/main.vala"
	if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp19_, expression)) {
#line 43152 "main.c"
		GeeHashMap* _tmp20_;
		gpointer _tmp21_;
		gchar* _tmp22_;
#line 4039 "../src/main.vala"
		_tmp20_ = self->variable_types;
#line 4039 "../src/main.vala"
		_tmp21_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp20_, expression);
#line 4039 "../src/main.vala"
		_tmp22_ = (gchar*) _tmp21_;
#line 4039 "../src/main.vala"
		_tmp18_ = g_strcmp0 (_tmp22_, "bool") == 0;
#line 4039 "../src/main.vala"
		_g_free0 (_tmp22_);
#line 43166 "main.c"
	} else {
#line 4039 "../src/main.vala"
		_tmp18_ = FALSE;
#line 43170 "main.c"
	}
#line 4039 "../src/main.vala"
	if (_tmp18_) {
#line 43174 "main.c"
		const gchar* _tmp23_;
		gchar* _tmp24_;
#line 4040 "../src/main.vala"
		_tmp23_ = string_to_string (expression);
#line 4040 "../src/main.vala"
		_tmp24_ = g_strconcat (_tmp23_, " ? \"1\" : \"\"", NULL);
#line 4040 "../src/main.vala"
		result = _tmp24_;
#line 4040 "../src/main.vala"
		return result;
#line 43185 "main.c"
	}
#line 4042 "../src/main.vala"
	_tmp25_ = g_strdup (expression);
#line 4042 "../src/main.vala"
	result = _tmp25_;
#line 4042 "../src/main.vala"
	return result;
#line 43193 "main.c"
}

static gboolean
php_to_vala_transpiler_is_string_exit_expression (PhpToValaTranspiler* self,
                                                  const gchar* expression)
{
	gboolean _tmp0_ = FALSE;
	gboolean result;
#line 4045 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 4045 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 4046 "../src/main.vala"
	if (php_to_vala_transpiler_is_string_literal (expression)) {
#line 4046 "../src/main.vala"
		_tmp0_ = TRUE;
#line 43210 "main.c"
	} else {
		gboolean _tmp1_ = FALSE;
		GeeHashMap* _tmp2_;
#line 4047 "../src/main.vala"
		_tmp2_ = self->variable_types;
#line 4047 "../src/main.vala"
		if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp2_, expression)) {
#line 43218 "main.c"
			GeeHashMap* _tmp3_;
			gpointer _tmp4_;
			gchar* _tmp5_;
#line 4047 "../src/main.vala"
			_tmp3_ = self->variable_types;
#line 4047 "../src/main.vala"
			_tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, expression);
#line 4047 "../src/main.vala"
			_tmp5_ = (gchar*) _tmp4_;
#line 4047 "../src/main.vala"
			_tmp1_ = g_strcmp0 (_tmp5_, "string") == 0;
#line 4047 "../src/main.vala"
			_g_free0 (_tmp5_);
#line 43232 "main.c"
		} else {
#line 4047 "../src/main.vala"
			_tmp1_ = FALSE;
#line 43236 "main.c"
		}
#line 4047 "../src/main.vala"
		_tmp0_ = _tmp1_;
#line 43240 "main.c"
	}
#line 4046 "../src/main.vala"
	result = _tmp0_;
#line 4046 "../src/main.vala"
	return result;
#line 43246 "main.c"
}

static gboolean
php_to_vala_transpiler_is_string_literal (const gchar* expression)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean result;
#line 4050 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 4051 "../src/main.vala"
	if (g_str_has_prefix (expression, "\"")) {
#line 4051 "../src/main.vala"
		_tmp1_ = g_str_has_suffix (expression, "\"");
#line 43261 "main.c"
	} else {
#line 4051 "../src/main.vala"
		_tmp1_ = FALSE;
#line 43265 "main.c"
	}
#line 4051 "../src/main.vala"
	if (_tmp1_) {
#line 4051 "../src/main.vala"
		_tmp0_ = TRUE;
#line 43271 "main.c"
	} else {
		gboolean _tmp2_ = FALSE;
#line 4052 "../src/main.vala"
		if (g_str_has_prefix (expression, "'")) {
#line 4052 "../src/main.vala"
			_tmp2_ = g_str_has_suffix (expression, "'");
#line 43278 "main.c"
		} else {
#line 4052 "../src/main.vala"
			_tmp2_ = FALSE;
#line 43282 "main.c"
		}
#line 4052 "../src/main.vala"
		_tmp0_ = _tmp2_;
#line 43286 "main.c"
	}
#line 4051 "../src/main.vala"
	result = _tmp0_;
#line 4051 "../src/main.vala"
	return result;
#line 43292 "main.c"
}

static gboolean
php_to_vala_transpiler_is_function_call_expression (PhpToValaTranspiler* self,
                                                    const gchar* expression,
                                                    const gchar* function_name)
{
	FunctionBinding* binding = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_;
	FunctionBinding* _tmp2_;
	FunctionBinding* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gboolean _tmp8_;
	gboolean result;
#line 4056 "../src/main.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 4056 "../src/main.vala"
	g_return_val_if_fail (expression != NULL, FALSE);
#line 4056 "../src/main.vala"
	g_return_val_if_fail (function_name != NULL, FALSE);
#line 4057 "../src/main.vala"
	_tmp0_ = self->priv->function_bindings;
#line 4057 "../src/main.vala"
	_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, function_name);
#line 4057 "../src/main.vala"
	binding = (FunctionBinding*) _tmp1_;
#line 4058 "../src/main.vala"
	_tmp2_ = binding;
#line 4058 "../src/main.vala"
	if (_tmp2_ == NULL) {
#line 4059 "../src/main.vala"
		result = FALSE;
#line 4059 "../src/main.vala"
		_g_object_unref0 (binding);
#line 4059 "../src/main.vala"
		return result;
#line 43333 "main.c"
	}
#line 4062 "../src/main.vala"
	_tmp3_ = binding;
#line 4062 "../src/main.vala"
	_tmp4_ = function_binding_call_name (_tmp3_, function_name);
#line 4062 "../src/main.vala"
	_tmp5_ = _tmp4_;
#line 4062 "../src/main.vala"
	_tmp6_ = g_strconcat (_tmp5_, "(", NULL);
#line 4062 "../src/main.vala"
	_tmp7_ = _tmp6_;
#line 4062 "../src/main.vala"
	_tmp8_ = g_str_has_prefix (expression, _tmp7_);
#line 4062 "../src/main.vala"
	_g_free0 (_tmp7_);
#line 4062 "../src/main.vala"
	_g_free0 (_tmp5_);
#line 4062 "../src/main.vala"
	result = _tmp8_;
#line 4062 "../src/main.vala"
	_g_object_unref0 (binding);
#line 4062 "../src/main.vala"
	return result;
#line 43357 "main.c"
}

static void
php_to_vala_transpiler_class_init (PhpToValaTranspilerClass * klass,
                                   gpointer klass_data)
{
#line 3 "../src/main.vala"
	php_to_vala_transpiler_parent_class = g_type_class_peek_parent (klass);
#line 3 "../src/main.vala"
	g_type_class_adjust_private_offset (klass, &PhpToValaTranspiler_private_offset);
#line 3 "../src/main.vala"
	G_OBJECT_CLASS (klass)->finalize = php_to_vala_transpiler_finalize;
#line 43370 "main.c"
}

static void
php_to_vala_transpiler_instance_init (PhpToValaTranspiler * self,
                                      gpointer klass)
{
	gchar* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	GeeHashMap* _tmp3_;
	GeeHashMap* _tmp4_;
	GeeHashMap* _tmp5_;
	GeeHashMap* _tmp6_;
	GeeHashMap* _tmp7_;
	GeeHashMap* _tmp8_;
	GeeHashMap* _tmp9_;
	GeeHashMap* _tmp10_;
	GeeHashMap* _tmp11_;
	GeeArrayList* _tmp12_;
	GeeHashMap* _tmp13_;
	GeeHashMap* _tmp14_;
	GeeArrayList* _tmp15_;
	GeeArrayList* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
#line 3 "../src/main.vala"
	self->priv = php_to_vala_transpiler_get_instance_private (self);
#line 9 "../src/main.vala"
	self->transpiling_local_function = FALSE;
#line 10 "../src/main.vala"
	_tmp0_ = g_strdup ("");
#line 10 "../src/main.vala"
	self->current_local_function_name = _tmp0_;
#line 11 "../src/main.vala"
	_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 11 "../src/main.vala"
	self->variable_types = _tmp1_;
#line 12 "../src/main.vala"
	_tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 12 "../src/main.vala"
	self->variable_aliases = _tmp2_;
#line 13 "../src/main.vala"
	_tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 13 "../src/main.vala"
	self->priv->object_class_names = _tmp3_;
#line 14 "../src/main.vala"
	_tmp4_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_FUNCTION_BINDING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 14 "../src/main.vala"
	self->priv->function_bindings = _tmp4_;
#line 15 "../src/main.vala"
	_tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_FUNCTION_BINDING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 15 "../src/main.vala"
	self->priv->native_function_bindings = _tmp5_;
#line 16 "../src/main.vala"
	_tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_FUNCTION_BINDING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 16 "../src/main.vala"
	self->priv->embed_function_bindings = _tmp6_;
#line 17 "../src/main.vala"
	_tmp7_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_LOCAL_FUNCTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 17 "../src/main.vala"
	self->local_functions = _tmp7_;
#line 18 "../src/main.vala"
	_tmp8_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_PHPCLASS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 18 "../src/main.vala"
	self->priv->php_classes = _tmp8_;
#line 19 "../src/main.vala"
	_tmp9_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_PHPCLASS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 19 "../src/main.vala"
	self->priv->external_php_classes = _tmp9_;
#line 20 "../src/main.vala"
	_tmp10_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_LOCAL_FUNCTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 20 "../src/main.vala"
	self->priv->external_functions = _tmp10_;
#line 21 "../src/main.vala"
	_tmp11_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 21 "../src/main.vala"
	self->priv->used_function_lookup = _tmp11_;
#line 22 "../src/main.vala"
	_tmp12_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 22 "../src/main.vala"
	self->priv->used_function_names = _tmp12_;
#line 23 "../src/main.vala"
	_tmp13_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 23 "../src/main.vala"
	self->priv->warned_missing_embed_static = _tmp13_;
#line 24 "../src/main.vala"
	_tmp14_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 24 "../src/main.vala"
	self->priv->informed_missing_native_runtime = _tmp14_;
#line 25 "../src/main.vala"
	_tmp15_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 25 "../src/main.vala"
	self->priv->source_line_files = _tmp15_;
#line 26 "../src/main.vala"
	_tmp16_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL);
#line 26 "../src/main.vala"
	self->priv->source_line_numbers = _tmp16_;
#line 27 "../src/main.vala"
	_tmp17_ = g_strdup ("");
#line 27 "../src/main.vala"
	self->priv->last_resolved_source = _tmp17_;
#line 28 "../src/main.vala"
	self->priv->last_source_parts = NULL;
#line 29 "../src/main.vala"
	_tmp18_ = g_strdup ("");
#line 29 "../src/main.vala"
	self->priv->last_runtime_metadata = _tmp18_;
#line 30 "../src/main.vala"
	_tmp19_ = g_strdup ("");
#line 30 "../src/main.vala"
	self->priv->last_optimizer_status = _tmp19_;
#line 31 "../src/main.vala"
	_tmp20_ = g_strdup ("    ");
#line 31 "../src/main.vala"
	self->priv->output_indent_unit = _tmp20_;
#line 32 "../src/main.vala"
	self->priv->temp_variable_counter = 0;
#line 43490 "main.c"
}

static void
php_to_vala_transpiler_finalize (GObject * obj)
{
	PhpToValaTranspiler * self;
#line 3 "../src/main.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHP_TO_VALA_TRANSPILER, PhpToValaTranspiler);
#line 4 "../src/main.vala"
	_g_free0 (self->priv->source_path);
#line 5 "../src/main.vala"
	_g_free0 (self->priv->runtime_name);
#line 6 "../src/main.vala"
	_g_free0 (self->priv->output_mode);
#line 10 "../src/main.vala"
	_g_free0 (self->current_local_function_name);
#line 11 "../src/main.vala"
	_g_object_unref0 (self->variable_types);
#line 12 "../src/main.vala"
	_g_object_unref0 (self->variable_aliases);
#line 13 "../src/main.vala"
	_g_object_unref0 (self->priv->object_class_names);
#line 14 "../src/main.vala"
	_g_object_unref0 (self->priv->function_bindings);
#line 15 "../src/main.vala"
	_g_object_unref0 (self->priv->native_function_bindings);
#line 16 "../src/main.vala"
	_g_object_unref0 (self->priv->embed_function_bindings);
#line 17 "../src/main.vala"
	_g_object_unref0 (self->local_functions);
#line 18 "../src/main.vala"
	_g_object_unref0 (self->priv->php_classes);
#line 19 "../src/main.vala"
	_g_object_unref0 (self->priv->external_php_classes);
#line 20 "../src/main.vala"
	_g_object_unref0 (self->priv->external_functions);
#line 21 "../src/main.vala"
	_g_object_unref0 (self->priv->used_function_lookup);
#line 22 "../src/main.vala"
	_g_object_unref0 (self->priv->used_function_names);
#line 23 "../src/main.vala"
	_g_object_unref0 (self->priv->warned_missing_embed_static);
#line 24 "../src/main.vala"
	_g_object_unref0 (self->priv->informed_missing_native_runtime);
#line 25 "../src/main.vala"
	_g_object_unref0 (self->priv->source_line_files);
#line 26 "../src/main.vala"
	_g_object_unref0 (self->priv->source_line_numbers);
#line 27 "../src/main.vala"
	_g_free0 (self->priv->last_resolved_source);
#line 28 "../src/main.vala"
	_g_object_unref0 (self->priv->last_source_parts);
#line 29 "../src/main.vala"
	_g_free0 (self->priv->last_runtime_metadata);
#line 30 "../src/main.vala"
	_g_free0 (self->priv->last_optimizer_status);
#line 31 "../src/main.vala"
	_g_free0 (self->priv->output_indent_unit);
#line 34 "../src/main.vala"
	_g_regex_unref0 (self->priv->assignment_regex);
#line 35 "../src/main.vala"
	_g_regex_unref0 (self->priv->function_call_regex);
#line 36 "../src/main.vala"
	_g_regex_unref0 (self->priv->function_expression_regex);
#line 37 "../src/main.vala"
	_g_regex_unref0 (self->priv->int_regex);
#line 38 "../src/main.vala"
	_g_regex_unref0 (self->priv->double_regex);
#line 39 "../src/main.vala"
	_g_object_unref0 (self->priv->local_vars_optimizer);
#line 40 "../src/main.vala"
	_g_object_unref0 (self->priv->file_func_vars_optimizer);
#line 3 "../src/main.vala"
	G_OBJECT_CLASS (php_to_vala_transpiler_parent_class)->finalize (obj);
#line 43565 "main.c"
}

static GType
php_to_vala_transpiler_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PhpToValaTranspilerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) php_to_vala_transpiler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhpToValaTranspiler), 0, (GInstanceInitFunc) php_to_vala_transpiler_instance_init, NULL };
	GType php_to_vala_transpiler_type_id;
	php_to_vala_transpiler_type_id = g_type_register_static (G_TYPE_OBJECT, "PhpToValaTranspiler", &g_define_type_info, 0);
	PhpToValaTranspiler_private_offset = g_type_add_instance_private (php_to_vala_transpiler_type_id, sizeof (PhpToValaTranspilerPrivate));
	return php_to_vala_transpiler_type_id;
}

GType
php_to_vala_transpiler_get_type (void)
{
	static volatile gsize php_to_vala_transpiler_type_id__once = 0;
	if (g_once_init_enter (&php_to_vala_transpiler_type_id__once)) {
		GType php_to_vala_transpiler_type_id;
		php_to_vala_transpiler_type_id = php_to_vala_transpiler_get_type_once ();
		g_once_init_leave (&php_to_vala_transpiler_type_id__once, php_to_vala_transpiler_type_id);
	}
	return php_to_vala_transpiler_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;
}

