/* valacodegen.h generated by valac, the Vala compiler, do not modify */

#ifndef __VALACODEGEN_H__
#define __VALACODEGEN_H__

#include <vala.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <float.h>
#include <math.h>
#include <glib-object.h>
#include <valaccode.h>
#include <valagee.h>

G_BEGIN_DECLS

#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 VALA_TYPE_CCODE_BASE_MODULE (vala_ccode_base_module_get_type ())
#define VALA_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModule))
#define VALA_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))
#define VALA_IS_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_IS_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_CCODE_BASE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))

typedef struct _ValaCCodeBaseModule ValaCCodeBaseModule;
typedef struct _ValaCCodeBaseModuleClass ValaCCodeBaseModuleClass;
typedef struct _ValaCCodeBaseModulePrivate ValaCCodeBaseModulePrivate;

#define VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT (vala_ccode_base_module_emit_context_get_type ())
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContext))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))

typedef struct _ValaCCodeBaseModuleEmitContext ValaCCodeBaseModuleEmitContext;
typedef struct _ValaCCodeBaseModuleEmitContextClass ValaCCodeBaseModuleEmitContextClass;

#define VALA_TYPE_CCODE_STRUCT_MODULE (vala_ccode_struct_module_get_type ())
#define VALA_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModule))
#define VALA_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))
#define VALA_IS_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_IS_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_CCODE_STRUCT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))

typedef struct _ValaCCodeStructModule ValaCCodeStructModule;
typedef struct _ValaCCodeStructModuleClass ValaCCodeStructModuleClass;
typedef struct _ValaCCodeStructModulePrivate ValaCCodeStructModulePrivate;

#define VALA_TYPE_CCODE_METHOD_MODULE (vala_ccode_method_module_get_type ())
#define VALA_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModule))
#define VALA_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))
#define VALA_IS_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_IS_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_CCODE_METHOD_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))

typedef struct _ValaCCodeMethodModule ValaCCodeMethodModule;
typedef struct _ValaCCodeMethodModuleClass ValaCCodeMethodModuleClass;
typedef struct _ValaCCodeMethodModulePrivate ValaCCodeMethodModulePrivate;

#define VALA_TYPE_CCODE_CONTROL_FLOW_MODULE (vala_ccode_control_flow_module_get_type ())
#define VALA_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModule))
#define VALA_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_CCODE_CONTROL_FLOW_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))

typedef struct _ValaCCodeControlFlowModule ValaCCodeControlFlowModule;
typedef struct _ValaCCodeControlFlowModuleClass ValaCCodeControlFlowModuleClass;
typedef struct _ValaCCodeControlFlowModulePrivate ValaCCodeControlFlowModulePrivate;

#define VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE (vala_ccode_member_access_module_get_type ())
#define VALA_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModule))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))

typedef struct _ValaCCodeMemberAccessModule ValaCCodeMemberAccessModule;
typedef struct _ValaCCodeMemberAccessModuleClass ValaCCodeMemberAccessModuleClass;
typedef struct _ValaCCodeMemberAccessModulePrivate ValaCCodeMemberAccessModulePrivate;

#define VALA_TYPE_CCODE_ASSIGNMENT_MODULE (vala_ccode_assignment_module_get_type ())
#define VALA_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModule))
#define VALA_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_CCODE_ASSIGNMENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))

typedef struct _ValaCCodeAssignmentModule ValaCCodeAssignmentModule;
typedef struct _ValaCCodeAssignmentModuleClass ValaCCodeAssignmentModuleClass;
typedef struct _ValaCCodeAssignmentModulePrivate ValaCCodeAssignmentModulePrivate;

#define VALA_TYPE_CCODE_METHOD_CALL_MODULE (vala_ccode_method_call_module_get_type ())
#define VALA_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModule))
#define VALA_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))
#define VALA_IS_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_IS_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_CCODE_METHOD_CALL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))

typedef struct _ValaCCodeMethodCallModule ValaCCodeMethodCallModule;
typedef struct _ValaCCodeMethodCallModuleClass ValaCCodeMethodCallModuleClass;
typedef struct _ValaCCodeMethodCallModulePrivate ValaCCodeMethodCallModulePrivate;

#define VALA_TYPE_CCODE_ARRAY_MODULE (vala_ccode_array_module_get_type ())
#define VALA_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModule))
#define VALA_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))
#define VALA_IS_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_IS_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_CCODE_ARRAY_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))

typedef struct _ValaCCodeArrayModule ValaCCodeArrayModule;
typedef struct _ValaCCodeArrayModuleClass ValaCCodeArrayModuleClass;
typedef struct _ValaCCodeArrayModulePrivate ValaCCodeArrayModulePrivate;

#define VALA_TYPE_CCODE_ATTRIBUTE (vala_ccode_attribute_get_type ())
#define VALA_CCODE_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ATTRIBUTE, ValaCCodeAttribute))
#define VALA_CCODE_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ATTRIBUTE, ValaCCodeAttributeClass))
#define VALA_IS_CCODE_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ATTRIBUTE))
#define VALA_IS_CCODE_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ATTRIBUTE))
#define VALA_CCODE_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ATTRIBUTE, ValaCCodeAttributeClass))

typedef struct _ValaCCodeAttribute ValaCCodeAttribute;
typedef struct _ValaCCodeAttributeClass ValaCCodeAttributeClass;
typedef struct _ValaCCodeAttributePrivate ValaCCodeAttributePrivate;
typedef struct _ValaCCodeBaseModuleEmitContextPrivate ValaCCodeBaseModuleEmitContextPrivate;

#define VALA_TYPE_CCODE_COMPILER (vala_ccode_compiler_get_type ())
#define VALA_CCODE_COMPILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_COMPILER, ValaCCodeCompiler))
#define VALA_CCODE_COMPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_COMPILER, ValaCCodeCompilerClass))
#define VALA_IS_CCODE_COMPILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_COMPILER))
#define VALA_IS_CCODE_COMPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_COMPILER))
#define VALA_CCODE_COMPILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_COMPILER, ValaCCodeCompilerClass))

typedef struct _ValaCCodeCompiler ValaCCodeCompiler;
typedef struct _ValaCCodeCompilerClass ValaCCodeCompilerClass;
typedef struct _ValaCCodeCompilerPrivate ValaCCodeCompilerPrivate;

#define VALA_TYPE_CCODE_DELEGATE_MODULE (vala_ccode_delegate_module_get_type ())
#define VALA_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModule))
#define VALA_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))
#define VALA_IS_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_IS_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_CCODE_DELEGATE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))

typedef struct _ValaCCodeDelegateModule ValaCCodeDelegateModule;
typedef struct _ValaCCodeDelegateModuleClass ValaCCodeDelegateModuleClass;
typedef struct _ValaCCodeDelegateModulePrivate ValaCCodeDelegateModulePrivate;

#define VALA_TYPE_TYPEREGISTER_FUNCTION (vala_typeregister_function_get_type ())
#define VALA_TYPEREGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunction))
#define VALA_TYPEREGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunctionClass))
#define VALA_IS_TYPEREGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION))
#define VALA_IS_TYPEREGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPEREGISTER_FUNCTION))
#define VALA_TYPEREGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPEREGISTER_FUNCTION, ValaTypeRegisterFunctionClass))

typedef struct _ValaTypeRegisterFunction ValaTypeRegisterFunction;
typedef struct _ValaTypeRegisterFunctionClass ValaTypeRegisterFunctionClass;
typedef struct _ValaTypeRegisterFunctionPrivate ValaTypeRegisterFunctionPrivate;

#define VALA_TYPE_CLASS_REGISTER_FUNCTION (vala_class_register_function_get_type ())
#define VALA_CLASS_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunction))
#define VALA_CLASS_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunctionClass))
#define VALA_IS_CLASS_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION))
#define VALA_IS_CLASS_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CLASS_REGISTER_FUNCTION))
#define VALA_CLASS_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CLASS_REGISTER_FUNCTION, ValaClassRegisterFunctionClass))

typedef struct _ValaClassRegisterFunction ValaClassRegisterFunction;
typedef struct _ValaClassRegisterFunctionClass ValaClassRegisterFunctionClass;
typedef struct _ValaClassRegisterFunctionPrivate ValaClassRegisterFunctionPrivate;

#define VALA_TYPE_CTYPE (vala_ctype_get_type ())
#define VALA_CTYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CTYPE, ValaCType))
#define VALA_CTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CTYPE, ValaCTypeClass))
#define VALA_IS_CTYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CTYPE))
#define VALA_IS_CTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CTYPE))
#define VALA_CTYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CTYPE, ValaCTypeClass))

typedef struct _ValaCType ValaCType;
typedef struct _ValaCTypeClass ValaCTypeClass;
typedef struct _ValaCTypePrivate ValaCTypePrivate;

#define VALA_TYPE_ENUM_REGISTER_FUNCTION (vala_enum_register_function_get_type ())
#define VALA_ENUM_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunction))
#define VALA_ENUM_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunctionClass))
#define VALA_IS_ENUM_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION))
#define VALA_IS_ENUM_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ENUM_REGISTER_FUNCTION))
#define VALA_ENUM_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ENUM_REGISTER_FUNCTION, ValaEnumRegisterFunctionClass))

typedef struct _ValaEnumRegisterFunction ValaEnumRegisterFunction;
typedef struct _ValaEnumRegisterFunctionClass ValaEnumRegisterFunctionClass;
typedef struct _ValaEnumRegisterFunctionPrivate ValaEnumRegisterFunctionPrivate;

#define VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION (vala_error_domain_register_function_get_type ())
#define VALA_ERROR_DOMAIN_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION, ValaErrorDomainRegisterFunction))
#define VALA_ERROR_DOMAIN_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION, ValaErrorDomainRegisterFunctionClass))
#define VALA_IS_ERROR_DOMAIN_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION))
#define VALA_IS_ERROR_DOMAIN_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION))
#define VALA_ERROR_DOMAIN_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ERROR_DOMAIN_REGISTER_FUNCTION, ValaErrorDomainRegisterFunctionClass))

typedef struct _ValaErrorDomainRegisterFunction ValaErrorDomainRegisterFunction;
typedef struct _ValaErrorDomainRegisterFunctionClass ValaErrorDomainRegisterFunctionClass;
typedef struct _ValaErrorDomainRegisterFunctionPrivate ValaErrorDomainRegisterFunctionPrivate;

#define VALA_TYPE_GERROR_MODULE (vala_gerror_module_get_type ())
#define VALA_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModule))
#define VALA_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))
#define VALA_IS_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GERROR_MODULE))
#define VALA_IS_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GERROR_MODULE))
#define VALA_GERROR_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))

typedef struct _ValaGErrorModule ValaGErrorModule;
typedef struct _ValaGErrorModuleClass ValaGErrorModuleClass;
typedef struct _ValaGErrorModulePrivate ValaGErrorModulePrivate;

#define VALA_TYPE_GTYPE_MODULE (vala_gtype_module_get_type ())
#define VALA_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModule))
#define VALA_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))
#define VALA_IS_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTYPE_MODULE))
#define VALA_IS_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTYPE_MODULE))
#define VALA_GTYPE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))

typedef struct _ValaGTypeModule ValaGTypeModule;
typedef struct _ValaGTypeModuleClass ValaGTypeModuleClass;
typedef struct _ValaGTypeModulePrivate ValaGTypeModulePrivate;

#define VALA_TYPE_GOBJECT_MODULE (vala_gobject_module_get_type ())
#define VALA_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModule))
#define VALA_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))
#define VALA_IS_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GOBJECT_MODULE))
#define VALA_IS_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GOBJECT_MODULE))
#define VALA_GOBJECT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))

typedef struct _ValaGObjectModule ValaGObjectModule;
typedef struct _ValaGObjectModuleClass ValaGObjectModuleClass;
typedef struct _ValaGObjectModulePrivate ValaGObjectModulePrivate;

#define VALA_TYPE_GSIGNAL_MODULE (vala_gsignal_module_get_type ())
#define VALA_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModule))
#define VALA_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))
#define VALA_IS_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_IS_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_GSIGNAL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))

typedef struct _ValaGSignalModule ValaGSignalModule;
typedef struct _ValaGSignalModuleClass ValaGSignalModuleClass;
typedef struct _ValaGSignalModulePrivate ValaGSignalModulePrivate;

#define VALA_TYPE_GTK_MODULE (vala_gtk_module_get_type ())
#define VALA_GTK_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTK_MODULE, ValaGtkModule))
#define VALA_GTK_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTK_MODULE, ValaGtkModuleClass))
#define VALA_IS_GTK_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTK_MODULE))
#define VALA_IS_GTK_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTK_MODULE))
#define VALA_GTK_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTK_MODULE, ValaGtkModuleClass))

typedef struct _ValaGtkModule ValaGtkModule;
typedef struct _ValaGtkModuleClass ValaGtkModuleClass;
typedef struct _ValaGtkModulePrivate ValaGtkModulePrivate;

#define VALA_TYPE_GASYNC_MODULE (vala_gasync_module_get_type ())
#define VALA_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModule))
#define VALA_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))
#define VALA_IS_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GASYNC_MODULE))
#define VALA_IS_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GASYNC_MODULE))
#define VALA_GASYNC_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))

typedef struct _ValaGAsyncModule ValaGAsyncModule;
typedef struct _ValaGAsyncModuleClass ValaGAsyncModuleClass;
typedef struct _ValaGAsyncModulePrivate ValaGAsyncModulePrivate;

#define VALA_TYPE_GVALUE_MODULE (vala_gvalue_module_get_type ())
#define VALA_GVALUE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GVALUE_MODULE, ValaGValueModule))
#define VALA_GVALUE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GVALUE_MODULE, ValaGValueModuleClass))
#define VALA_IS_GVALUE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GVALUE_MODULE))
#define VALA_IS_GVALUE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GVALUE_MODULE))
#define VALA_GVALUE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GVALUE_MODULE, ValaGValueModuleClass))

typedef struct _ValaGValueModule ValaGValueModule;
typedef struct _ValaGValueModuleClass ValaGValueModuleClass;
typedef struct _ValaGValueModulePrivate ValaGValueModulePrivate;

#define VALA_TYPE_GVARIANT_MODULE (vala_gvariant_module_get_type ())
#define VALA_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule))
#define VALA_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))
#define VALA_IS_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GVARIANT_MODULE))
#define VALA_IS_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GVARIANT_MODULE))
#define VALA_GVARIANT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))

typedef struct _ValaGVariantModule ValaGVariantModule;
typedef struct _ValaGVariantModuleClass ValaGVariantModuleClass;
typedef struct _ValaGVariantModulePrivate ValaGVariantModulePrivate;

#define VALA_TYPE_GD_BUS_MODULE (vala_gd_bus_module_get_type ())
#define VALA_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule))
#define VALA_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))
#define VALA_IS_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_MODULE))
#define VALA_IS_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_MODULE))
#define VALA_GD_BUS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))

typedef struct _ValaGDBusModule ValaGDBusModule;
typedef struct _ValaGDBusModuleClass ValaGDBusModuleClass;
typedef struct _ValaGDBusModulePrivate ValaGDBusModulePrivate;

#define VALA_TYPE_GD_BUS_CLIENT_MODULE (vala_gd_bus_client_module_get_type ())
#define VALA_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule))
#define VALA_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))
#define VALA_IS_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_IS_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_GD_BUS_CLIENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))

typedef struct _ValaGDBusClientModule ValaGDBusClientModule;
typedef struct _ValaGDBusClientModuleClass ValaGDBusClientModuleClass;
typedef struct _ValaGDBusClientModulePrivate ValaGDBusClientModulePrivate;

#define VALA_TYPE_GD_BUS_SERVER_MODULE (vala_gd_bus_server_module_get_type ())
#define VALA_GD_BUS_SERVER_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_SERVER_MODULE, ValaGDBusServerModule))
#define VALA_GD_BUS_SERVER_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_SERVER_MODULE, ValaGDBusServerModuleClass))
#define VALA_IS_GD_BUS_SERVER_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_SERVER_MODULE))
#define VALA_IS_GD_BUS_SERVER_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_SERVER_MODULE))
#define VALA_GD_BUS_SERVER_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_SERVER_MODULE, ValaGDBusServerModuleClass))

typedef struct _ValaGDBusServerModule ValaGDBusServerModule;
typedef struct _ValaGDBusServerModuleClass ValaGDBusServerModuleClass;
typedef struct _ValaGDBusServerModulePrivate ValaGDBusServerModulePrivate;

#define VALA_TYPE_GIR_WRITER (vala_gir_writer_get_type ())
#define VALA_GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GIR_WRITER, ValaGIRWriter))
#define VALA_GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GIR_WRITER, ValaGIRWriterClass))
#define VALA_IS_GIR_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GIR_WRITER))
#define VALA_IS_GIR_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GIR_WRITER))
#define VALA_GIR_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GIR_WRITER, ValaGIRWriterClass))

typedef struct _ValaGIRWriter ValaGIRWriter;
typedef struct _ValaGIRWriterClass ValaGIRWriterClass;
typedef struct _ValaGIRWriterPrivate ValaGIRWriterPrivate;

#define VALA_TYPE_GLIB_VALUE (vala_glib_value_get_type ())
#define VALA_GLIB_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GLIB_VALUE, ValaGLibValue))
#define VALA_GLIB_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GLIB_VALUE, ValaGLibValueClass))
#define VALA_IS_GLIB_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GLIB_VALUE))
#define VALA_IS_GLIB_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GLIB_VALUE))
#define VALA_GLIB_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GLIB_VALUE, ValaGLibValueClass))

typedef struct _ValaGLibValue ValaGLibValue;
typedef struct _ValaGLibValueClass ValaGLibValueClass;
typedef struct _ValaGLibValuePrivate ValaGLibValuePrivate;

#define VALA_TYPE_INTERFACE_REGISTER_FUNCTION (vala_interface_register_function_get_type ())
#define VALA_INTERFACE_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunction))
#define VALA_INTERFACE_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunctionClass))
#define VALA_IS_INTERFACE_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION))
#define VALA_IS_INTERFACE_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTERFACE_REGISTER_FUNCTION))
#define VALA_INTERFACE_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTERFACE_REGISTER_FUNCTION, ValaInterfaceRegisterFunctionClass))

typedef struct _ValaInterfaceRegisterFunction ValaInterfaceRegisterFunction;
typedef struct _ValaInterfaceRegisterFunctionClass ValaInterfaceRegisterFunctionClass;
typedef struct _ValaInterfaceRegisterFunctionPrivate ValaInterfaceRegisterFunctionPrivate;

#define VALA_TYPE_STRUCT_REGISTER_FUNCTION (vala_struct_register_function_get_type ())
#define VALA_STRUCT_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunction))
#define VALA_STRUCT_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunctionClass))
#define VALA_IS_STRUCT_REGISTER_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION))
#define VALA_IS_STRUCT_REGISTER_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STRUCT_REGISTER_FUNCTION))
#define VALA_STRUCT_REGISTER_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STRUCT_REGISTER_FUNCTION, ValaStructRegisterFunctionClass))

typedef struct _ValaStructRegisterFunction ValaStructRegisterFunction;
typedef struct _ValaStructRegisterFunctionClass ValaStructRegisterFunctionClass;
typedef struct _ValaStructRegisterFunctionPrivate ValaStructRegisterFunctionPrivate;

struct _ValaCCodeBaseModule {
	ValaCodeGenerator parent_instance;
	ValaSymbol* root_symbol;
	ValaCCodeBaseModuleEmitContext* emit_context;
	ValaCCodeLineDirective* current_line;
	ValaCCodeFile* header_file;
	ValaCCodeFile* internal_header_file;
	ValaCCodeFile* cfile;
	ValaCCodeBaseModuleEmitContext* class_init_context;
	ValaCCodeBaseModuleEmitContext* base_init_context;
	ValaCCodeBaseModuleEmitContext* class_finalize_context;
	ValaCCodeBaseModuleEmitContext* base_finalize_context;
	ValaCCodeBaseModuleEmitContext* instance_init_context;
	ValaCCodeBaseModuleEmitContext* instance_finalize_context;
	ValaCCodeStruct* param_spec_struct;
	ValaCCodeStruct* closure_struct;
	ValaCCodeEnum* prop_enum;
	ValaCCodeEnum* signal_enum;
	ValaSet* user_marshal_set;
	ValaSet* predefined_marshal_set;
	gint next_regex_id;
	ValaDataType* void_type;
	ValaDataType* bool_type;
	ValaDataType* char_type;
	ValaDataType* uchar_type;
	ValaDataType* unichar_type;
	ValaDataType* short_type;
	ValaDataType* ushort_type;
	ValaDataType* int_type;
	ValaDataType* uint_type;
	ValaDataType* long_type;
	ValaDataType* ulong_type;
	ValaDataType* int8_type;
	ValaDataType* uint8_type;
	ValaDataType* int16_type;
	ValaDataType* uint16_type;
	ValaDataType* int32_type;
	ValaDataType* uint32_type;
	ValaDataType* int64_type;
	ValaDataType* uint64_type;
	ValaDataType* size_t_type;
	ValaDataType* ssize_t_type;
	ValaDataType* string_type;
	ValaDataType* regex_type;
	ValaDataType* float_type;
	ValaDataType* double_type;
	ValaDataType* pointer_type;
	ValaTypeSymbol* gtype_type;
	ValaTypeSymbol* gobject_type;
	ValaErrorType* gerror_type;
	ValaClass* glist_type;
	ValaClass* gslist_type;
	ValaClass* gnode_type;
	ValaClass* gqueue_type;
	ValaClass* gvaluearray_type;
	ValaTypeSymbol* gstringbuilder_type;
	ValaClass* garray_type;
	ValaTypeSymbol* gbytearray_type;
	ValaTypeSymbol* genericarray_type;
	ValaClass* gsequence_type;
	ValaClass* gsequence_iter_type;
	ValaTypeSymbol* gthreadpool_type;
	ValaDataType* gquark_type;
	ValaStruct* gvalue_type;
	ValaClass* gvariant_type;
	ValaStruct* mutex_type;
	ValaStruct* gmutex_type;
	ValaStruct* grecmutex_type;
	ValaStruct* grwlock_type;
	ValaStruct* gcond_type;
	ValaClass* gsource_type;
	ValaTypeSymbol* type_module_type;
	ValaTypeSymbol* dbus_proxy_type;
	ValaClass* gtk_widget_type;
	ValaDataType* delegate_target_type;
	ValaDelegateType* delegate_target_destroy_type;
	gboolean in_plugin;
	gchar* module_init_param_name;
	gboolean requires_assert;
	gboolean requires_array_free;
	gboolean requires_array_move;
	gboolean requires_array_length;
	gboolean requires_array_n_elements;
	gboolean requires_clear_mutex;
	gboolean requires_memdup2;
	gboolean requires_vala_extern;
	ValaSet* wrappers;
	ValaCCodeBaseModulePrivate * priv;
};

struct _ValaCCodeBaseModuleClass {
	ValaCodeGeneratorClass parent_class;
	void (*append_vala_array_free) (ValaCCodeBaseModule* self);
	void (*append_vala_array_move) (ValaCCodeBaseModule* self);
	void (*append_vala_array_length) (ValaCCodeBaseModule* self);
	void (*append_params_array) (ValaCCodeBaseModule* self, ValaMethod* m);
	gboolean (*generate_enum_declaration) (ValaCCodeBaseModule* self, ValaEnum* en, ValaCCodeFile* decl_space);
	void (*generate_class_struct_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
	void (*generate_struct_declaration) (ValaCCodeBaseModule* self, ValaStruct* st, ValaCCodeFile* decl_space);
	void (*generate_delegate_declaration) (ValaCCodeBaseModule* self, ValaDelegate* d, ValaCCodeFile* decl_space);
	void (*generate_cparameters) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
	ValaCCodeExpression* (*get_dup_func_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaSourceReference* source_reference, gboolean is_chainup);
	gchar* (*append_struct_array_destroy) (ValaCCodeBaseModule* self, ValaStruct* st);
	gchar* (*append_struct_array_free) (ValaCCodeBaseModule* self, ValaStruct* st);
	ValaCCodeExpression* (*destroy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
	void (*append_scope_free) (ValaCCodeBaseModule* self, ValaSymbol* sym, ValaCodeNode* stop_at);
	ValaTargetValue* (*get_local_cvalue) (ValaCCodeBaseModule* self, ValaLocalVariable* local);
	ValaTargetValue* (*get_parameter_cvalue) (ValaCCodeBaseModule* self, ValaParameter* param);
	ValaTargetValue* (*get_field_cvalue) (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
	ValaTargetValue* (*load_variable) (ValaCCodeBaseModule* self, ValaVariable* variable, ValaTargetValue* value, ValaExpression* expr);
	ValaTargetValue* (*load_this_parameter) (ValaCCodeBaseModule* self, ValaTypeSymbol* sym);
	void (*store_value) (ValaCCodeBaseModule* self, ValaTargetValue* lvalue, ValaTargetValue* value, ValaSourceReference* source_reference);
	gchar* (*get_delegate_target_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
	ValaCCodeExpression* (*get_delegate_target_cexpression) (ValaCCodeBaseModule* self, ValaExpression* delegate_expr, ValaCCodeExpression** delegate_target_destroy_notify);
	ValaCCodeExpression* (*get_delegate_target_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
	ValaCCodeExpression* (*get_delegate_target_destroy_notify_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
	gchar* (*get_delegate_target_destroy_notify_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
	ValaTargetValue* (*copy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, ValaCodeNode* node);
	void (*generate_class_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
	void (*generate_interface_declaration) (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
	gboolean (*generate_method_declaration) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space);
	void (*generate_error_domain_declaration) (ValaCCodeBaseModule* self, ValaErrorDomain* edomain, ValaCCodeFile* decl_space);
	ValaCCodeExpression* (*deserialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
	ValaCCodeExpression* (*serialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* expr);
	ValaCCodeExpression* (*get_implicit_cast_expression) (ValaCCodeBaseModule* self, ValaCCodeExpression* source_cexpr, ValaDataType* expression_type, ValaDataType* target_type, ValaCodeNode* node);
	void (*create_type_check_statement) (ValaCCodeBaseModule* self, ValaCodeNode* method_node, ValaDataType* ret_type, ValaTypeSymbol* t, gboolean non_null, const gchar* var_name);
	void (*generate_dynamic_method_wrapper) (ValaCCodeBaseModule* self, ValaDynamicMethod* method);
	ValaCCodeExpression* (*get_param_spec_cexpression) (ValaCCodeBaseModule* self, ValaProperty* prop);
	ValaCCodeExpression* (*get_param_spec) (ValaCCodeBaseModule* self, ValaProperty* prop);
	ValaCCodeExpression* (*get_signal_creation) (ValaCCodeBaseModule* self, ValaSignal* sig, ValaObjectTypeSymbol* type);
	ValaCCodeExpression* (*get_value_getter_function) (ValaCCodeBaseModule* self, ValaDataType* type_reference);
	ValaCCodeExpression* (*get_value_setter_function) (ValaCCodeBaseModule* self, ValaDataType* type_reference);
	ValaCCodeExpression* (*get_value_taker_function) (ValaCCodeBaseModule* self, ValaDataType* type_reference);
	void (*register_dbus_info) (ValaCCodeBaseModule* self, ValaCCodeBlock* block, ValaObjectTypeSymbol* bindable);
	gchar* (*get_dynamic_signal_cname) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
	gchar* (*get_array_length_cname) (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim);
	gchar* (*get_variable_array_length_cname) (ValaCCodeBaseModule* self, ValaVariable* variable, gint dim);
	ValaCCodeExpression* (*get_array_length_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
	ValaCCodeExpression* (*get_array_length_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
	gchar* (*get_array_size_cname) (ValaCCodeBaseModule* self, const gchar* array_cname);
	void (*add_simple_check) (ValaCCodeBaseModule* self, ValaCodeNode* node, gboolean always_fails);
	gchar* (*generate_ready_function) (ValaCCodeBaseModule* self, ValaMethod* m);
};

struct _ValaCCodeStructModule {
	ValaCCodeBaseModule parent_instance;
	ValaCCodeStructModulePrivate * priv;
};

struct _ValaCCodeStructModuleClass {
	ValaCCodeBaseModuleClass parent_class;
};

struct _ValaCCodeMethodModule {
	ValaCCodeStructModule parent_instance;
	ValaCCodeMethodModulePrivate * priv;
};

struct _ValaCCodeMethodModuleClass {
	ValaCCodeStructModuleClass parent_class;
	void (*generate_method_result_declaration) (ValaCCodeMethodModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeFunction* cfunc, ValaMap* cparam_map, ValaMap* carg_map);
	ValaCCodeParameter* (*generate_parameter) (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
};

struct _ValaCCodeControlFlowModule {
	ValaCCodeMethodModule parent_instance;
	ValaCCodeControlFlowModulePrivate * priv;
};

struct _ValaCCodeControlFlowModuleClass {
	ValaCCodeMethodModuleClass parent_class;
};

struct _ValaCCodeMemberAccessModule {
	ValaCCodeControlFlowModule parent_instance;
	ValaCCodeMemberAccessModulePrivate * priv;
};

struct _ValaCCodeMemberAccessModuleClass {
	ValaCCodeControlFlowModuleClass parent_class;
};

struct _ValaCCodeAssignmentModule {
	ValaCCodeMemberAccessModule parent_instance;
	ValaCCodeAssignmentModulePrivate * priv;
};

struct _ValaCCodeAssignmentModuleClass {
	ValaCCodeMemberAccessModuleClass parent_class;
};

struct _ValaCCodeMethodCallModule {
	ValaCCodeAssignmentModule parent_instance;
	ValaCCodeMethodCallModulePrivate * priv;
};

struct _ValaCCodeMethodCallModuleClass {
	ValaCCodeAssignmentModuleClass parent_class;
};

struct _ValaCCodeArrayModule {
	ValaCCodeMethodCallModule parent_instance;
	ValaCCodeArrayModulePrivate * priv;
};

struct _ValaCCodeArrayModuleClass {
	ValaCCodeMethodCallModuleClass parent_class;
};

struct _ValaCCodeAttribute {
	ValaAttributeCache parent_instance;
	ValaCCodeAttributePrivate * priv;
};

struct _ValaCCodeAttributeClass {
	ValaAttributeCacheClass parent_class;
};

struct _ValaCCodeBaseModuleEmitContext {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaSymbol* current_symbol;
	ValaArrayList* symbol_stack;
	ValaTryStatement* current_try;
	gint current_try_id;
	gint next_try_id;
	ValaCatchClause* current_catch;
	ValaCCodeFunction* ccode;
	ValaArrayList* ccode_stack;
	ValaArrayList* temp_ref_values;
	gint next_temp_var_id;
	gint current_inner_error_id;
	gboolean current_method_inner_error;
	gboolean current_method_return;
	gint next_coroutine_state;
	ValaMap* variable_name_map;
	ValaMap* closure_variable_count_map;
	ValaMap* closure_variable_clash_map;
	gboolean is_in_method_precondition;
	ValaCCodeBaseModuleEmitContextPrivate * priv;
};

struct _ValaCCodeBaseModuleEmitContextClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeBaseModuleEmitContext *self);
};

struct _ValaCCodeCompiler {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeCompilerPrivate * priv;
};

struct _ValaCCodeCompilerClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeCompiler *self);
};

struct _ValaCCodeDelegateModule {
	ValaCCodeArrayModule parent_instance;
	ValaCCodeDelegateModulePrivate * priv;
};

struct _ValaCCodeDelegateModuleClass {
	ValaCCodeArrayModuleClass parent_class;
};

struct _ValaTypeRegisterFunction {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaTypeRegisterFunctionPrivate * priv;
};

struct _ValaTypeRegisterFunctionClass {
	GTypeClass parent_class;
	void (*finalize) (ValaTypeRegisterFunction *self);
	ValaTypeSymbol* (*get_type_declaration) (ValaTypeRegisterFunction* self);
	gchar* (*get_type_struct_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_base_init_func_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_class_finalize_func_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_base_finalize_func_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_class_init_func_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_instance_struct_size) (ValaTypeRegisterFunction* self);
	gchar* (*get_instance_init_func_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_parent_type_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_init_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_peek_pointer_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_free_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_copy_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_lcopy_value_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_gtype_value_table_collect_value_function_name) (ValaTypeRegisterFunction* self);
	gchar* (*get_type_flags) (ValaTypeRegisterFunction* self);
	ValaCCodeFragment* (*get_type_interface_init_declaration) (ValaTypeRegisterFunction* self);
	void (*get_type_interface_init_statements) (ValaTypeRegisterFunction* self, ValaCodeContext* context, ValaCCodeBlock* block, gboolean plugin);
	ValaSymbolAccessibility (*get_accessibility) (ValaTypeRegisterFunction* self);
};

struct _ValaClassRegisterFunction {
	ValaTypeRegisterFunction parent_instance;
	ValaClassRegisterFunctionPrivate * priv;
};

struct _ValaClassRegisterFunctionClass {
	ValaTypeRegisterFunctionClass parent_class;
};

struct _ValaCType {
	ValaDataType parent_instance;
	ValaCTypePrivate * priv;
};

struct _ValaCTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaEnumRegisterFunction {
	ValaTypeRegisterFunction parent_instance;
	ValaEnumRegisterFunctionPrivate * priv;
};

struct _ValaEnumRegisterFunctionClass {
	ValaTypeRegisterFunctionClass parent_class;
};

struct _ValaErrorDomainRegisterFunction {
	ValaTypeRegisterFunction parent_instance;
	ValaErrorDomainRegisterFunctionPrivate * priv;
};

struct _ValaErrorDomainRegisterFunctionClass {
	ValaTypeRegisterFunctionClass parent_class;
};

struct _ValaGErrorModule {
	ValaCCodeDelegateModule parent_instance;
	ValaGErrorModulePrivate * priv;
};

struct _ValaGErrorModuleClass {
	ValaCCodeDelegateModuleClass parent_class;
	void (*return_with_exception) (ValaGErrorModule* self, ValaCCodeExpression* error_expr);
};

struct _ValaGTypeModule {
	ValaGErrorModule parent_instance;
	ValaGTypeModulePrivate * priv;
};

struct _ValaGTypeModuleClass {
	ValaGErrorModuleClass parent_class;
	void (*generate_virtual_method_declaration) (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct);
	void (*generate_class_init) (ValaGTypeModule* self, ValaClass* cl);
	void (*end_instance_init) (ValaGTypeModule* self, ValaClass* cl);
};

struct _ValaGObjectModule {
	ValaGTypeModule parent_instance;
	ValaGObjectModulePrivate * priv;
};

struct _ValaGObjectModuleClass {
	ValaGTypeModuleClass parent_class;
};

struct _ValaGSignalModule {
	ValaGObjectModule parent_instance;
	ValaGSignalModulePrivate * priv;
};

struct _ValaGSignalModuleClass {
	ValaGObjectModuleClass parent_class;
};

struct _ValaGtkModule {
	ValaGSignalModule parent_instance;
	ValaGtkModulePrivate * priv;
};

struct _ValaGtkModuleClass {
	ValaGSignalModuleClass parent_class;
};

struct _ValaGAsyncModule {
	ValaGtkModule parent_instance;
	ValaGAsyncModulePrivate * priv;
};

struct _ValaGAsyncModuleClass {
	ValaGtkModuleClass parent_class;
};

struct _ValaGValueModule {
	ValaGAsyncModule parent_instance;
	ValaGValueModulePrivate * priv;
};

struct _ValaGValueModuleClass {
	ValaGAsyncModuleClass parent_class;
};

struct _ValaGVariantModule {
	ValaGValueModule parent_instance;
	ValaGVariantModulePrivate * priv;
};

struct _ValaGVariantModuleClass {
	ValaGValueModuleClass parent_class;
};

struct _ValaGDBusModule {
	ValaGVariantModule parent_instance;
	ValaGDBusModulePrivate * priv;
};

struct _ValaGDBusModuleClass {
	ValaGVariantModuleClass parent_class;
};

struct _ValaGDBusClientModule {
	ValaGDBusModule parent_instance;
	ValaGDBusClientModulePrivate * priv;
};

struct _ValaGDBusClientModuleClass {
	ValaGDBusModuleClass parent_class;
};

struct _ValaGDBusServerModule {
	ValaGDBusClientModule parent_instance;
	ValaGDBusServerModulePrivate * priv;
};

struct _ValaGDBusServerModuleClass {
	ValaGDBusClientModuleClass parent_class;
};

struct _ValaGIRWriter {
	ValaCodeVisitor parent_instance;
	ValaGIRWriterPrivate * priv;
};

struct _ValaGIRWriterClass {
	ValaCodeVisitorClass parent_class;
	gchar* (*get_interface_comment) (ValaGIRWriter* self, ValaInterface* iface);
	gchar* (*get_struct_comment) (ValaGIRWriter* self, ValaStruct* st);
	gchar* (*get_enum_comment) (ValaGIRWriter* self, ValaEnum* en);
	gchar* (*get_class_comment) (ValaGIRWriter* self, ValaClass* c);
	gchar* (*get_error_code_comment) (ValaGIRWriter* self, ValaErrorCode* ecode);
	gchar* (*get_enum_value_comment) (ValaGIRWriter* self, ValaEnumValue* ev);
	gchar* (*get_constant_comment) (ValaGIRWriter* self, ValaConstant* c);
	gchar* (*get_error_domain_comment) (ValaGIRWriter* self, ValaErrorDomain* edomain);
	gchar* (*get_field_comment) (ValaGIRWriter* self, ValaField* f);
	gchar* (*get_delegate_comment) (ValaGIRWriter* self, ValaDelegate* cb);
	gchar* (*get_method_comment) (ValaGIRWriter* self, ValaMethod* m);
	gchar* (*get_property_comment) (ValaGIRWriter* self, ValaProperty* prop);
	gchar* (*get_delegate_return_comment) (ValaGIRWriter* self, ValaDelegate* cb);
	gchar* (*get_signal_return_comment) (ValaGIRWriter* self, ValaSignal* sig);
	gchar* (*get_method_return_comment) (ValaGIRWriter* self, ValaMethod* m);
	gchar* (*get_signal_comment) (ValaGIRWriter* self, ValaSignal* sig);
	gchar* (*get_parameter_comment) (ValaGIRWriter* self, ValaParameter* param);
};

struct _ValaGLibValue {
	ValaTargetValue parent_instance;
	ValaCCodeExpression* cvalue;
	gboolean lvalue;
	gboolean non_null;
	gchar* ctype;
	ValaList* array_length_cvalues;
	ValaCCodeExpression* array_size_cvalue;
	gboolean array_null_terminated;
	ValaCCodeExpression* array_length_cexpr;
	ValaCCodeExpression* delegate_target_cvalue;
	ValaCCodeExpression* delegate_target_destroy_notify_cvalue;
	ValaGLibValuePrivate * priv;
};

struct _ValaGLibValueClass {
	ValaTargetValueClass parent_class;
};

struct _ValaInterfaceRegisterFunction {
	ValaTypeRegisterFunction parent_instance;
	ValaInterfaceRegisterFunctionPrivate * priv;
};

struct _ValaInterfaceRegisterFunctionClass {
	ValaTypeRegisterFunctionClass parent_class;
};

struct _ValaStructRegisterFunction {
	ValaTypeRegisterFunction parent_instance;
	ValaStructRegisterFunctionPrivate * priv;
};

struct _ValaStructRegisterFunctionClass {
	ValaTypeRegisterFunctionClass parent_class;
};

VALA_EXTERN gchar* vala_get_ccode_name (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_const_name (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_type_name (ValaObjectTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_type_cast_function (ValaObjectTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_type_get_function (ValaObjectTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_class_get_private_function (ValaClass* cl);
VALA_EXTERN gchar* vala_get_ccode_class_type_function (ValaClass* cl);
VALA_EXTERN gchar* vala_get_ccode_lower_case_name (ValaCodeNode* node,
                                       const gchar* infix);
VALA_EXTERN gchar* vala_get_ccode_upper_case_name (ValaSymbol* sym,
                                       const gchar* infix);
VALA_EXTERN gchar* vala_get_ccode_header_filenames (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_feature_test_macros (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_prefix (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_lower_case_prefix (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_lower_case_suffix (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_ref_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_quark_name (ValaErrorDomain* edomain);
VALA_EXTERN gboolean vala_is_reference_counting (ValaTypeSymbol* sym);
VALA_EXTERN gboolean vala_is_ref_function_void (ValaDataType* type);
VALA_EXTERN gboolean vala_is_free_function_address_of (ValaDataType* type);
VALA_EXTERN gboolean vala_get_ccode_ref_function_void (ValaClass* cl);
VALA_EXTERN gboolean vala_get_ccode_free_function_address_of (ValaClass* cl);
VALA_EXTERN gchar* vala_get_ccode_unref_function (ValaObjectTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_ref_sink_function (ValaObjectTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_copy_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_destroy_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_dup_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_free_function (ValaTypeSymbol* sym);
VALA_EXTERN gboolean vala_get_ccode_is_gboxed (ValaTypeSymbol* sym);
VALA_EXTERN gboolean vala_get_ccode_finish_instance (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_type_id (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_type_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_marshaller_type_name (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_get_value_function (ValaCodeNode* sym);
VALA_EXTERN gchar* vala_get_ccode_set_value_function (ValaCodeNode* sym);
VALA_EXTERN gchar* vala_get_ccode_take_value_function (ValaCodeNode* sym);
VALA_EXTERN gchar* vala_get_ccode_param_spec_function (ValaCodeNode* sym);
VALA_EXTERN gchar* vala_get_ccode_type_check_function (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_class_type_check_function (ValaClass* cl);
VALA_EXTERN gchar* vala_get_ccode_default_value (ValaTypeSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_default_value_on_error (ValaTypeSymbol* sym);
VALA_EXTERN gboolean vala_get_ccode_has_copy_function (ValaStruct* st);
VALA_EXTERN gboolean vala_get_ccode_has_destroy_function (ValaStruct* st);
VALA_EXTERN gdouble vala_get_ccode_instance_pos (ValaCodeNode* node);
VALA_EXTERN gdouble vala_get_ccode_error_pos (ValaCallable* c);
VALA_EXTERN gboolean vala_get_ccode_array_length (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_array_length_type (ValaCodeNode* node);
VALA_EXTERN gboolean vala_get_ccode_array_null_terminated (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_array_length_name (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_array_length_expr (ValaCodeNode* node);
VALA_EXTERN gdouble vala_get_ccode_array_length_pos (ValaCodeNode* node);
VALA_EXTERN gdouble vala_get_ccode_delegate_target_pos (ValaCodeNode* node);
VALA_EXTERN gdouble vala_get_ccode_destroy_notify_pos (ValaCodeNode* node);
VALA_EXTERN gboolean vala_get_ccode_delegate_target (ValaCodeNode* node);
VALA_EXTERN gchar* vala_get_ccode_delegate_target_name (ValaVariable* variable);
VALA_EXTERN gchar* vala_get_ccode_delegate_target_destroy_notify_name (ValaVariable* variable);
VALA_EXTERN gdouble vala_get_ccode_pos (ValaParameter* param);
VALA_EXTERN gchar* vala_get_ccode_type (ValaCodeNode* node);
VALA_EXTERN gboolean vala_get_ccode_simple_generics (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_real_name (ValaSymbol* sym);
VALA_EXTERN gchar* vala_get_ccode_constructv_name (ValaCreationMethod* m);
VALA_EXTERN gchar* vala_get_ccode_vfunc_name (ValaMethod* m);
VALA_EXTERN gdouble vala_get_ccode_async_result_pos (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_finish_name (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_finish_vfunc_name (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_finish_real_name (ValaMethod* m);
VALA_EXTERN gboolean vala_get_ccode_no_accessor_method (ValaProperty* p);
VALA_EXTERN gboolean vala_get_ccode_concrete_accessor (ValaProperty* p);
VALA_EXTERN gboolean vala_get_ccode_has_emitter (ValaSignal* sig);
VALA_EXTERN gboolean vala_get_ccode_has_type_id (ValaTypeSymbol* sym);
VALA_EXTERN gboolean vala_get_ccode_has_new_function (ValaMethod* m);
VALA_EXTERN gboolean vala_get_ccode_has_generic_type_parameter (ValaMethod* m);
VALA_EXTERN gdouble vala_get_ccode_generic_type_pos (ValaMethod* m);
VALA_EXTERN gboolean vala_get_ccode_no_wrapper (ValaMethod* m);
VALA_EXTERN gchar* vala_get_ccode_sentinel (ValaMethod* m);
VALA_EXTERN GType vala_ccode_base_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeBaseModule, vala_code_visitor_unref)
VALA_EXTERN gpointer vala_ccode_base_module_emit_context_ref (gpointer instance);
VALA_EXTERN void vala_ccode_base_module_emit_context_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_ccode_base_module_param_spec_emit_context (const gchar* name,
                                                            const gchar* nick,
                                                            const gchar* blurb,
                                                            GType object_type,
                                                            GParamFlags flags);
VALA_EXTERN void vala_ccode_base_module_value_set_emit_context (GValue* value,
                                                    gpointer v_object);
VALA_EXTERN void vala_ccode_base_module_value_take_emit_context (GValue* value,
                                                     gpointer v_object);
VALA_EXTERN gpointer vala_ccode_base_module_value_get_emit_context (const GValue* value);
VALA_EXTERN GType vala_ccode_base_module_emit_context_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeBaseModuleEmitContext, vala_ccode_base_module_emit_context_unref)
VALA_EXTERN GType vala_ccode_struct_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeStructModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_method_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeMethodModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_control_flow_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeControlFlowModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_member_access_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeMemberAccessModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_assignment_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeAssignmentModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_method_call_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeMethodCallModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_ccode_array_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeArrayModule, vala_code_visitor_unref)
VALA_EXTERN ValaCCodeArrayModule* vala_ccode_array_module_new (void);
VALA_EXTERN ValaCCodeArrayModule* vala_ccode_array_module_construct (GType object_type);
VALA_EXTERN ValaCCodeAssignmentModule* vala_ccode_assignment_module_new (void);
VALA_EXTERN ValaCCodeAssignmentModule* vala_ccode_assignment_module_construct (GType object_type);
VALA_EXTERN GType vala_ccode_attribute_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeAttribute, vala_attribute_cache_unref)
VALA_EXTERN const gchar* vala_ccode_attribute_get_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_const_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_type_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_feature_test_macros (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_header_filenames (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_prefix (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_lower_case_prefix (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_lower_case_suffix (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_ref_function (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_ref_function_void (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_unref_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_ref_sink_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_copy_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_destroy_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_dup_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_free_function (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_free_function_address_of (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_ctype (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_type_id (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_marshaller_type_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_get_value_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_set_value_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_take_value_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_param_spec_function (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_default_value (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_default_value_on_error (ValaCCodeAttribute* self);
VALA_EXTERN gdouble vala_ccode_attribute_get_pos (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_real_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_vfunc_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_finish_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_finish_vfunc_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_finish_real_name (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_finish_instance (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_delegate_target (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_delegate_target_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_delegate_target_destroy_notify_name (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_array_length (ValaCCodeAttribute* self);
VALA_EXTERN gboolean vala_ccode_attribute_get_array_null_terminated (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_array_length_type (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_sentinel (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_array_length_name (ValaCCodeAttribute* self);
VALA_EXTERN const gchar* vala_ccode_attribute_get_array_length_expr (ValaCCodeAttribute* self);
VALA_EXTERN ValaCCodeAttribute* vala_ccode_attribute_new (ValaCodeNode* node);
VALA_EXTERN ValaCCodeAttribute* vala_ccode_attribute_construct (GType object_type,
                                                    ValaCodeNode* node);
VALA_EXTERN ValaCodeContext* vala_ccode_base_module_get_context (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_context (ValaCCodeBaseModule* self,
                                         ValaCodeContext* value);
VALA_EXTERN ValaSymbol* vala_ccode_base_module_get_current_symbol (ValaCCodeBaseModule* self);
VALA_EXTERN ValaTryStatement* vala_ccode_base_module_get_current_try (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_try (ValaCCodeBaseModule* self,
                                             ValaTryStatement* value);
VALA_EXTERN gint vala_ccode_base_module_get_current_try_id (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_try_id (ValaCCodeBaseModule* self,
                                                gint value);
VALA_EXTERN gint vala_ccode_base_module_get_next_try_id (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_next_try_id (ValaCCodeBaseModule* self,
                                             gint value);
VALA_EXTERN ValaCatchClause* vala_ccode_base_module_get_current_catch (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_catch (ValaCCodeBaseModule* self,
                                               ValaCatchClause* value);
VALA_EXTERN gint vala_ccode_base_module_get_current_inner_error_id (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_inner_error_id (ValaCCodeBaseModule* self,
                                                        gint value);
VALA_EXTERN gboolean vala_ccode_base_module_get_is_in_method_precondition (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_is_in_method_precondition (ValaCCodeBaseModule* self,
                                                           gboolean value);
VALA_EXTERN ValaTypeSymbol* vala_ccode_base_module_get_current_type_symbol (ValaCCodeBaseModule* self);
VALA_EXTERN ValaClass* vala_ccode_base_module_get_current_class (ValaCCodeBaseModule* self);
VALA_EXTERN ValaMethod* vala_ccode_base_module_get_current_method (ValaCCodeBaseModule* self);
VALA_EXTERN ValaPropertyAccessor* vala_ccode_base_module_get_current_property_accessor (ValaCCodeBaseModule* self);
VALA_EXTERN ValaConstructor* vala_ccode_base_module_get_current_constructor (ValaCCodeBaseModule* self);
VALA_EXTERN ValaDestructor* vala_ccode_base_module_get_current_destructor (ValaCCodeBaseModule* self);
VALA_EXTERN ValaDataType* vala_ccode_base_module_get_current_return_type (ValaCCodeBaseModule* self);
VALA_EXTERN gboolean vala_ccode_base_module_is_in_coroutine (ValaCCodeBaseModule* self);
VALA_EXTERN gboolean vala_ccode_base_module_is_in_constructor (ValaCCodeBaseModule* self);
VALA_EXTERN gboolean vala_ccode_base_module_is_in_destructor (ValaCCodeBaseModule* self);
VALA_EXTERN ValaBlock* vala_ccode_base_module_get_current_closure_block (ValaCCodeBaseModule* self);
VALA_EXTERN ValaBlock* vala_ccode_base_module_next_closure_block (ValaCCodeBaseModule* self,
                                                      ValaSymbol* sym);
VALA_EXTERN ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self);
VALA_EXTERN ValaArrayList* vala_ccode_base_module_get_temp_ref_values (ValaCCodeBaseModule* self);
VALA_EXTERN ValaSet* vala_ccode_base_module_reserved_identifiers;
VALA_EXTERN ValaSet* vala_ccode_base_module_reserved_vala_identifiers;
VALA_EXTERN gint vala_ccode_base_module_get_next_temp_var_id (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_next_temp_var_id (ValaCCodeBaseModule* self,
                                                  gint value);
VALA_EXTERN gboolean vala_ccode_base_module_get_in_creation_method (ValaCCodeBaseModule* self);
VALA_EXTERN gboolean vala_ccode_base_module_get_current_method_inner_error (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_method_inner_error (ValaCCodeBaseModule* self,
                                                            gboolean value);
VALA_EXTERN gboolean vala_ccode_base_module_get_current_method_return (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_set_current_method_return (ValaCCodeBaseModule* self,
                                                       gboolean value);
VALA_EXTERN ValaMap* vala_ccode_base_module_get_variable_name_map (ValaCCodeBaseModule* self);
VALA_EXTERN gint vala_ccode_base_module_ccode_attribute_cache_index;
VALA_EXTERN ValaCCodeBaseModule* vala_ccode_base_module_construct (GType object_type);
VALA_EXTERN void vala_ccode_base_module_init (void);
VALA_EXTERN void vala_ccode_base_module_push_context (ValaCCodeBaseModule* self,
                                          ValaCCodeBaseModuleEmitContext* emit_context);
VALA_EXTERN void vala_ccode_base_module_pop_context (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_push_line (ValaCCodeBaseModule* self,
                                       ValaSourceReference* source_reference);
VALA_EXTERN void vala_ccode_base_module_pop_line (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_push_function (ValaCCodeBaseModule* self,
                                           ValaCCodeFunction* func);
VALA_EXTERN void vala_ccode_base_module_pop_function (ValaCCodeBaseModule* self);
VALA_EXTERN gboolean vala_ccode_base_module_add_symbol_declaration (ValaCCodeBaseModule* self,
                                                        ValaCCodeFile* decl_space,
                                                        ValaSymbol* sym,
                                                        const gchar* name);
VALA_EXTERN void vala_ccode_base_module_append_vala_array_free (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_append_vala_array_move (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_append_vala_array_length (ValaCCodeBaseModule* self);
VALA_EXTERN void vala_ccode_base_module_append_params_array (ValaCCodeBaseModule* self,
                                                 ValaMethod* m);
VALA_EXTERN void vala_ccode_base_module_append_vala_clear_mutex (ValaCCodeBaseModule* self,
                                                     const gchar* typename,
                                                     const gchar* funcprefix);
VALA_EXTERN gboolean vala_ccode_base_module_generate_enum_declaration (ValaCCodeBaseModule* self,
                                                           ValaEnum* en,
                                                           ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_visit_member (ValaCCodeBaseModule* self,
                                          ValaSymbol* m);
VALA_EXTERN void vala_ccode_base_module_generate_constant_declaration (ValaCCodeBaseModule* self,
                                                           ValaConstant* c,
                                                           ValaCCodeFile* decl_space,
                                                           gboolean definition);
VALA_EXTERN void vala_ccode_base_module_append_field (ValaCCodeBaseModule* self,
                                          ValaCCodeStruct* ccode_struct,
                                          ValaField* f,
                                          ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_field_declaration (ValaCCodeBaseModule* self,
                                                        ValaField* f,
                                                        ValaCCodeFile* decl_space);
VALA_EXTERN gboolean vala_ccode_base_module_is_constant_ccode_expression (ValaCCodeExpression* cexpr);
VALA_EXTERN gboolean vala_ccode_base_module_is_constant_ccode (ValaCodeNode* expr);
VALA_EXTERN gboolean vala_ccode_base_module_is_pure_ccode_expression (ValaCCodeExpression* cexpr);
VALA_EXTERN void vala_ccode_base_module_generate_type_declaration (ValaCCodeBaseModule* self,
                                                       ValaDataType* type,
                                                       ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_class_struct_declaration (ValaCCodeBaseModule* self,
                                                               ValaClass* cl,
                                                               ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_struct_declaration (ValaCCodeBaseModule* self,
                                                         ValaStruct* st,
                                                         ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_delegate_declaration (ValaCCodeBaseModule* self,
                                                           ValaDelegate* d,
                                                           ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_cparameters (ValaCCodeBaseModule* self,
                                                  ValaMethod* m,
                                                  ValaCCodeFile* decl_space,
                                                  ValaMap* cparam_map,
                                                  ValaCCodeFunction* func,
                                                  ValaCCodeFunctionDeclarator* vdeclarator,
                                                  ValaMap* carg_map,
                                                  ValaCCodeFunctionCall* vcall,
                                                  gint direction);
VALA_EXTERN void vala_ccode_base_module_generate_property_accessor_declaration (ValaCCodeBaseModule* self,
                                                                    ValaPropertyAccessor* acc,
                                                                    ValaCCodeFile* decl_space);
VALA_EXTERN gint vala_ccode_base_module_get_block_id (ValaCCodeBaseModule* self,
                                          ValaBlock* b);
VALA_EXTERN gboolean vala_ccode_base_module_no_implicit_copy (ValaCCodeBaseModule* self,
                                                  ValaDataType* type);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_cexpression (ValaCCodeBaseModule* self,
                                                             const gchar* name);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_local_cexpression (ValaCCodeBaseModule* self,
                                                                   ValaLocalVariable* local);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_parameter_cexpression (ValaCCodeBaseModule* self,
                                                                       ValaParameter* param);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self,
                                                                      const gchar* name);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_this_cexpression (ValaCCodeBaseModule* self);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_this_class_cexpression (ValaCCodeBaseModule* self,
                                                                        ValaClass* cl,
                                                                        ValaTargetValue* instance);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_this_interface_cexpression (ValaCCodeBaseModule* self,
                                                                            ValaInterface* iface,
                                                                            ValaTargetValue* instance);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_inner_error_cexpression (ValaCCodeBaseModule* self);
VALA_EXTERN gchar* vala_ccode_base_module_get_local_cname (ValaCCodeBaseModule* self,
                                               ValaLocalVariable* local);
VALA_EXTERN gchar* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self,
                                                  const gchar* name);
VALA_EXTERN gboolean vala_ccode_base_module_is_simple_struct_creation (ValaCCodeBaseModule* self,
                                                           ValaVariable* variable,
                                                           ValaExpression* expr);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_create_temp_value (ValaCCodeBaseModule* self,
                                                           ValaDataType* type,
                                                           gboolean init,
                                                           ValaCodeNode* node_reference,
                                                           gboolean* value_owned);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_load_temp_value (ValaCCodeBaseModule* self,
                                                         ValaTargetValue* lvalue);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_store_temp_value (ValaCCodeBaseModule* self,
                                                          ValaTargetValue* initializer,
                                                          ValaCodeNode* node_reference,
                                                          gboolean* value_owned);
VALA_EXTERN ValaLocalVariable* vala_ccode_base_module_get_temp_variable (ValaCCodeBaseModule* self,
                                                             ValaDataType* type,
                                                             gboolean value_owned,
                                                             ValaCodeNode* node_reference,
                                                             gboolean init);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_type_id_expression (ValaCCodeBaseModule* self,
                                                                    ValaDataType* type,
                                                                    gboolean is_chainup);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_dup_func_expression (ValaCCodeBaseModule* self,
                                                                     ValaDataType* type,
                                                                     ValaSourceReference* source_reference,
                                                                     gboolean is_chainup);
VALA_EXTERN gchar* vala_ccode_base_module_generate_dup_func_wrapper (ValaCCodeBaseModule* self,
                                                         ValaDataType* type);
VALA_EXTERN gchar* vala_ccode_base_module_generate_free_function_address_of_wrapper (ValaCCodeBaseModule* self,
                                                                         ValaDataType* type);
VALA_EXTERN gchar* vala_ccode_base_module_generate_destroy_function_content_of_wrapper (ValaCCodeBaseModule* self,
                                                                            ValaDataType* type);
VALA_EXTERN gchar* vala_ccode_base_module_generate_free_func_wrapper (ValaCCodeBaseModule* self,
                                                          ValaDataType* type);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_destroy0_func_expression (ValaCCodeBaseModule* self,
                                                                          ValaDataType* type,
                                                                          gboolean is_chainup);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_destroy_func_expression (ValaCCodeBaseModule* self,
                                                                         ValaDataType* type,
                                                                         gboolean is_chainup);
VALA_EXTERN gchar* vala_ccode_base_module_append_struct_array_destroy (ValaCCodeBaseModule* self,
                                                           ValaStruct* st);
VALA_EXTERN gchar* vala_ccode_base_module_append_struct_array_free (ValaCCodeBaseModule* self,
                                                        ValaStruct* st);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_destroy_local (ValaCCodeBaseModule* self,
                                                           ValaLocalVariable* local);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_destroy_parameter (ValaCCodeBaseModule* self,
                                                               ValaParameter* param);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_destroy_field (ValaCCodeBaseModule* self,
                                                           ValaField* field,
                                                           ValaTargetValue* instance);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_destroy_value (ValaCCodeBaseModule* self,
                                                           ValaTargetValue* value,
                                                           gboolean is_macro_definition);
VALA_EXTERN void vala_ccode_base_module_emit_temp_var (ValaCCodeBaseModule* self,
                                           ValaLocalVariable* local,
                                           gboolean on_error);
VALA_EXTERN void vala_ccode_base_module_append_scope_free (ValaCCodeBaseModule* self,
                                               ValaSymbol* sym,
                                               ValaCodeNode* stop_at);
VALA_EXTERN void vala_ccode_base_module_append_local_free (ValaCCodeBaseModule* self,
                                               ValaSymbol* sym,
                                               ValaStatement* jump_stmt,
                                               ValaCodeNode* stop_at);
VALA_EXTERN void vala_ccode_base_module_append_out_param_free (ValaCCodeBaseModule* self,
                                                   ValaMethod* m);
VALA_EXTERN gboolean vala_ccode_base_module_variable_accessible_in_finally (ValaCCodeBaseModule* self,
                                                                ValaLocalVariable* local);
VALA_EXTERN void vala_ccode_base_module_return_out_parameter (ValaCCodeBaseModule* self,
                                                  ValaParameter* param);
VALA_EXTERN gchar* vala_ccode_base_module_get_symbol_lock_name (ValaCCodeBaseModule* self,
                                                    const gchar* symname);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_get_local_cvalue (ValaCCodeBaseModule* self,
                                                          ValaLocalVariable* local);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_get_parameter_cvalue (ValaCCodeBaseModule* self,
                                                              ValaParameter* param);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_get_field_cvalue (ValaCCodeBaseModule* self,
                                                          ValaField* field,
                                                          ValaTargetValue* instance);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_load_variable (ValaCCodeBaseModule* self,
                                                       ValaVariable* variable,
                                                       ValaTargetValue* value,
                                                       ValaExpression* expr);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_load_this_parameter (ValaCCodeBaseModule* self,
                                                             ValaTypeSymbol* sym);
VALA_EXTERN void vala_ccode_base_module_store_value (ValaCCodeBaseModule* self,
                                         ValaTargetValue* lvalue,
                                         ValaTargetValue* value,
                                         ValaSourceReference* source_reference);
VALA_EXTERN gchar* vala_ccode_base_module_get_delegate_target_cname (ValaCCodeBaseModule* self,
                                                         const gchar* delegate_cname);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_cexpression (ValaCCodeBaseModule* self,
                                                                             ValaExpression* delegate_expr,
                                                                             ValaCCodeExpression** delegate_target_destroy_notify);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_cvalue (ValaCCodeBaseModule* self,
                                                                        ValaTargetValue* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_delegate_target_destroy_notify_cvalue (ValaCCodeBaseModule* self,
                                                                                       ValaTargetValue* value);
VALA_EXTERN gchar* vala_ccode_base_module_get_delegate_target_destroy_notify_cname (ValaCCodeBaseModule* self,
                                                                        const gchar* delegate_cname);
VALA_EXTERN gboolean vala_ccode_base_module_requires_copy (ValaDataType* type);
VALA_EXTERN gboolean vala_ccode_base_module_requires_destroy (ValaDataType* type);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_copy_value (ValaCCodeBaseModule* self,
                                                    ValaTargetValue* value,
                                                    ValaCodeNode* node);
VALA_EXTERN void vala_ccode_base_module_generate_class_declaration (ValaCCodeBaseModule* self,
                                                        ValaClass* cl,
                                                        ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_interface_declaration (ValaCCodeBaseModule* self,
                                                            ValaInterface* iface,
                                                            ValaCCodeFile* decl_space);
VALA_EXTERN gboolean vala_ccode_base_module_generate_method_declaration (ValaCCodeBaseModule* self,
                                                             ValaMethod* m,
                                                             ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_generate_error_domain_declaration (ValaCCodeBaseModule* self,
                                                               ValaErrorDomain* edomain,
                                                               ValaCCodeFile* decl_space);
VALA_EXTERN void vala_ccode_base_module_add_generic_type_arguments (ValaCCodeBaseModule* self,
                                                        ValaMethod* m,
                                                        ValaMap* arg_map,
                                                        ValaList* type_args,
                                                        ValaCodeNode* expr,
                                                        gboolean is_chainup,
                                                        ValaList* type_parameters);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_handle_struct_argument (ValaCCodeBaseModule* self,
                                                                    ValaParameter* param,
                                                                    ValaExpression* arg,
                                                                    ValaCCodeExpression* cexpr);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_deserialize_expression (ValaCCodeBaseModule* self,
                                                                    ValaDataType* type,
                                                                    ValaCCodeExpression* variant_expr,
                                                                    ValaCCodeExpression* expr,
                                                                    ValaCCodeExpression* error_expr,
                                                                    gboolean* may_fail);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_serialize_expression (ValaCCodeBaseModule* self,
                                                                  ValaDataType* type,
                                                                  ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_create_type_check (ValaCCodeBaseModule* self,
                                                               ValaCCodeNode* ccodenode,
                                                               ValaDataType* type);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_convert_from_generic_pointer (ValaCCodeBaseModule* self,
                                                                          ValaCCodeExpression* cexpr,
                                                                          ValaDataType* actual_type);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_convert_to_generic_pointer (ValaCCodeBaseModule* self,
                                                                        ValaCCodeExpression* cexpr,
                                                                        ValaDataType* actual_type);
VALA_EXTERN ValaTargetValue* vala_ccode_base_module_transform_value (ValaCCodeBaseModule* self,
                                                         ValaTargetValue* value,
                                                         ValaDataType* target_type,
                                                         ValaCodeNode* node);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_implicit_cast_expression (ValaCCodeBaseModule* self,
                                                                          ValaCCodeExpression* source_cexpr,
                                                                          ValaDataType* expression_type,
                                                                          ValaDataType* target_type,
                                                                          ValaCodeNode* node);
VALA_EXTERN void vala_ccode_base_module_store_property (ValaCCodeBaseModule* self,
                                            ValaProperty* prop,
                                            ValaExpression* instance,
                                            ValaTargetValue* value);
VALA_EXTERN gboolean vala_ccode_base_module_add_wrapper (ValaCCodeBaseModule* self,
                                             const gchar* wrapper_name);
VALA_EXTERN gboolean vala_ccode_base_module_add_generated_external_symbol (ValaCCodeBaseModule* self,
                                                               ValaSymbol* external_symbol);
VALA_EXTERN ValaDataType* vala_ccode_base_module_get_callable_creturn_type (ValaCallable* c);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self,
                                                                    ValaDataType* type,
                                                                    gboolean initializer_expression,
                                                                    gboolean on_error);
VALA_EXTERN void vala_ccode_base_module_create_type_check_statement (ValaCCodeBaseModule* self,
                                                         ValaCodeNode* method_node,
                                                         ValaDataType* ret_type,
                                                         ValaTypeSymbol* t,
                                                         gboolean non_null,
                                                         const gchar* var_name);
VALA_EXTERN gint vala_ccode_base_module_get_param_pos (ValaCCodeBaseModule* self,
                                           gdouble param_pos,
                                           gboolean ellipsis);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_ccodenode (ValaCCodeBaseModule* self,
                                                           ValaExpression* node);
VALA_EXTERN gboolean vala_ccode_base_module_is_lvalue_access_allowed (ValaCCodeBaseModule* self,
                                                          ValaDataType* type);
VALA_EXTERN gboolean vala_ccode_base_module_requires_memset_init (ValaCCodeBaseModule* self,
                                                      ValaVariable* variable,
                                                      ValaCCodeExpression** size);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_base_module_get_ccode_declarator_suffix (ValaCCodeBaseModule* self,
                                                                               ValaDataType* type);
VALA_EXTERN ValaCCodeConstant* vala_ccode_base_module_get_signal_canonical_constant (ValaCCodeBaseModule* self,
                                                                         ValaSignal* sig,
                                                                         const gchar* detail);
VALA_EXTERN ValaCCodeConstant* vala_ccode_base_module_get_property_canonical_cconstant (ValaCCodeBaseModule* self,
                                                                            ValaProperty* prop);
VALA_EXTERN void vala_ccode_base_module_create_postcondition_statement (ValaCCodeBaseModule* self,
                                                            ValaExpression* postcondition);
VALA_EXTERN ValaDataType* vala_ccode_base_module_get_this_type (ValaCCodeBaseModule* self);
VALA_EXTERN ValaCCodeFunctionCall* vala_ccode_base_module_generate_instance_cast (ValaCCodeBaseModule* self,
                                                                      ValaCCodeExpression* expr,
                                                                      ValaTypeSymbol* type);
VALA_EXTERN void vala_ccode_base_module_return_default_value (ValaCCodeBaseModule* self,
                                                  ValaDataType* return_type,
                                                  gboolean on_error);
VALA_EXTERN void vala_ccode_base_module_generate_dynamic_method_wrapper (ValaCCodeBaseModule* self,
                                                             ValaDynamicMethod* method);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_param_spec_cexpression (ValaCCodeBaseModule* self,
                                                                        ValaProperty* prop);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_param_spec (ValaCCodeBaseModule* self,
                                                            ValaProperty* prop);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_signal_creation (ValaCCodeBaseModule* self,
                                                                 ValaSignal* sig,
                                                                 ValaObjectTypeSymbol* type);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_value_getter_function (ValaCCodeBaseModule* self,
                                                                       ValaDataType* type_reference);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_value_setter_function (ValaCCodeBaseModule* self,
                                                                       ValaDataType* type_reference);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_value_taker_function (ValaCCodeBaseModule* self,
                                                                      ValaDataType* type_reference);
VALA_EXTERN void vala_ccode_base_module_register_dbus_info (ValaCCodeBaseModule* self,
                                                ValaCCodeBlock* block,
                                                ValaObjectTypeSymbol* bindable);
VALA_EXTERN gchar* vala_ccode_base_module_get_dynamic_signal_cname (ValaCCodeBaseModule* self,
                                                        ValaDynamicSignal* node);
VALA_EXTERN gchar* vala_ccode_base_module_get_array_length_cname (ValaCCodeBaseModule* self,
                                                      const gchar* array_cname,
                                                      gint dim);
VALA_EXTERN gchar* vala_ccode_base_module_get_variable_array_length_cname (ValaCCodeBaseModule* self,
                                                               ValaVariable* variable,
                                                               gint dim);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_array_length_cexpression (ValaCCodeBaseModule* self,
                                                                          ValaExpression* array_expr,
                                                                          gint dim);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_array_length_cvalue (ValaCCodeBaseModule* self,
                                                                     ValaTargetValue* value,
                                                                     gint dim);
VALA_EXTERN gchar* vala_ccode_base_module_get_array_size_cname (ValaCCodeBaseModule* self,
                                                    const gchar* array_cname);
VALA_EXTERN void vala_ccode_base_module_add_simple_check (ValaCCodeBaseModule* self,
                                              ValaCodeNode* node,
                                              gboolean always_fails);
VALA_EXTERN gchar* vala_ccode_base_module_generate_ready_function (ValaCCodeBaseModule* self,
                                                       ValaMethod* m);
VALA_EXTERN ValaCCodeExpression* vala_ccode_base_module_get_boolean_cconstant (ValaCCodeBaseModule* self,
                                                                   gboolean b);
VALA_EXTERN ValaCCodeBaseModuleEmitContext* vala_ccode_base_module_emit_context_new (ValaSymbol* symbol);
VALA_EXTERN ValaCCodeBaseModuleEmitContext* vala_ccode_base_module_emit_context_construct (GType object_type,
                                                                               ValaSymbol* symbol);
VALA_EXTERN void vala_ccode_base_module_emit_context_push_symbol (ValaCCodeBaseModuleEmitContext* self,
                                                      ValaSymbol* symbol);
VALA_EXTERN void vala_ccode_base_module_emit_context_pop_symbol (ValaCCodeBaseModuleEmitContext* self);
VALA_EXTERN gpointer vala_ccode_compiler_ref (gpointer instance);
VALA_EXTERN void vala_ccode_compiler_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_ccode_compiler (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
VALA_EXTERN void vala_value_set_ccode_compiler (GValue* value,
                                    gpointer v_object);
VALA_EXTERN void vala_value_take_ccode_compiler (GValue* value,
                                     gpointer v_object);
VALA_EXTERN gpointer vala_value_get_ccode_compiler (const GValue* value);
VALA_EXTERN GType vala_ccode_compiler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeCompiler, vala_ccode_compiler_unref)
VALA_EXTERN ValaCCodeCompiler* vala_ccode_compiler_new (void);
VALA_EXTERN ValaCCodeCompiler* vala_ccode_compiler_construct (GType object_type);
VALA_EXTERN void vala_ccode_compiler_compile (ValaCCodeCompiler* self,
                                  ValaCodeContext* context,
                                  const gchar* cc_command,
                                  gchar** cc_options,
                                  gint cc_options_length1);
VALA_EXTERN ValaCCodeControlFlowModule* vala_ccode_control_flow_module_construct (GType object_type);
VALA_EXTERN GType vala_ccode_delegate_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDelegateModule, vala_code_visitor_unref)
VALA_EXTERN gchar* vala_ccode_delegate_module_generate_delegate_wrapper (ValaCCodeDelegateModule* self,
                                                             ValaMethod* m,
                                                             ValaDelegateType* dt,
                                                             ValaCodeNode* node);
VALA_EXTERN ValaCCodeDelegateModule* vala_ccode_delegate_module_new (void);
VALA_EXTERN ValaCCodeDelegateModule* vala_ccode_delegate_module_construct (GType object_type);
VALA_EXTERN ValaCCodeMemberAccessModule* vala_ccode_member_access_module_construct (GType object_type);
VALA_EXTERN ValaCCodeMethodCallModule* vala_ccode_method_call_module_new (void);
VALA_EXTERN ValaCCodeMethodCallModule* vala_ccode_method_call_module_construct (GType object_type);
VALA_EXTERN void vala_ccode_method_module_generate_method_result_declaration (ValaCCodeMethodModule* self,
                                                                  ValaMethod* m,
                                                                  ValaCCodeFile* decl_space,
                                                                  ValaCCodeFunction* cfunc,
                                                                  ValaMap* cparam_map,
                                                                  ValaMap* carg_map);
VALA_EXTERN void vala_ccode_method_module_complete_async (ValaCCodeMethodModule* self);
VALA_EXTERN ValaCCodeParameter* vala_ccode_method_module_generate_parameter (ValaCCodeMethodModule* self,
                                                                 ValaParameter* param,
                                                                 ValaCCodeFile* decl_space,
                                                                 ValaMap* cparam_map,
                                                                 ValaMap* carg_map);
VALA_EXTERN void vala_ccode_method_module_generate_vfunc (ValaCCodeMethodModule* self,
                                              ValaMethod* m,
                                              ValaDataType* return_type,
                                              ValaMap* cparam_map,
                                              ValaMap* carg_map,
                                              const gchar* suffix,
                                              gint direction);
VALA_EXTERN ValaCCodeMethodModule* vala_ccode_method_module_construct (GType object_type);
VALA_EXTERN ValaCCodeStructModule* vala_ccode_struct_module_construct (GType object_type);
VALA_EXTERN gpointer vala_typeregister_function_ref (gpointer instance);
VALA_EXTERN void vala_typeregister_function_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_typeregister_function (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
VALA_EXTERN void vala_value_set_typeregister_function (GValue* value,
                                           gpointer v_object);
VALA_EXTERN void vala_value_take_typeregister_function (GValue* value,
                                            gpointer v_object);
VALA_EXTERN gpointer vala_value_get_typeregister_function (const GValue* value);
VALA_EXTERN GType vala_typeregister_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTypeRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN GType vala_class_register_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaClassRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN ValaClass* vala_class_register_function_get_class_reference (ValaClassRegisterFunction* self);
VALA_EXTERN void vala_class_register_function_set_class_reference (ValaClassRegisterFunction* self,
                                                       ValaClass* value);
VALA_EXTERN ValaClassRegisterFunction* vala_class_register_function_new (ValaClass* cl);
VALA_EXTERN ValaClassRegisterFunction* vala_class_register_function_construct (GType object_type,
                                                                   ValaClass* cl);
VALA_EXTERN GType vala_ctype_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCType, vala_code_node_unref)
VALA_EXTERN const gchar* vala_ctype_get_ctype_name (ValaCType* self);
VALA_EXTERN void vala_ctype_set_ctype_name (ValaCType* self,
                                const gchar* value);
VALA_EXTERN const gchar* vala_ctype_get_cdefault_value (ValaCType* self);
VALA_EXTERN void vala_ctype_set_cdefault_value (ValaCType* self,
                                    const gchar* value);
VALA_EXTERN ValaCType* vala_ctype_new (const gchar* ctype_name,
                           const gchar* cdefault_value);
VALA_EXTERN ValaCType* vala_ctype_construct (GType object_type,
                                 const gchar* ctype_name,
                                 const gchar* cdefault_value);
VALA_EXTERN GType vala_enum_register_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaEnumRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN ValaEnum* vala_enum_register_function_get_enum_reference (ValaEnumRegisterFunction* self);
VALA_EXTERN void vala_enum_register_function_set_enum_reference (ValaEnumRegisterFunction* self,
                                                     ValaEnum* value);
VALA_EXTERN ValaEnumRegisterFunction* vala_enum_register_function_new (ValaEnum* en);
VALA_EXTERN ValaEnumRegisterFunction* vala_enum_register_function_construct (GType object_type,
                                                                 ValaEnum* en);
VALA_EXTERN GType vala_error_domain_register_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaErrorDomainRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN ValaErrorDomain* vala_error_domain_register_function_get_error_domain_reference (ValaErrorDomainRegisterFunction* self);
VALA_EXTERN void vala_error_domain_register_function_set_error_domain_reference (ValaErrorDomainRegisterFunction* self,
                                                                     ValaErrorDomain* value);
VALA_EXTERN ValaErrorDomainRegisterFunction* vala_error_domain_register_function_new (ValaErrorDomain* edomain);
VALA_EXTERN ValaErrorDomainRegisterFunction* vala_error_domain_register_function_construct (GType object_type,
                                                                                ValaErrorDomain* edomain);
VALA_EXTERN GType vala_gerror_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGErrorModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gtype_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGTypeModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gobject_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGObjectModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gsignal_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGSignalModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gtk_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGtkModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gasync_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGAsyncModule, vala_code_visitor_unref)
VALA_EXTERN void vala_gasync_module_append_struct (ValaGAsyncModule* self,
                                       ValaCCodeStruct* structure);
VALA_EXTERN gchar* vala_gasync_module_generate_async_callback_wrapper (ValaGAsyncModule* self);
VALA_EXTERN ValaGAsyncModule* vala_gasync_module_new (void);
VALA_EXTERN ValaGAsyncModule* vala_gasync_module_construct (GType object_type);
VALA_EXTERN GType vala_gvalue_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGValueModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gvariant_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGVariantModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gd_bus_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGDBusModule, vala_code_visitor_unref)
VALA_EXTERN GType vala_gd_bus_client_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGDBusClientModule, vala_code_visitor_unref)
VALA_EXTERN ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self,
                                                               ValaSymbol* symbol);
VALA_EXTERN ValaGDBusClientModule* vala_gd_bus_client_module_new (void);
VALA_EXTERN ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type);
VALA_EXTERN gchar* vala_gd_bus_module_get_dbus_name (ValaTypeSymbol* symbol);
VALA_EXTERN gchar* vala_gd_bus_module_get_dbus_name_for_member (ValaSymbol* symbol);
VALA_EXTERN gint vala_gd_bus_module_get_dbus_timeout_for_member (ValaSymbol* symbol);
VALA_EXTERN gboolean vala_gd_bus_module_is_dbus_visible (ValaCodeNode* node);
VALA_EXTERN gboolean vala_gd_bus_module_is_dbus_no_reply (ValaMethod* m);
VALA_EXTERN gchar* vala_gd_bus_module_dbus_result_name (ValaMethod* m);
VALA_EXTERN gboolean vala_gd_bus_module_dbus_method_uses_file_descriptor (ValaGDBusModule* self,
                                                              ValaMethod* method);
VALA_EXTERN void vala_gd_bus_module_send_dbus_value (ValaGDBusModule* self,
                                         ValaDataType* type,
                                         ValaCCodeExpression* builder_expr,
                                         ValaCCodeExpression* expr,
                                         ValaSymbol* sym);
VALA_EXTERN void vala_gd_bus_module_receive_dbus_value (ValaGDBusModule* self,
                                            ValaDataType* type,
                                            ValaCCodeExpression* message_expr,
                                            ValaCCodeExpression* iter_expr,
                                            ValaCCodeExpression* target_expr,
                                            ValaSymbol* sym,
                                            ValaCCodeExpression* error_expr,
                                            gboolean* may_fail);
VALA_EXTERN ValaCCodeExpression* vala_gd_bus_module_get_interface_info (ValaGDBusModule* self,
                                                            ValaObjectTypeSymbol* sym);
VALA_EXTERN ValaGDBusModule* vala_gd_bus_module_new (void);
VALA_EXTERN ValaGDBusModule* vala_gd_bus_module_construct (GType object_type);
VALA_EXTERN GType vala_gd_bus_server_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGDBusServerModule, vala_code_visitor_unref)
VALA_EXTERN ValaGDBusServerModule* vala_gd_bus_server_module_new (void);
VALA_EXTERN ValaGDBusServerModule* vala_gd_bus_server_module_construct (GType object_type);
VALA_EXTERN void vala_gerror_module_return_with_exception (ValaGErrorModule* self,
                                               ValaCCodeExpression* error_expr);
VALA_EXTERN ValaGErrorModule* vala_gerror_module_new (void);
VALA_EXTERN ValaGErrorModule* vala_gerror_module_construct (GType object_type);
VALA_EXTERN GType vala_gir_writer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGIRWriter, vala_code_visitor_unref)
VALA_EXTERN gchar* vala_gir_writer_get_interface_comment (ValaGIRWriter* self,
                                              ValaInterface* iface);
VALA_EXTERN gchar* vala_gir_writer_get_struct_comment (ValaGIRWriter* self,
                                           ValaStruct* st);
VALA_EXTERN gchar* vala_gir_writer_get_enum_comment (ValaGIRWriter* self,
                                         ValaEnum* en);
VALA_EXTERN gchar* vala_gir_writer_get_class_comment (ValaGIRWriter* self,
                                          ValaClass* c);
VALA_EXTERN gchar* vala_gir_writer_get_error_code_comment (ValaGIRWriter* self,
                                               ValaErrorCode* ecode);
VALA_EXTERN gchar* vala_gir_writer_get_enum_value_comment (ValaGIRWriter* self,
                                               ValaEnumValue* ev);
VALA_EXTERN gchar* vala_gir_writer_get_constant_comment (ValaGIRWriter* self,
                                             ValaConstant* c);
VALA_EXTERN gchar* vala_gir_writer_get_error_domain_comment (ValaGIRWriter* self,
                                                 ValaErrorDomain* edomain);
VALA_EXTERN gchar* vala_gir_writer_get_field_comment (ValaGIRWriter* self,
                                          ValaField* f);
VALA_EXTERN gchar* vala_gir_writer_get_delegate_comment (ValaGIRWriter* self,
                                             ValaDelegate* cb);
VALA_EXTERN gchar* vala_gir_writer_get_method_comment (ValaGIRWriter* self,
                                           ValaMethod* m);
VALA_EXTERN gchar* vala_gir_writer_get_property_comment (ValaGIRWriter* self,
                                             ValaProperty* prop);
VALA_EXTERN gchar* vala_gir_writer_get_delegate_return_comment (ValaGIRWriter* self,
                                                    ValaDelegate* cb);
VALA_EXTERN gchar* vala_gir_writer_get_signal_return_comment (ValaGIRWriter* self,
                                                  ValaSignal* sig);
VALA_EXTERN gchar* vala_gir_writer_get_method_return_comment (ValaGIRWriter* self,
                                                  ValaMethod* m);
VALA_EXTERN gchar* vala_gir_writer_get_signal_comment (ValaGIRWriter* self,
                                           ValaSignal* sig);
VALA_EXTERN gchar* vala_gir_writer_get_parameter_comment (ValaGIRWriter* self,
                                              ValaParameter* param);
VALA_EXTERN void vala_gir_writer_write_includes (ValaGIRWriter* self);
VALA_EXTERN void vala_gir_writer_write_file (ValaGIRWriter* self,
                                 ValaCodeContext* context,
                                 const gchar* directory,
                                 const gchar* gir_filename,
                                 const gchar* gir_namespace,
                                 const gchar* gir_version,
                                 const gchar* package,
                                 const gchar* gir_shared_library);
VALA_EXTERN ValaGIRWriter* vala_gir_writer_new (void);
VALA_EXTERN ValaGIRWriter* vala_gir_writer_construct (GType object_type);
VALA_EXTERN GType vala_glib_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGLibValue, vala_target_value_unref)
VALA_EXTERN ValaGLibValue* vala_glib_value_new (ValaDataType* value_type,
                                    ValaCCodeExpression* cvalue,
                                    gboolean lvalue);
VALA_EXTERN ValaGLibValue* vala_glib_value_construct (GType object_type,
                                          ValaDataType* value_type,
                                          ValaCCodeExpression* cvalue,
                                          gboolean lvalue);
VALA_EXTERN void vala_glib_value_append_array_length_cvalue (ValaGLibValue* self,
                                                 ValaCCodeExpression* length_cvalue);
VALA_EXTERN ValaGLibValue* vala_glib_value_copy (ValaGLibValue* self);
VALA_EXTERN ValaCCodeExpression* vala_get_cvalue (ValaExpression* expr);
VALA_EXTERN ValaCCodeExpression* vala_get_cvalue_ (ValaTargetValue* value);
VALA_EXTERN void vala_set_cvalue (ValaExpression* expr,
                      ValaCCodeExpression* cvalue);
VALA_EXTERN ValaCCodeExpression* vala_get_array_size_cvalue (ValaTargetValue* value);
VALA_EXTERN void vala_set_array_size_cvalue (ValaTargetValue* value,
                                 ValaCCodeExpression* cvalue);
VALA_EXTERN ValaCCodeExpression* vala_get_delegate_target (ValaExpression* expr);
VALA_EXTERN void vala_set_delegate_target (ValaExpression* expr,
                               ValaCCodeExpression* delegate_target);
VALA_EXTERN ValaCCodeExpression* vala_get_delegate_target_destroy_notify (ValaExpression* expr);
VALA_EXTERN void vala_set_delegate_target_destroy_notify (ValaExpression* expr,
                                              ValaCCodeExpression* destroy_notify);
VALA_EXTERN void vala_append_array_length (ValaExpression* expr,
                               ValaCCodeExpression* size);
VALA_EXTERN void vala_set_array_length (ValaExpression* expr,
                            ValaCCodeExpression* size);
VALA_EXTERN ValaList* vala_get_array_lengths (ValaExpression* expr);
VALA_EXTERN gboolean vala_get_lvalue (ValaTargetValue* value);
VALA_EXTERN gboolean vala_get_non_null (ValaTargetValue* value);
VALA_EXTERN const gchar* vala_get_ctype (ValaTargetValue* value);
VALA_EXTERN gboolean vala_get_array_null_terminated (ValaTargetValue* value);
VALA_EXTERN ValaCCodeExpression* vala_get_array_length_cexpr (ValaTargetValue* value);
VALA_EXTERN ValaGObjectModule* vala_gobject_module_new (void);
VALA_EXTERN ValaGObjectModule* vala_gobject_module_construct (GType object_type);
VALA_EXTERN ValaGtkModule* vala_gtk_module_new (void);
VALA_EXTERN ValaGtkModule* vala_gtk_module_construct (GType object_type);
VALA_EXTERN ValaGSignalModule* vala_gsignal_module_new (void);
VALA_EXTERN ValaGSignalModule* vala_gsignal_module_construct (GType object_type);
VALA_EXTERN void vala_gtype_module_generate_virtual_method_declaration (ValaGTypeModule* self,
                                                            ValaMethod* m,
                                                            ValaCCodeFile* decl_space,
                                                            ValaCCodeStruct* type_struct);
VALA_EXTERN void vala_gtype_module_generate_class_init (ValaGTypeModule* self,
                                            ValaClass* cl);
VALA_EXTERN void vala_gtype_module_end_instance_init (ValaGTypeModule* self,
                                          ValaClass* cl);
VALA_EXTERN ValaGTypeModule* vala_gtype_module_new (void);
VALA_EXTERN ValaGTypeModule* vala_gtype_module_construct (GType object_type);
VALA_EXTERN ValaGValueModule* vala_gvalue_module_new (void);
VALA_EXTERN ValaGValueModule* vala_gvalue_module_construct (GType object_type);
VALA_EXTERN gchar* vala_gvariant_module_get_dbus_signature (ValaSymbol* symbol);
VALA_EXTERN ValaCCodeFunction* vala_gvariant_module_generate_enum_from_string_function_declaration (ValaGVariantModule* self,
                                                                                        ValaEnum* en);
VALA_EXTERN ValaCCodeFunction* vala_gvariant_module_generate_enum_from_string_function (ValaGVariantModule* self,
                                                                            ValaEnum* en);
VALA_EXTERN void vala_gvariant_module_read_expression (ValaGVariantModule* self,
                                           ValaDataType* type,
                                           ValaCCodeExpression* iter_expr,
                                           ValaCCodeExpression* target_expr,
                                           ValaSymbol* sym,
                                           ValaCCodeExpression* error_expr,
                                           gboolean* may_fail);
VALA_EXTERN ValaCCodeFunction* vala_gvariant_module_generate_enum_to_string_function_declaration (ValaGVariantModule* self,
                                                                                      ValaEnum* en);
VALA_EXTERN ValaCCodeFunction* vala_gvariant_module_generate_enum_to_string_function (ValaGVariantModule* self,
                                                                          ValaEnum* en);
VALA_EXTERN void vala_gvariant_module_write_expression (ValaGVariantModule* self,
                                            ValaDataType* type,
                                            ValaCCodeExpression* builder_expr,
                                            ValaCCodeExpression* expr,
                                            ValaSymbol* sym);
VALA_EXTERN ValaGVariantModule* vala_gvariant_module_new (void);
VALA_EXTERN ValaGVariantModule* vala_gvariant_module_construct (GType object_type);
VALA_EXTERN GType vala_interface_register_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInterfaceRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN ValaInterface* vala_interface_register_function_get_interface_reference (ValaInterfaceRegisterFunction* self);
VALA_EXTERN void vala_interface_register_function_set_interface_reference (ValaInterfaceRegisterFunction* self,
                                                               ValaInterface* value);
VALA_EXTERN ValaInterfaceRegisterFunction* vala_interface_register_function_new (ValaInterface* iface);
VALA_EXTERN ValaInterfaceRegisterFunction* vala_interface_register_function_construct (GType object_type,
                                                                           ValaInterface* iface);
VALA_EXTERN GType vala_struct_register_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStructRegisterFunction, vala_typeregister_function_unref)
VALA_EXTERN ValaStruct* vala_struct_register_function_get_struct_reference (ValaStructRegisterFunction* self);
VALA_EXTERN void vala_struct_register_function_set_struct_reference (ValaStructRegisterFunction* self,
                                                         ValaStruct* value);
VALA_EXTERN ValaStructRegisterFunction* vala_struct_register_function_new (ValaStruct* st);
VALA_EXTERN ValaStructRegisterFunction* vala_struct_register_function_construct (GType object_type,
                                                                     ValaStruct* st);
VALA_EXTERN void vala_typeregister_function_init_from_type (ValaTypeRegisterFunction* self,
                                                ValaCodeContext* context,
                                                gboolean plugin,
                                                gboolean declaration_only);
VALA_EXTERN ValaTypeSymbol* vala_typeregister_function_get_type_declaration (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_type_struct_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_base_init_func_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_class_finalize_func_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_base_finalize_func_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_class_init_func_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_instance_struct_size (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_instance_init_func_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_parent_type_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_init_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_peek_pointer_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_free_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_copy_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_lcopy_value_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_gtype_value_table_collect_value_function_name (ValaTypeRegisterFunction* self);
VALA_EXTERN gchar* vala_typeregister_function_get_type_flags (ValaTypeRegisterFunction* self);
VALA_EXTERN ValaCCodeFragment* vala_typeregister_function_get_type_interface_init_declaration (ValaTypeRegisterFunction* self);
VALA_EXTERN void vala_typeregister_function_get_type_interface_init_statements (ValaTypeRegisterFunction* self,
                                                                    ValaCodeContext* context,
                                                                    ValaCCodeBlock* block,
                                                                    gboolean plugin);
VALA_EXTERN ValaCCodeFragment* vala_typeregister_function_get_source_declaration (ValaTypeRegisterFunction* self);
VALA_EXTERN ValaCCodeFragment* vala_typeregister_function_get_declaration (ValaTypeRegisterFunction* self);
VALA_EXTERN ValaCCodeFragment* vala_typeregister_function_get_definition (ValaTypeRegisterFunction* self);
VALA_EXTERN ValaSymbolAccessibility vala_typeregister_function_get_accessibility (ValaTypeRegisterFunction* self);
VALA_EXTERN ValaTypeRegisterFunction* vala_typeregister_function_construct (GType object_type);

G_END_DECLS

#endif
