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

#ifndef __VALA_H__
#define __VALA_H__

#include <glib-object.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <valagee.h>
#include <float.h>
#include <math.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_MAJOR_VERSION 0
#define VALA_MINOR_VERSION 56
#define VALA_MICRO_VERSION 15
#define VALA_API_VERSION "0.56"
#define VALA_BUILD_VERSION "0.56.15"

#define VALA_TYPE_CODE_NODE (vala_code_node_get_type ())
#define VALA_CODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_NODE, ValaCodeNode))
#define VALA_CODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_NODE, ValaCodeNodeClass))
#define VALA_IS_CODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_NODE))
#define VALA_IS_CODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_NODE))
#define VALA_CODE_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_NODE, ValaCodeNodeClass))

typedef struct _ValaCodeNode ValaCodeNode;
typedef struct _ValaCodeNodeClass ValaCodeNodeClass;
typedef struct _ValaCodeNodePrivate ValaCodeNodePrivate;

#define VALA_TYPE_ATTRIBUTE (vala_attribute_get_type ())
#define VALA_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ATTRIBUTE, ValaAttribute))
#define VALA_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ATTRIBUTE, ValaAttributeClass))
#define VALA_IS_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ATTRIBUTE))
#define VALA_IS_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ATTRIBUTE))
#define VALA_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ATTRIBUTE, ValaAttributeClass))

typedef struct _ValaAttribute ValaAttribute;
typedef struct _ValaAttributeClass ValaAttributeClass;

#define VALA_TYPE_CODE_VISITOR (vala_code_visitor_get_type ())
#define VALA_CODE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_VISITOR, ValaCodeVisitor))
#define VALA_CODE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_VISITOR, ValaCodeVisitorClass))
#define VALA_IS_CODE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_VISITOR))
#define VALA_IS_CODE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_VISITOR))
#define VALA_CODE_VISITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_VISITOR, ValaCodeVisitorClass))

typedef struct _ValaCodeVisitor ValaCodeVisitor;
typedef struct _ValaCodeVisitorClass ValaCodeVisitorClass;

#define VALA_TYPE_CODE_CONTEXT (vala_code_context_get_type ())
#define VALA_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContext))
#define VALA_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))
#define VALA_IS_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_CONTEXT))
#define VALA_IS_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_CONTEXT))
#define VALA_CODE_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))

typedef struct _ValaCodeContext ValaCodeContext;
typedef struct _ValaCodeContextClass ValaCodeContextClass;

#define VALA_TYPE_CODE_GENERATOR (vala_code_generator_get_type ())
#define VALA_CODE_GENERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_GENERATOR, ValaCodeGenerator))
#define VALA_CODE_GENERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_GENERATOR, ValaCodeGeneratorClass))
#define VALA_IS_CODE_GENERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_GENERATOR))
#define VALA_IS_CODE_GENERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_GENERATOR))
#define VALA_CODE_GENERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_GENERATOR, ValaCodeGeneratorClass))

typedef struct _ValaCodeGenerator ValaCodeGenerator;
typedef struct _ValaCodeGeneratorClass ValaCodeGeneratorClass;

#define VALA_TYPE_DATA_TYPE (vala_data_type_get_type ())
#define VALA_DATA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DATA_TYPE, ValaDataType))
#define VALA_DATA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DATA_TYPE, ValaDataTypeClass))
#define VALA_IS_DATA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DATA_TYPE))
#define VALA_IS_DATA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DATA_TYPE))
#define VALA_DATA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DATA_TYPE, ValaDataTypeClass))

typedef struct _ValaDataType ValaDataType;
typedef struct _ValaDataTypeClass ValaDataTypeClass;

#define VALA_TYPE_EXPRESSION (vala_expression_get_type ())
#define VALA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_EXPRESSION, ValaExpression))
#define VALA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_EXPRESSION, ValaExpressionClass))
#define VALA_IS_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_EXPRESSION))
#define VALA_IS_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_EXPRESSION))
#define VALA_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_EXPRESSION, ValaExpressionClass))

typedef struct _ValaExpression ValaExpression;
typedef struct _ValaExpressionClass ValaExpressionClass;

#define VALA_TYPE_SYMBOL (vala_symbol_get_type ())
#define VALA_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SYMBOL, ValaSymbol))
#define VALA_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SYMBOL, ValaSymbolClass))
#define VALA_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SYMBOL))
#define VALA_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SYMBOL))
#define VALA_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SYMBOL, ValaSymbolClass))

typedef struct _ValaSymbol ValaSymbol;
typedef struct _ValaSymbolClass ValaSymbolClass;

#define VALA_TYPE_VARIABLE (vala_variable_get_type ())
#define VALA_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VARIABLE, ValaVariable))
#define VALA_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VARIABLE, ValaVariableClass))
#define VALA_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VARIABLE))
#define VALA_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VARIABLE))
#define VALA_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VARIABLE, ValaVariableClass))

typedef struct _ValaVariable ValaVariable;
typedef struct _ValaVariableClass ValaVariableClass;

#define VALA_TYPE_SOURCE_REFERENCE (vala_source_reference_get_type ())
#define VALA_SOURCE_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReference))
#define VALA_SOURCE_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReferenceClass))
#define VALA_IS_SOURCE_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SOURCE_REFERENCE))
#define VALA_IS_SOURCE_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SOURCE_REFERENCE))
#define VALA_SOURCE_REFERENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReferenceClass))

typedef struct _ValaSourceReference ValaSourceReference;
typedef struct _ValaSourceReferenceClass ValaSourceReferenceClass;
typedef struct _ValaExpressionPrivate ValaExpressionPrivate;

#define VALA_TYPE_ADDRESSOF_EXPRESSION (vala_addressof_expression_get_type ())
#define VALA_ADDRESSOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ADDRESSOF_EXPRESSION, ValaAddressofExpression))
#define VALA_ADDRESSOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ADDRESSOF_EXPRESSION, ValaAddressofExpressionClass))
#define VALA_IS_ADDRESSOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ADDRESSOF_EXPRESSION))
#define VALA_IS_ADDRESSOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ADDRESSOF_EXPRESSION))
#define VALA_ADDRESSOF_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ADDRESSOF_EXPRESSION, ValaAddressofExpressionClass))

typedef struct _ValaAddressofExpression ValaAddressofExpression;
typedef struct _ValaAddressofExpressionClass ValaAddressofExpressionClass;
typedef struct _ValaAddressofExpressionPrivate ValaAddressofExpressionPrivate;
typedef struct _ValaSymbolPrivate ValaSymbolPrivate;

#define VALA_TYPE_NAMESPACE (vala_namespace_get_type ())
#define VALA_NAMESPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NAMESPACE, ValaNamespace))
#define VALA_NAMESPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NAMESPACE, ValaNamespaceClass))
#define VALA_IS_NAMESPACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_NAMESPACE))
#define VALA_IS_NAMESPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_NAMESPACE))
#define VALA_NAMESPACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_NAMESPACE, ValaNamespaceClass))

typedef struct _ValaNamespace ValaNamespace;
typedef struct _ValaNamespaceClass ValaNamespaceClass;

#define VALA_TYPE_TYPESYMBOL (vala_typesymbol_get_type ())
#define VALA_TYPESYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPESYMBOL, ValaTypeSymbol))
#define VALA_TYPESYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPESYMBOL, ValaTypeSymbolClass))
#define VALA_IS_TYPESYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPESYMBOL))
#define VALA_IS_TYPESYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPESYMBOL))
#define VALA_TYPESYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPESYMBOL, ValaTypeSymbolClass))

typedef struct _ValaTypeSymbol ValaTypeSymbol;
typedef struct _ValaTypeSymbolClass ValaTypeSymbolClass;

#define VALA_TYPE_OBJECT_TYPE_SYMBOL (vala_object_type_symbol_get_type ())
#define VALA_OBJECT_TYPE_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_OBJECT_TYPE_SYMBOL, ValaObjectTypeSymbol))
#define VALA_OBJECT_TYPE_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_OBJECT_TYPE_SYMBOL, ValaObjectTypeSymbolClass))
#define VALA_IS_OBJECT_TYPE_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_OBJECT_TYPE_SYMBOL))
#define VALA_IS_OBJECT_TYPE_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_OBJECT_TYPE_SYMBOL))
#define VALA_OBJECT_TYPE_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_OBJECT_TYPE_SYMBOL, ValaObjectTypeSymbolClass))

typedef struct _ValaObjectTypeSymbol ValaObjectTypeSymbol;
typedef struct _ValaObjectTypeSymbolClass ValaObjectTypeSymbolClass;

#define VALA_TYPE_CLASS (vala_class_get_type ())
#define VALA_CLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CLASS, ValaClass))
#define VALA_CLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CLASS, ValaClassClass))
#define VALA_IS_CLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CLASS))
#define VALA_IS_CLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CLASS))
#define VALA_CLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CLASS, ValaClassClass))

typedef struct _ValaClass ValaClass;
typedef struct _ValaClassClass ValaClassClass;

#define VALA_TYPE_INTERFACE (vala_interface_get_type ())
#define VALA_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTERFACE, ValaInterface))
#define VALA_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTERFACE, ValaInterfaceClass))
#define VALA_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTERFACE))
#define VALA_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTERFACE))
#define VALA_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTERFACE, ValaInterfaceClass))

typedef struct _ValaInterface ValaInterface;
typedef struct _ValaInterfaceClass ValaInterfaceClass;

#define VALA_TYPE_STRUCT (vala_struct_get_type ())
#define VALA_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRUCT, ValaStruct))
#define VALA_STRUCT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRUCT, ValaStructClass))
#define VALA_IS_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STRUCT))
#define VALA_IS_STRUCT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STRUCT))
#define VALA_STRUCT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STRUCT, ValaStructClass))

typedef struct _ValaStruct ValaStruct;
typedef struct _ValaStructClass ValaStructClass;

#define VALA_TYPE_ENUM (vala_enum_get_type ())
#define VALA_ENUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM, ValaEnum))
#define VALA_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM, ValaEnumClass))
#define VALA_IS_ENUM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ENUM))
#define VALA_IS_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ENUM))
#define VALA_ENUM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ENUM, ValaEnumClass))

typedef struct _ValaEnum ValaEnum;
typedef struct _ValaEnumClass ValaEnumClass;

#define VALA_TYPE_ERROR_DOMAIN (vala_error_domain_get_type ())
#define VALA_ERROR_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ERROR_DOMAIN, ValaErrorDomain))
#define VALA_ERROR_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ERROR_DOMAIN, ValaErrorDomainClass))
#define VALA_IS_ERROR_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ERROR_DOMAIN))
#define VALA_IS_ERROR_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ERROR_DOMAIN))
#define VALA_ERROR_DOMAIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ERROR_DOMAIN, ValaErrorDomainClass))

typedef struct _ValaErrorDomain ValaErrorDomain;
typedef struct _ValaErrorDomainClass ValaErrorDomainClass;

#define VALA_TYPE_DELEGATE (vala_delegate_get_type ())
#define VALA_DELEGATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELEGATE, ValaDelegate))
#define VALA_DELEGATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELEGATE, ValaDelegateClass))
#define VALA_IS_DELEGATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DELEGATE))
#define VALA_IS_DELEGATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DELEGATE))
#define VALA_DELEGATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DELEGATE, ValaDelegateClass))

typedef struct _ValaDelegate ValaDelegate;
typedef struct _ValaDelegateClass ValaDelegateClass;

#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
#define VALA_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTANT))
#define VALA_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTANT))
#define VALA_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTANT, ValaConstantClass))

typedef struct _ValaConstant ValaConstant;
typedef struct _ValaConstantClass ValaConstantClass;

#define VALA_TYPE_FIELD (vala_field_get_type ())
#define VALA_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FIELD, ValaField))
#define VALA_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FIELD, ValaFieldClass))
#define VALA_IS_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FIELD))
#define VALA_IS_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FIELD))
#define VALA_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FIELD, ValaFieldClass))

typedef struct _ValaField ValaField;
typedef struct _ValaFieldClass ValaFieldClass;

#define VALA_TYPE_SUBROUTINE (vala_subroutine_get_type ())
#define VALA_SUBROUTINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SUBROUTINE, ValaSubroutine))
#define VALA_SUBROUTINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SUBROUTINE, ValaSubroutineClass))
#define VALA_IS_SUBROUTINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SUBROUTINE))
#define VALA_IS_SUBROUTINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SUBROUTINE))
#define VALA_SUBROUTINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SUBROUTINE, ValaSubroutineClass))

typedef struct _ValaSubroutine ValaSubroutine;
typedef struct _ValaSubroutineClass ValaSubroutineClass;

#define VALA_TYPE_METHOD (vala_method_get_type ())
#define VALA_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD, ValaMethod))
#define VALA_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD, ValaMethodClass))
#define VALA_IS_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_METHOD))
#define VALA_IS_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_METHOD))
#define VALA_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_METHOD, ValaMethodClass))

typedef struct _ValaMethod ValaMethod;
typedef struct _ValaMethodClass ValaMethodClass;

#define VALA_TYPE_PROPERTY (vala_property_get_type ())
#define VALA_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PROPERTY, ValaProperty))
#define VALA_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PROPERTY, ValaPropertyClass))
#define VALA_IS_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PROPERTY))
#define VALA_IS_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PROPERTY))
#define VALA_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PROPERTY, ValaPropertyClass))

typedef struct _ValaProperty ValaProperty;
typedef struct _ValaPropertyClass ValaPropertyClass;

#define VALA_TYPE_SIGNAL (vala_signal_get_type ())
#define VALA_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SIGNAL, ValaSignal))
#define VALA_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SIGNAL, ValaSignalClass))
#define VALA_IS_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SIGNAL))
#define VALA_IS_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SIGNAL))
#define VALA_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SIGNAL, ValaSignalClass))

typedef struct _ValaSignal ValaSignal;
typedef struct _ValaSignalClass ValaSignalClass;

#define VALA_TYPE_CONSTRUCTOR (vala_constructor_get_type ())
#define VALA_CONSTRUCTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTRUCTOR, ValaConstructor))
#define VALA_CONSTRUCTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTRUCTOR, ValaConstructorClass))
#define VALA_IS_CONSTRUCTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTRUCTOR))
#define VALA_IS_CONSTRUCTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTRUCTOR))
#define VALA_CONSTRUCTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTRUCTOR, ValaConstructorClass))

typedef struct _ValaConstructor ValaConstructor;
typedef struct _ValaConstructorClass ValaConstructorClass;

#define VALA_TYPE_DESTRUCTOR (vala_destructor_get_type ())
#define VALA_DESTRUCTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DESTRUCTOR, ValaDestructor))
#define VALA_DESTRUCTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DESTRUCTOR, ValaDestructorClass))
#define VALA_IS_DESTRUCTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DESTRUCTOR))
#define VALA_IS_DESTRUCTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DESTRUCTOR))
#define VALA_DESTRUCTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DESTRUCTOR, ValaDestructorClass))

typedef struct _ValaDestructor ValaDestructor;
typedef struct _ValaDestructorClass ValaDestructorClass;
typedef struct _ValaSubroutinePrivate ValaSubroutinePrivate;

#define VALA_TYPE_CALLABLE (vala_callable_get_type ())
#define VALA_CALLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CALLABLE, ValaCallable))
#define VALA_IS_CALLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CALLABLE))
#define VALA_CALLABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VALA_TYPE_CALLABLE, ValaCallableIface))

typedef struct _ValaCallable ValaCallable;
typedef struct _ValaCallableIface ValaCallableIface;

#define VALA_TYPE_PARAMETER (vala_parameter_get_type ())
#define VALA_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PARAMETER, ValaParameter))
#define VALA_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PARAMETER, ValaParameterClass))
#define VALA_IS_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PARAMETER))
#define VALA_IS_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PARAMETER))
#define VALA_PARAMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PARAMETER, ValaParameterClass))

typedef struct _ValaParameter ValaParameter;
typedef struct _ValaParameterClass ValaParameterClass;
typedef struct _ValaMethodPrivate ValaMethodPrivate;

#define VALA_TYPE_ARRAY_COPY_METHOD (vala_array_copy_method_get_type ())
#define VALA_ARRAY_COPY_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_COPY_METHOD, ValaArrayCopyMethod))
#define VALA_ARRAY_COPY_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_COPY_METHOD, ValaArrayCopyMethodClass))
#define VALA_IS_ARRAY_COPY_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_COPY_METHOD))
#define VALA_IS_ARRAY_COPY_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_COPY_METHOD))
#define VALA_ARRAY_COPY_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_COPY_METHOD, ValaArrayCopyMethodClass))

typedef struct _ValaArrayCopyMethod ValaArrayCopyMethod;
typedef struct _ValaArrayCopyMethodClass ValaArrayCopyMethodClass;
typedef struct _ValaArrayCopyMethodPrivate ValaArrayCopyMethodPrivate;

#define VALA_TYPE_ARRAY_CREATION_EXPRESSION (vala_array_creation_expression_get_type ())
#define VALA_ARRAY_CREATION_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_CREATION_EXPRESSION, ValaArrayCreationExpression))
#define VALA_ARRAY_CREATION_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_CREATION_EXPRESSION, ValaArrayCreationExpressionClass))
#define VALA_IS_ARRAY_CREATION_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_CREATION_EXPRESSION))
#define VALA_IS_ARRAY_CREATION_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_CREATION_EXPRESSION))
#define VALA_ARRAY_CREATION_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_CREATION_EXPRESSION, ValaArrayCreationExpressionClass))

typedef struct _ValaArrayCreationExpression ValaArrayCreationExpression;
typedef struct _ValaArrayCreationExpressionClass ValaArrayCreationExpressionClass;
typedef struct _ValaArrayCreationExpressionPrivate ValaArrayCreationExpressionPrivate;

#define VALA_TYPE_INITIALIZER_LIST (vala_initializer_list_get_type ())
#define VALA_INITIALIZER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INITIALIZER_LIST, ValaInitializerList))
#define VALA_INITIALIZER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INITIALIZER_LIST, ValaInitializerListClass))
#define VALA_IS_INITIALIZER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INITIALIZER_LIST))
#define VALA_IS_INITIALIZER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INITIALIZER_LIST))
#define VALA_INITIALIZER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INITIALIZER_LIST, ValaInitializerListClass))

typedef struct _ValaInitializerList ValaInitializerList;
typedef struct _ValaInitializerListClass ValaInitializerListClass;
typedef struct _ValaVariablePrivate ValaVariablePrivate;

#define VALA_TYPE_LOCKABLE (vala_lockable_get_type ())
#define VALA_LOCKABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOCKABLE, ValaLockable))
#define VALA_IS_LOCKABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOCKABLE))
#define VALA_LOCKABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VALA_TYPE_LOCKABLE, ValaLockableIface))

typedef struct _ValaLockable ValaLockable;
typedef struct _ValaLockableIface ValaLockableIface;
typedef struct _ValaFieldPrivate ValaFieldPrivate;

#define VALA_TYPE_ARRAY_LENGTH_FIELD (vala_array_length_field_get_type ())
#define VALA_ARRAY_LENGTH_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_LENGTH_FIELD, ValaArrayLengthField))
#define VALA_ARRAY_LENGTH_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_LENGTH_FIELD, ValaArrayLengthFieldClass))
#define VALA_IS_ARRAY_LENGTH_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_LENGTH_FIELD))
#define VALA_IS_ARRAY_LENGTH_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_LENGTH_FIELD))
#define VALA_ARRAY_LENGTH_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_LENGTH_FIELD, ValaArrayLengthFieldClass))

typedef struct _ValaArrayLengthField ValaArrayLengthField;
typedef struct _ValaArrayLengthFieldClass ValaArrayLengthFieldClass;
typedef struct _ValaArrayLengthFieldPrivate ValaArrayLengthFieldPrivate;

#define VALA_TYPE_ARRAY_MOVE_METHOD (vala_array_move_method_get_type ())
#define VALA_ARRAY_MOVE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_MOVE_METHOD, ValaArrayMoveMethod))
#define VALA_ARRAY_MOVE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_MOVE_METHOD, ValaArrayMoveMethodClass))
#define VALA_IS_ARRAY_MOVE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_MOVE_METHOD))
#define VALA_IS_ARRAY_MOVE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_MOVE_METHOD))
#define VALA_ARRAY_MOVE_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_MOVE_METHOD, ValaArrayMoveMethodClass))

typedef struct _ValaArrayMoveMethod ValaArrayMoveMethod;
typedef struct _ValaArrayMoveMethodClass ValaArrayMoveMethodClass;
typedef struct _ValaArrayMoveMethodPrivate ValaArrayMoveMethodPrivate;

#define VALA_TYPE_ARRAY_RESIZE_METHOD (vala_array_resize_method_get_type ())
#define VALA_ARRAY_RESIZE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_RESIZE_METHOD, ValaArrayResizeMethod))
#define VALA_ARRAY_RESIZE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_RESIZE_METHOD, ValaArrayResizeMethodClass))
#define VALA_IS_ARRAY_RESIZE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_RESIZE_METHOD))
#define VALA_IS_ARRAY_RESIZE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_RESIZE_METHOD))
#define VALA_ARRAY_RESIZE_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_RESIZE_METHOD, ValaArrayResizeMethodClass))

typedef struct _ValaArrayResizeMethod ValaArrayResizeMethod;
typedef struct _ValaArrayResizeMethodClass ValaArrayResizeMethodClass;
typedef struct _ValaArrayResizeMethodPrivate ValaArrayResizeMethodPrivate;
typedef struct _ValaDataTypePrivate ValaDataTypePrivate;

#define VALA_TYPE_SCOPE (vala_scope_get_type ())
#define VALA_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SCOPE, ValaScope))
#define VALA_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SCOPE, ValaScopeClass))
#define VALA_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SCOPE))
#define VALA_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SCOPE))
#define VALA_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SCOPE, ValaScopeClass))

typedef struct _ValaScope ValaScope;
typedef struct _ValaScopeClass ValaScopeClass;

#define VALA_TYPE_TYPEPARAMETER (vala_typeparameter_get_type ())
#define VALA_TYPEPARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPEPARAMETER, ValaTypeParameter))
#define VALA_TYPEPARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPEPARAMETER, ValaTypeParameterClass))
#define VALA_IS_TYPEPARAMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPEPARAMETER))
#define VALA_IS_TYPEPARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPEPARAMETER))
#define VALA_TYPEPARAMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPEPARAMETER, ValaTypeParameterClass))

typedef struct _ValaTypeParameter ValaTypeParameter;
typedef struct _ValaTypeParameterClass ValaTypeParameterClass;

#define VALA_TYPE_REFERENCE_TYPE (vala_reference_type_get_type ())
#define VALA_REFERENCE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REFERENCE_TYPE, ValaReferenceType))
#define VALA_REFERENCE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REFERENCE_TYPE, ValaReferenceTypeClass))
#define VALA_IS_REFERENCE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REFERENCE_TYPE))
#define VALA_IS_REFERENCE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REFERENCE_TYPE))
#define VALA_REFERENCE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REFERENCE_TYPE, ValaReferenceTypeClass))

typedef struct _ValaReferenceType ValaReferenceType;
typedef struct _ValaReferenceTypeClass ValaReferenceTypeClass;
typedef struct _ValaReferenceTypePrivate ValaReferenceTypePrivate;

#define VALA_TYPE_ARRAY_TYPE (vala_array_type_get_type ())
#define VALA_ARRAY_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ARRAY_TYPE, ValaArrayType))
#define VALA_ARRAY_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ARRAY_TYPE, ValaArrayTypeClass))
#define VALA_IS_ARRAY_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ARRAY_TYPE))
#define VALA_IS_ARRAY_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ARRAY_TYPE))
#define VALA_ARRAY_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ARRAY_TYPE, ValaArrayTypeClass))

typedef struct _ValaArrayType ValaArrayType;
typedef struct _ValaArrayTypeClass ValaArrayTypeClass;
typedef struct _ValaArrayTypePrivate ValaArrayTypePrivate;

#define VALA_TYPE_ASSIGNMENT (vala_assignment_get_type ())
#define VALA_ASSIGNMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ASSIGNMENT, ValaAssignment))
#define VALA_ASSIGNMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ASSIGNMENT, ValaAssignmentClass))
#define VALA_IS_ASSIGNMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ASSIGNMENT))
#define VALA_IS_ASSIGNMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ASSIGNMENT))
#define VALA_ASSIGNMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ASSIGNMENT, ValaAssignmentClass))

typedef struct _ValaAssignment ValaAssignment;
typedef struct _ValaAssignmentClass ValaAssignmentClass;
typedef struct _ValaAssignmentPrivate ValaAssignmentPrivate;
typedef enum  {
	VALA_ASSIGNMENT_OPERATOR_NONE,
	VALA_ASSIGNMENT_OPERATOR_SIMPLE,
	VALA_ASSIGNMENT_OPERATOR_BITWISE_OR,
	VALA_ASSIGNMENT_OPERATOR_BITWISE_AND,
	VALA_ASSIGNMENT_OPERATOR_BITWISE_XOR,
	VALA_ASSIGNMENT_OPERATOR_ADD,
	VALA_ASSIGNMENT_OPERATOR_SUB,
	VALA_ASSIGNMENT_OPERATOR_MUL,
	VALA_ASSIGNMENT_OPERATOR_DIV,
	VALA_ASSIGNMENT_OPERATOR_PERCENT,
	VALA_ASSIGNMENT_OPERATOR_SHIFT_LEFT,
	VALA_ASSIGNMENT_OPERATOR_SHIFT_RIGHT
} ValaAssignmentOperator;

#define VALA_TYPE_ASSIGNMENT_OPERATOR (vala_assignment_operator_get_type ())
typedef struct _ValaAttributePrivate ValaAttributePrivate;

#define VALA_TYPE_BASE_ACCESS (vala_base_access_get_type ())
#define VALA_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccess))
#define VALA_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))
#define VALA_IS_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BASE_ACCESS))
#define VALA_IS_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BASE_ACCESS))
#define VALA_BASE_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))

typedef struct _ValaBaseAccess ValaBaseAccess;
typedef struct _ValaBaseAccessClass ValaBaseAccessClass;
typedef struct _ValaBaseAccessPrivate ValaBaseAccessPrivate;

#define VALA_TYPE_BASIC_BLOCK (vala_basic_block_get_type ())
#define VALA_BASIC_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BASIC_BLOCK, ValaBasicBlock))
#define VALA_BASIC_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BASIC_BLOCK, ValaBasicBlockClass))
#define VALA_IS_BASIC_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BASIC_BLOCK))
#define VALA_IS_BASIC_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BASIC_BLOCK))
#define VALA_BASIC_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BASIC_BLOCK, ValaBasicBlockClass))

typedef struct _ValaBasicBlock ValaBasicBlock;
typedef struct _ValaBasicBlockClass ValaBasicBlockClass;
typedef struct _ValaBasicBlockPrivate ValaBasicBlockPrivate;

#define VALA_TYPE_PHI_FUNCTION (vala_phi_function_get_type ())
#define VALA_PHI_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PHI_FUNCTION, ValaPhiFunction))
#define VALA_PHI_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PHI_FUNCTION, ValaPhiFunctionClass))
#define VALA_IS_PHI_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PHI_FUNCTION))
#define VALA_IS_PHI_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PHI_FUNCTION))
#define VALA_PHI_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PHI_FUNCTION, ValaPhiFunctionClass))

typedef struct _ValaPhiFunction ValaPhiFunction;
typedef struct _ValaPhiFunctionClass ValaPhiFunctionClass;

#define VALA_TYPE_BINARY_EXPRESSION (vala_binary_expression_get_type ())
#define VALA_BINARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BINARY_EXPRESSION, ValaBinaryExpression))
#define VALA_BINARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BINARY_EXPRESSION, ValaBinaryExpressionClass))
#define VALA_IS_BINARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BINARY_EXPRESSION))
#define VALA_IS_BINARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BINARY_EXPRESSION))
#define VALA_BINARY_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BINARY_EXPRESSION, ValaBinaryExpressionClass))

typedef struct _ValaBinaryExpression ValaBinaryExpression;
typedef struct _ValaBinaryExpressionClass ValaBinaryExpressionClass;
typedef struct _ValaBinaryExpressionPrivate ValaBinaryExpressionPrivate;
typedef enum  {
	VALA_BINARY_OPERATOR_NONE,
	VALA_BINARY_OPERATOR_PLUS,
	VALA_BINARY_OPERATOR_MINUS,
	VALA_BINARY_OPERATOR_MUL,
	VALA_BINARY_OPERATOR_DIV,
	VALA_BINARY_OPERATOR_MOD,
	VALA_BINARY_OPERATOR_SHIFT_LEFT,
	VALA_BINARY_OPERATOR_SHIFT_RIGHT,
	VALA_BINARY_OPERATOR_LESS_THAN,
	VALA_BINARY_OPERATOR_GREATER_THAN,
	VALA_BINARY_OPERATOR_LESS_THAN_OR_EQUAL,
	VALA_BINARY_OPERATOR_GREATER_THAN_OR_EQUAL,
	VALA_BINARY_OPERATOR_EQUALITY,
	VALA_BINARY_OPERATOR_INEQUALITY,
	VALA_BINARY_OPERATOR_BITWISE_AND,
	VALA_BINARY_OPERATOR_BITWISE_OR,
	VALA_BINARY_OPERATOR_BITWISE_XOR,
	VALA_BINARY_OPERATOR_AND,
	VALA_BINARY_OPERATOR_OR,
	VALA_BINARY_OPERATOR_IN,
	VALA_BINARY_OPERATOR_COALESCE
} ValaBinaryOperator;

#define VALA_TYPE_BINARY_OPERATOR (vala_binary_operator_get_type ())

#define VALA_TYPE_STATEMENT (vala_statement_get_type ())
#define VALA_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STATEMENT, ValaStatement))
#define VALA_IS_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STATEMENT))
#define VALA_STATEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VALA_TYPE_STATEMENT, ValaStatementIface))

typedef struct _ValaStatement ValaStatement;
typedef struct _ValaStatementIface ValaStatementIface;

#define VALA_TYPE_BLOCK (vala_block_get_type ())
#define VALA_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BLOCK, ValaBlock))
#define VALA_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BLOCK, ValaBlockClass))
#define VALA_IS_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BLOCK))
#define VALA_IS_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BLOCK))
#define VALA_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BLOCK, ValaBlockClass))

typedef struct _ValaBlock ValaBlock;
typedef struct _ValaBlockClass ValaBlockClass;
typedef struct _ValaBlockPrivate ValaBlockPrivate;

#define VALA_TYPE_LOCAL_VARIABLE (vala_local_variable_get_type ())
#define VALA_LOCAL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariable))
#define VALA_LOCAL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariableClass))
#define VALA_IS_LOCAL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOCAL_VARIABLE))
#define VALA_IS_LOCAL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LOCAL_VARIABLE))
#define VALA_LOCAL_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariableClass))

typedef struct _ValaLocalVariable ValaLocalVariable;
typedef struct _ValaLocalVariableClass ValaLocalVariableClass;

#define VALA_TYPE_LITERAL (vala_literal_get_type ())
#define VALA_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LITERAL, ValaLiteral))
#define VALA_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LITERAL, ValaLiteralClass))
#define VALA_IS_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LITERAL))
#define VALA_IS_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LITERAL))
#define VALA_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LITERAL, ValaLiteralClass))

typedef struct _ValaLiteral ValaLiteral;
typedef struct _ValaLiteralClass ValaLiteralClass;
typedef struct _ValaLiteralPrivate ValaLiteralPrivate;

#define VALA_TYPE_BOOLEAN_LITERAL (vala_boolean_literal_get_type ())
#define VALA_BOOLEAN_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteral))
#define VALA_BOOLEAN_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteralClass))
#define VALA_IS_BOOLEAN_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BOOLEAN_LITERAL))
#define VALA_IS_BOOLEAN_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BOOLEAN_LITERAL))
#define VALA_BOOLEAN_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteralClass))

typedef struct _ValaBooleanLiteral ValaBooleanLiteral;
typedef struct _ValaBooleanLiteralClass ValaBooleanLiteralClass;
typedef struct _ValaBooleanLiteralPrivate ValaBooleanLiteralPrivate;

#define VALA_TYPE_VALUE_TYPE (vala_value_type_get_type ())
#define VALA_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VALUE_TYPE, ValaValueType))
#define VALA_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VALUE_TYPE, ValaValueTypeClass))
#define VALA_IS_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VALUE_TYPE))
#define VALA_IS_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VALUE_TYPE))
#define VALA_VALUE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VALUE_TYPE, ValaValueTypeClass))

typedef struct _ValaValueType ValaValueType;
typedef struct _ValaValueTypeClass ValaValueTypeClass;
typedef struct _ValaValueTypePrivate ValaValueTypePrivate;

#define VALA_TYPE_BOOLEAN_TYPE (vala_boolean_type_get_type ())
#define VALA_BOOLEAN_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BOOLEAN_TYPE, ValaBooleanType))
#define VALA_BOOLEAN_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BOOLEAN_TYPE, ValaBooleanTypeClass))
#define VALA_IS_BOOLEAN_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BOOLEAN_TYPE))
#define VALA_IS_BOOLEAN_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BOOLEAN_TYPE))
#define VALA_BOOLEAN_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BOOLEAN_TYPE, ValaBooleanTypeClass))

typedef struct _ValaBooleanType ValaBooleanType;
typedef struct _ValaBooleanTypeClass ValaBooleanTypeClass;
typedef struct _ValaBooleanTypePrivate ValaBooleanTypePrivate;

#define VALA_TYPE_BREAK_STATEMENT (vala_break_statement_get_type ())
#define VALA_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatement))
#define VALA_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatementClass))
#define VALA_IS_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BREAK_STATEMENT))
#define VALA_IS_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BREAK_STATEMENT))
#define VALA_BREAK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatementClass))

typedef struct _ValaBreakStatement ValaBreakStatement;
typedef struct _ValaBreakStatementClass ValaBreakStatementClass;
typedef struct _ValaBreakStatementPrivate ValaBreakStatementPrivate;

#define VALA_TYPE_CALLABLE_EXPRESSION (vala_callable_expression_get_type ())
#define VALA_CALLABLE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CALLABLE_EXPRESSION, ValaCallableExpression))
#define VALA_IS_CALLABLE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CALLABLE_EXPRESSION))
#define VALA_CALLABLE_EXPRESSION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VALA_TYPE_CALLABLE_EXPRESSION, ValaCallableExpressionIface))

typedef struct _ValaCallableExpression ValaCallableExpression;
typedef struct _ValaCallableExpressionIface ValaCallableExpressionIface;

#define VALA_TYPE_CALLABLE_TYPE (vala_callable_type_get_type ())
#define VALA_CALLABLE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CALLABLE_TYPE, ValaCallableType))
#define VALA_CALLABLE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CALLABLE_TYPE, ValaCallableTypeClass))
#define VALA_IS_CALLABLE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CALLABLE_TYPE))
#define VALA_IS_CALLABLE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CALLABLE_TYPE))
#define VALA_CALLABLE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CALLABLE_TYPE, ValaCallableTypeClass))

typedef struct _ValaCallableType ValaCallableType;
typedef struct _ValaCallableTypeClass ValaCallableTypeClass;
typedef struct _ValaCallableTypePrivate ValaCallableTypePrivate;

#define VALA_TYPE_CAST_EXPRESSION (vala_cast_expression_get_type ())
#define VALA_CAST_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CAST_EXPRESSION, ValaCastExpression))
#define VALA_CAST_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CAST_EXPRESSION, ValaCastExpressionClass))
#define VALA_IS_CAST_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CAST_EXPRESSION))
#define VALA_IS_CAST_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CAST_EXPRESSION))
#define VALA_CAST_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CAST_EXPRESSION, ValaCastExpressionClass))

typedef struct _ValaCastExpression ValaCastExpression;
typedef struct _ValaCastExpressionClass ValaCastExpressionClass;
typedef struct _ValaCastExpressionPrivate ValaCastExpressionPrivate;

#define VALA_TYPE_CATCH_CLAUSE (vala_catch_clause_get_type ())
#define VALA_CATCH_CLAUSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CATCH_CLAUSE, ValaCatchClause))
#define VALA_CATCH_CLAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CATCH_CLAUSE, ValaCatchClauseClass))
#define VALA_IS_CATCH_CLAUSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CATCH_CLAUSE))
#define VALA_IS_CATCH_CLAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CATCH_CLAUSE))
#define VALA_CATCH_CLAUSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CATCH_CLAUSE, ValaCatchClauseClass))

typedef struct _ValaCatchClause ValaCatchClause;
typedef struct _ValaCatchClauseClass ValaCatchClauseClass;
typedef struct _ValaCatchClausePrivate ValaCatchClausePrivate;

#define VALA_TYPE_CHARACTER_LITERAL (vala_character_literal_get_type ())
#define VALA_CHARACTER_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CHARACTER_LITERAL, ValaCharacterLiteral))
#define VALA_CHARACTER_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CHARACTER_LITERAL, ValaCharacterLiteralClass))
#define VALA_IS_CHARACTER_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CHARACTER_LITERAL))
#define VALA_IS_CHARACTER_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CHARACTER_LITERAL))
#define VALA_CHARACTER_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CHARACTER_LITERAL, ValaCharacterLiteralClass))

typedef struct _ValaCharacterLiteral ValaCharacterLiteral;
typedef struct _ValaCharacterLiteralClass ValaCharacterLiteralClass;
typedef struct _ValaCharacterLiteralPrivate ValaCharacterLiteralPrivate;
typedef struct _ValaTypeSymbolPrivate ValaTypeSymbolPrivate;
typedef struct _ValaObjectTypeSymbolPrivate ValaObjectTypeSymbolPrivate;
typedef struct _ValaClassPrivate ValaClassPrivate;

#define VALA_TYPE_CREATION_METHOD (vala_creation_method_get_type ())
#define VALA_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethod))
#define VALA_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))
#define VALA_IS_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CREATION_METHOD))
#define VALA_IS_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CREATION_METHOD))
#define VALA_CREATION_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))

typedef struct _ValaCreationMethod ValaCreationMethod;
typedef struct _ValaCreationMethodClass ValaCreationMethodClass;

#define VALA_TYPE_COMMENT (vala_comment_get_type ())
#define VALA_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_COMMENT, ValaComment))
#define VALA_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_COMMENT, ValaCommentClass))
#define VALA_IS_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_COMMENT))
#define VALA_IS_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_COMMENT))
#define VALA_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_COMMENT, ValaCommentClass))

typedef struct _ValaComment ValaComment;
typedef struct _ValaCommentClass ValaCommentClass;

#define VALA_TYPE_CLASS_TYPE (vala_class_type_get_type ())
#define VALA_CLASS_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CLASS_TYPE, ValaClassType))
#define VALA_CLASS_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CLASS_TYPE, ValaClassTypeClass))
#define VALA_IS_CLASS_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CLASS_TYPE))
#define VALA_IS_CLASS_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CLASS_TYPE))
#define VALA_CLASS_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CLASS_TYPE, ValaClassTypeClass))

typedef struct _ValaClassType ValaClassType;
typedef struct _ValaClassTypeClass ValaClassTypeClass;
typedef struct _ValaClassTypePrivate ValaClassTypePrivate;
typedef struct _ValaCodeContextPrivate ValaCodeContextPrivate;
typedef enum  {
	VALA_PROFILE_GOBJECT,
	VALA_PROFILE_LIBC,
	VALA_PROFILE_POSIX = VALA_PROFILE_LIBC
} ValaProfile;

#define VALA_TYPE_PROFILE (vala_profile_get_type ())

#define VALA_TYPE_REPORT (vala_report_get_type ())
#define VALA_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REPORT, ValaReport))
#define VALA_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REPORT, ValaReportClass))
#define VALA_IS_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REPORT))
#define VALA_IS_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REPORT))
#define VALA_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REPORT, ValaReportClass))

typedef struct _ValaReport ValaReport;
typedef struct _ValaReportClass ValaReportClass;

#define VALA_TYPE_SYMBOL_RESOLVER (vala_symbol_resolver_get_type ())
#define VALA_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver))
#define VALA_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolverClass))
#define VALA_IS_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SYMBOL_RESOLVER))
#define VALA_IS_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SYMBOL_RESOLVER))
#define VALA_SYMBOL_RESOLVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolverClass))

typedef struct _ValaSymbolResolver ValaSymbolResolver;
typedef struct _ValaSymbolResolverClass ValaSymbolResolverClass;

#define VALA_TYPE_SEMANTIC_ANALYZER (vala_semantic_analyzer_get_type ())
#define VALA_SEMANTIC_ANALYZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SEMANTIC_ANALYZER, ValaSemanticAnalyzer))
#define VALA_SEMANTIC_ANALYZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SEMANTIC_ANALYZER, ValaSemanticAnalyzerClass))
#define VALA_IS_SEMANTIC_ANALYZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SEMANTIC_ANALYZER))
#define VALA_IS_SEMANTIC_ANALYZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SEMANTIC_ANALYZER))
#define VALA_SEMANTIC_ANALYZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SEMANTIC_ANALYZER, ValaSemanticAnalyzerClass))

typedef struct _ValaSemanticAnalyzer ValaSemanticAnalyzer;
typedef struct _ValaSemanticAnalyzerClass ValaSemanticAnalyzerClass;

#define VALA_TYPE_FLOW_ANALYZER (vala_flow_analyzer_get_type ())
#define VALA_FLOW_ANALYZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FLOW_ANALYZER, ValaFlowAnalyzer))
#define VALA_FLOW_ANALYZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FLOW_ANALYZER, ValaFlowAnalyzerClass))
#define VALA_IS_FLOW_ANALYZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FLOW_ANALYZER))
#define VALA_IS_FLOW_ANALYZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FLOW_ANALYZER))
#define VALA_FLOW_ANALYZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FLOW_ANALYZER, ValaFlowAnalyzerClass))

typedef struct _ValaFlowAnalyzer ValaFlowAnalyzer;
typedef struct _ValaFlowAnalyzerClass ValaFlowAnalyzerClass;

#define VALA_TYPE_USED_ATTR (vala_used_attr_get_type ())
#define VALA_USED_ATTR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_USED_ATTR, ValaUsedAttr))
#define VALA_USED_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_USED_ATTR, ValaUsedAttrClass))
#define VALA_IS_USED_ATTR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_USED_ATTR))
#define VALA_IS_USED_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_USED_ATTR))
#define VALA_USED_ATTR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_USED_ATTR, ValaUsedAttrClass))

typedef struct _ValaUsedAttr ValaUsedAttr;
typedef struct _ValaUsedAttrClass ValaUsedAttrClass;

#define VALA_TYPE_SOURCE_FILE (vala_source_file_get_type ())
#define VALA_SOURCE_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SOURCE_FILE, ValaSourceFile))
#define VALA_SOURCE_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SOURCE_FILE, ValaSourceFileClass))
#define VALA_IS_SOURCE_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SOURCE_FILE))
#define VALA_IS_SOURCE_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SOURCE_FILE))
#define VALA_SOURCE_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SOURCE_FILE, ValaSourceFileClass))

typedef struct _ValaSourceFile ValaSourceFile;
typedef struct _ValaSourceFileClass ValaSourceFileClass;
typedef struct _ValaCodeVisitorPrivate ValaCodeVisitorPrivate;

#define VALA_TYPE_ENUM_VALUE (vala_enum_value_get_type ())
#define VALA_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_VALUE, ValaEnumValue))
#define VALA_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_VALUE, ValaEnumValueClass))
#define VALA_IS_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ENUM_VALUE))
#define VALA_IS_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ENUM_VALUE))
#define VALA_ENUM_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ENUM_VALUE, ValaEnumValueClass))

typedef struct _ValaEnumValue ValaEnumValue;
typedef struct _ValaEnumValueClass ValaEnumValueClass;

#define VALA_TYPE_ERROR_CODE (vala_error_code_get_type ())
#define VALA_ERROR_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ERROR_CODE, ValaErrorCode))
#define VALA_ERROR_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ERROR_CODE, ValaErrorCodeClass))
#define VALA_IS_ERROR_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ERROR_CODE))
#define VALA_IS_ERROR_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ERROR_CODE))
#define VALA_ERROR_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ERROR_CODE, ValaErrorCodeClass))

typedef struct _ValaErrorCode ValaErrorCode;
typedef struct _ValaErrorCodeClass ValaErrorCodeClass;

#define VALA_TYPE_PROPERTY_ACCESSOR (vala_property_accessor_get_type ())
#define VALA_PROPERTY_ACCESSOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PROPERTY_ACCESSOR, ValaPropertyAccessor))
#define VALA_PROPERTY_ACCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PROPERTY_ACCESSOR, ValaPropertyAccessorClass))
#define VALA_IS_PROPERTY_ACCESSOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PROPERTY_ACCESSOR))
#define VALA_IS_PROPERTY_ACCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PROPERTY_ACCESSOR))
#define VALA_PROPERTY_ACCESSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PROPERTY_ACCESSOR, ValaPropertyAccessorClass))

typedef struct _ValaPropertyAccessor ValaPropertyAccessor;
typedef struct _ValaPropertyAccessorClass ValaPropertyAccessorClass;

#define VALA_TYPE_USING_DIRECTIVE (vala_using_directive_get_type ())
#define VALA_USING_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_USING_DIRECTIVE, ValaUsingDirective))
#define VALA_USING_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_USING_DIRECTIVE, ValaUsingDirectiveClass))
#define VALA_IS_USING_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_USING_DIRECTIVE))
#define VALA_IS_USING_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_USING_DIRECTIVE))
#define VALA_USING_DIRECTIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_USING_DIRECTIVE, ValaUsingDirectiveClass))

typedef struct _ValaUsingDirective ValaUsingDirective;
typedef struct _ValaUsingDirectiveClass ValaUsingDirectiveClass;

#define VALA_TYPE_EMPTY_STATEMENT (vala_empty_statement_get_type ())
#define VALA_EMPTY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_EMPTY_STATEMENT, ValaEmptyStatement))
#define VALA_EMPTY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_EMPTY_STATEMENT, ValaEmptyStatementClass))
#define VALA_IS_EMPTY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_EMPTY_STATEMENT))
#define VALA_IS_EMPTY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_EMPTY_STATEMENT))
#define VALA_EMPTY_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_EMPTY_STATEMENT, ValaEmptyStatementClass))

typedef struct _ValaEmptyStatement ValaEmptyStatement;
typedef struct _ValaEmptyStatementClass ValaEmptyStatementClass;

#define VALA_TYPE_DECLARATION_STATEMENT (vala_declaration_statement_get_type ())
#define VALA_DECLARATION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DECLARATION_STATEMENT, ValaDeclarationStatement))
#define VALA_DECLARATION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DECLARATION_STATEMENT, ValaDeclarationStatementClass))
#define VALA_IS_DECLARATION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DECLARATION_STATEMENT))
#define VALA_IS_DECLARATION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DECLARATION_STATEMENT))
#define VALA_DECLARATION_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DECLARATION_STATEMENT, ValaDeclarationStatementClass))

typedef struct _ValaDeclarationStatement ValaDeclarationStatement;
typedef struct _ValaDeclarationStatementClass ValaDeclarationStatementClass;

#define VALA_TYPE_EXPRESSION_STATEMENT (vala_expression_statement_get_type ())
#define VALA_EXPRESSION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_EXPRESSION_STATEMENT, ValaExpressionStatement))
#define VALA_EXPRESSION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_EXPRESSION_STATEMENT, ValaExpressionStatementClass))
#define VALA_IS_EXPRESSION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_EXPRESSION_STATEMENT))
#define VALA_IS_EXPRESSION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_EXPRESSION_STATEMENT))
#define VALA_EXPRESSION_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_EXPRESSION_STATEMENT, ValaExpressionStatementClass))

typedef struct _ValaExpressionStatement ValaExpressionStatement;
typedef struct _ValaExpressionStatementClass ValaExpressionStatementClass;

#define VALA_TYPE_IF_STATEMENT (vala_if_statement_get_type ())
#define VALA_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_IF_STATEMENT, ValaIfStatement))
#define VALA_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_IF_STATEMENT, ValaIfStatementClass))
#define VALA_IS_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_IF_STATEMENT))
#define VALA_IS_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_IF_STATEMENT))
#define VALA_IF_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_IF_STATEMENT, ValaIfStatementClass))

typedef struct _ValaIfStatement ValaIfStatement;
typedef struct _ValaIfStatementClass ValaIfStatementClass;

#define VALA_TYPE_SWITCH_STATEMENT (vala_switch_statement_get_type ())
#define VALA_SWITCH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SWITCH_STATEMENT, ValaSwitchStatement))
#define VALA_SWITCH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SWITCH_STATEMENT, ValaSwitchStatementClass))
#define VALA_IS_SWITCH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SWITCH_STATEMENT))
#define VALA_IS_SWITCH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SWITCH_STATEMENT))
#define VALA_SWITCH_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SWITCH_STATEMENT, ValaSwitchStatementClass))

typedef struct _ValaSwitchStatement ValaSwitchStatement;
typedef struct _ValaSwitchStatementClass ValaSwitchStatementClass;

#define VALA_TYPE_SWITCH_SECTION (vala_switch_section_get_type ())
#define VALA_SWITCH_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SWITCH_SECTION, ValaSwitchSection))
#define VALA_SWITCH_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SWITCH_SECTION, ValaSwitchSectionClass))
#define VALA_IS_SWITCH_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SWITCH_SECTION))
#define VALA_IS_SWITCH_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SWITCH_SECTION))
#define VALA_SWITCH_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SWITCH_SECTION, ValaSwitchSectionClass))

typedef struct _ValaSwitchSection ValaSwitchSection;
typedef struct _ValaSwitchSectionClass ValaSwitchSectionClass;

#define VALA_TYPE_SWITCH_LABEL (vala_switch_label_get_type ())
#define VALA_SWITCH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SWITCH_LABEL, ValaSwitchLabel))
#define VALA_SWITCH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SWITCH_LABEL, ValaSwitchLabelClass))
#define VALA_IS_SWITCH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SWITCH_LABEL))
#define VALA_IS_SWITCH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SWITCH_LABEL))
#define VALA_SWITCH_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SWITCH_LABEL, ValaSwitchLabelClass))

typedef struct _ValaSwitchLabel ValaSwitchLabel;
typedef struct _ValaSwitchLabelClass ValaSwitchLabelClass;

#define VALA_TYPE_LOOP (vala_loop_get_type ())
#define VALA_LOOP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOOP, ValaLoop))
#define VALA_LOOP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOOP, ValaLoopClass))
#define VALA_IS_LOOP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOOP))
#define VALA_IS_LOOP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LOOP))
#define VALA_LOOP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LOOP, ValaLoopClass))

typedef struct _ValaLoop ValaLoop;
typedef struct _ValaLoopClass ValaLoopClass;

#define VALA_TYPE_LOOP_STATEMENT (vala_loop_statement_get_type ())
#define VALA_LOOP_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOOP_STATEMENT, ValaLoopStatement))
#define VALA_LOOP_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOOP_STATEMENT, ValaLoopStatementClass))
#define VALA_IS_LOOP_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOOP_STATEMENT))
#define VALA_IS_LOOP_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LOOP_STATEMENT))
#define VALA_LOOP_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LOOP_STATEMENT, ValaLoopStatementClass))

typedef struct _ValaLoopStatement ValaLoopStatement;
typedef struct _ValaLoopStatementClass ValaLoopStatementClass;

#define VALA_TYPE_WHILE_STATEMENT (vala_while_statement_get_type ())
#define VALA_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatement))
#define VALA_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatementClass))
#define VALA_IS_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_WHILE_STATEMENT))
#define VALA_IS_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_WHILE_STATEMENT))
#define VALA_WHILE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatementClass))

typedef struct _ValaWhileStatement ValaWhileStatement;
typedef struct _ValaWhileStatementClass ValaWhileStatementClass;

#define VALA_TYPE_DO_STATEMENT (vala_do_statement_get_type ())
#define VALA_DO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DO_STATEMENT, ValaDoStatement))
#define VALA_DO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DO_STATEMENT, ValaDoStatementClass))
#define VALA_IS_DO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DO_STATEMENT))
#define VALA_IS_DO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DO_STATEMENT))
#define VALA_DO_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DO_STATEMENT, ValaDoStatementClass))

typedef struct _ValaDoStatement ValaDoStatement;
typedef struct _ValaDoStatementClass ValaDoStatementClass;

#define VALA_TYPE_FOR_STATEMENT (vala_for_statement_get_type ())
#define VALA_FOR_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FOR_STATEMENT, ValaForStatement))
#define VALA_FOR_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FOR_STATEMENT, ValaForStatementClass))
#define VALA_IS_FOR_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FOR_STATEMENT))
#define VALA_IS_FOR_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FOR_STATEMENT))
#define VALA_FOR_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FOR_STATEMENT, ValaForStatementClass))

typedef struct _ValaForStatement ValaForStatement;
typedef struct _ValaForStatementClass ValaForStatementClass;

#define VALA_TYPE_FOREACH_STATEMENT (vala_foreach_statement_get_type ())
#define VALA_FOREACH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FOREACH_STATEMENT, ValaForeachStatement))
#define VALA_FOREACH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FOREACH_STATEMENT, ValaForeachStatementClass))
#define VALA_IS_FOREACH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FOREACH_STATEMENT))
#define VALA_IS_FOREACH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FOREACH_STATEMENT))
#define VALA_FOREACH_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FOREACH_STATEMENT, ValaForeachStatementClass))

typedef struct _ValaForeachStatement ValaForeachStatement;
typedef struct _ValaForeachStatementClass ValaForeachStatementClass;

#define VALA_TYPE_CONTINUE_STATEMENT (vala_continue_statement_get_type ())
#define VALA_CONTINUE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONTINUE_STATEMENT, ValaContinueStatement))
#define VALA_CONTINUE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONTINUE_STATEMENT, ValaContinueStatementClass))
#define VALA_IS_CONTINUE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONTINUE_STATEMENT))
#define VALA_IS_CONTINUE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONTINUE_STATEMENT))
#define VALA_CONTINUE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONTINUE_STATEMENT, ValaContinueStatementClass))

typedef struct _ValaContinueStatement ValaContinueStatement;
typedef struct _ValaContinueStatementClass ValaContinueStatementClass;

#define VALA_TYPE_RETURN_STATEMENT (vala_return_statement_get_type ())
#define VALA_RETURN_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_RETURN_STATEMENT, ValaReturnStatement))
#define VALA_RETURN_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_RETURN_STATEMENT, ValaReturnStatementClass))
#define VALA_IS_RETURN_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_RETURN_STATEMENT))
#define VALA_IS_RETURN_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_RETURN_STATEMENT))
#define VALA_RETURN_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_RETURN_STATEMENT, ValaReturnStatementClass))

typedef struct _ValaReturnStatement ValaReturnStatement;
typedef struct _ValaReturnStatementClass ValaReturnStatementClass;

#define VALA_TYPE_YIELD_STATEMENT (vala_yield_statement_get_type ())
#define VALA_YIELD_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_YIELD_STATEMENT, ValaYieldStatement))
#define VALA_YIELD_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_YIELD_STATEMENT, ValaYieldStatementClass))
#define VALA_IS_YIELD_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_YIELD_STATEMENT))
#define VALA_IS_YIELD_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_YIELD_STATEMENT))
#define VALA_YIELD_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_YIELD_STATEMENT, ValaYieldStatementClass))

typedef struct _ValaYieldStatement ValaYieldStatement;
typedef struct _ValaYieldStatementClass ValaYieldStatementClass;

#define VALA_TYPE_THROW_STATEMENT (vala_throw_statement_get_type ())
#define VALA_THROW_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_THROW_STATEMENT, ValaThrowStatement))
#define VALA_THROW_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_THROW_STATEMENT, ValaThrowStatementClass))
#define VALA_IS_THROW_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_THROW_STATEMENT))
#define VALA_IS_THROW_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_THROW_STATEMENT))
#define VALA_THROW_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_THROW_STATEMENT, ValaThrowStatementClass))

typedef struct _ValaThrowStatement ValaThrowStatement;
typedef struct _ValaThrowStatementClass ValaThrowStatementClass;

#define VALA_TYPE_TRY_STATEMENT (vala_try_statement_get_type ())
#define VALA_TRY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TRY_STATEMENT, ValaTryStatement))
#define VALA_TRY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TRY_STATEMENT, ValaTryStatementClass))
#define VALA_IS_TRY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TRY_STATEMENT))
#define VALA_IS_TRY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TRY_STATEMENT))
#define VALA_TRY_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TRY_STATEMENT, ValaTryStatementClass))

typedef struct _ValaTryStatement ValaTryStatement;
typedef struct _ValaTryStatementClass ValaTryStatementClass;

#define VALA_TYPE_LOCK_STATEMENT (vala_lock_statement_get_type ())
#define VALA_LOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOCK_STATEMENT, ValaLockStatement))
#define VALA_LOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOCK_STATEMENT, ValaLockStatementClass))
#define VALA_IS_LOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOCK_STATEMENT))
#define VALA_IS_LOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LOCK_STATEMENT))
#define VALA_LOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LOCK_STATEMENT, ValaLockStatementClass))

typedef struct _ValaLockStatement ValaLockStatement;
typedef struct _ValaLockStatementClass ValaLockStatementClass;

#define VALA_TYPE_UNLOCK_STATEMENT (vala_unlock_statement_get_type ())
#define VALA_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatement))
#define VALA_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
#define VALA_IS_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNLOCK_STATEMENT))
#define VALA_IS_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNLOCK_STATEMENT))
#define VALA_UNLOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))

typedef struct _ValaUnlockStatement ValaUnlockStatement;
typedef struct _ValaUnlockStatementClass ValaUnlockStatementClass;

#define VALA_TYPE_WITH_STATEMENT (vala_with_statement_get_type ())
#define VALA_WITH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_WITH_STATEMENT, ValaWithStatement))
#define VALA_WITH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_WITH_STATEMENT, ValaWithStatementClass))
#define VALA_IS_WITH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_WITH_STATEMENT))
#define VALA_IS_WITH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_WITH_STATEMENT))
#define VALA_WITH_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_WITH_STATEMENT, ValaWithStatementClass))

typedef struct _ValaWithStatement ValaWithStatement;
typedef struct _ValaWithStatementClass ValaWithStatementClass;

#define VALA_TYPE_DELETE_STATEMENT (vala_delete_statement_get_type ())
#define VALA_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatement))
#define VALA_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))
#define VALA_IS_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DELETE_STATEMENT))
#define VALA_IS_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DELETE_STATEMENT))
#define VALA_DELETE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))

typedef struct _ValaDeleteStatement ValaDeleteStatement;
typedef struct _ValaDeleteStatementClass ValaDeleteStatementClass;

#define VALA_TYPE_INTEGER_LITERAL (vala_integer_literal_get_type ())
#define VALA_INTEGER_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTEGER_LITERAL, ValaIntegerLiteral))
#define VALA_INTEGER_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTEGER_LITERAL, ValaIntegerLiteralClass))
#define VALA_IS_INTEGER_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTEGER_LITERAL))
#define VALA_IS_INTEGER_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTEGER_LITERAL))
#define VALA_INTEGER_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTEGER_LITERAL, ValaIntegerLiteralClass))

typedef struct _ValaIntegerLiteral ValaIntegerLiteral;
typedef struct _ValaIntegerLiteralClass ValaIntegerLiteralClass;

#define VALA_TYPE_REAL_LITERAL (vala_real_literal_get_type ())
#define VALA_REAL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REAL_LITERAL, ValaRealLiteral))
#define VALA_REAL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REAL_LITERAL, ValaRealLiteralClass))
#define VALA_IS_REAL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REAL_LITERAL))
#define VALA_IS_REAL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REAL_LITERAL))
#define VALA_REAL_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REAL_LITERAL, ValaRealLiteralClass))

typedef struct _ValaRealLiteral ValaRealLiteral;
typedef struct _ValaRealLiteralClass ValaRealLiteralClass;

#define VALA_TYPE_REGEX_LITERAL (vala_regex_literal_get_type ())
#define VALA_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteral))
#define VALA_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
#define VALA_IS_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REGEX_LITERAL))
#define VALA_IS_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REGEX_LITERAL))
#define VALA_REGEX_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))

typedef struct _ValaRegexLiteral ValaRegexLiteral;
typedef struct _ValaRegexLiteralClass ValaRegexLiteralClass;

#define VALA_TYPE_STRING_LITERAL (vala_string_literal_get_type ())
#define VALA_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteral))
#define VALA_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))
#define VALA_IS_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STRING_LITERAL))
#define VALA_IS_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STRING_LITERAL))
#define VALA_STRING_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))

typedef struct _ValaStringLiteral ValaStringLiteral;
typedef struct _ValaStringLiteralClass ValaStringLiteralClass;

#define VALA_TYPE_TEMPLATE (vala_template_get_type ())
#define VALA_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TEMPLATE, ValaTemplate))
#define VALA_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TEMPLATE, ValaTemplateClass))
#define VALA_IS_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TEMPLATE))
#define VALA_IS_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TEMPLATE))
#define VALA_TEMPLATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TEMPLATE, ValaTemplateClass))

typedef struct _ValaTemplate ValaTemplate;
typedef struct _ValaTemplateClass ValaTemplateClass;

#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))

typedef struct _ValaTuple ValaTuple;
typedef struct _ValaTupleClass ValaTupleClass;

#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
#define VALA_IS_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_NULL_LITERAL))
#define VALA_IS_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_NULL_LITERAL))
#define VALA_NULL_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))

typedef struct _ValaNullLiteral ValaNullLiteral;
typedef struct _ValaNullLiteralClass ValaNullLiteralClass;

#define VALA_TYPE_MEMBER_ACCESS (vala_member_access_get_type ())
#define VALA_MEMBER_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess))
#define VALA_MEMBER_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER_ACCESS, ValaMemberAccessClass))
#define VALA_IS_MEMBER_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER_ACCESS))
#define VALA_IS_MEMBER_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER_ACCESS))
#define VALA_MEMBER_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER_ACCESS, ValaMemberAccessClass))

typedef struct _ValaMemberAccess ValaMemberAccess;
typedef struct _ValaMemberAccessClass ValaMemberAccessClass;

#define VALA_TYPE_METHOD_CALL (vala_method_call_get_type ())
#define VALA_METHOD_CALL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD_CALL, ValaMethodCall))
#define VALA_METHOD_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD_CALL, ValaMethodCallClass))
#define VALA_IS_METHOD_CALL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_METHOD_CALL))
#define VALA_IS_METHOD_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_METHOD_CALL))
#define VALA_METHOD_CALL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_METHOD_CALL, ValaMethodCallClass))

typedef struct _ValaMethodCall ValaMethodCall;
typedef struct _ValaMethodCallClass ValaMethodCallClass;

#define VALA_TYPE_ELEMENT_ACCESS (vala_element_access_get_type ())
#define VALA_ELEMENT_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ELEMENT_ACCESS, ValaElementAccess))
#define VALA_ELEMENT_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ELEMENT_ACCESS, ValaElementAccessClass))
#define VALA_IS_ELEMENT_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ELEMENT_ACCESS))
#define VALA_IS_ELEMENT_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ELEMENT_ACCESS))
#define VALA_ELEMENT_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ELEMENT_ACCESS, ValaElementAccessClass))

typedef struct _ValaElementAccess ValaElementAccess;
typedef struct _ValaElementAccessClass ValaElementAccessClass;

#define VALA_TYPE_SLICE_EXPRESSION (vala_slice_expression_get_type ())
#define VALA_SLICE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SLICE_EXPRESSION, ValaSliceExpression))
#define VALA_SLICE_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SLICE_EXPRESSION, ValaSliceExpressionClass))
#define VALA_IS_SLICE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SLICE_EXPRESSION))
#define VALA_IS_SLICE_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SLICE_EXPRESSION))
#define VALA_SLICE_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SLICE_EXPRESSION, ValaSliceExpressionClass))

typedef struct _ValaSliceExpression ValaSliceExpression;
typedef struct _ValaSliceExpressionClass ValaSliceExpressionClass;

#define VALA_TYPE_POSTFIX_EXPRESSION (vala_postfix_expression_get_type ())
#define VALA_POSTFIX_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_POSTFIX_EXPRESSION, ValaPostfixExpression))
#define VALA_POSTFIX_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_POSTFIX_EXPRESSION, ValaPostfixExpressionClass))
#define VALA_IS_POSTFIX_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_POSTFIX_EXPRESSION))
#define VALA_IS_POSTFIX_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_POSTFIX_EXPRESSION))
#define VALA_POSTFIX_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_POSTFIX_EXPRESSION, ValaPostfixExpressionClass))

typedef struct _ValaPostfixExpression ValaPostfixExpression;
typedef struct _ValaPostfixExpressionClass ValaPostfixExpressionClass;

#define VALA_TYPE_OBJECT_CREATION_EXPRESSION (vala_object_creation_expression_get_type ())
#define VALA_OBJECT_CREATION_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_OBJECT_CREATION_EXPRESSION, ValaObjectCreationExpression))
#define VALA_OBJECT_CREATION_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_OBJECT_CREATION_EXPRESSION, ValaObjectCreationExpressionClass))
#define VALA_IS_OBJECT_CREATION_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_OBJECT_CREATION_EXPRESSION))
#define VALA_IS_OBJECT_CREATION_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_OBJECT_CREATION_EXPRESSION))
#define VALA_OBJECT_CREATION_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_OBJECT_CREATION_EXPRESSION, ValaObjectCreationExpressionClass))

typedef struct _ValaObjectCreationExpression ValaObjectCreationExpression;
typedef struct _ValaObjectCreationExpressionClass ValaObjectCreationExpressionClass;

#define VALA_TYPE_SIZEOF_EXPRESSION (vala_sizeof_expression_get_type ())
#define VALA_SIZEOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SIZEOF_EXPRESSION, ValaSizeofExpression))
#define VALA_SIZEOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SIZEOF_EXPRESSION, ValaSizeofExpressionClass))
#define VALA_IS_SIZEOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SIZEOF_EXPRESSION))
#define VALA_IS_SIZEOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SIZEOF_EXPRESSION))
#define VALA_SIZEOF_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SIZEOF_EXPRESSION, ValaSizeofExpressionClass))

typedef struct _ValaSizeofExpression ValaSizeofExpression;
typedef struct _ValaSizeofExpressionClass ValaSizeofExpressionClass;

#define VALA_TYPE_TYPEOF_EXPRESSION (vala_typeof_expression_get_type ())
#define VALA_TYPEOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPEOF_EXPRESSION, ValaTypeofExpression))
#define VALA_TYPEOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPEOF_EXPRESSION, ValaTypeofExpressionClass))
#define VALA_IS_TYPEOF_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPEOF_EXPRESSION))
#define VALA_IS_TYPEOF_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPEOF_EXPRESSION))
#define VALA_TYPEOF_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPEOF_EXPRESSION, ValaTypeofExpressionClass))

typedef struct _ValaTypeofExpression ValaTypeofExpression;
typedef struct _ValaTypeofExpressionClass ValaTypeofExpressionClass;

#define VALA_TYPE_UNARY_EXPRESSION (vala_unary_expression_get_type ())
#define VALA_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpression))
#define VALA_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpressionClass))
#define VALA_IS_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNARY_EXPRESSION))
#define VALA_IS_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNARY_EXPRESSION))
#define VALA_UNARY_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpressionClass))

typedef struct _ValaUnaryExpression ValaUnaryExpression;
typedef struct _ValaUnaryExpressionClass ValaUnaryExpressionClass;

#define VALA_TYPE_NAMED_ARGUMENT (vala_named_argument_get_type ())
#define VALA_NAMED_ARGUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NAMED_ARGUMENT, ValaNamedArgument))
#define VALA_NAMED_ARGUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NAMED_ARGUMENT, ValaNamedArgumentClass))
#define VALA_IS_NAMED_ARGUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_NAMED_ARGUMENT))
#define VALA_IS_NAMED_ARGUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_NAMED_ARGUMENT))
#define VALA_NAMED_ARGUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_NAMED_ARGUMENT, ValaNamedArgumentClass))

typedef struct _ValaNamedArgument ValaNamedArgument;
typedef struct _ValaNamedArgumentClass ValaNamedArgumentClass;

#define VALA_TYPE_POINTER_INDIRECTION (vala_pointer_indirection_get_type ())
#define VALA_POINTER_INDIRECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_POINTER_INDIRECTION, ValaPointerIndirection))
#define VALA_POINTER_INDIRECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_POINTER_INDIRECTION, ValaPointerIndirectionClass))
#define VALA_IS_POINTER_INDIRECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_POINTER_INDIRECTION))
#define VALA_IS_POINTER_INDIRECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_POINTER_INDIRECTION))
#define VALA_POINTER_INDIRECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_POINTER_INDIRECTION, ValaPointerIndirectionClass))

typedef struct _ValaPointerIndirection ValaPointerIndirection;
typedef struct _ValaPointerIndirectionClass ValaPointerIndirectionClass;

#define VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION (vala_reference_transfer_expression_get_type ())
#define VALA_REFERENCE_TRANSFER_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION, ValaReferenceTransferExpression))
#define VALA_REFERENCE_TRANSFER_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION, ValaReferenceTransferExpressionClass))
#define VALA_IS_REFERENCE_TRANSFER_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION))
#define VALA_IS_REFERENCE_TRANSFER_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION))
#define VALA_REFERENCE_TRANSFER_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REFERENCE_TRANSFER_EXPRESSION, ValaReferenceTransferExpressionClass))

typedef struct _ValaReferenceTransferExpression ValaReferenceTransferExpression;
typedef struct _ValaReferenceTransferExpressionClass ValaReferenceTransferExpressionClass;

#define VALA_TYPE_TYPECHECK (vala_typecheck_get_type ())
#define VALA_TYPECHECK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TYPECHECK, ValaTypeCheck))
#define VALA_TYPECHECK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TYPECHECK, ValaTypeCheckClass))
#define VALA_IS_TYPECHECK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TYPECHECK))
#define VALA_IS_TYPECHECK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TYPECHECK))
#define VALA_TYPECHECK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TYPECHECK, ValaTypeCheckClass))

typedef struct _ValaTypeCheck ValaTypeCheck;
typedef struct _ValaTypeCheckClass ValaTypeCheckClass;

#define VALA_TYPE_CONDITIONAL_EXPRESSION (vala_conditional_expression_get_type ())
#define VALA_CONDITIONAL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONDITIONAL_EXPRESSION, ValaConditionalExpression))
#define VALA_CONDITIONAL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONDITIONAL_EXPRESSION, ValaConditionalExpressionClass))
#define VALA_IS_CONDITIONAL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONDITIONAL_EXPRESSION))
#define VALA_IS_CONDITIONAL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONDITIONAL_EXPRESSION))
#define VALA_CONDITIONAL_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONDITIONAL_EXPRESSION, ValaConditionalExpressionClass))

typedef struct _ValaConditionalExpression ValaConditionalExpression;
typedef struct _ValaConditionalExpressionClass ValaConditionalExpressionClass;

#define VALA_TYPE_LAMBDA_EXPRESSION (vala_lambda_expression_get_type ())
#define VALA_LAMBDA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LAMBDA_EXPRESSION, ValaLambdaExpression))
#define VALA_LAMBDA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LAMBDA_EXPRESSION, ValaLambdaExpressionClass))
#define VALA_IS_LAMBDA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LAMBDA_EXPRESSION))
#define VALA_IS_LAMBDA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LAMBDA_EXPRESSION))
#define VALA_LAMBDA_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LAMBDA_EXPRESSION, ValaLambdaExpressionClass))

typedef struct _ValaLambdaExpression ValaLambdaExpression;
typedef struct _ValaLambdaExpressionClass ValaLambdaExpressionClass;
typedef struct _ValaCodeGeneratorPrivate ValaCodeGeneratorPrivate;

#define VALA_TYPE_TARGET_VALUE (vala_target_value_get_type ())
#define VALA_TARGET_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TARGET_VALUE, ValaTargetValue))
#define VALA_TARGET_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TARGET_VALUE, ValaTargetValueClass))
#define VALA_IS_TARGET_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TARGET_VALUE))
#define VALA_IS_TARGET_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TARGET_VALUE))
#define VALA_TARGET_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TARGET_VALUE, ValaTargetValueClass))

typedef struct _ValaTargetValue ValaTargetValue;
typedef struct _ValaTargetValueClass ValaTargetValueClass;

#define VALA_TYPE_ATTRIBUTE_CACHE (vala_attribute_cache_get_type ())
#define VALA_ATTRIBUTE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ATTRIBUTE_CACHE, ValaAttributeCache))
#define VALA_ATTRIBUTE_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ATTRIBUTE_CACHE, ValaAttributeCacheClass))
#define VALA_IS_ATTRIBUTE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ATTRIBUTE_CACHE))
#define VALA_IS_ATTRIBUTE_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ATTRIBUTE_CACHE))
#define VALA_ATTRIBUTE_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ATTRIBUTE_CACHE, ValaAttributeCacheClass))

typedef struct _ValaAttributeCache ValaAttributeCache;
typedef struct _ValaAttributeCacheClass ValaAttributeCacheClass;
typedef struct _ValaAttributeCachePrivate ValaAttributeCachePrivate;

#define VALA_TYPE_CODE_WRITER (vala_code_writer_get_type ())
#define VALA_CODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_WRITER, ValaCodeWriter))
#define VALA_CODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_WRITER, ValaCodeWriterClass))
#define VALA_IS_CODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_WRITER))
#define VALA_IS_CODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_WRITER))
#define VALA_CODE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_WRITER, ValaCodeWriterClass))

typedef struct _ValaCodeWriter ValaCodeWriter;
typedef struct _ValaCodeWriterClass ValaCodeWriterClass;
typedef struct _ValaCodeWriterPrivate ValaCodeWriterPrivate;
typedef enum  {
	VALA_CODE_WRITER_TYPE_EXTERNAL,
	VALA_CODE_WRITER_TYPE_INTERNAL,
	VALA_CODE_WRITER_TYPE_FAST,
	VALA_CODE_WRITER_TYPE_DUMP,
	VALA_CODE_WRITER_TYPE_VAPIGEN
} ValaCodeWriterType;

#define VALA_TYPE_CODE_WRITER_TYPE (vala_code_writer_type_get_type ())
typedef struct _ValaCommentPrivate ValaCommentPrivate;

#define VALA_TYPE_GIR_COMMENT (vala_gir_comment_get_type ())
#define VALA_GIR_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GIR_COMMENT, ValaGirComment))
#define VALA_GIR_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GIR_COMMENT, ValaGirCommentClass))
#define VALA_IS_GIR_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GIR_COMMENT))
#define VALA_IS_GIR_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GIR_COMMENT))
#define VALA_GIR_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GIR_COMMENT, ValaGirCommentClass))

typedef struct _ValaGirComment ValaGirComment;
typedef struct _ValaGirCommentClass ValaGirCommentClass;
typedef struct _ValaGirCommentPrivate ValaGirCommentPrivate;
typedef struct _ValaConditionalExpressionPrivate ValaConditionalExpressionPrivate;
typedef struct _ValaConstantPrivate ValaConstantPrivate;
typedef struct _ValaConstructorPrivate ValaConstructorPrivate;
typedef enum  {
	VALA_MEMBER_BINDING_INSTANCE,
	VALA_MEMBER_BINDING_CLASS,
	VALA_MEMBER_BINDING_STATIC
} ValaMemberBinding;

#define VALA_TYPE_MEMBER_BINDING (vala_member_binding_get_type ())
typedef struct _ValaContinueStatementPrivate ValaContinueStatementPrivate;
typedef struct _ValaCreationMethodPrivate ValaCreationMethodPrivate;
typedef struct _ValaDeclarationStatementPrivate ValaDeclarationStatementPrivate;
typedef struct _ValaDelegatePrivate ValaDelegatePrivate;

#define VALA_TYPE_DELEGATE_DESTROY_FIELD (vala_delegate_destroy_field_get_type ())
#define VALA_DELEGATE_DESTROY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELEGATE_DESTROY_FIELD, ValaDelegateDestroyField))
#define VALA_DELEGATE_DESTROY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELEGATE_DESTROY_FIELD, ValaDelegateDestroyFieldClass))
#define VALA_IS_DELEGATE_DESTROY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DELEGATE_DESTROY_FIELD))
#define VALA_IS_DELEGATE_DESTROY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DELEGATE_DESTROY_FIELD))
#define VALA_DELEGATE_DESTROY_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DELEGATE_DESTROY_FIELD, ValaDelegateDestroyFieldClass))

typedef struct _ValaDelegateDestroyField ValaDelegateDestroyField;
typedef struct _ValaDelegateDestroyFieldClass ValaDelegateDestroyFieldClass;
typedef struct _ValaDelegateDestroyFieldPrivate ValaDelegateDestroyFieldPrivate;

#define VALA_TYPE_DELEGATE_TARGET_FIELD (vala_delegate_target_field_get_type ())
#define VALA_DELEGATE_TARGET_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELEGATE_TARGET_FIELD, ValaDelegateTargetField))
#define VALA_DELEGATE_TARGET_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELEGATE_TARGET_FIELD, ValaDelegateTargetFieldClass))
#define VALA_IS_DELEGATE_TARGET_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DELEGATE_TARGET_FIELD))
#define VALA_IS_DELEGATE_TARGET_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DELEGATE_TARGET_FIELD))
#define VALA_DELEGATE_TARGET_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DELEGATE_TARGET_FIELD, ValaDelegateTargetFieldClass))

typedef struct _ValaDelegateTargetField ValaDelegateTargetField;
typedef struct _ValaDelegateTargetFieldClass ValaDelegateTargetFieldClass;
typedef struct _ValaDelegateTargetFieldPrivate ValaDelegateTargetFieldPrivate;

#define VALA_TYPE_DELEGATE_TYPE (vala_delegate_type_get_type ())
#define VALA_DELEGATE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELEGATE_TYPE, ValaDelegateType))
#define VALA_DELEGATE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELEGATE_TYPE, ValaDelegateTypeClass))
#define VALA_IS_DELEGATE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DELEGATE_TYPE))
#define VALA_IS_DELEGATE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DELEGATE_TYPE))
#define VALA_DELEGATE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DELEGATE_TYPE, ValaDelegateTypeClass))

typedef struct _ValaDelegateType ValaDelegateType;
typedef struct _ValaDelegateTypeClass ValaDelegateTypeClass;
typedef struct _ValaDelegateTypePrivate ValaDelegateTypePrivate;
typedef struct _ValaDeleteStatementPrivate ValaDeleteStatementPrivate;
typedef struct _ValaDestructorPrivate ValaDestructorPrivate;
typedef struct _ValaLoopPrivate ValaLoopPrivate;
typedef struct _ValaDoStatementPrivate ValaDoStatementPrivate;

#define VALA_TYPE_DYNAMIC_METHOD (vala_dynamic_method_get_type ())
#define VALA_DYNAMIC_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DYNAMIC_METHOD, ValaDynamicMethod))
#define VALA_DYNAMIC_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DYNAMIC_METHOD, ValaDynamicMethodClass))
#define VALA_IS_DYNAMIC_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DYNAMIC_METHOD))
#define VALA_IS_DYNAMIC_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DYNAMIC_METHOD))
#define VALA_DYNAMIC_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DYNAMIC_METHOD, ValaDynamicMethodClass))

typedef struct _ValaDynamicMethod ValaDynamicMethod;
typedef struct _ValaDynamicMethodClass ValaDynamicMethodClass;
typedef struct _ValaDynamicMethodPrivate ValaDynamicMethodPrivate;
typedef struct _ValaPropertyPrivate ValaPropertyPrivate;

#define VALA_TYPE_DYNAMIC_PROPERTY (vala_dynamic_property_get_type ())
#define VALA_DYNAMIC_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DYNAMIC_PROPERTY, ValaDynamicProperty))
#define VALA_DYNAMIC_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DYNAMIC_PROPERTY, ValaDynamicPropertyClass))
#define VALA_IS_DYNAMIC_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DYNAMIC_PROPERTY))
#define VALA_IS_DYNAMIC_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DYNAMIC_PROPERTY))
#define VALA_DYNAMIC_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DYNAMIC_PROPERTY, ValaDynamicPropertyClass))

typedef struct _ValaDynamicProperty ValaDynamicProperty;
typedef struct _ValaDynamicPropertyClass ValaDynamicPropertyClass;
typedef struct _ValaDynamicPropertyPrivate ValaDynamicPropertyPrivate;
typedef struct _ValaSignalPrivate ValaSignalPrivate;

#define VALA_TYPE_DYNAMIC_SIGNAL (vala_dynamic_signal_get_type ())
#define VALA_DYNAMIC_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignal))
#define VALA_DYNAMIC_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignalClass))
#define VALA_IS_DYNAMIC_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DYNAMIC_SIGNAL))
#define VALA_IS_DYNAMIC_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DYNAMIC_SIGNAL))
#define VALA_DYNAMIC_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignalClass))

typedef struct _ValaDynamicSignal ValaDynamicSignal;
typedef struct _ValaDynamicSignalClass ValaDynamicSignalClass;
typedef struct _ValaDynamicSignalPrivate ValaDynamicSignalPrivate;
typedef struct _ValaElementAccessPrivate ValaElementAccessPrivate;
typedef struct _ValaEmptyStatementPrivate ValaEmptyStatementPrivate;
typedef struct _ValaEnumPrivate ValaEnumPrivate;
typedef struct _ValaEnumValuePrivate ValaEnumValuePrivate;

#define VALA_TYPE_ENUM_VALUE_TYPE (vala_enum_value_type_get_type ())
#define VALA_ENUM_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_VALUE_TYPE, ValaEnumValueType))
#define VALA_ENUM_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_VALUE_TYPE, ValaEnumValueTypeClass))
#define VALA_IS_ENUM_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ENUM_VALUE_TYPE))
#define VALA_IS_ENUM_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ENUM_VALUE_TYPE))
#define VALA_ENUM_VALUE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ENUM_VALUE_TYPE, ValaEnumValueTypeClass))

typedef struct _ValaEnumValueType ValaEnumValueType;
typedef struct _ValaEnumValueTypeClass ValaEnumValueTypeClass;
typedef struct _ValaEnumValueTypePrivate ValaEnumValueTypePrivate;
typedef struct _ValaErrorCodePrivate ValaErrorCodePrivate;
typedef struct _ValaErrorDomainPrivate ValaErrorDomainPrivate;

#define VALA_TYPE_ERROR_TYPE (vala_error_type_get_type ())
#define VALA_ERROR_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ERROR_TYPE, ValaErrorType))
#define VALA_ERROR_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ERROR_TYPE, ValaErrorTypeClass))
#define VALA_IS_ERROR_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ERROR_TYPE))
#define VALA_IS_ERROR_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ERROR_TYPE))
#define VALA_ERROR_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ERROR_TYPE, ValaErrorTypeClass))

typedef struct _ValaErrorType ValaErrorType;
typedef struct _ValaErrorTypeClass ValaErrorTypeClass;
typedef struct _ValaErrorTypePrivate ValaErrorTypePrivate;
typedef struct _ValaExpressionStatementPrivate ValaExpressionStatementPrivate;

#define VALA_TYPE_FIELD_PROTOTYPE (vala_field_prototype_get_type ())
#define VALA_FIELD_PROTOTYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FIELD_PROTOTYPE, ValaFieldPrototype))
#define VALA_FIELD_PROTOTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FIELD_PROTOTYPE, ValaFieldPrototypeClass))
#define VALA_IS_FIELD_PROTOTYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FIELD_PROTOTYPE))
#define VALA_IS_FIELD_PROTOTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FIELD_PROTOTYPE))
#define VALA_FIELD_PROTOTYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FIELD_PROTOTYPE, ValaFieldPrototypeClass))

typedef struct _ValaFieldPrototype ValaFieldPrototype;
typedef struct _ValaFieldPrototypeClass ValaFieldPrototypeClass;
typedef struct _ValaFieldPrototypePrivate ValaFieldPrototypePrivate;

#define VALA_TYPE_FLOATING_TYPE (vala_floating_type_get_type ())
#define VALA_FLOATING_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FLOATING_TYPE, ValaFloatingType))
#define VALA_FLOATING_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FLOATING_TYPE, ValaFloatingTypeClass))
#define VALA_IS_FLOATING_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_FLOATING_TYPE))
#define VALA_IS_FLOATING_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_FLOATING_TYPE))
#define VALA_FLOATING_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_FLOATING_TYPE, ValaFloatingTypeClass))

typedef struct _ValaFloatingType ValaFloatingType;
typedef struct _ValaFloatingTypeClass ValaFloatingTypeClass;
typedef struct _ValaFloatingTypePrivate ValaFloatingTypePrivate;
typedef struct _ValaFlowAnalyzerPrivate ValaFlowAnalyzerPrivate;
typedef struct _ValaForeachStatementPrivate ValaForeachStatementPrivate;
typedef struct _ValaForStatementPrivate ValaForStatementPrivate;

#define VALA_TYPE_GIR_PARSER (vala_gir_parser_get_type ())
#define VALA_GIR_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GIR_PARSER, ValaGirParser))
#define VALA_GIR_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GIR_PARSER, ValaGirParserClass))
#define VALA_IS_GIR_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GIR_PARSER))
#define VALA_IS_GIR_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GIR_PARSER))
#define VALA_GIR_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GIR_PARSER, ValaGirParserClass))

typedef struct _ValaGirParser ValaGirParser;
typedef struct _ValaGirParserClass ValaGirParserClass;
typedef struct _ValaGirParserPrivate ValaGirParserPrivate;

#define VALA_TYPE_GENERIC_DESTROY_FIELD (vala_generic_destroy_field_get_type ())
#define VALA_GENERIC_DESTROY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GENERIC_DESTROY_FIELD, ValaGenericDestroyField))
#define VALA_GENERIC_DESTROY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GENERIC_DESTROY_FIELD, ValaGenericDestroyFieldClass))
#define VALA_IS_GENERIC_DESTROY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GENERIC_DESTROY_FIELD))
#define VALA_IS_GENERIC_DESTROY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GENERIC_DESTROY_FIELD))
#define VALA_GENERIC_DESTROY_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GENERIC_DESTROY_FIELD, ValaGenericDestroyFieldClass))

typedef struct _ValaGenericDestroyField ValaGenericDestroyField;
typedef struct _ValaGenericDestroyFieldClass ValaGenericDestroyFieldClass;
typedef struct _ValaGenericDestroyFieldPrivate ValaGenericDestroyFieldPrivate;

#define VALA_TYPE_GENERIC_DUP_FIELD (vala_generic_dup_field_get_type ())
#define VALA_GENERIC_DUP_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GENERIC_DUP_FIELD, ValaGenericDupField))
#define VALA_GENERIC_DUP_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GENERIC_DUP_FIELD, ValaGenericDupFieldClass))
#define VALA_IS_GENERIC_DUP_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GENERIC_DUP_FIELD))
#define VALA_IS_GENERIC_DUP_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GENERIC_DUP_FIELD))
#define VALA_GENERIC_DUP_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GENERIC_DUP_FIELD, ValaGenericDupFieldClass))

typedef struct _ValaGenericDupField ValaGenericDupField;
typedef struct _ValaGenericDupFieldClass ValaGenericDupFieldClass;
typedef struct _ValaGenericDupFieldPrivate ValaGenericDupFieldPrivate;

#define VALA_TYPE_GENERIC_TYPE (vala_generic_type_get_type ())
#define VALA_GENERIC_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GENERIC_TYPE, ValaGenericType))
#define VALA_GENERIC_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GENERIC_TYPE, ValaGenericTypeClass))
#define VALA_IS_GENERIC_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GENERIC_TYPE))
#define VALA_IS_GENERIC_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GENERIC_TYPE))
#define VALA_GENERIC_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GENERIC_TYPE, ValaGenericTypeClass))

typedef struct _ValaGenericType ValaGenericType;
typedef struct _ValaGenericTypeClass ValaGenericTypeClass;
typedef struct _ValaGenericTypePrivate ValaGenericTypePrivate;

#define VALA_GENIE_TYPE_PARSER (vala_genie_parser_get_type ())
#define VALA_GENIE_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_GENIE_TYPE_PARSER, ValaGenieParser))
#define VALA_GENIE_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_GENIE_TYPE_PARSER, ValaGenieParserClass))
#define VALA_GENIE_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_GENIE_TYPE_PARSER))
#define VALA_GENIE_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_GENIE_TYPE_PARSER))
#define VALA_GENIE_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_GENIE_TYPE_PARSER, ValaGenieParserClass))

typedef struct _ValaGenieParser ValaGenieParser;
typedef struct _ValaGenieParserClass ValaGenieParserClass;
typedef struct _ValaGenieParserPrivate ValaGenieParserPrivate;

#define VALA_GENIE_TYPE_SCANNER (vala_genie_scanner_get_type ())
#define VALA_GENIE_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_GENIE_TYPE_SCANNER, ValaGenieScanner))
#define VALA_GENIE_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_GENIE_TYPE_SCANNER, ValaGenieScannerClass))
#define VALA_GENIE_IS_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_GENIE_TYPE_SCANNER))
#define VALA_GENIE_IS_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_GENIE_TYPE_SCANNER))
#define VALA_GENIE_SCANNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_GENIE_TYPE_SCANNER, ValaGenieScannerClass))

typedef struct _ValaGenieScanner ValaGenieScanner;
typedef struct _ValaGenieScannerClass ValaGenieScannerClass;
typedef struct _ValaGenieScannerPrivate ValaGenieScannerPrivate;

#define VALA_TYPE_SOURCE_LOCATION (vala_source_location_get_type ())
typedef struct _ValaSourceLocation ValaSourceLocation;
typedef enum  {
	VALA_GENIE_TOKEN_TYPE_NONE,
	VALA_GENIE_TOKEN_TYPE_ABSTRACT,
	VALA_GENIE_TOKEN_TYPE_ARRAY,
	VALA_GENIE_TOKEN_TYPE_AS,
	VALA_GENIE_TOKEN_TYPE_ASSERT,
	VALA_GENIE_TOKEN_TYPE_ASSIGN,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_ADD,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_BITWISE_AND,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_BITWISE_OR,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_BITWISE_XOR,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_DIV,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_MUL,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_PERCENT,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_SHIFT_LEFT,
	VALA_GENIE_TOKEN_TYPE_ASSIGN_SUB,
	VALA_GENIE_TOKEN_TYPE_ASYNC,
	VALA_GENIE_TOKEN_TYPE_BITWISE_AND,
	VALA_GENIE_TOKEN_TYPE_BITWISE_OR,
	VALA_GENIE_TOKEN_TYPE_BREAK,
	VALA_GENIE_TOKEN_TYPE_CARRET,
	VALA_GENIE_TOKEN_TYPE_CASE,
	VALA_GENIE_TOKEN_TYPE_CHARACTER_LITERAL,
	VALA_GENIE_TOKEN_TYPE_CLASS,
	VALA_GENIE_TOKEN_TYPE_CLOSE_BRACE,
	VALA_GENIE_TOKEN_TYPE_CLOSE_BRACKET,
	VALA_GENIE_TOKEN_TYPE_CLOSE_PARENS,
	VALA_GENIE_TOKEN_TYPE_CLOSE_REGEX_LITERAL,
	VALA_GENIE_TOKEN_TYPE_CLOSE_TEMPLATE,
	VALA_GENIE_TOKEN_TYPE_COLON,
	VALA_GENIE_TOKEN_TYPE_COMMA,
	VALA_GENIE_TOKEN_TYPE_CONST,
	VALA_GENIE_TOKEN_TYPE_CONSTRUCT,
	VALA_GENIE_TOKEN_TYPE_CONTINUE,
	VALA_GENIE_TOKEN_TYPE_DEDENT,
	VALA_GENIE_TOKEN_TYPE_DEF,
	VALA_GENIE_TOKEN_TYPE_DEFAULT,
	VALA_GENIE_TOKEN_TYPE_DELEGATE,
	VALA_GENIE_TOKEN_TYPE_DELETE,
	VALA_GENIE_TOKEN_TYPE_DICT,
	VALA_GENIE_TOKEN_TYPE_DIV,
	VALA_GENIE_TOKEN_TYPE_DO,
	VALA_GENIE_TOKEN_TYPE_DOT,
	VALA_GENIE_TOKEN_TYPE_DOWNTO,
	VALA_GENIE_TOKEN_TYPE_DYNAMIC,
	VALA_GENIE_TOKEN_TYPE_ELLIPSIS,
	VALA_GENIE_TOKEN_TYPE_ELSE,
	VALA_GENIE_TOKEN_TYPE_ENUM,
	VALA_GENIE_TOKEN_TYPE_ENSURES,
	VALA_GENIE_TOKEN_TYPE_EOF,
	VALA_GENIE_TOKEN_TYPE_EOL,
	VALA_GENIE_TOKEN_TYPE_EVENT,
	VALA_GENIE_TOKEN_TYPE_EXCEPT,
	VALA_GENIE_TOKEN_TYPE_EXCEPTION,
	VALA_GENIE_TOKEN_TYPE_EXTERN,
	VALA_GENIE_TOKEN_TYPE_FALSE,
	VALA_GENIE_TOKEN_TYPE_FINAL,
	VALA_GENIE_TOKEN_TYPE_FINALLY,
	VALA_GENIE_TOKEN_TYPE_FOR,
	VALA_GENIE_TOKEN_TYPE_GET,
	VALA_GENIE_TOKEN_TYPE_HASH,
	VALA_GENIE_TOKEN_TYPE_IDENTIFIER,
	VALA_GENIE_TOKEN_TYPE_IF,
	VALA_GENIE_TOKEN_TYPE_IMPLEMENTS,
	VALA_GENIE_TOKEN_TYPE_IN,
	VALA_GENIE_TOKEN_TYPE_INDENT,
	VALA_GENIE_TOKEN_TYPE_INIT,
	VALA_GENIE_TOKEN_TYPE_INLINE,
	VALA_GENIE_TOKEN_TYPE_INTEGER_LITERAL,
	VALA_GENIE_TOKEN_TYPE_INTERFACE,
	VALA_GENIE_TOKEN_TYPE_INTERNAL,
	VALA_GENIE_TOKEN_TYPE_INTERR,
	VALA_GENIE_TOKEN_TYPE_IS,
	VALA_GENIE_TOKEN_TYPE_ISA,
	VALA_GENIE_TOKEN_TYPE_LAMBDA,
	VALA_GENIE_TOKEN_TYPE_LIST,
	VALA_GENIE_TOKEN_TYPE_LOCK,
	VALA_GENIE_TOKEN_TYPE_MINUS,
	VALA_GENIE_TOKEN_TYPE_NAMESPACE,
	VALA_GENIE_TOKEN_TYPE_NEW,
	VALA_GENIE_TOKEN_TYPE_NULL,
	VALA_GENIE_TOKEN_TYPE_OF,
	VALA_GENIE_TOKEN_TYPE_OUT,
	VALA_GENIE_TOKEN_TYPE_OP_AND,
	VALA_GENIE_TOKEN_TYPE_OP_DEC,
	VALA_GENIE_TOKEN_TYPE_OP_EQ,
	VALA_GENIE_TOKEN_TYPE_OP_GE,
	VALA_GENIE_TOKEN_TYPE_OP_GT,
	VALA_GENIE_TOKEN_TYPE_OP_INC,
	VALA_GENIE_TOKEN_TYPE_OP_LE,
	VALA_GENIE_TOKEN_TYPE_OP_LT,
	VALA_GENIE_TOKEN_TYPE_OP_NE,
	VALA_GENIE_TOKEN_TYPE_OP_NEG,
	VALA_GENIE_TOKEN_TYPE_OP_OR,
	VALA_GENIE_TOKEN_TYPE_OP_PTR,
	VALA_GENIE_TOKEN_TYPE_OP_SHIFT_LEFT,
	VALA_GENIE_TOKEN_TYPE_OPEN_BRACE,
	VALA_GENIE_TOKEN_TYPE_OPEN_BRACKET,
	VALA_GENIE_TOKEN_TYPE_OPEN_PARENS,
	VALA_GENIE_TOKEN_TYPE_OPEN_REGEX_LITERAL,
	VALA_GENIE_TOKEN_TYPE_OPEN_TEMPLATE,
	VALA_GENIE_TOKEN_TYPE_OVERRIDE,
	VALA_GENIE_TOKEN_TYPE_OWNED,
	VALA_GENIE_TOKEN_TYPE_PARAMS,
	VALA_GENIE_TOKEN_TYPE_PASS,
	VALA_GENIE_TOKEN_TYPE_PERCENT,
	VALA_GENIE_TOKEN_TYPE_PLUS,
	VALA_GENIE_TOKEN_TYPE_PRINT,
	VALA_GENIE_TOKEN_TYPE_PRIVATE,
	VALA_GENIE_TOKEN_TYPE_PROP,
	VALA_GENIE_TOKEN_TYPE_PROTECTED,
	VALA_GENIE_TOKEN_TYPE_PUBLIC,
	VALA_GENIE_TOKEN_TYPE_RAISE,
	VALA_GENIE_TOKEN_TYPE_RAISES,
	VALA_GENIE_TOKEN_TYPE_READONLY,
	VALA_GENIE_TOKEN_TYPE_REAL_LITERAL,
	VALA_GENIE_TOKEN_TYPE_REF,
	VALA_GENIE_TOKEN_TYPE_REGEX_LITERAL,
	VALA_GENIE_TOKEN_TYPE_REQUIRES,
	VALA_GENIE_TOKEN_TYPE_RETURN,
	VALA_GENIE_TOKEN_TYPE_SEALED,
	VALA_GENIE_TOKEN_TYPE_SELF,
	VALA_GENIE_TOKEN_TYPE_SEMICOLON,
	VALA_GENIE_TOKEN_TYPE_SET,
	VALA_GENIE_TOKEN_TYPE_SIZEOF,
	VALA_GENIE_TOKEN_TYPE_STAR,
	VALA_GENIE_TOKEN_TYPE_STATIC,
	VALA_GENIE_TOKEN_TYPE_STRING_LITERAL,
	VALA_GENIE_TOKEN_TYPE_STRUCT,
	VALA_GENIE_TOKEN_TYPE_SUPER,
	VALA_GENIE_TOKEN_TYPE_TEMPLATE_STRING_LITERAL,
	VALA_GENIE_TOKEN_TYPE_TILDE,
	VALA_GENIE_TOKEN_TYPE_TO,
	VALA_GENIE_TOKEN_TYPE_TRUE,
	VALA_GENIE_TOKEN_TYPE_TRY,
	VALA_GENIE_TOKEN_TYPE_TYPEOF,
	VALA_GENIE_TOKEN_TYPE_UNOWNED,
	VALA_GENIE_TOKEN_TYPE_USES,
	VALA_GENIE_TOKEN_TYPE_VAR,
	VALA_GENIE_TOKEN_TYPE_VERBATIM_STRING_LITERAL,
	VALA_GENIE_TOKEN_TYPE_VIRTUAL,
	VALA_GENIE_TOKEN_TYPE_VOID,
	VALA_GENIE_TOKEN_TYPE_VOLATILE,
	VALA_GENIE_TOKEN_TYPE_WEAK,
	VALA_GENIE_TOKEN_TYPE_WHEN,
	VALA_GENIE_TOKEN_TYPE_WHILE,
	VALA_GENIE_TOKEN_TYPE_YIELD
} ValaGenieTokenType;

#define VALA_GENIE_TYPE_TOKEN_TYPE (vala_genie_token_type_get_type ())
typedef struct _ValaIfStatementPrivate ValaIfStatementPrivate;
typedef struct _ValaInitializerListPrivate ValaInitializerListPrivate;
typedef struct _ValaIntegerLiteralPrivate ValaIntegerLiteralPrivate;

#define VALA_TYPE_INTEGER_TYPE (vala_integer_type_get_type ())
#define VALA_INTEGER_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTEGER_TYPE, ValaIntegerType))
#define VALA_INTEGER_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTEGER_TYPE, ValaIntegerTypeClass))
#define VALA_IS_INTEGER_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTEGER_TYPE))
#define VALA_IS_INTEGER_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTEGER_TYPE))
#define VALA_INTEGER_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTEGER_TYPE, ValaIntegerTypeClass))

typedef struct _ValaIntegerType ValaIntegerType;
typedef struct _ValaIntegerTypeClass ValaIntegerTypeClass;
typedef struct _ValaIntegerTypePrivate ValaIntegerTypePrivate;
typedef struct _ValaInterfacePrivate ValaInterfacePrivate;

#define VALA_TYPE_INTERFACE_TYPE (vala_interface_type_get_type ())
#define VALA_INTERFACE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INTERFACE_TYPE, ValaInterfaceType))
#define VALA_INTERFACE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INTERFACE_TYPE, ValaInterfaceTypeClass))
#define VALA_IS_INTERFACE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INTERFACE_TYPE))
#define VALA_IS_INTERFACE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INTERFACE_TYPE))
#define VALA_INTERFACE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INTERFACE_TYPE, ValaInterfaceTypeClass))

typedef struct _ValaInterfaceType ValaInterfaceType;
typedef struct _ValaInterfaceTypeClass ValaInterfaceTypeClass;
typedef struct _ValaInterfaceTypePrivate ValaInterfaceTypePrivate;

#define VALA_TYPE_INVALID_EXPRESSION (vala_invalid_expression_get_type ())
#define VALA_INVALID_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INVALID_EXPRESSION, ValaInvalidExpression))
#define VALA_INVALID_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INVALID_EXPRESSION, ValaInvalidExpressionClass))
#define VALA_IS_INVALID_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INVALID_EXPRESSION))
#define VALA_IS_INVALID_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INVALID_EXPRESSION))
#define VALA_INVALID_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INVALID_EXPRESSION, ValaInvalidExpressionClass))

typedef struct _ValaInvalidExpression ValaInvalidExpression;
typedef struct _ValaInvalidExpressionClass ValaInvalidExpressionClass;
typedef struct _ValaInvalidExpressionPrivate ValaInvalidExpressionPrivate;

#define VALA_TYPE_INVALID_TYPE (vala_invalid_type_get_type ())
#define VALA_INVALID_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_INVALID_TYPE, ValaInvalidType))
#define VALA_INVALID_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_INVALID_TYPE, ValaInvalidTypeClass))
#define VALA_IS_INVALID_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_INVALID_TYPE))
#define VALA_IS_INVALID_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_INVALID_TYPE))
#define VALA_INVALID_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_INVALID_TYPE, ValaInvalidTypeClass))

typedef struct _ValaInvalidType ValaInvalidType;
typedef struct _ValaInvalidTypeClass ValaInvalidTypeClass;
typedef struct _ValaInvalidTypePrivate ValaInvalidTypePrivate;
typedef struct _ValaLambdaExpressionPrivate ValaLambdaExpressionPrivate;
typedef struct _ValaLocalVariablePrivate ValaLocalVariablePrivate;
typedef struct _ValaLockStatementPrivate ValaLockStatementPrivate;
typedef struct _ValaLoopStatementPrivate ValaLoopStatementPrivate;

#define VALA_TYPE_MARKUP_READER (vala_markup_reader_get_type ())
#define VALA_MARKUP_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MARKUP_READER, ValaMarkupReader))
#define VALA_MARKUP_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MARKUP_READER, ValaMarkupReaderClass))
#define VALA_IS_MARKUP_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MARKUP_READER))
#define VALA_IS_MARKUP_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MARKUP_READER))
#define VALA_MARKUP_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MARKUP_READER, ValaMarkupReaderClass))

typedef struct _ValaMarkupReader ValaMarkupReader;
typedef struct _ValaMarkupReaderClass ValaMarkupReaderClass;
typedef struct _ValaMarkupReaderPrivate ValaMarkupReaderPrivate;
typedef enum  {
	VALA_MARKUP_TOKEN_TYPE_NONE,
	VALA_MARKUP_TOKEN_TYPE_START_ELEMENT,
	VALA_MARKUP_TOKEN_TYPE_END_ELEMENT,
	VALA_MARKUP_TOKEN_TYPE_TEXT,
	VALA_MARKUP_TOKEN_TYPE_EOF
} ValaMarkupTokenType;

#define VALA_TYPE_MARKUP_TOKEN_TYPE (vala_markup_token_type_get_type ())
typedef struct _ValaMemberAccessPrivate ValaMemberAccessPrivate;

#define VALA_TYPE_MEMBER_INITIALIZER (vala_member_initializer_get_type ())
#define VALA_MEMBER_INITIALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER_INITIALIZER, ValaMemberInitializer))
#define VALA_MEMBER_INITIALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER_INITIALIZER, ValaMemberInitializerClass))
#define VALA_IS_MEMBER_INITIALIZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER_INITIALIZER))
#define VALA_IS_MEMBER_INITIALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER_INITIALIZER))
#define VALA_MEMBER_INITIALIZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER_INITIALIZER, ValaMemberInitializerClass))

typedef struct _ValaMemberInitializer ValaMemberInitializer;
typedef struct _ValaMemberInitializerClass ValaMemberInitializerClass;
typedef struct _ValaMemberInitializerPrivate ValaMemberInitializerPrivate;
typedef struct _ValaMethodCallPrivate ValaMethodCallPrivate;

#define VALA_TYPE_METHOD_TYPE (vala_method_type_get_type ())
#define VALA_METHOD_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD_TYPE, ValaMethodType))
#define VALA_METHOD_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD_TYPE, ValaMethodTypeClass))
#define VALA_IS_METHOD_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_METHOD_TYPE))
#define VALA_IS_METHOD_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_METHOD_TYPE))
#define VALA_METHOD_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_METHOD_TYPE, ValaMethodTypeClass))

typedef struct _ValaMethodType ValaMethodType;
typedef struct _ValaMethodTypeClass ValaMethodTypeClass;
typedef struct _ValaMethodTypePrivate ValaMethodTypePrivate;
typedef struct _ValaNamedArgumentPrivate ValaNamedArgumentPrivate;
typedef struct _ValaNamespacePrivate ValaNamespacePrivate;
typedef struct _ValaNullLiteralPrivate ValaNullLiteralPrivate;

#define VALA_TYPE_NULL_TYPE (vala_null_type_get_type ())
#define VALA_NULL_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_TYPE, ValaNullType))
#define VALA_NULL_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_TYPE, ValaNullTypeClass))
#define VALA_IS_NULL_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_NULL_TYPE))
#define VALA_IS_NULL_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_NULL_TYPE))
#define VALA_NULL_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_NULL_TYPE, ValaNullTypeClass))

typedef struct _ValaNullType ValaNullType;
typedef struct _ValaNullTypeClass ValaNullTypeClass;
typedef struct _ValaNullTypePrivate ValaNullTypePrivate;
typedef struct _ValaObjectCreationExpressionPrivate ValaObjectCreationExpressionPrivate;

#define VALA_TYPE_OBJECT_TYPE (vala_object_type_get_type ())
#define VALA_OBJECT_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_OBJECT_TYPE, ValaObjectType))
#define VALA_OBJECT_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_OBJECT_TYPE, ValaObjectTypeClass))
#define VALA_IS_OBJECT_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_OBJECT_TYPE))
#define VALA_IS_OBJECT_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_OBJECT_TYPE))
#define VALA_OBJECT_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_OBJECT_TYPE, ValaObjectTypeClass))

typedef struct _ValaObjectType ValaObjectType;
typedef struct _ValaObjectTypeClass ValaObjectTypeClass;
typedef struct _ValaObjectTypePrivate ValaObjectTypePrivate;
typedef struct _ValaParameterPrivate ValaParameterPrivate;
typedef enum  {
	VALA_PARAMETER_DIRECTION_IN,
	VALA_PARAMETER_DIRECTION_OUT,
	VALA_PARAMETER_DIRECTION_REF
} ValaParameterDirection;

#define VALA_TYPE_PARAMETER_DIRECTION (vala_parameter_direction_get_type ())

#define VALA_TYPE_PARSER (vala_parser_get_type ())
#define VALA_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PARSER, ValaParser))
#define VALA_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PARSER, ValaParserClass))
#define VALA_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PARSER))
#define VALA_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PARSER))
#define VALA_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PARSER, ValaParserClass))

typedef struct _ValaParser ValaParser;
typedef struct _ValaParserClass ValaParserClass;
typedef struct _ValaParserPrivate ValaParserPrivate;

#define VALA_TYPE_PARSE_ERROR (vala_parse_error_get_type ())
typedef struct _ValaPhiFunctionPrivate ValaPhiFunctionPrivate;
typedef struct _ValaPointerIndirectionPrivate ValaPointerIndirectionPrivate;

#define VALA_TYPE_POINTER_TYPE (vala_pointer_type_get_type ())
#define VALA_POINTER_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_POINTER_TYPE, ValaPointerType))
#define VALA_POINTER_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_POINTER_TYPE, ValaPointerTypeClass))
#define VALA_IS_POINTER_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_POINTER_TYPE))
#define VALA_IS_POINTER_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_POINTER_TYPE))
#define VALA_POINTER_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_POINTER_TYPE, ValaPointerTypeClass))

typedef struct _ValaPointerType ValaPointerType;
typedef struct _ValaPointerTypeClass ValaPointerTypeClass;
typedef struct _ValaPointerTypePrivate ValaPointerTypePrivate;
typedef struct _ValaPostfixExpressionPrivate ValaPostfixExpressionPrivate;
typedef struct _ValaPropertyAccessorPrivate ValaPropertyAccessorPrivate;

#define VALA_TYPE_PROPERTY_PROTOTYPE (vala_property_prototype_get_type ())
#define VALA_PROPERTY_PROTOTYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_PROPERTY_PROTOTYPE, ValaPropertyPrototype))
#define VALA_PROPERTY_PROTOTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_PROPERTY_PROTOTYPE, ValaPropertyPrototypeClass))
#define VALA_IS_PROPERTY_PROTOTYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_PROPERTY_PROTOTYPE))
#define VALA_IS_PROPERTY_PROTOTYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_PROPERTY_PROTOTYPE))
#define VALA_PROPERTY_PROTOTYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_PROPERTY_PROTOTYPE, ValaPropertyPrototypeClass))

typedef struct _ValaPropertyPrototype ValaPropertyPrototype;
typedef struct _ValaPropertyPrototypeClass ValaPropertyPrototypeClass;
typedef struct _ValaPropertyPrototypePrivate ValaPropertyPrototypePrivate;
typedef struct _ValaRealLiteralPrivate ValaRealLiteralPrivate;
typedef struct _ValaReferenceTransferExpressionPrivate ValaReferenceTransferExpressionPrivate;
typedef struct _ValaRegexLiteralPrivate ValaRegexLiteralPrivate;
typedef struct _ValaReportPrivate ValaReportPrivate;
typedef enum  {
	VALA_REPORT_COLORED_AUTO,
	VALA_REPORT_COLORED_NEVER,
	VALA_REPORT_COLORED_ALWAYS
} ValaReportColored;

#define VALA_REPORT_TYPE_COLORED (vala_report_colored_get_type ())
typedef struct _ValaReturnStatementPrivate ValaReturnStatementPrivate;

#define VALA_TYPE_SCANNER (vala_scanner_get_type ())
#define VALA_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SCANNER, ValaScanner))
#define VALA_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SCANNER, ValaScannerClass))
#define VALA_IS_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SCANNER))
#define VALA_IS_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SCANNER))
#define VALA_SCANNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SCANNER, ValaScannerClass))

typedef struct _ValaScanner ValaScanner;
typedef struct _ValaScannerClass ValaScannerClass;
typedef struct _ValaScannerPrivate ValaScannerPrivate;
typedef enum  {
	VALA_TOKEN_TYPE_NONE,
	VALA_TOKEN_TYPE_ABSTRACT,
	VALA_TOKEN_TYPE_AS,
	VALA_TOKEN_TYPE_ASSIGN,
	VALA_TOKEN_TYPE_ASSIGN_ADD,
	VALA_TOKEN_TYPE_ASSIGN_BITWISE_AND,
	VALA_TOKEN_TYPE_ASSIGN_BITWISE_OR,
	VALA_TOKEN_TYPE_ASSIGN_BITWISE_XOR,
	VALA_TOKEN_TYPE_ASSIGN_DIV,
	VALA_TOKEN_TYPE_ASSIGN_MUL,
	VALA_TOKEN_TYPE_ASSIGN_PERCENT,
	VALA_TOKEN_TYPE_ASSIGN_SHIFT_LEFT,
	VALA_TOKEN_TYPE_ASSIGN_SUB,
	VALA_TOKEN_TYPE_ASYNC,
	VALA_TOKEN_TYPE_BASE,
	VALA_TOKEN_TYPE_BITWISE_AND,
	VALA_TOKEN_TYPE_BITWISE_OR,
	VALA_TOKEN_TYPE_BREAK,
	VALA_TOKEN_TYPE_CARRET,
	VALA_TOKEN_TYPE_CASE,
	VALA_TOKEN_TYPE_CATCH,
	VALA_TOKEN_TYPE_CHARACTER_LITERAL,
	VALA_TOKEN_TYPE_CLASS,
	VALA_TOKEN_TYPE_CLOSE_BRACE,
	VALA_TOKEN_TYPE_CLOSE_BRACKET,
	VALA_TOKEN_TYPE_CLOSE_PARENS,
	VALA_TOKEN_TYPE_CLOSE_REGEX_LITERAL,
	VALA_TOKEN_TYPE_CLOSE_TEMPLATE,
	VALA_TOKEN_TYPE_COLON,
	VALA_TOKEN_TYPE_COMMA,
	VALA_TOKEN_TYPE_CONST,
	VALA_TOKEN_TYPE_CONSTRUCT,
	VALA_TOKEN_TYPE_CONTINUE,
	VALA_TOKEN_TYPE_DEFAULT,
	VALA_TOKEN_TYPE_DELEGATE,
	VALA_TOKEN_TYPE_DELETE,
	VALA_TOKEN_TYPE_DIV,
	VALA_TOKEN_TYPE_DO,
	VALA_TOKEN_TYPE_DOUBLE_COLON,
	VALA_TOKEN_TYPE_DOT,
	VALA_TOKEN_TYPE_DYNAMIC,
	VALA_TOKEN_TYPE_ELLIPSIS,
	VALA_TOKEN_TYPE_ELSE,
	VALA_TOKEN_TYPE_ENUM,
	VALA_TOKEN_TYPE_ENSURES,
	VALA_TOKEN_TYPE_ERRORDOMAIN,
	VALA_TOKEN_TYPE_EOF,
	VALA_TOKEN_TYPE_EXTERN,
	VALA_TOKEN_TYPE_FALSE,
	VALA_TOKEN_TYPE_FINALLY,
	VALA_TOKEN_TYPE_FOR,
	VALA_TOKEN_TYPE_FOREACH,
	VALA_TOKEN_TYPE_GET,
	VALA_TOKEN_TYPE_HASH,
	VALA_TOKEN_TYPE_IDENTIFIER,
	VALA_TOKEN_TYPE_IF,
	VALA_TOKEN_TYPE_IN,
	VALA_TOKEN_TYPE_INLINE,
	VALA_TOKEN_TYPE_INTEGER_LITERAL,
	VALA_TOKEN_TYPE_INTERFACE,
	VALA_TOKEN_TYPE_INTERNAL,
	VALA_TOKEN_TYPE_INTERR,
	VALA_TOKEN_TYPE_IS,
	VALA_TOKEN_TYPE_LAMBDA,
	VALA_TOKEN_TYPE_LOCK,
	VALA_TOKEN_TYPE_MINUS,
	VALA_TOKEN_TYPE_NAMESPACE,
	VALA_TOKEN_TYPE_NEW,
	VALA_TOKEN_TYPE_NULL,
	VALA_TOKEN_TYPE_OUT,
	VALA_TOKEN_TYPE_OP_AND,
	VALA_TOKEN_TYPE_OP_COALESCING,
	VALA_TOKEN_TYPE_OP_DEC,
	VALA_TOKEN_TYPE_OP_EQ,
	VALA_TOKEN_TYPE_OP_GE,
	VALA_TOKEN_TYPE_OP_GT,
	VALA_TOKEN_TYPE_OP_INC,
	VALA_TOKEN_TYPE_OP_LE,
	VALA_TOKEN_TYPE_OP_LT,
	VALA_TOKEN_TYPE_OP_NE,
	VALA_TOKEN_TYPE_OP_NEG,
	VALA_TOKEN_TYPE_OP_OR,
	VALA_TOKEN_TYPE_OP_PTR,
	VALA_TOKEN_TYPE_OP_SHIFT_LEFT,
	VALA_TOKEN_TYPE_OPEN_BRACE,
	VALA_TOKEN_TYPE_OPEN_BRACKET,
	VALA_TOKEN_TYPE_OPEN_PARENS,
	VALA_TOKEN_TYPE_OPEN_REGEX_LITERAL,
	VALA_TOKEN_TYPE_OPEN_TEMPLATE,
	VALA_TOKEN_TYPE_OVERRIDE,
	VALA_TOKEN_TYPE_OWNED,
	VALA_TOKEN_TYPE_PARAMS,
	VALA_TOKEN_TYPE_PARTIAL,
	VALA_TOKEN_TYPE_PERCENT,
	VALA_TOKEN_TYPE_PLUS,
	VALA_TOKEN_TYPE_PRIVATE,
	VALA_TOKEN_TYPE_PROTECTED,
	VALA_TOKEN_TYPE_PUBLIC,
	VALA_TOKEN_TYPE_REAL_LITERAL,
	VALA_TOKEN_TYPE_REF,
	VALA_TOKEN_TYPE_REGEX_LITERAL,
	VALA_TOKEN_TYPE_REQUIRES,
	VALA_TOKEN_TYPE_RETURN,
	VALA_TOKEN_TYPE_SEALED,
	VALA_TOKEN_TYPE_SEMICOLON,
	VALA_TOKEN_TYPE_SET,
	VALA_TOKEN_TYPE_SIGNAL,
	VALA_TOKEN_TYPE_SIZEOF,
	VALA_TOKEN_TYPE_STAR,
	VALA_TOKEN_TYPE_STATIC,
	VALA_TOKEN_TYPE_STRING_LITERAL,
	VALA_TOKEN_TYPE_STRUCT,
	VALA_TOKEN_TYPE_SWITCH,
	VALA_TOKEN_TYPE_TEMPLATE_STRING_LITERAL,
	VALA_TOKEN_TYPE_THIS,
	VALA_TOKEN_TYPE_THROW,
	VALA_TOKEN_TYPE_THROWS,
	VALA_TOKEN_TYPE_TILDE,
	VALA_TOKEN_TYPE_TRUE,
	VALA_TOKEN_TYPE_TRY,
	VALA_TOKEN_TYPE_TYPEOF,
	VALA_TOKEN_TYPE_UNLOCK,
	VALA_TOKEN_TYPE_UNOWNED,
	VALA_TOKEN_TYPE_USING,
	VALA_TOKEN_TYPE_VAR,
	VALA_TOKEN_TYPE_VERBATIM_STRING_LITERAL,
	VALA_TOKEN_TYPE_VIRTUAL,
	VALA_TOKEN_TYPE_VOID,
	VALA_TOKEN_TYPE_VOLATILE,
	VALA_TOKEN_TYPE_WEAK,
	VALA_TOKEN_TYPE_WHILE,
	VALA_TOKEN_TYPE_WITH,
	VALA_TOKEN_TYPE_YIELD
} ValaTokenType;

#define VALA_TYPE_TOKEN_TYPE (vala_token_type_get_type ())
typedef struct _ValaScopePrivate ValaScopePrivate;
typedef struct _ValaSemanticAnalyzerPrivate ValaSemanticAnalyzerPrivate;

#define VALA_TYPE_STRUCT_VALUE_TYPE (vala_struct_value_type_get_type ())
#define VALA_STRUCT_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRUCT_VALUE_TYPE, ValaStructValueType))
#define VALA_STRUCT_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRUCT_VALUE_TYPE, ValaStructValueTypeClass))
#define VALA_IS_STRUCT_VALUE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STRUCT_VALUE_TYPE))
#define VALA_IS_STRUCT_VALUE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STRUCT_VALUE_TYPE))
#define VALA_STRUCT_VALUE_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STRUCT_VALUE_TYPE, ValaStructValueTypeClass))

typedef struct _ValaStructValueType ValaStructValueType;
typedef struct _ValaStructValueTypeClass ValaStructValueTypeClass;

#define VALA_TYPE_SIGNAL_TYPE (vala_signal_type_get_type ())
#define VALA_SIGNAL_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SIGNAL_TYPE, ValaSignalType))
#define VALA_SIGNAL_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SIGNAL_TYPE, ValaSignalTypeClass))
#define VALA_IS_SIGNAL_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SIGNAL_TYPE))
#define VALA_IS_SIGNAL_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SIGNAL_TYPE))
#define VALA_SIGNAL_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SIGNAL_TYPE, ValaSignalTypeClass))

typedef struct _ValaSignalType ValaSignalType;
typedef struct _ValaSignalTypeClass ValaSignalTypeClass;
typedef struct _ValaSignalTypePrivate ValaSignalTypePrivate;
typedef struct _ValaSizeofExpressionPrivate ValaSizeofExpressionPrivate;
typedef struct _ValaSliceExpressionPrivate ValaSliceExpressionPrivate;
typedef struct _ValaSourceFilePrivate ValaSourceFilePrivate;
typedef enum  {
	VALA_SOURCE_FILE_TYPE_NONE,
	VALA_SOURCE_FILE_TYPE_SOURCE,
	VALA_SOURCE_FILE_TYPE_PACKAGE,
	VALA_SOURCE_FILE_TYPE_FAST
} ValaSourceFileType;

#define VALA_TYPE_SOURCE_FILE_TYPE (vala_source_file_type_get_type ())
typedef struct _ValaSourceReferencePrivate ValaSourceReferencePrivate;

#define VALA_TYPE_STATEMENT_LIST (vala_statement_list_get_type ())
#define VALA_STATEMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STATEMENT_LIST, ValaStatementList))
#define VALA_STATEMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STATEMENT_LIST, ValaStatementListClass))
#define VALA_IS_STATEMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STATEMENT_LIST))
#define VALA_IS_STATEMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_STATEMENT_LIST))
#define VALA_STATEMENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_STATEMENT_LIST, ValaStatementListClass))

typedef struct _ValaStatementList ValaStatementList;
typedef struct _ValaStatementListClass ValaStatementListClass;
typedef struct _ValaStatementListPrivate ValaStatementListPrivate;
typedef struct _ValaStringLiteralPrivate ValaStringLiteralPrivate;
typedef struct _ValaStructPrivate ValaStructPrivate;
typedef struct _ValaStructValueTypePrivate ValaStructValueTypePrivate;
typedef struct _ValaSwitchLabelPrivate ValaSwitchLabelPrivate;
typedef struct _ValaSwitchSectionPrivate ValaSwitchSectionPrivate;
typedef struct _ValaSwitchStatementPrivate ValaSwitchStatementPrivate;
typedef enum  {
	VALA_SYMBOL_ACCESSIBILITY_PRIVATE,
	VALA_SYMBOL_ACCESSIBILITY_INTERNAL,
	VALA_SYMBOL_ACCESSIBILITY_PROTECTED,
	VALA_SYMBOL_ACCESSIBILITY_PUBLIC
} ValaSymbolAccessibility;

#define VALA_TYPE_SYMBOL_ACCESSIBILITY (vala_symbol_accessibility_get_type ())

#define VALA_TYPE_VERSION_ATTRIBUTE (vala_version_attribute_get_type ())
#define VALA_VERSION_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VERSION_ATTRIBUTE, ValaVersionAttribute))
#define VALA_VERSION_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VERSION_ATTRIBUTE, ValaVersionAttributeClass))
#define VALA_IS_VERSION_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VERSION_ATTRIBUTE))
#define VALA_IS_VERSION_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VERSION_ATTRIBUTE))
#define VALA_VERSION_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VERSION_ATTRIBUTE, ValaVersionAttributeClass))

typedef struct _ValaVersionAttribute ValaVersionAttribute;
typedef struct _ValaVersionAttributeClass ValaVersionAttributeClass;
typedef struct _ValaSymbolResolverPrivate ValaSymbolResolverPrivate;
typedef struct _ValaTargetValuePrivate ValaTargetValuePrivate;
typedef struct _ValaTemplatePrivate ValaTemplatePrivate;
typedef struct _ValaThrowStatementPrivate ValaThrowStatementPrivate;

#define VALA_TYPE_TRAVERSE_VISITOR (vala_traverse_visitor_get_type ())
#define VALA_TRAVERSE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TRAVERSE_VISITOR, ValaTraverseVisitor))
#define VALA_TRAVERSE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TRAVERSE_VISITOR, ValaTraverseVisitorClass))
#define VALA_IS_TRAVERSE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TRAVERSE_VISITOR))
#define VALA_IS_TRAVERSE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TRAVERSE_VISITOR))
#define VALA_TRAVERSE_VISITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TRAVERSE_VISITOR, ValaTraverseVisitorClass))

typedef struct _ValaTraverseVisitor ValaTraverseVisitor;
typedef struct _ValaTraverseVisitorClass ValaTraverseVisitorClass;
typedef struct _ValaTraverseVisitorPrivate ValaTraverseVisitorPrivate;
typedef enum  {
	VALA_TRAVERSE_STATUS_STOP,
	VALA_TRAVERSE_STATUS_CONTINUE
} ValaTraverseStatus;

#define VALA_TYPE_TRAVERSE_STATUS (vala_traverse_status_get_type ())
typedef ValaTraverseStatus (*ValaTraverseFunc) (ValaCodeNode* node, gpointer user_data);
typedef struct _ValaTryStatementPrivate ValaTryStatementPrivate;
typedef struct _ValaTuplePrivate ValaTuplePrivate;
typedef struct _ValaTypeCheckPrivate ValaTypeCheckPrivate;
typedef struct _ValaTypeofExpressionPrivate ValaTypeofExpressionPrivate;
typedef struct _ValaTypeParameterPrivate ValaTypeParameterPrivate;
typedef struct _ValaUnaryExpressionPrivate ValaUnaryExpressionPrivate;
typedef enum  {
	VALA_UNARY_OPERATOR_NONE,
	VALA_UNARY_OPERATOR_PLUS,
	VALA_UNARY_OPERATOR_MINUS,
	VALA_UNARY_OPERATOR_LOGICAL_NEGATION,
	VALA_UNARY_OPERATOR_BITWISE_COMPLEMENT,
	VALA_UNARY_OPERATOR_INCREMENT,
	VALA_UNARY_OPERATOR_DECREMENT,
	VALA_UNARY_OPERATOR_REF,
	VALA_UNARY_OPERATOR_OUT
} ValaUnaryOperator;

#define VALA_TYPE_UNARY_OPERATOR (vala_unary_operator_get_type ())
typedef struct _ValaUnlockStatementPrivate ValaUnlockStatementPrivate;

#define VALA_TYPE_UNRESOLVED_SYMBOL (vala_unresolved_symbol_get_type ())
#define VALA_UNRESOLVED_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNRESOLVED_SYMBOL, ValaUnresolvedSymbol))
#define VALA_UNRESOLVED_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNRESOLVED_SYMBOL, ValaUnresolvedSymbolClass))
#define VALA_IS_UNRESOLVED_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNRESOLVED_SYMBOL))
#define VALA_IS_UNRESOLVED_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNRESOLVED_SYMBOL))
#define VALA_UNRESOLVED_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNRESOLVED_SYMBOL, ValaUnresolvedSymbolClass))

typedef struct _ValaUnresolvedSymbol ValaUnresolvedSymbol;
typedef struct _ValaUnresolvedSymbolClass ValaUnresolvedSymbolClass;
typedef struct _ValaUnresolvedSymbolPrivate ValaUnresolvedSymbolPrivate;

#define VALA_TYPE_UNRESOLVED_TYPE (vala_unresolved_type_get_type ())
#define VALA_UNRESOLVED_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNRESOLVED_TYPE, ValaUnresolvedType))
#define VALA_UNRESOLVED_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNRESOLVED_TYPE, ValaUnresolvedTypeClass))
#define VALA_IS_UNRESOLVED_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNRESOLVED_TYPE))
#define VALA_IS_UNRESOLVED_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNRESOLVED_TYPE))
#define VALA_UNRESOLVED_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNRESOLVED_TYPE, ValaUnresolvedTypeClass))

typedef struct _ValaUnresolvedType ValaUnresolvedType;
typedef struct _ValaUnresolvedTypeClass ValaUnresolvedTypeClass;
typedef struct _ValaUnresolvedTypePrivate ValaUnresolvedTypePrivate;
typedef struct _ValaUsedAttrPrivate ValaUsedAttrPrivate;
typedef struct _ValaUsingDirectivePrivate ValaUsingDirectivePrivate;

#define VALA_TYPE_VAR_TYPE (vala_var_type_get_type ())
#define VALA_VAR_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VAR_TYPE, ValaVarType))
#define VALA_VAR_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VAR_TYPE, ValaVarTypeClass))
#define VALA_IS_VAR_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VAR_TYPE))
#define VALA_IS_VAR_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VAR_TYPE))
#define VALA_VAR_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VAR_TYPE, ValaVarTypeClass))

typedef struct _ValaVarType ValaVarType;
typedef struct _ValaVarTypeClass ValaVarTypeClass;
typedef struct _ValaVarTypePrivate ValaVarTypePrivate;
typedef struct _ValaVersionAttributePrivate ValaVersionAttributePrivate;

#define VALA_TYPE_VOID_TYPE (vala_void_type_get_type ())
#define VALA_VOID_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VOID_TYPE, ValaVoidType))
#define VALA_VOID_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VOID_TYPE, ValaVoidTypeClass))
#define VALA_IS_VOID_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VOID_TYPE))
#define VALA_IS_VOID_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VOID_TYPE))
#define VALA_VOID_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VOID_TYPE, ValaVoidTypeClass))

typedef struct _ValaVoidType ValaVoidType;
typedef struct _ValaVoidTypeClass ValaVoidTypeClass;
typedef struct _ValaVoidTypePrivate ValaVoidTypePrivate;
typedef struct _ValaWhileStatementPrivate ValaWhileStatementPrivate;
typedef struct _ValaWithStatementPrivate ValaWithStatementPrivate;
typedef struct _ValaYieldStatementPrivate ValaYieldStatementPrivate;

struct _ValaCodeNode {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GList* attributes;
	ValaCodeNodePrivate * priv;
};

struct _ValaCodeNodeClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCodeNode *self);
	void (*accept) (ValaCodeNode* self, ValaCodeVisitor* visitor);
	void (*accept_children) (ValaCodeNode* self, ValaCodeVisitor* visitor);
	gboolean (*check) (ValaCodeNode* self, ValaCodeContext* context);
	void (*emit) (ValaCodeNode* self, ValaCodeGenerator* codegen);
	void (*replace_type) (ValaCodeNode* self, ValaDataType* old_type, ValaDataType* new_type);
	void (*replace_expression) (ValaCodeNode* self, ValaExpression* old_node, ValaExpression* new_node);
	gchar* (*to_string) (ValaCodeNode* self);
	void (*get_defined_variables) (ValaCodeNode* self, ValaCollection* collection);
	void (*get_used_variables) (ValaCodeNode* self, ValaCollection* collection);
	void (*get_error_types) (ValaCodeNode* self, ValaCollection* collection, ValaSourceReference* source_reference);
};

struct _ValaExpression {
	ValaCodeNode parent_instance;
	ValaExpressionPrivate * priv;
};

struct _ValaExpressionClass {
	ValaCodeNodeClass parent_class;
	gboolean (*is_constant) (ValaExpression* self);
	gboolean (*is_pure) (ValaExpression* self);
	gboolean (*is_non_null) (ValaExpression* self);
	gboolean (*is_accessible) (ValaExpression* self, ValaSymbol* sym);
};

struct _ValaAddressofExpression {
	ValaExpression parent_instance;
	ValaAddressofExpressionPrivate * priv;
};

struct _ValaAddressofExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaSymbol {
	ValaCodeNode parent_instance;
	ValaSymbolPrivate * priv;
};

struct _ValaSymbolClass {
	ValaCodeNodeClass parent_class;
	gboolean (*is_instance_member) (ValaSymbol* self);
	gboolean (*is_class_member) (ValaSymbol* self);
	void (*add_namespace) (ValaSymbol* self, ValaNamespace* ns);
	void (*add_class) (ValaSymbol* self, ValaClass* cl);
	void (*add_interface) (ValaSymbol* self, ValaInterface* iface);
	void (*add_struct) (ValaSymbol* self, ValaStruct* st);
	void (*add_enum) (ValaSymbol* self, ValaEnum* en);
	void (*add_error_domain) (ValaSymbol* self, ValaErrorDomain* edomain);
	void (*add_delegate) (ValaSymbol* self, ValaDelegate* d);
	void (*add_constant) (ValaSymbol* self, ValaConstant* constant);
	void (*add_field) (ValaSymbol* self, ValaField* f);
	void (*add_method) (ValaSymbol* self, ValaMethod* m);
	void (*add_property) (ValaSymbol* self, ValaProperty* prop);
	void (*add_signal) (ValaSymbol* self, ValaSignal* sig);
	void (*add_constructor) (ValaSymbol* self, ValaConstructor* c);
	void (*add_destructor) (ValaSymbol* self, ValaDestructor* d);
};

struct _ValaSubroutine {
	ValaSymbol parent_instance;
	ValaSubroutinePrivate * priv;
};

struct _ValaSubroutineClass {
	ValaSymbolClass parent_class;
	gboolean (*get_has_result) (ValaSubroutine* self);
};

struct _ValaCallableIface {
	GTypeInterface parent_iface;
	ValaDataType* (*get_return_type) (ValaCallable* self);
	void (*set_return_type) (ValaCallable* self, ValaDataType* value);
	void (*add_parameter) (ValaCallable* self, ValaParameter* param);
	ValaList* (*get_parameters) (ValaCallable* self);
};

struct _ValaMethod {
	ValaSubroutine parent_instance;
	ValaList* error_types;
	ValaMethodPrivate * priv;
};

struct _ValaMethodClass {
	ValaSubroutineClass parent_class;
};

struct _ValaArrayCopyMethod {
	ValaMethod parent_instance;
	ValaArrayCopyMethodPrivate * priv;
};

struct _ValaArrayCopyMethodClass {
	ValaMethodClass parent_class;
};

struct _ValaArrayCreationExpression {
	ValaExpression parent_instance;
	ValaArrayCreationExpressionPrivate * priv;
};

struct _ValaArrayCreationExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaVariable {
	ValaSymbol parent_instance;
	ValaVariablePrivate * priv;
};

struct _ValaVariableClass {
	ValaSymbolClass parent_class;
};

struct _ValaLockableIface {
	GTypeInterface parent_iface;
	gboolean (*get_lock_used) (ValaLockable* self);
	void (*set_lock_used) (ValaLockable* self, gboolean value);
};

struct _ValaField {
	ValaVariable parent_instance;
	ValaFieldPrivate * priv;
};

struct _ValaFieldClass {
	ValaVariableClass parent_class;
};

struct _ValaArrayLengthField {
	ValaField parent_instance;
	ValaArrayLengthFieldPrivate * priv;
};

struct _ValaArrayLengthFieldClass {
	ValaFieldClass parent_class;
};

struct _ValaArrayMoveMethod {
	ValaMethod parent_instance;
	ValaArrayMoveMethodPrivate * priv;
};

struct _ValaArrayMoveMethodClass {
	ValaMethodClass parent_class;
};

struct _ValaArrayResizeMethod {
	ValaMethod parent_instance;
	ValaArrayResizeMethodPrivate * priv;
};

struct _ValaArrayResizeMethodClass {
	ValaMethodClass parent_class;
};

struct _ValaDataType {
	ValaCodeNode parent_instance;
	ValaDataTypePrivate * priv;
};

struct _ValaDataTypeClass {
	ValaCodeNodeClass parent_class;
	gchar* (*to_qualified_string) (ValaDataType* self, ValaScope* scope);
	ValaDataType* (*copy) (ValaDataType* self);
	gboolean (*equals) (ValaDataType* self, ValaDataType* type2);
	gboolean (*stricter) (ValaDataType* self, ValaDataType* type2);
	gboolean (*compatible) (ValaDataType* self, ValaDataType* target_type);
	gboolean (*is_invokable) (ValaDataType* self);
	ValaDataType* (*get_return_type) (ValaDataType* self);
	ValaList* (*get_parameters) (ValaDataType* self);
	gboolean (*is_reference_type_or_type_parameter) (ValaDataType* self);
	gboolean (*is_accessible) (ValaDataType* self, ValaSymbol* sym);
	ValaSymbol* (*get_member) (ValaDataType* self, const gchar* member_name);
	ValaSymbol* (*get_pointer_member) (ValaDataType* self, const gchar* member_name);
	gboolean (*is_real_struct_type) (ValaDataType* self);
	gboolean (*is_disposable) (ValaDataType* self);
	ValaDataType* (*get_actual_type) (ValaDataType* self, ValaDataType* derived_instance_type, ValaList* method_type_arguments, ValaCodeNode* node_reference);
	ValaDataType* (*infer_type_argument) (ValaDataType* self, ValaTypeParameter* type_param, ValaDataType* value_type);
	gchar* (*to_prototype_string) (ValaDataType* self, const gchar* override_name);
};

struct _ValaReferenceType {
	ValaDataType parent_instance;
	ValaReferenceTypePrivate * priv;
};

struct _ValaReferenceTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaArrayType {
	ValaReferenceType parent_instance;
	ValaArrayTypePrivate * priv;
};

struct _ValaArrayTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaAssignment {
	ValaExpression parent_instance;
	ValaAssignmentPrivate * priv;
};

struct _ValaAssignmentClass {
	ValaExpressionClass parent_class;
};

struct _ValaAttribute {
	ValaCodeNode parent_instance;
	ValaAttributePrivate * priv;
};

struct _ValaAttributeClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaBaseAccess {
	ValaExpression parent_instance;
	ValaBaseAccessPrivate * priv;
};

struct _ValaBaseAccessClass {
	ValaExpressionClass parent_class;
};

struct _ValaBasicBlock {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaBasicBlockPrivate * priv;
};

struct _ValaBasicBlockClass {
	GTypeClass parent_class;
	void (*finalize) (ValaBasicBlock *self);
};

struct _ValaBinaryExpression {
	ValaExpression parent_instance;
	ValaBinaryExpressionPrivate * priv;
};

struct _ValaBinaryExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaStatementIface {
	GTypeInterface parent_iface;
};

struct _ValaBlock {
	ValaSymbol parent_instance;
	ValaBlockPrivate * priv;
};

struct _ValaBlockClass {
	ValaSymbolClass parent_class;
};

struct _ValaLiteral {
	ValaExpression parent_instance;
	ValaLiteralPrivate * priv;
};

struct _ValaLiteralClass {
	ValaExpressionClass parent_class;
};

struct _ValaBooleanLiteral {
	ValaLiteral parent_instance;
	ValaBooleanLiteralPrivate * priv;
};

struct _ValaBooleanLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaValueType {
	ValaDataType parent_instance;
	ValaValueTypePrivate * priv;
};

struct _ValaValueTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaBooleanType {
	ValaValueType parent_instance;
	ValaBooleanTypePrivate * priv;
};

struct _ValaBooleanTypeClass {
	ValaValueTypeClass parent_class;
};

struct _ValaBreakStatement {
	ValaCodeNode parent_instance;
	ValaBreakStatementPrivate * priv;
};

struct _ValaBreakStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaCallableExpressionIface {
	GTypeInterface parent_iface;
	gboolean (*get_is_yield_expression) (ValaCallableExpression* self);
	void (*set_is_yield_expression) (ValaCallableExpression* self, gboolean value);
	gboolean (*get_is_chainup) (ValaCallableExpression* self);
	void (*set_is_chainup) (ValaCallableExpression* self, gboolean value);
	ValaExpression* (*get_call) (ValaCallableExpression* self);
	void (*add_argument) (ValaCallableExpression* self, ValaExpression* arg);
	ValaList* (*get_argument_list) (ValaCallableExpression* self);
};

struct _ValaCallableType {
	ValaDataType parent_instance;
	ValaCallableTypePrivate * priv;
};

struct _ValaCallableTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaCastExpression {
	ValaExpression parent_instance;
	ValaCastExpressionPrivate * priv;
};

struct _ValaCastExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaCatchClause {
	ValaCodeNode parent_instance;
	ValaCatchClausePrivate * priv;
};

struct _ValaCatchClauseClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaCharacterLiteral {
	ValaLiteral parent_instance;
	ValaCharacterLiteralPrivate * priv;
};

struct _ValaCharacterLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaTypeSymbol {
	ValaSymbol parent_instance;
	ValaTypeSymbolPrivate * priv;
};

struct _ValaTypeSymbolClass {
	ValaSymbolClass parent_class;
	gboolean (*is_reference_type) (ValaTypeSymbol* self);
	gboolean (*is_subtype_of) (ValaTypeSymbol* self, ValaTypeSymbol* t);
	gint (*get_type_parameter_index) (ValaTypeSymbol* self, const gchar* name);
};

struct _ValaObjectTypeSymbol {
	ValaTypeSymbol parent_instance;
	ValaObjectTypeSymbolPrivate * priv;
};

struct _ValaObjectTypeSymbolClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaClass {
	ValaObjectTypeSymbol parent_instance;
	ValaClassPrivate * priv;
};

struct _ValaClassClass {
	ValaObjectTypeSymbolClass parent_class;
};

struct _ValaClassType {
	ValaReferenceType parent_instance;
	ValaClassTypePrivate * priv;
};

struct _ValaClassTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaCodeContext {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCodeContextPrivate * priv;
};

struct _ValaCodeContextClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCodeContext *self);
};

struct _ValaCodeVisitor {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCodeVisitorPrivate * priv;
};

struct _ValaCodeVisitorClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCodeVisitor *self);
	void (*visit_source_file) (ValaCodeVisitor* self, ValaSourceFile* source_file);
	void (*visit_namespace) (ValaCodeVisitor* self, ValaNamespace* ns);
	void (*visit_class) (ValaCodeVisitor* self, ValaClass* cl);
	void (*visit_struct) (ValaCodeVisitor* self, ValaStruct* st);
	void (*visit_interface) (ValaCodeVisitor* self, ValaInterface* iface);
	void (*visit_enum) (ValaCodeVisitor* self, ValaEnum* en);
	void (*visit_enum_value) (ValaCodeVisitor* self, ValaEnumValue* ev);
	void (*visit_error_domain) (ValaCodeVisitor* self, ValaErrorDomain* edomain);
	void (*visit_error_code) (ValaCodeVisitor* self, ValaErrorCode* ecode);
	void (*visit_delegate) (ValaCodeVisitor* self, ValaDelegate* d);
	void (*visit_constant) (ValaCodeVisitor* self, ValaConstant* c);
	void (*visit_field) (ValaCodeVisitor* self, ValaField* f);
	void (*visit_method) (ValaCodeVisitor* self, ValaMethod* m);
	void (*visit_creation_method) (ValaCodeVisitor* self, ValaCreationMethod* m);
	void (*visit_formal_parameter) (ValaCodeVisitor* self, ValaParameter* p);
	void (*visit_property) (ValaCodeVisitor* self, ValaProperty* prop);
	void (*visit_property_accessor) (ValaCodeVisitor* self, ValaPropertyAccessor* acc);
	void (*visit_signal) (ValaCodeVisitor* self, ValaSignal* sig);
	void (*visit_constructor) (ValaCodeVisitor* self, ValaConstructor* c);
	void (*visit_destructor) (ValaCodeVisitor* self, ValaDestructor* d);
	void (*visit_type_parameter) (ValaCodeVisitor* self, ValaTypeParameter* p);
	void (*visit_using_directive) (ValaCodeVisitor* self, ValaUsingDirective* ns);
	void (*visit_data_type) (ValaCodeVisitor* self, ValaDataType* type);
	void (*visit_block) (ValaCodeVisitor* self, ValaBlock* b);
	void (*visit_empty_statement) (ValaCodeVisitor* self, ValaEmptyStatement* stmt);
	void (*visit_declaration_statement) (ValaCodeVisitor* self, ValaDeclarationStatement* stmt);
	void (*visit_local_variable) (ValaCodeVisitor* self, ValaLocalVariable* local);
	void (*visit_initializer_list) (ValaCodeVisitor* self, ValaInitializerList* list);
	void (*visit_expression_statement) (ValaCodeVisitor* self, ValaExpressionStatement* stmt);
	void (*visit_if_statement) (ValaCodeVisitor* self, ValaIfStatement* stmt);
	void (*visit_switch_statement) (ValaCodeVisitor* self, ValaSwitchStatement* stmt);
	void (*visit_switch_section) (ValaCodeVisitor* self, ValaSwitchSection* section);
	void (*visit_switch_label) (ValaCodeVisitor* self, ValaSwitchLabel* label);
	void (*visit_loop_statement) (ValaCodeVisitor* self, ValaLoopStatement* stmt);
	void (*visit_while_statement) (ValaCodeVisitor* self, ValaWhileStatement* stmt);
	void (*visit_do_statement) (ValaCodeVisitor* self, ValaDoStatement* stmt);
	void (*visit_for_statement) (ValaCodeVisitor* self, ValaForStatement* stmt);
	void (*visit_foreach_statement) (ValaCodeVisitor* self, ValaForeachStatement* stmt);
	void (*visit_break_statement) (ValaCodeVisitor* self, ValaBreakStatement* stmt);
	void (*visit_continue_statement) (ValaCodeVisitor* self, ValaContinueStatement* stmt);
	void (*visit_return_statement) (ValaCodeVisitor* self, ValaReturnStatement* stmt);
	void (*visit_yield_statement) (ValaCodeVisitor* self, ValaYieldStatement* y);
	void (*visit_throw_statement) (ValaCodeVisitor* self, ValaThrowStatement* stmt);
	void (*visit_try_statement) (ValaCodeVisitor* self, ValaTryStatement* stmt);
	void (*visit_catch_clause) (ValaCodeVisitor* self, ValaCatchClause* clause);
	void (*visit_lock_statement) (ValaCodeVisitor* self, ValaLockStatement* stmt);
	void (*visit_unlock_statement) (ValaCodeVisitor* self, ValaUnlockStatement* stmt);
	void (*visit_with_statement) (ValaCodeVisitor* self, ValaWithStatement* stmt);
	void (*visit_delete_statement) (ValaCodeVisitor* self, ValaDeleteStatement* stmt);
	void (*visit_expression) (ValaCodeVisitor* self, ValaExpression* expr);
	void (*visit_array_creation_expression) (ValaCodeVisitor* self, ValaArrayCreationExpression* expr);
	void (*visit_boolean_literal) (ValaCodeVisitor* self, ValaBooleanLiteral* lit);
	void (*visit_character_literal) (ValaCodeVisitor* self, ValaCharacterLiteral* lit);
	void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
	void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
	void (*visit_regex_literal) (ValaCodeVisitor* self, ValaRegexLiteral* lit);
	void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
	void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
	void (*visit_tuple) (ValaCodeVisitor* self, ValaTuple* tuple);
	void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
	void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
	void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
	void (*visit_element_access) (ValaCodeVisitor* self, ValaElementAccess* expr);
	void (*visit_slice_expression) (ValaCodeVisitor* self, ValaSliceExpression* expr);
	void (*visit_base_access) (ValaCodeVisitor* self, ValaBaseAccess* expr);
	void (*visit_postfix_expression) (ValaCodeVisitor* self, ValaPostfixExpression* expr);
	void (*visit_object_creation_expression) (ValaCodeVisitor* self, ValaObjectCreationExpression* expr);
	void (*visit_sizeof_expression) (ValaCodeVisitor* self, ValaSizeofExpression* expr);
	void (*visit_typeof_expression) (ValaCodeVisitor* self, ValaTypeofExpression* expr);
	void (*visit_unary_expression) (ValaCodeVisitor* self, ValaUnaryExpression* expr);
	void (*visit_cast_expression) (ValaCodeVisitor* self, ValaCastExpression* expr);
	void (*visit_named_argument) (ValaCodeVisitor* self, ValaNamedArgument* expr);
	void (*visit_pointer_indirection) (ValaCodeVisitor* self, ValaPointerIndirection* expr);
	void (*visit_addressof_expression) (ValaCodeVisitor* self, ValaAddressofExpression* expr);
	void (*visit_reference_transfer_expression) (ValaCodeVisitor* self, ValaReferenceTransferExpression* expr);
	void (*visit_binary_expression) (ValaCodeVisitor* self, ValaBinaryExpression* expr);
	void (*visit_type_check) (ValaCodeVisitor* self, ValaTypeCheck* expr);
	void (*visit_conditional_expression) (ValaCodeVisitor* self, ValaConditionalExpression* expr);
	void (*visit_lambda_expression) (ValaCodeVisitor* self, ValaLambdaExpression* expr);
	void (*visit_assignment) (ValaCodeVisitor* self, ValaAssignment* a);
	void (*visit_end_full_expression) (ValaCodeVisitor* self, ValaExpression* expr);
};

struct _ValaCodeGenerator {
	ValaCodeVisitor parent_instance;
	ValaCodeGeneratorPrivate * priv;
};

struct _ValaCodeGeneratorClass {
	ValaCodeVisitorClass parent_class;
	void (*emit) (ValaCodeGenerator* self, ValaCodeContext* context);
	ValaTargetValue* (*load_local) (ValaCodeGenerator* self, ValaLocalVariable* local, ValaExpression* expr);
	void (*store_local) (ValaCodeGenerator* self, ValaLocalVariable* local, ValaTargetValue* value, gboolean initializer, ValaSourceReference* source_reference);
	ValaTargetValue* (*load_parameter) (ValaCodeGenerator* self, ValaParameter* param, ValaExpression* expr);
	void (*store_parameter) (ValaCodeGenerator* self, ValaParameter* param, ValaTargetValue* value, gboolean capturing_parameter, ValaSourceReference* source_reference);
	ValaTargetValue* (*load_field) (ValaCodeGenerator* self, ValaField* field, ValaTargetValue* instance, ValaExpression* expr);
	void (*store_field) (ValaCodeGenerator* self, ValaField* field, ValaTargetValue* instance, ValaTargetValue* value, ValaSourceReference* source_reference, gboolean initializer);
};

struct _ValaAttributeCache {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaAttributeCachePrivate * priv;
};

struct _ValaAttributeCacheClass {
	GTypeClass parent_class;
	void (*finalize) (ValaAttributeCache *self);
};

struct _ValaCodeWriter {
	ValaCodeVisitor parent_instance;
	ValaCodeWriterPrivate * priv;
};

struct _ValaCodeWriterClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaComment {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCommentPrivate * priv;
};

struct _ValaCommentClass {
	GTypeClass parent_class;
	void (*finalize) (ValaComment *self);
};

struct _ValaGirComment {
	ValaComment parent_instance;
	ValaGirCommentPrivate * priv;
};

struct _ValaGirCommentClass {
	ValaCommentClass parent_class;
};

struct _ValaConditionalExpression {
	ValaExpression parent_instance;
	ValaConditionalExpressionPrivate * priv;
};

struct _ValaConditionalExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaConstant {
	ValaSymbol parent_instance;
	ValaConstantPrivate * priv;
};

struct _ValaConstantClass {
	ValaSymbolClass parent_class;
};

struct _ValaConstructor {
	ValaSubroutine parent_instance;
	ValaConstructorPrivate * priv;
};

struct _ValaConstructorClass {
	ValaSubroutineClass parent_class;
};

struct _ValaContinueStatement {
	ValaCodeNode parent_instance;
	ValaContinueStatementPrivate * priv;
};

struct _ValaContinueStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaCreationMethod {
	ValaMethod parent_instance;
	ValaCreationMethodPrivate * priv;
};

struct _ValaCreationMethodClass {
	ValaMethodClass parent_class;
};

struct _ValaDeclarationStatement {
	ValaCodeNode parent_instance;
	ValaDeclarationStatementPrivate * priv;
};

struct _ValaDeclarationStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaDelegate {
	ValaTypeSymbol parent_instance;
	ValaDelegatePrivate * priv;
};

struct _ValaDelegateClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaDelegateDestroyField {
	ValaField parent_instance;
	ValaDelegateDestroyFieldPrivate * priv;
};

struct _ValaDelegateDestroyFieldClass {
	ValaFieldClass parent_class;
};

struct _ValaDelegateTargetField {
	ValaField parent_instance;
	ValaDelegateTargetFieldPrivate * priv;
};

struct _ValaDelegateTargetFieldClass {
	ValaFieldClass parent_class;
};

struct _ValaDelegateType {
	ValaCallableType parent_instance;
	ValaDelegateTypePrivate * priv;
};

struct _ValaDelegateTypeClass {
	ValaCallableTypeClass parent_class;
};

struct _ValaDeleteStatement {
	ValaCodeNode parent_instance;
	ValaDeleteStatementPrivate * priv;
};

struct _ValaDeleteStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaDestructor {
	ValaSubroutine parent_instance;
	ValaDestructorPrivate * priv;
};

struct _ValaDestructorClass {
	ValaSubroutineClass parent_class;
};

struct _ValaLoop {
	ValaCodeNode parent_instance;
	ValaLoopPrivate * priv;
};

struct _ValaLoopClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaDoStatement {
	ValaLoop parent_instance;
	ValaDoStatementPrivate * priv;
};

struct _ValaDoStatementClass {
	ValaLoopClass parent_class;
};

struct _ValaDynamicMethod {
	ValaMethod parent_instance;
	ValaDynamicMethodPrivate * priv;
};

struct _ValaDynamicMethodClass {
	ValaMethodClass parent_class;
};

struct _ValaProperty {
	ValaSymbol parent_instance;
	ValaPropertyPrivate * priv;
};

struct _ValaPropertyClass {
	ValaSymbolClass parent_class;
};

struct _ValaDynamicProperty {
	ValaProperty parent_instance;
	ValaDynamicPropertyPrivate * priv;
};

struct _ValaDynamicPropertyClass {
	ValaPropertyClass parent_class;
};

struct _ValaSignal {
	ValaSymbol parent_instance;
	ValaSignalPrivate * priv;
};

struct _ValaSignalClass {
	ValaSymbolClass parent_class;
};

struct _ValaDynamicSignal {
	ValaSignal parent_instance;
	ValaDynamicSignalPrivate * priv;
};

struct _ValaDynamicSignalClass {
	ValaSignalClass parent_class;
};

struct _ValaElementAccess {
	ValaExpression parent_instance;
	ValaElementAccessPrivate * priv;
};

struct _ValaElementAccessClass {
	ValaExpressionClass parent_class;
};

struct _ValaEmptyStatement {
	ValaCodeNode parent_instance;
	ValaEmptyStatementPrivate * priv;
};

struct _ValaEmptyStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaEnum {
	ValaTypeSymbol parent_instance;
	ValaEnumPrivate * priv;
};

struct _ValaEnumClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaEnumValue {
	ValaConstant parent_instance;
	ValaEnumValuePrivate * priv;
};

struct _ValaEnumValueClass {
	ValaConstantClass parent_class;
};

struct _ValaEnumValueType {
	ValaValueType parent_instance;
	ValaEnumValueTypePrivate * priv;
};

struct _ValaEnumValueTypeClass {
	ValaValueTypeClass parent_class;
};

struct _ValaErrorCode {
	ValaTypeSymbol parent_instance;
	ValaErrorCodePrivate * priv;
};

struct _ValaErrorCodeClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaErrorDomain {
	ValaTypeSymbol parent_instance;
	ValaErrorDomainPrivate * priv;
};

struct _ValaErrorDomainClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaErrorType {
	ValaReferenceType parent_instance;
	ValaErrorTypePrivate * priv;
};

struct _ValaErrorTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaExpressionStatement {
	ValaCodeNode parent_instance;
	ValaExpressionStatementPrivate * priv;
};

struct _ValaExpressionStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaFieldPrototype {
	ValaDataType parent_instance;
	ValaFieldPrototypePrivate * priv;
};

struct _ValaFieldPrototypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaFloatingType {
	ValaValueType parent_instance;
	ValaFloatingTypePrivate * priv;
};

struct _ValaFloatingTypeClass {
	ValaValueTypeClass parent_class;
};

struct _ValaFlowAnalyzer {
	ValaCodeVisitor parent_instance;
	ValaFlowAnalyzerPrivate * priv;
};

struct _ValaFlowAnalyzerClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaForeachStatement {
	ValaBlock parent_instance;
	ValaForeachStatementPrivate * priv;
};

struct _ValaForeachStatementClass {
	ValaBlockClass parent_class;
};

struct _ValaForStatement {
	ValaLoop parent_instance;
	ValaForStatementPrivate * priv;
};

struct _ValaForStatementClass {
	ValaLoopClass parent_class;
};

struct _ValaGirParser {
	ValaCodeVisitor parent_instance;
	ValaGirParserPrivate * priv;
};

struct _ValaGirParserClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaGenericDestroyField {
	ValaField parent_instance;
	ValaGenericDestroyFieldPrivate * priv;
};

struct _ValaGenericDestroyFieldClass {
	ValaFieldClass parent_class;
};

struct _ValaGenericDupField {
	ValaField parent_instance;
	ValaGenericDupFieldPrivate * priv;
};

struct _ValaGenericDupFieldClass {
	ValaFieldClass parent_class;
};

struct _ValaGenericType {
	ValaDataType parent_instance;
	ValaGenericTypePrivate * priv;
};

struct _ValaGenericTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaGenieParser {
	ValaCodeVisitor parent_instance;
	ValaGenieParserPrivate * priv;
};

struct _ValaGenieParserClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaGenieScanner {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaGenieScannerPrivate * priv;
};

struct _ValaGenieScannerClass {
	GTypeClass parent_class;
	void (*finalize) (ValaGenieScanner *self);
};

struct _ValaSourceLocation {
	gchar* pos;
	gint line;
	gint column;
};

struct _ValaIfStatement {
	ValaCodeNode parent_instance;
	ValaIfStatementPrivate * priv;
};

struct _ValaIfStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaInitializerList {
	ValaExpression parent_instance;
	ValaInitializerListPrivate * priv;
};

struct _ValaInitializerListClass {
	ValaExpressionClass parent_class;
};

struct _ValaIntegerLiteral {
	ValaLiteral parent_instance;
	ValaIntegerLiteralPrivate * priv;
};

struct _ValaIntegerLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaIntegerType {
	ValaValueType parent_instance;
	ValaIntegerTypePrivate * priv;
};

struct _ValaIntegerTypeClass {
	ValaValueTypeClass parent_class;
};

struct _ValaInterface {
	ValaObjectTypeSymbol parent_instance;
	ValaInterfacePrivate * priv;
};

struct _ValaInterfaceClass {
	ValaObjectTypeSymbolClass parent_class;
	ValaList* (*get_virtuals) (ValaInterface* self);
};

struct _ValaInterfaceType {
	ValaReferenceType parent_instance;
	ValaInterfaceTypePrivate * priv;
};

struct _ValaInterfaceTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaInvalidExpression {
	ValaExpression parent_instance;
	ValaInvalidExpressionPrivate * priv;
};

struct _ValaInvalidExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaInvalidType {
	ValaDataType parent_instance;
	ValaInvalidTypePrivate * priv;
};

struct _ValaInvalidTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaLambdaExpression {
	ValaExpression parent_instance;
	ValaLambdaExpressionPrivate * priv;
};

struct _ValaLambdaExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaLocalVariable {
	ValaVariable parent_instance;
	ValaLocalVariablePrivate * priv;
};

struct _ValaLocalVariableClass {
	ValaVariableClass parent_class;
};

struct _ValaLockStatement {
	ValaCodeNode parent_instance;
	ValaLockStatementPrivate * priv;
};

struct _ValaLockStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaLoopStatement {
	ValaLoop parent_instance;
	ValaLoopStatementPrivate * priv;
};

struct _ValaLoopStatementClass {
	ValaLoopClass parent_class;
};

struct _ValaMarkupReader {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaMarkupReaderPrivate * priv;
};

struct _ValaMarkupReaderClass {
	GTypeClass parent_class;
	void (*finalize) (ValaMarkupReader *self);
};

struct _ValaMemberAccess {
	ValaExpression parent_instance;
	ValaMemberAccessPrivate * priv;
};

struct _ValaMemberAccessClass {
	ValaExpressionClass parent_class;
};

struct _ValaMemberInitializer {
	ValaExpression parent_instance;
	ValaMemberInitializerPrivate * priv;
};

struct _ValaMemberInitializerClass {
	ValaExpressionClass parent_class;
};

struct _ValaMethodCall {
	ValaExpression parent_instance;
	ValaMethodCallPrivate * priv;
};

struct _ValaMethodCallClass {
	ValaExpressionClass parent_class;
};

struct _ValaMethodType {
	ValaCallableType parent_instance;
	ValaMethodTypePrivate * priv;
};

struct _ValaMethodTypeClass {
	ValaCallableTypeClass parent_class;
};

struct _ValaNamedArgument {
	ValaExpression parent_instance;
	ValaNamedArgumentPrivate * priv;
};

struct _ValaNamedArgumentClass {
	ValaExpressionClass parent_class;
};

struct _ValaNamespace {
	ValaSymbol parent_instance;
	ValaNamespacePrivate * priv;
};

struct _ValaNamespaceClass {
	ValaSymbolClass parent_class;
};

struct _ValaNullLiteral {
	ValaLiteral parent_instance;
	ValaNullLiteralPrivate * priv;
};

struct _ValaNullLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaNullType {
	ValaReferenceType parent_instance;
	ValaNullTypePrivate * priv;
};

struct _ValaNullTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaObjectCreationExpression {
	ValaExpression parent_instance;
	ValaObjectCreationExpressionPrivate * priv;
};

struct _ValaObjectCreationExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaObjectType {
	ValaReferenceType parent_instance;
	ValaObjectTypePrivate * priv;
};

struct _ValaObjectTypeClass {
	ValaReferenceTypeClass parent_class;
};

struct _ValaParameter {
	ValaVariable parent_instance;
	ValaParameterPrivate * priv;
};

struct _ValaParameterClass {
	ValaVariableClass parent_class;
};

struct _ValaParser {
	ValaCodeVisitor parent_instance;
	ValaParserPrivate * priv;
};

struct _ValaParserClass {
	ValaCodeVisitorClass parent_class;
};

typedef enum  {
	VALA_PARSE_ERROR_FAILED,
	VALA_PARSE_ERROR_SYNTAX
} ValaParseError;
#define VALA_PARSE_ERROR vala_parse_error_quark ()

struct _ValaPhiFunction {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaPhiFunctionPrivate * priv;
};

struct _ValaPhiFunctionClass {
	GTypeClass parent_class;
	void (*finalize) (ValaPhiFunction *self);
};

struct _ValaPointerIndirection {
	ValaExpression parent_instance;
	ValaPointerIndirectionPrivate * priv;
};

struct _ValaPointerIndirectionClass {
	ValaExpressionClass parent_class;
};

struct _ValaPointerType {
	ValaDataType parent_instance;
	ValaPointerTypePrivate * priv;
};

struct _ValaPointerTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaPostfixExpression {
	ValaExpression parent_instance;
	ValaPostfixExpressionPrivate * priv;
};

struct _ValaPostfixExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaPropertyAccessor {
	ValaSubroutine parent_instance;
	ValaPropertyAccessorPrivate * priv;
};

struct _ValaPropertyAccessorClass {
	ValaSubroutineClass parent_class;
};

struct _ValaPropertyPrototype {
	ValaDataType parent_instance;
	ValaPropertyPrototypePrivate * priv;
};

struct _ValaPropertyPrototypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaRealLiteral {
	ValaLiteral parent_instance;
	ValaRealLiteralPrivate * priv;
};

struct _ValaRealLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaReferenceTransferExpression {
	ValaExpression parent_instance;
	ValaReferenceTransferExpressionPrivate * priv;
};

struct _ValaReferenceTransferExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaRegexLiteral {
	ValaLiteral parent_instance;
	ValaRegexLiteralPrivate * priv;
};

struct _ValaRegexLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaReport {
	GTypeInstance parent_instance;
	volatile int ref_count;
	gint warnings;
	gint errors;
	ValaReportPrivate * priv;
};

struct _ValaReportClass {
	GTypeClass parent_class;
	void (*finalize) (ValaReport *self);
	void (*note) (ValaReport* self, ValaSourceReference* source, const gchar* message);
	void (*depr) (ValaReport* self, ValaSourceReference* source, const gchar* message);
	void (*warn) (ValaReport* self, ValaSourceReference* source, const gchar* message);
	void (*err) (ValaReport* self, ValaSourceReference* source, const gchar* message);
};

struct _ValaReturnStatement {
	ValaCodeNode parent_instance;
	ValaReturnStatementPrivate * priv;
};

struct _ValaReturnStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaScanner {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaScannerPrivate * priv;
};

struct _ValaScannerClass {
	GTypeClass parent_class;
	void (*finalize) (ValaScanner *self);
};

struct _ValaScope {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaScopePrivate * priv;
};

struct _ValaScopeClass {
	GTypeClass parent_class;
	void (*finalize) (ValaScope *self);
};

struct _ValaSemanticAnalyzer {
	ValaCodeVisitor parent_instance;
	ValaBlock* insert_block;
	ValaDataType* void_type;
	ValaDataType* bool_type;
	ValaDataType* char_type;
	ValaDataType* uchar_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* size_t_type;
	ValaDataType* ssize_t_type;
	ValaDataType* unichar_type;
	ValaDataType* double_type;
	ValaDataType* string_type;
	ValaDataType* regex_type;
	ValaDataType* type_type;
	ValaDataType* va_list_type;
	ValaClass* object_type;
	ValaStructValueType* gvalue_type;
	ValaObjectType* gvariant_type;
	ValaDataType* glist_type;
	ValaDataType* gslist_type;
	ValaDataType* garray_type;
	ValaDataType* gvaluearray_type;
	ValaDataType* genericarray_type;
	ValaDataType* gsequence_type;
	ValaClass* gerror_type;
	ValaDataType* list_type;
	ValaDataType* tuple_type;
	ValaClass* gsource_type;
	ValaDataType* delegate_target_type;
	ValaDelegateType* delegate_target_destroy_type;
	ValaDelegateType* generics_dup_func_type;
	ValaList* replaced_nodes;
	ValaSemanticAnalyzerPrivate * priv;
};

struct _ValaSemanticAnalyzerClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaSignalType {
	ValaCallableType parent_instance;
	ValaSignalTypePrivate * priv;
};

struct _ValaSignalTypeClass {
	ValaCallableTypeClass parent_class;
};

struct _ValaSizeofExpression {
	ValaExpression parent_instance;
	ValaSizeofExpressionPrivate * priv;
};

struct _ValaSizeofExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaSliceExpression {
	ValaExpression parent_instance;
	ValaSliceExpressionPrivate * priv;
};

struct _ValaSliceExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaSourceFile {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaSourceFilePrivate * priv;
};

struct _ValaSourceFileClass {
	GTypeClass parent_class;
	void (*finalize) (ValaSourceFile *self);
};

struct _ValaSourceReference {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaSourceReferencePrivate * priv;
};

struct _ValaSourceReferenceClass {
	GTypeClass parent_class;
	void (*finalize) (ValaSourceReference *self);
};

struct _ValaStatementList {
	ValaCodeNode parent_instance;
	ValaStatementListPrivate * priv;
};

struct _ValaStatementListClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaStringLiteral {
	ValaLiteral parent_instance;
	ValaStringLiteralPrivate * priv;
};

struct _ValaStringLiteralClass {
	ValaLiteralClass parent_class;
};

struct _ValaStruct {
	ValaTypeSymbol parent_instance;
	ValaStructPrivate * priv;
};

struct _ValaStructClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaStructValueType {
	ValaValueType parent_instance;
	ValaStructValueTypePrivate * priv;
};

struct _ValaStructValueTypeClass {
	ValaValueTypeClass parent_class;
};

struct _ValaSwitchLabel {
	ValaCodeNode parent_instance;
	ValaSwitchLabelPrivate * priv;
};

struct _ValaSwitchLabelClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaSwitchSection {
	ValaBlock parent_instance;
	ValaSwitchSectionPrivate * priv;
};

struct _ValaSwitchSectionClass {
	ValaBlockClass parent_class;
};

struct _ValaSwitchStatement {
	ValaCodeNode parent_instance;
	ValaSwitchStatementPrivate * priv;
};

struct _ValaSwitchStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaSymbolResolver {
	ValaCodeVisitor parent_instance;
	ValaSymbolResolverPrivate * priv;
};

struct _ValaSymbolResolverClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaTargetValue {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaTargetValuePrivate * priv;
};

struct _ValaTargetValueClass {
	GTypeClass parent_class;
	void (*finalize) (ValaTargetValue *self);
};

struct _ValaTemplate {
	ValaExpression parent_instance;
	ValaTemplatePrivate * priv;
};

struct _ValaTemplateClass {
	ValaExpressionClass parent_class;
};

struct _ValaThrowStatement {
	ValaCodeNode parent_instance;
	ValaThrowStatementPrivate * priv;
};

struct _ValaThrowStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaTraverseVisitor {
	ValaCodeVisitor parent_instance;
	ValaTraverseVisitorPrivate * priv;
};

struct _ValaTraverseVisitorClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaTryStatement {
	ValaCodeNode parent_instance;
	ValaTryStatementPrivate * priv;
};

struct _ValaTryStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaTuple {
	ValaExpression parent_instance;
	ValaTuplePrivate * priv;
};

struct _ValaTupleClass {
	ValaExpressionClass parent_class;
};

struct _ValaTypeCheck {
	ValaExpression parent_instance;
	ValaTypeCheckPrivate * priv;
};

struct _ValaTypeCheckClass {
	ValaExpressionClass parent_class;
};

struct _ValaTypeofExpression {
	ValaExpression parent_instance;
	ValaTypeofExpressionPrivate * priv;
};

struct _ValaTypeofExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaTypeParameter {
	ValaTypeSymbol parent_instance;
	ValaTypeParameterPrivate * priv;
};

struct _ValaTypeParameterClass {
	ValaTypeSymbolClass parent_class;
};

struct _ValaUnaryExpression {
	ValaExpression parent_instance;
	ValaUnaryExpressionPrivate * priv;
};

struct _ValaUnaryExpressionClass {
	ValaExpressionClass parent_class;
};

struct _ValaUnlockStatement {
	ValaCodeNode parent_instance;
	ValaUnlockStatementPrivate * priv;
};

struct _ValaUnlockStatementClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaUnresolvedSymbol {
	ValaSymbol parent_instance;
	ValaUnresolvedSymbolPrivate * priv;
};

struct _ValaUnresolvedSymbolClass {
	ValaSymbolClass parent_class;
};

struct _ValaUnresolvedType {
	ValaDataType parent_instance;
	ValaUnresolvedTypePrivate * priv;
};

struct _ValaUnresolvedTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaUsedAttr {
	ValaCodeVisitor parent_instance;
	ValaMap* marked;
	ValaUsedAttrPrivate * priv;
};

struct _ValaUsedAttrClass {
	ValaCodeVisitorClass parent_class;
};

struct _ValaUsingDirective {
	ValaCodeNode parent_instance;
	ValaUsingDirectivePrivate * priv;
};

struct _ValaUsingDirectiveClass {
	ValaCodeNodeClass parent_class;
};

struct _ValaVarType {
	ValaDataType parent_instance;
	ValaVarTypePrivate * priv;
};

struct _ValaVarTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaVersionAttribute {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaVersionAttributePrivate * priv;
};

struct _ValaVersionAttributeClass {
	GTypeClass parent_class;
	void (*finalize) (ValaVersionAttribute *self);
};

struct _ValaVoidType {
	ValaDataType parent_instance;
	ValaVoidTypePrivate * priv;
};

struct _ValaVoidTypeClass {
	ValaDataTypeClass parent_class;
};

struct _ValaWhileStatement {
	ValaLoop parent_instance;
	ValaWhileStatementPrivate * priv;
};

struct _ValaWhileStatementClass {
	ValaLoopClass parent_class;
};

struct _ValaWithStatement {
	ValaBlock parent_instance;
	ValaWithStatementPrivate * priv;
};

struct _ValaWithStatementClass {
	ValaBlockClass parent_class;
};

struct _ValaYieldStatement {
	ValaCodeNode parent_instance;
	ValaYieldStatementPrivate * priv;
};

struct _ValaYieldStatementClass {
	ValaCodeNodeClass parent_class;
};

VALA_EXTERN gpointer vala_code_node_ref (gpointer instance);
VALA_EXTERN void vala_code_node_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_code_node (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void vala_value_set_code_node (GValue* value,
                               gpointer v_object);
VALA_EXTERN void vala_value_take_code_node (GValue* value,
                                gpointer v_object);
VALA_EXTERN gpointer vala_value_get_code_node (const GValue* value);
VALA_EXTERN GType vala_code_node_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCodeNode, vala_code_node_unref)
VALA_EXTERN GType vala_attribute_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaAttribute, vala_code_node_unref)
VALA_EXTERN gpointer vala_code_visitor_ref (gpointer instance);
VALA_EXTERN void vala_code_visitor_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_code_visitor (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void vala_value_set_code_visitor (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void vala_value_take_code_visitor (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer vala_value_get_code_visitor (const GValue* value);
VALA_EXTERN GType vala_code_visitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCodeVisitor, vala_code_visitor_unref)
VALA_EXTERN gpointer vala_code_context_ref (gpointer instance);
VALA_EXTERN void vala_code_context_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_code_context (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void vala_value_set_code_context (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void vala_value_take_code_context (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer vala_value_get_code_context (const GValue* value);
VALA_EXTERN GType vala_code_context_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCodeContext, vala_code_context_unref)
VALA_EXTERN GType vala_code_generator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCodeGenerator, vala_code_visitor_unref)
VALA_EXTERN GType vala_data_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDataType, vala_code_node_unref)
VALA_EXTERN GType vala_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaExpression, vala_code_node_unref)
VALA_EXTERN GType vala_symbol_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSymbol, vala_code_node_unref)
VALA_EXTERN GType vala_variable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaVariable, vala_code_node_unref)
VALA_EXTERN gpointer vala_source_reference_ref (gpointer instance);
VALA_EXTERN void vala_source_reference_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_source_reference (const gchar* name,
                                              const gchar* nick,
                                              const gchar* blurb,
                                              GType object_type,
                                              GParamFlags flags);
VALA_EXTERN void vala_value_set_source_reference (GValue* value,
                                      gpointer v_object);
VALA_EXTERN void vala_value_take_source_reference (GValue* value,
                                       gpointer v_object);
VALA_EXTERN gpointer vala_value_get_source_reference (const GValue* value);
VALA_EXTERN GType vala_source_reference_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSourceReference, vala_source_reference_unref)
VALA_EXTERN GType vala_addressof_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaAddressofExpression, vala_code_node_unref)
VALA_EXTERN ValaExpression* vala_addressof_expression_get_inner (ValaAddressofExpression* self);
VALA_EXTERN ValaAddressofExpression* vala_addressof_expression_new (ValaExpression* inner,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaAddressofExpression* vala_addressof_expression_construct (GType object_type,
                                                              ValaExpression* inner,
                                                              ValaSourceReference* source_reference);
VALA_EXTERN GType vala_namespace_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaNamespace, vala_code_node_unref)
VALA_EXTERN GType vala_typesymbol_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTypeSymbol, vala_code_node_unref)
VALA_EXTERN GType vala_object_type_symbol_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaObjectTypeSymbol, vala_code_node_unref)
VALA_EXTERN GType vala_class_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaClass, vala_code_node_unref)
VALA_EXTERN GType vala_interface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInterface, vala_code_node_unref)
VALA_EXTERN GType vala_struct_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStruct, vala_code_node_unref)
VALA_EXTERN GType vala_enum_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaEnum, vala_code_node_unref)
VALA_EXTERN GType vala_error_domain_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaErrorDomain, vala_code_node_unref)
VALA_EXTERN GType vala_delegate_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDelegate, vala_code_node_unref)
VALA_EXTERN GType vala_constant_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaConstant, vala_code_node_unref)
VALA_EXTERN GType vala_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaField, vala_code_node_unref)
VALA_EXTERN GType vala_subroutine_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSubroutine, vala_code_node_unref)
VALA_EXTERN GType vala_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMethod, vala_code_node_unref)
VALA_EXTERN GType vala_property_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaProperty, vala_code_node_unref)
VALA_EXTERN GType vala_signal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSignal, vala_code_node_unref)
VALA_EXTERN GType vala_constructor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaConstructor, vala_code_node_unref)
VALA_EXTERN GType vala_destructor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDestructor, vala_code_node_unref)
VALA_EXTERN GType vala_parameter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaParameter, vala_code_node_unref)
VALA_EXTERN GType vala_callable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCallable, vala_code_node_unref)
VALA_EXTERN GType vala_array_copy_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayCopyMethod, vala_code_node_unref)
VALA_EXTERN ValaArrayCopyMethod* vala_array_copy_method_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayCopyMethod* vala_array_copy_method_construct (GType object_type,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN GType vala_array_creation_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayCreationExpression, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_array_creation_expression_get_element_type (ValaArrayCreationExpression* self);
VALA_EXTERN ValaDataType* vala_array_creation_expression_get_length_type (ValaArrayCreationExpression* self);
VALA_EXTERN void vala_array_creation_expression_set_length_type (ValaArrayCreationExpression* self,
                                                     ValaDataType* value);
VALA_EXTERN gint vala_array_creation_expression_get_rank (ValaArrayCreationExpression* self);
VALA_EXTERN GType vala_initializer_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInitializerList, vala_code_node_unref)
VALA_EXTERN ValaInitializerList* vala_array_creation_expression_get_initializer_list (ValaArrayCreationExpression* self);
VALA_EXTERN void vala_array_creation_expression_append_size (ValaArrayCreationExpression* self,
                                                 ValaExpression* size);
VALA_EXTERN ValaList* vala_array_creation_expression_get_sizes (ValaArrayCreationExpression* self);
VALA_EXTERN ValaArrayCreationExpression* vala_array_creation_expression_new (ValaDataType* element_type,
                                                                 gint rank,
                                                                 ValaInitializerList* initializer_list,
                                                                 ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayCreationExpression* vala_array_creation_expression_construct (GType object_type,
                                                                       ValaDataType* element_type,
                                                                       gint rank,
                                                                       ValaInitializerList* initializer_list,
                                                                       ValaSourceReference* source_reference);
VALA_EXTERN GType vala_lockable_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType vala_array_length_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayLengthField, vala_code_node_unref)
VALA_EXTERN ValaArrayLengthField* vala_array_length_field_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayLengthField* vala_array_length_field_construct (GType object_type,
                                                         ValaSourceReference* source_reference);
VALA_EXTERN GType vala_array_move_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayMoveMethod, vala_code_node_unref)
VALA_EXTERN ValaArrayMoveMethod* vala_array_move_method_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayMoveMethod* vala_array_move_method_construct (GType object_type,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN GType vala_array_resize_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayResizeMethod, vala_code_node_unref)
VALA_EXTERN ValaArrayResizeMethod* vala_array_resize_method_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayResizeMethod* vala_array_resize_method_construct (GType object_type,
                                                           ValaSourceReference* source_reference);
VALA_EXTERN gpointer vala_scope_ref (gpointer instance);
VALA_EXTERN void vala_scope_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_scope (const gchar* name,
                                   const gchar* nick,
                                   const gchar* blurb,
                                   GType object_type,
                                   GParamFlags flags);
VALA_EXTERN void vala_value_set_scope (GValue* value,
                           gpointer v_object);
VALA_EXTERN void vala_value_take_scope (GValue* value,
                            gpointer v_object);
VALA_EXTERN gpointer vala_value_get_scope (const GValue* value);
VALA_EXTERN GType vala_scope_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaScope, vala_scope_unref)
VALA_EXTERN GType vala_typeparameter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTypeParameter, vala_code_node_unref)
VALA_EXTERN GType vala_reference_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaReferenceType, vala_code_node_unref)
VALA_EXTERN GType vala_array_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaArrayType, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_array_type_get_element_type (ValaArrayType* self);
VALA_EXTERN ValaDataType* vala_array_type_get_length_type (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_length_type (ValaArrayType* self,
                                      ValaDataType* value);
VALA_EXTERN gboolean vala_array_type_get_invalid_syntax (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_invalid_syntax (ValaArrayType* self,
                                         gboolean value);
VALA_EXTERN gboolean vala_array_type_get_inline_allocated (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_inline_allocated (ValaArrayType* self,
                                           gboolean value);
VALA_EXTERN gboolean vala_array_type_get_fixed_length (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_fixed_length (ValaArrayType* self,
                                       gboolean value);
VALA_EXTERN ValaExpression* vala_array_type_get_length (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_length (ValaArrayType* self,
                                 ValaExpression* value);
VALA_EXTERN gint vala_array_type_get_rank (ValaArrayType* self);
VALA_EXTERN void vala_array_type_set_rank (ValaArrayType* self,
                               gint value);
VALA_EXTERN ValaArrayType* vala_array_type_new (ValaDataType* element_type,
                                    gint rank,
                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaArrayType* vala_array_type_construct (GType object_type,
                                          ValaDataType* element_type,
                                          gint rank,
                                          ValaSourceReference* source_reference);
VALA_EXTERN GType vala_assignment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaAssignment, vala_code_node_unref)
VALA_EXTERN ValaExpression* vala_assignment_get_left (ValaAssignment* self);
VALA_EXTERN GType vala_assignment_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaAssignmentOperator vala_assignment_get_operator (ValaAssignment* self);
VALA_EXTERN ValaExpression* vala_assignment_get_right (ValaAssignment* self);
VALA_EXTERN ValaAssignment* vala_assignment_new (ValaExpression* left,
                                     ValaExpression* right,
                                     ValaAssignmentOperator operator,
                                     ValaSourceReference* source_reference);
VALA_EXTERN ValaAssignment* vala_assignment_construct (GType object_type,
                                           ValaExpression* left,
                                           ValaExpression* right,
                                           ValaAssignmentOperator operator,
                                           ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_assignment_operator_to_string (ValaAssignmentOperator self);
VALA_EXTERN const gchar* vala_attribute_get_name (ValaAttribute* self);
VALA_EXTERN ValaMap* vala_attribute_get_args (ValaAttribute* self);
VALA_EXTERN ValaAttribute* vala_attribute_new (const gchar* name,
                                   ValaSourceReference* source_reference);
VALA_EXTERN ValaAttribute* vala_attribute_construct (GType object_type,
                                         const gchar* name,
                                         ValaSourceReference* source_reference);
VALA_EXTERN void vala_attribute_add_argument (ValaAttribute* self,
                                  const gchar* key,
                                  const gchar* value);
VALA_EXTERN gboolean vala_attribute_has_argument (ValaAttribute* self,
                                      const gchar* name);
VALA_EXTERN gchar* vala_attribute_get_string (ValaAttribute* self,
                                  const gchar* name,
                                  const gchar* default_value);
VALA_EXTERN gint vala_attribute_get_integer (ValaAttribute* self,
                                 const gchar* name,
                                 gint default_value);
VALA_EXTERN gdouble vala_attribute_get_double (ValaAttribute* self,
                                   const gchar* name,
                                   gdouble default_value);
VALA_EXTERN gboolean vala_attribute_get_bool (ValaAttribute* self,
                                  const gchar* name,
                                  gboolean default_value);
VALA_EXTERN GType vala_base_access_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBaseAccess, vala_code_node_unref)
VALA_EXTERN ValaBaseAccess* vala_base_access_new (ValaSourceReference* source);
VALA_EXTERN ValaBaseAccess* vala_base_access_construct (GType object_type,
                                            ValaSourceReference* source);
VALA_EXTERN gpointer vala_basic_block_ref (gpointer instance);
VALA_EXTERN void vala_basic_block_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_basic_block (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void vala_value_set_basic_block (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void vala_value_take_basic_block (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer vala_value_get_basic_block (const GValue* value);
VALA_EXTERN GType vala_basic_block_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBasicBlock, vala_basic_block_unref)
VALA_EXTERN ValaBasicBlock* vala_basic_block_get_parent (ValaBasicBlock* self);
VALA_EXTERN gboolean vala_basic_block_get_postorder_visited (ValaBasicBlock* self);
VALA_EXTERN void vala_basic_block_set_postorder_visited (ValaBasicBlock* self,
                                             gboolean value);
VALA_EXTERN gint vala_basic_block_get_postorder_number (ValaBasicBlock* self);
VALA_EXTERN void vala_basic_block_set_postorder_number (ValaBasicBlock* self,
                                            gint value);
VALA_EXTERN ValaBasicBlock* vala_basic_block_new (void);
VALA_EXTERN ValaBasicBlock* vala_basic_block_construct (GType object_type);
VALA_EXTERN ValaBasicBlock* vala_basic_block_new_entry (void);
VALA_EXTERN ValaBasicBlock* vala_basic_block_construct_entry (GType object_type);
VALA_EXTERN ValaBasicBlock* vala_basic_block_new_exit (void);
VALA_EXTERN ValaBasicBlock* vala_basic_block_construct_exit (GType object_type);
VALA_EXTERN void vala_basic_block_add_node (ValaBasicBlock* self,
                                ValaCodeNode* node);
VALA_EXTERN ValaList* vala_basic_block_get_nodes (ValaBasicBlock* self);
VALA_EXTERN void vala_basic_block_connect (ValaBasicBlock* self,
                               ValaBasicBlock* target);
VALA_EXTERN ValaList* vala_basic_block_get_predecessors (ValaBasicBlock* self);
VALA_EXTERN ValaList* vala_basic_block_get_successors (ValaBasicBlock* self);
VALA_EXTERN void vala_basic_block_add_child (ValaBasicBlock* self,
                                 ValaBasicBlock* block);
VALA_EXTERN ValaList* vala_basic_block_get_children (ValaBasicBlock* self);
VALA_EXTERN void vala_basic_block_add_dominator_frontier (ValaBasicBlock* self,
                                              ValaBasicBlock* block);
VALA_EXTERN ValaSet* vala_basic_block_get_dominator_frontier (ValaBasicBlock* self);
VALA_EXTERN gpointer vala_phi_function_ref (gpointer instance);
VALA_EXTERN void vala_phi_function_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_phi_function (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void vala_value_set_phi_function (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void vala_value_take_phi_function (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer vala_value_get_phi_function (const GValue* value);
VALA_EXTERN GType vala_phi_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPhiFunction, vala_phi_function_unref)
VALA_EXTERN void vala_basic_block_add_phi_function (ValaBasicBlock* self,
                                        ValaPhiFunction* phi);
VALA_EXTERN ValaSet* vala_basic_block_get_phi_functions (ValaBasicBlock* self);
VALA_EXTERN GType vala_binary_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBinaryExpression, vala_code_node_unref)
VALA_EXTERN GType vala_binary_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaBinaryOperator vala_binary_expression_get_operator (ValaBinaryExpression* self);
VALA_EXTERN ValaExpression* vala_binary_expression_get_left (ValaBinaryExpression* self);
VALA_EXTERN ValaExpression* vala_binary_expression_get_right (ValaBinaryExpression* self);
VALA_EXTERN gboolean vala_binary_expression_get_is_chained (ValaBinaryExpression* self);
VALA_EXTERN ValaBinaryExpression* vala_binary_expression_new (ValaBinaryOperator op,
                                                  ValaExpression* _left,
                                                  ValaExpression* _right,
                                                  ValaSourceReference* source);
VALA_EXTERN ValaBinaryExpression* vala_binary_expression_construct (GType object_type,
                                                        ValaBinaryOperator op,
                                                        ValaExpression* _left,
                                                        ValaExpression* _right,
                                                        ValaSourceReference* source);
VALA_EXTERN ValaBinaryExpression* vala_binary_expression_new_chained (ValaBinaryOperator op,
                                                          ValaExpression* _left,
                                                          ValaExpression* _right,
                                                          ValaSourceReference* source);
VALA_EXTERN ValaBinaryExpression* vala_binary_expression_construct_chained (GType object_type,
                                                                ValaBinaryOperator op,
                                                                ValaExpression* _left,
                                                                ValaExpression* _right,
                                                                ValaSourceReference* source);
VALA_EXTERN const gchar* vala_binary_operator_to_string (ValaBinaryOperator self);
VALA_EXTERN GType vala_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStatement, vala_code_node_unref)
VALA_EXTERN GType vala_block_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBlock, vala_code_node_unref)
VALA_EXTERN gboolean vala_block_get_contains_jump_statement (ValaBlock* self);
VALA_EXTERN void vala_block_set_contains_jump_statement (ValaBlock* self,
                                             gboolean value);
VALA_EXTERN gboolean vala_block_get_unreachable_exit (ValaBlock* self);
VALA_EXTERN void vala_block_set_unreachable_exit (ValaBlock* self,
                                      gboolean value);
VALA_EXTERN gboolean vala_block_get_captured (ValaBlock* self);
VALA_EXTERN void vala_block_set_captured (ValaBlock* self,
                              gboolean value);
VALA_EXTERN ValaBlock* vala_block_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaBlock* vala_block_construct (GType object_type,
                                 ValaSourceReference* source_reference);
VALA_EXTERN void vala_block_add_statement (ValaBlock* self,
                               ValaStatement* stmt);
VALA_EXTERN void vala_block_insert_statement (ValaBlock* self,
                                  gint index,
                                  ValaStatement* stmt);
VALA_EXTERN ValaList* vala_block_get_statements (ValaBlock* self);
VALA_EXTERN GType vala_local_variable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLocalVariable, vala_code_node_unref)
VALA_EXTERN void vala_block_add_local_variable (ValaBlock* self,
                                    ValaLocalVariable* local);
VALA_EXTERN void vala_block_remove_local_variable (ValaBlock* self,
                                       ValaLocalVariable* local);
VALA_EXTERN ValaList* vala_block_get_local_variables (ValaBlock* self);
VALA_EXTERN void vala_block_add_local_constant (ValaBlock* self,
                                    ValaConstant* constant);
VALA_EXTERN ValaList* vala_block_get_local_constants (ValaBlock* self);
VALA_EXTERN void vala_block_insert_before (ValaBlock* self,
                               ValaStatement* stmt,
                               ValaStatement* new_stmt);
VALA_EXTERN void vala_block_replace_statement (ValaBlock* self,
                                   ValaStatement* old_stmt,
                                   ValaStatement* new_stmt);
VALA_EXTERN GType vala_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_boolean_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBooleanLiteral, vala_code_node_unref)
VALA_EXTERN gboolean vala_boolean_literal_get_value (ValaBooleanLiteral* self);
VALA_EXTERN ValaBooleanLiteral* vala_boolean_literal_new (gboolean b,
                                              ValaSourceReference* source);
VALA_EXTERN ValaBooleanLiteral* vala_boolean_literal_construct (GType object_type,
                                                    gboolean b,
                                                    ValaSourceReference* source);
VALA_EXTERN GType vala_value_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaValueType, vala_code_node_unref)
VALA_EXTERN GType vala_boolean_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBooleanType, vala_code_node_unref)
VALA_EXTERN ValaBooleanType* vala_boolean_type_new (ValaStruct* type_symbol,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaBooleanType* vala_boolean_type_construct (GType object_type,
                                              ValaStruct* type_symbol,
                                              ValaSourceReference* source_reference);
VALA_EXTERN GType vala_break_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaBreakStatement, vala_code_node_unref)
VALA_EXTERN ValaBreakStatement* vala_break_statement_new (ValaSourceReference* source);
VALA_EXTERN ValaBreakStatement* vala_break_statement_construct (GType object_type,
                                                    ValaSourceReference* source);
VALA_EXTERN ValaDataType* vala_callable_get_return_type (ValaCallable* self);
VALA_EXTERN void vala_callable_set_return_type (ValaCallable* self,
                                    ValaDataType* value);
VALA_EXTERN void vala_callable_add_parameter (ValaCallable* self,
                                  ValaParameter* param);
VALA_EXTERN ValaList* vala_callable_get_parameters (ValaCallable* self);
VALA_EXTERN GType vala_callable_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCallableExpression, vala_code_node_unref)
VALA_EXTERN gboolean vala_callable_expression_get_is_yield_expression (ValaCallableExpression* self);
VALA_EXTERN void vala_callable_expression_set_is_yield_expression (ValaCallableExpression* self,
                                                       gboolean value);
VALA_EXTERN gboolean vala_callable_expression_get_is_chainup (ValaCallableExpression* self);
VALA_EXTERN void vala_callable_expression_set_is_chainup (ValaCallableExpression* self,
                                              gboolean value);
VALA_EXTERN ValaExpression* vala_callable_expression_get_call (ValaCallableExpression* self);
VALA_EXTERN void vala_callable_expression_add_argument (ValaCallableExpression* self,
                                            ValaExpression* arg);
VALA_EXTERN ValaList* vala_callable_expression_get_argument_list (ValaCallableExpression* self);
VALA_EXTERN GType vala_callable_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCallableType, vala_code_node_unref)
VALA_EXTERN ValaCallable* vala_callable_type_get_callable_symbol (ValaCallableType* self);
VALA_EXTERN ValaCallableType* vala_callable_type_construct (GType object_type,
                                                ValaSymbol* symbol,
                                                ValaSourceReference* source_reference);
VALA_EXTERN GType vala_cast_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCastExpression, vala_code_node_unref)
VALA_EXTERN ValaExpression* vala_cast_expression_get_inner (ValaCastExpression* self);
VALA_EXTERN ValaDataType* vala_cast_expression_get_type_reference (ValaCastExpression* self);
VALA_EXTERN gboolean vala_cast_expression_get_is_silent_cast (ValaCastExpression* self);
VALA_EXTERN gboolean vala_cast_expression_get_is_non_null_cast (ValaCastExpression* self);
VALA_EXTERN ValaCastExpression* vala_cast_expression_new (ValaExpression* inner,
                                              ValaDataType* type_reference,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaCastExpression* vala_cast_expression_construct (GType object_type,
                                                    ValaExpression* inner,
                                                    ValaDataType* type_reference,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaCastExpression* vala_cast_expression_new_silent (ValaExpression* inner,
                                                     ValaDataType* type_reference,
                                                     ValaSourceReference* source_reference);
VALA_EXTERN ValaCastExpression* vala_cast_expression_construct_silent (GType object_type,
                                                           ValaExpression* inner,
                                                           ValaDataType* type_reference,
                                                           ValaSourceReference* source_reference);
VALA_EXTERN ValaCastExpression* vala_cast_expression_new_non_null (ValaExpression* inner,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN ValaCastExpression* vala_cast_expression_construct_non_null (GType object_type,
                                                             ValaExpression* inner,
                                                             ValaSourceReference* source_reference);
VALA_EXTERN GType vala_catch_clause_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCatchClause, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_catch_clause_get_error_type (ValaCatchClause* self);
VALA_EXTERN const gchar* vala_catch_clause_get_variable_name (ValaCatchClause* self);
VALA_EXTERN ValaBlock* vala_catch_clause_get_body (ValaCatchClause* self);
VALA_EXTERN ValaLocalVariable* vala_catch_clause_get_error_variable (ValaCatchClause* self);
VALA_EXTERN ValaCatchClause* vala_catch_clause_new (ValaDataType* error_type,
                                        const gchar* variable_name,
                                        ValaBlock* body,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaCatchClause* vala_catch_clause_construct (GType object_type,
                                              ValaDataType* error_type,
                                              const gchar* variable_name,
                                              ValaBlock* body,
                                              ValaSourceReference* source_reference);
VALA_EXTERN GType vala_character_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCharacterLiteral, vala_code_node_unref)
VALA_EXTERN const gchar* vala_character_literal_get_value (ValaCharacterLiteral* self);
VALA_EXTERN ValaCharacterLiteral* vala_character_literal_new (const gchar* c,
                                                  ValaSourceReference* source);
VALA_EXTERN ValaCharacterLiteral* vala_character_literal_construct (GType object_type,
                                                        const gchar* c,
                                                        ValaSourceReference* source);
VALA_EXTERN gunichar vala_character_literal_get_char (ValaCharacterLiteral* self);
VALA_EXTERN ValaClass* vala_class_get_base_class (ValaClass* self);
VALA_EXTERN void vala_class_set_base_class (ValaClass* self,
                                ValaClass* value);
VALA_EXTERN gboolean vala_class_get_is_abstract (ValaClass* self);
VALA_EXTERN void vala_class_set_is_abstract (ValaClass* self,
                                 gboolean value);
VALA_EXTERN gboolean vala_class_get_is_partial (ValaClass* self);
VALA_EXTERN void vala_class_set_is_partial (ValaClass* self,
                                gboolean value);
VALA_EXTERN gboolean vala_class_get_is_sealed (ValaClass* self);
VALA_EXTERN void vala_class_set_is_sealed (ValaClass* self,
                               gboolean value);
VALA_EXTERN gboolean vala_class_get_is_compact (ValaClass* self);
VALA_EXTERN gboolean vala_class_get_is_opaque (ValaClass* self);
VALA_EXTERN gboolean vala_class_get_is_immutable (ValaClass* self);
VALA_EXTERN gboolean vala_class_get_is_singleton (ValaClass* self);
VALA_EXTERN gboolean vala_class_get_has_private_fields (ValaClass* self);
VALA_EXTERN void vala_class_set_has_private_fields (ValaClass* self,
                                        gboolean value);
VALA_EXTERN gboolean vala_class_get_has_class_private_fields (ValaClass* self);
VALA_EXTERN GType vala_creation_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCreationMethod, vala_code_node_unref)
VALA_EXTERN ValaCreationMethod* vala_class_get_default_construction_method (ValaClass* self);
VALA_EXTERN ValaConstructor* vala_class_get_constructor (ValaClass* self);
VALA_EXTERN ValaConstructor* vala_class_get_class_constructor (ValaClass* self);
VALA_EXTERN ValaConstructor* vala_class_get_static_constructor (ValaClass* self);
VALA_EXTERN ValaDestructor* vala_class_get_destructor (ValaClass* self);
VALA_EXTERN ValaDestructor* vala_class_get_static_destructor (ValaClass* self);
VALA_EXTERN ValaDestructor* vala_class_get_class_destructor (ValaClass* self);
VALA_EXTERN gboolean vala_class_get_is_error_base (ValaClass* self);
VALA_EXTERN gpointer vala_comment_ref (gpointer instance);
VALA_EXTERN void vala_comment_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_comment (const gchar* name,
                                     const gchar* nick,
                                     const gchar* blurb,
                                     GType object_type,
                                     GParamFlags flags);
VALA_EXTERN void vala_value_set_comment (GValue* value,
                             gpointer v_object);
VALA_EXTERN void vala_value_take_comment (GValue* value,
                              gpointer v_object);
VALA_EXTERN gpointer vala_value_get_comment (const GValue* value);
VALA_EXTERN GType vala_comment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaComment, vala_comment_unref)
VALA_EXTERN ValaClass* vala_class_new (const gchar* name,
                           ValaSourceReference* source_reference,
                           ValaComment* comment);
VALA_EXTERN ValaClass* vala_class_construct (GType object_type,
                                 const gchar* name,
                                 ValaSourceReference* source_reference,
                                 ValaComment* comment);
VALA_EXTERN void vala_class_add_base_type (ValaClass* self,
                               ValaDataType* type);
VALA_EXTERN ValaList* vala_class_get_base_types (ValaClass* self);
VALA_EXTERN ValaHashMap* vala_class_get_implicit_implementations (ValaClass* self);
VALA_EXTERN gboolean vala_class_is_fundamental (ValaClass* self);
VALA_EXTERN gboolean vala_class_is_a (ValaClass* self,
                          ValaObjectTypeSymbol* t);
VALA_EXTERN gboolean vala_class_implements (ValaClass* self,
                                ValaInterface* i);
VALA_EXTERN GType vala_class_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaClassType, vala_code_node_unref)
VALA_EXTERN ValaClass* vala_class_type_get_class_symbol (ValaClassType* self);
VALA_EXTERN ValaClassType* vala_class_type_new (ValaClass* class_symbol,
                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaClassType* vala_class_type_construct (GType object_type,
                                          ValaClass* class_symbol,
                                          ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_code_context_get_assert (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_assert (ValaCodeContext* self,
                                   gboolean value);
VALA_EXTERN gboolean vala_code_context_get_checking (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_checking (ValaCodeContext* self,
                                     gboolean value);
VALA_EXTERN gboolean vala_code_context_get_deprecated (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_deprecated (ValaCodeContext* self,
                                       gboolean value);
VALA_EXTERN gboolean vala_code_context_get_hide_internal (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_hide_internal (ValaCodeContext* self,
                                          gboolean value);
VALA_EXTERN gboolean vala_code_context_get_since_check (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_since_check (ValaCodeContext* self,
                                        gboolean value);
VALA_EXTERN gboolean vala_code_context_get_experimental (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_experimental (ValaCodeContext* self,
                                         gboolean value);
VALA_EXTERN gboolean vala_code_context_get_experimental_non_null (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_experimental_non_null (ValaCodeContext* self,
                                                  gboolean value);
VALA_EXTERN gboolean vala_code_context_get_gobject_tracing (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_gobject_tracing (ValaCodeContext* self,
                                            gboolean value);
VALA_EXTERN gboolean vala_code_context_get_ccode_only (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_ccode_only (ValaCodeContext* self,
                                       gboolean value);
VALA_EXTERN const gchar* vala_code_context_get_pkg_config_command (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_pkg_config_command (ValaCodeContext* self,
                                               const gchar* value);
VALA_EXTERN gboolean vala_code_context_get_abi_stability (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_abi_stability (ValaCodeContext* self,
                                          gboolean value);
VALA_EXTERN const gchar* vala_code_context_get_header_filename (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_header_filename (ValaCodeContext* self,
                                            const gchar* value);
VALA_EXTERN const gchar* vala_code_context_get_internal_header_filename (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_internal_header_filename (ValaCodeContext* self,
                                                     const gchar* value);
VALA_EXTERN const gchar* vala_code_context_get_includedir (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_includedir (ValaCodeContext* self,
                                       const gchar* value);
VALA_EXTERN const gchar* vala_code_context_get_symbols_filename (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_symbols_filename (ValaCodeContext* self,
                                             const gchar* value);
VALA_EXTERN gboolean vala_code_context_get_compile_only (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_compile_only (ValaCodeContext* self,
                                         gboolean value);
VALA_EXTERN const gchar* vala_code_context_get_output (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_output (ValaCodeContext* self,
                                   const gchar* value);
VALA_EXTERN const gchar* vala_code_context_get_basedir (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_basedir (ValaCodeContext* self,
                                    const gchar* value);
VALA_EXTERN const gchar* vala_code_context_get_directory (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_directory (ValaCodeContext* self,
                                      const gchar* value);
VALA_EXTERN gchar** vala_code_context_get_vapi_directories (ValaCodeContext* self,
                                                gint* result_length1);
VALA_EXTERN void vala_code_context_set_vapi_directories (ValaCodeContext* self,
                                             gchar** value,
                                             gint value_length1);
VALA_EXTERN gchar** vala_code_context_get_gir_directories (ValaCodeContext* self,
                                               gint* result_length1);
VALA_EXTERN void vala_code_context_set_gir_directories (ValaCodeContext* self,
                                            gchar** value,
                                            gint value_length1);
VALA_EXTERN gchar** vala_code_context_get_metadata_directories (ValaCodeContext* self,
                                                    gint* result_length1);
VALA_EXTERN void vala_code_context_set_metadata_directories (ValaCodeContext* self,
                                                 gchar** value,
                                                 gint value_length1);
VALA_EXTERN gboolean vala_code_context_get_debug (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_debug (ValaCodeContext* self,
                                  gboolean value);
VALA_EXTERN gint vala_code_context_get_optlevel (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_optlevel (ValaCodeContext* self,
                                     gint value);
VALA_EXTERN gboolean vala_code_context_get_mem_profiler (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_mem_profiler (ValaCodeContext* self,
                                         gboolean value);
VALA_EXTERN ValaMethod* vala_code_context_get_module_init_method (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_module_init_method (ValaCodeContext* self,
                                               ValaMethod* value);
VALA_EXTERN gboolean vala_code_context_get_save_temps (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_save_temps (ValaCodeContext* self,
                                       gboolean value);
VALA_EXTERN GType vala_profile_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaProfile vala_code_context_get_profile (ValaCodeContext* self);
VALA_EXTERN gboolean vala_code_context_get_verbose_mode (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_verbose_mode (ValaCodeContext* self,
                                         gboolean value);
VALA_EXTERN gboolean vala_code_context_get_version_header (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_version_header (ValaCodeContext* self,
                                           gboolean value);
VALA_EXTERN gboolean vala_code_context_get_use_fast_vapi (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_use_fast_vapi (ValaCodeContext* self,
                                          gboolean value);
VALA_EXTERN gboolean vala_code_context_get_keep_going (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_keep_going (ValaCodeContext* self,
                                       gboolean value);
VALA_EXTERN gboolean vala_code_context_get_vapi_comments (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_vapi_comments (ValaCodeContext* self,
                                          gboolean value);
VALA_EXTERN gboolean vala_code_context_require_glib_version (ValaCodeContext* self,
                                                 gint major,
                                                 gint minor);
VALA_EXTERN gboolean vala_code_context_get_save_csources (ValaCodeContext* self);
VALA_EXTERN gpointer vala_report_ref (gpointer instance);
VALA_EXTERN void vala_report_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_report (const gchar* name,
                                    const gchar* nick,
                                    const gchar* blurb,
                                    GType object_type,
                                    GParamFlags flags);
VALA_EXTERN void vala_value_set_report (GValue* value,
                            gpointer v_object);
VALA_EXTERN void vala_value_take_report (GValue* value,
                             gpointer v_object);
VALA_EXTERN gpointer vala_value_get_report (const GValue* value);
VALA_EXTERN GType vala_report_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaReport, vala_report_unref)
VALA_EXTERN ValaReport* vala_code_context_get_report (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_report (ValaCodeContext* self,
                                   ValaReport* value);
VALA_EXTERN ValaMethod* vala_code_context_get_entry_point (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_entry_point (ValaCodeContext* self,
                                        ValaMethod* value);
VALA_EXTERN const gchar* vala_code_context_get_entry_point_name (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_entry_point_name (ValaCodeContext* self,
                                             const gchar* value);
VALA_EXTERN gboolean vala_code_context_get_run_output (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_run_output (ValaCodeContext* self,
                                       gboolean value);
VALA_EXTERN gchar** vala_code_context_get_gresources (ValaCodeContext* self,
                                          gint* result_length1);
VALA_EXTERN void vala_code_context_set_gresources (ValaCodeContext* self,
                                       gchar** value,
                                       gint value_length1);
VALA_EXTERN gchar** vala_code_context_get_gresources_directories (ValaCodeContext* self,
                                                      gint* result_length1);
VALA_EXTERN void vala_code_context_set_gresources_directories (ValaCodeContext* self,
                                                   gchar** value,
                                                   gint value_length1);
VALA_EXTERN ValaNamespace* vala_code_context_get_root (ValaCodeContext* self);
VALA_EXTERN GType vala_symbol_resolver_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSymbolResolver, vala_code_visitor_unref)
VALA_EXTERN ValaSymbolResolver* vala_code_context_get_resolver (ValaCodeContext* self);
VALA_EXTERN GType vala_semantic_analyzer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSemanticAnalyzer, vala_code_visitor_unref)
VALA_EXTERN ValaSemanticAnalyzer* vala_code_context_get_analyzer (ValaCodeContext* self);
VALA_EXTERN GType vala_flow_analyzer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaFlowAnalyzer, vala_code_visitor_unref)
VALA_EXTERN ValaFlowAnalyzer* vala_code_context_get_flow_analyzer (ValaCodeContext* self);
VALA_EXTERN ValaCodeGenerator* vala_code_context_get_codegen (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_codegen (ValaCodeContext* self,
                                    ValaCodeGenerator* value);
VALA_EXTERN GType vala_used_attr_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUsedAttr, vala_code_visitor_unref)
VALA_EXTERN ValaUsedAttr* vala_code_context_get_used_attr (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_set_used_attr (ValaCodeContext* self,
                                      ValaUsedAttr* value);
VALA_EXTERN ValaCodeContext* vala_code_context_new (void);
VALA_EXTERN ValaCodeContext* vala_code_context_construct (GType object_type);
VALA_EXTERN ValaCodeContext* vala_code_context_get (void);
VALA_EXTERN void vala_code_context_push (ValaCodeContext* context);
VALA_EXTERN void vala_code_context_pop (void);
VALA_EXTERN gpointer vala_source_file_ref (gpointer instance);
VALA_EXTERN void vala_source_file_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_source_file (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void vala_value_set_source_file (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void vala_value_take_source_file (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer vala_value_get_source_file (const GValue* value);
VALA_EXTERN GType vala_source_file_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSourceFile, vala_source_file_unref)
VALA_EXTERN ValaList* vala_code_context_get_source_files (ValaCodeContext* self);
VALA_EXTERN ValaList* vala_code_context_get_c_source_files (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_add_source_file (ValaCodeContext* self,
                                        ValaSourceFile* file);
VALA_EXTERN ValaSourceFile* vala_code_context_get_source_file (ValaCodeContext* self,
                                                   const gchar* filename);
VALA_EXTERN void vala_code_context_add_c_source_file (ValaCodeContext* self,
                                          const gchar* file);
VALA_EXTERN ValaList* vala_code_context_get_packages (ValaCodeContext* self);
VALA_EXTERN gboolean vala_code_context_has_package (ValaCodeContext* self,
                                        const gchar* pkg);
VALA_EXTERN void vala_code_context_add_package (ValaCodeContext* self,
                                    const gchar* pkg);
VALA_EXTERN gboolean vala_code_context_add_external_package (ValaCodeContext* self,
                                                 const gchar* pkg);
VALA_EXTERN gboolean vala_code_context_add_packages_from_file (ValaCodeContext* self,
                                                   const gchar* filename);
VALA_EXTERN gboolean vala_code_context_add_source_filename (ValaCodeContext* self,
                                                const gchar* filename,
                                                gboolean is_source,
                                                gboolean cmdline);
VALA_EXTERN void vala_code_context_accept (ValaCodeContext* self,
                               ValaCodeVisitor* visitor);
VALA_EXTERN void vala_code_context_check (ValaCodeContext* self);
VALA_EXTERN void vala_code_context_add_define (ValaCodeContext* self,
                                   const gchar* define);
VALA_EXTERN gboolean vala_code_context_is_defined (ValaCodeContext* self,
                                       const gchar* define);
VALA_EXTERN void vala_code_context_set_target_profile (ValaCodeContext* self,
                                           ValaProfile profile,
                                           gboolean include_stdpkg);
VALA_EXTERN void vala_code_context_set_target_glib_version (ValaCodeContext* self,
                                                const gchar* target_glib);
VALA_EXTERN gchar* vala_code_context_get_vapi_path (ValaCodeContext* self,
                                        const gchar* pkg);
VALA_EXTERN gchar* vala_code_context_get_gir_path (ValaCodeContext* self,
                                       const gchar* gir);
VALA_EXTERN gchar* vala_code_context_get_gresource_path (ValaCodeContext* self,
                                             const gchar* gresource,
                                             const gchar* resource);
VALA_EXTERN gchar* vala_code_context_get_metadata_path (ValaCodeContext* self,
                                            const gchar* gir_filename);
VALA_EXTERN void vala_code_context_write_dependencies (ValaCodeContext* self,
                                           const gchar* filename);
VALA_EXTERN void vala_code_context_write_external_dependencies (ValaCodeContext* self,
                                                    const gchar* filename);
VALA_EXTERN gchar* vala_code_context_realpath (const gchar* name);
VALA_EXTERN gboolean vala_code_context_pkg_config_exists (ValaCodeContext* self,
                                              const gchar* package_name);
VALA_EXTERN gchar* vala_code_context_pkg_config_modversion (ValaCodeContext* self,
                                                const gchar* package_name);
VALA_EXTERN gchar* vala_code_context_pkg_config_compile_flags (ValaCodeContext* self,
                                                   const gchar* package_name);
VALA_EXTERN GType vala_enum_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaEnumValue, vala_code_node_unref)
VALA_EXTERN GType vala_error_code_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaErrorCode, vala_code_node_unref)
VALA_EXTERN GType vala_property_accessor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPropertyAccessor, vala_code_node_unref)
VALA_EXTERN GType vala_using_directive_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUsingDirective, vala_code_node_unref)
VALA_EXTERN GType vala_empty_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaEmptyStatement, vala_code_node_unref)
VALA_EXTERN GType vala_declaration_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDeclarationStatement, vala_code_node_unref)
VALA_EXTERN GType vala_expression_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaExpressionStatement, vala_code_node_unref)
VALA_EXTERN GType vala_if_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaIfStatement, vala_code_node_unref)
VALA_EXTERN GType vala_switch_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSwitchStatement, vala_code_node_unref)
VALA_EXTERN GType vala_switch_section_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSwitchSection, vala_code_node_unref)
VALA_EXTERN GType vala_switch_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSwitchLabel, vala_code_node_unref)
VALA_EXTERN GType vala_loop_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLoop, vala_code_node_unref)
VALA_EXTERN GType vala_loop_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLoopStatement, vala_code_node_unref)
VALA_EXTERN GType vala_while_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaWhileStatement, vala_code_node_unref)
VALA_EXTERN GType vala_do_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDoStatement, vala_code_node_unref)
VALA_EXTERN GType vala_for_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaForStatement, vala_code_node_unref)
VALA_EXTERN GType vala_foreach_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaForeachStatement, vala_code_node_unref)
VALA_EXTERN GType vala_continue_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaContinueStatement, vala_code_node_unref)
VALA_EXTERN GType vala_return_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaReturnStatement, vala_code_node_unref)
VALA_EXTERN GType vala_yield_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaYieldStatement, vala_code_node_unref)
VALA_EXTERN GType vala_throw_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaThrowStatement, vala_code_node_unref)
VALA_EXTERN GType vala_try_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTryStatement, vala_code_node_unref)
VALA_EXTERN GType vala_lock_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLockStatement, vala_code_node_unref)
VALA_EXTERN GType vala_unlock_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUnlockStatement, vala_code_node_unref)
VALA_EXTERN GType vala_with_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaWithStatement, vala_code_node_unref)
VALA_EXTERN GType vala_delete_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDeleteStatement, vala_code_node_unref)
VALA_EXTERN GType vala_integer_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaIntegerLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_real_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaRealLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_regex_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaRegexLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_string_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStringLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_template_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTemplate, vala_code_node_unref)
VALA_EXTERN GType vala_tuple_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTuple, vala_code_node_unref)
VALA_EXTERN GType vala_null_literal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaNullLiteral, vala_code_node_unref)
VALA_EXTERN GType vala_member_access_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMemberAccess, vala_code_node_unref)
VALA_EXTERN GType vala_method_call_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMethodCall, vala_code_node_unref)
VALA_EXTERN GType vala_element_access_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaElementAccess, vala_code_node_unref)
VALA_EXTERN GType vala_slice_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSliceExpression, vala_code_node_unref)
VALA_EXTERN GType vala_postfix_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPostfixExpression, vala_code_node_unref)
VALA_EXTERN GType vala_object_creation_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaObjectCreationExpression, vala_code_node_unref)
VALA_EXTERN GType vala_sizeof_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSizeofExpression, vala_code_node_unref)
VALA_EXTERN GType vala_typeof_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTypeofExpression, vala_code_node_unref)
VALA_EXTERN GType vala_unary_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUnaryExpression, vala_code_node_unref)
VALA_EXTERN GType vala_named_argument_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaNamedArgument, vala_code_node_unref)
VALA_EXTERN GType vala_pointer_indirection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPointerIndirection, vala_code_node_unref)
VALA_EXTERN GType vala_reference_transfer_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaReferenceTransferExpression, vala_code_node_unref)
VALA_EXTERN GType vala_typecheck_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTypeCheck, vala_code_node_unref)
VALA_EXTERN GType vala_conditional_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaConditionalExpression, vala_code_node_unref)
VALA_EXTERN GType vala_lambda_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaLambdaExpression, vala_code_node_unref)
VALA_EXTERN gpointer vala_target_value_ref (gpointer instance);
VALA_EXTERN void vala_target_value_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_target_value (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void vala_value_set_target_value (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void vala_value_take_target_value (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer vala_value_get_target_value (const GValue* value);
VALA_EXTERN GType vala_target_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTargetValue, vala_target_value_unref)
VALA_EXTERN void vala_code_generator_emit (ValaCodeGenerator* self,
                               ValaCodeContext* context);
VALA_EXTERN ValaTargetValue* vala_code_generator_load_local (ValaCodeGenerator* self,
                                                 ValaLocalVariable* local,
                                                 ValaExpression* expr);
VALA_EXTERN void vala_code_generator_store_local (ValaCodeGenerator* self,
                                      ValaLocalVariable* local,
                                      ValaTargetValue* value,
                                      gboolean initializer,
                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaTargetValue* vala_code_generator_load_parameter (ValaCodeGenerator* self,
                                                     ValaParameter* param,
                                                     ValaExpression* expr);
VALA_EXTERN void vala_code_generator_store_parameter (ValaCodeGenerator* self,
                                          ValaParameter* param,
                                          ValaTargetValue* value,
                                          gboolean capturing_parameter,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaTargetValue* vala_code_generator_load_field (ValaCodeGenerator* self,
                                                 ValaField* field,
                                                 ValaTargetValue* instance,
                                                 ValaExpression* expr);
VALA_EXTERN void vala_code_generator_store_field (ValaCodeGenerator* self,
                                      ValaField* field,
                                      ValaTargetValue* instance,
                                      ValaTargetValue* value,
                                      ValaSourceReference* source_reference,
                                      gboolean initializer);
VALA_EXTERN ValaCodeGenerator* vala_code_generator_construct (GType object_type);
VALA_EXTERN ValaCodeNode* vala_code_node_get_parent_node (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_set_parent_node (ValaCodeNode* self,
                                     ValaCodeNode* value);
VALA_EXTERN ValaSourceReference* vala_code_node_get_source_reference (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_set_source_reference (ValaCodeNode* self,
                                          ValaSourceReference* value);
VALA_EXTERN gboolean vala_code_node_get_unreachable (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_set_unreachable (ValaCodeNode* self,
                                     gboolean value);
VALA_EXTERN const gchar* vala_code_node_get_type_name (ValaCodeNode* self);
VALA_EXTERN gboolean vala_code_node_get_checked (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_set_checked (ValaCodeNode* self,
                                 gboolean value);
VALA_EXTERN gboolean vala_code_node_get_error (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_set_error (ValaCodeNode* self,
                               gboolean value);
VALA_EXTERN gboolean vala_code_node_get_tree_can_fail (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_accept (ValaCodeNode* self,
                            ValaCodeVisitor* visitor);
VALA_EXTERN void vala_code_node_accept_children (ValaCodeNode* self,
                                     ValaCodeVisitor* visitor);
VALA_EXTERN gboolean vala_code_node_check (ValaCodeNode* self,
                               ValaCodeContext* context);
VALA_EXTERN void vala_code_node_emit (ValaCodeNode* self,
                          ValaCodeGenerator* codegen);
VALA_EXTERN void vala_code_node_replace_type (ValaCodeNode* self,
                                  ValaDataType* old_type,
                                  ValaDataType* new_type);
VALA_EXTERN void vala_code_node_replace_expression (ValaCodeNode* self,
                                        ValaExpression* old_node,
                                        ValaExpression* new_node);
VALA_EXTERN ValaAttribute* vala_code_node_get_attribute (ValaCodeNode* self,
                                             const gchar* name);
VALA_EXTERN void vala_code_node_add_attribute (ValaCodeNode* self,
                                   ValaAttribute* a);
VALA_EXTERN gboolean vala_code_node_has_attribute (ValaCodeNode* self,
                                       const gchar* attribute);
VALA_EXTERN gboolean vala_code_node_has_attribute_argument (ValaCodeNode* self,
                                                const gchar* attribute,
                                                const gchar* argument);
VALA_EXTERN void vala_code_node_set_attribute (ValaCodeNode* self,
                                   const gchar* name,
                                   gboolean value,
                                   ValaSourceReference* source_reference);
VALA_EXTERN void vala_code_node_remove_attribute_argument (ValaCodeNode* self,
                                               const gchar* attribute,
                                               const gchar* argument);
VALA_EXTERN gchar* vala_code_node_get_attribute_string (ValaCodeNode* self,
                                            const gchar* attribute,
                                            const gchar* argument,
                                            const gchar* default_value);
VALA_EXTERN gint vala_code_node_get_attribute_integer (ValaCodeNode* self,
                                           const gchar* attribute,
                                           const gchar* argument,
                                           gint default_value);
VALA_EXTERN gdouble vala_code_node_get_attribute_double (ValaCodeNode* self,
                                             const gchar* attribute,
                                             const gchar* argument,
                                             gdouble default_value);
VALA_EXTERN gboolean vala_code_node_get_attribute_bool (ValaCodeNode* self,
                                            const gchar* attribute,
                                            const gchar* argument,
                                            gboolean default_value);
VALA_EXTERN void vala_code_node_set_attribute_string (ValaCodeNode* self,
                                          const gchar* attribute,
                                          const gchar* argument,
                                          const gchar* value,
                                          ValaSourceReference* source_reference);
VALA_EXTERN void vala_code_node_set_attribute_integer (ValaCodeNode* self,
                                           const gchar* attribute,
                                           const gchar* argument,
                                           gint value,
                                           ValaSourceReference* source_reference);
VALA_EXTERN void vala_code_node_set_attribute_double (ValaCodeNode* self,
                                          const gchar* attribute,
                                          const gchar* argument,
                                          gdouble value,
                                          ValaSourceReference* source_reference);
VALA_EXTERN void vala_code_node_set_attribute_bool (ValaCodeNode* self,
                                        const gchar* attribute,
                                        const gchar* argument,
                                        gboolean value,
                                        ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_code_node_copy_attribute_string (ValaCodeNode* self,
                                               ValaCodeNode* source,
                                               const gchar* attribute,
                                               const gchar* argument);
VALA_EXTERN gboolean vala_code_node_copy_attribute_integer (ValaCodeNode* self,
                                                ValaCodeNode* source,
                                                const gchar* attribute,
                                                const gchar* argument);
VALA_EXTERN gboolean vala_code_node_copy_attribute_double (ValaCodeNode* self,
                                               ValaCodeNode* source,
                                               const gchar* attribute,
                                               const gchar* argument);
VALA_EXTERN gboolean vala_code_node_copy_attribute_bool (ValaCodeNode* self,
                                             ValaCodeNode* source,
                                             const gchar* attribute,
                                             const gchar* argument);
VALA_EXTERN gpointer vala_attribute_cache_ref (gpointer instance);
VALA_EXTERN void vala_attribute_cache_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_attribute_cache (const gchar* name,
                                             const gchar* nick,
                                             const gchar* blurb,
                                             GType object_type,
                                             GParamFlags flags);
VALA_EXTERN void vala_value_set_attribute_cache (GValue* value,
                                     gpointer v_object);
VALA_EXTERN void vala_value_take_attribute_cache (GValue* value,
                                      gpointer v_object);
VALA_EXTERN gpointer vala_value_get_attribute_cache (const GValue* value);
VALA_EXTERN GType vala_attribute_cache_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaAttributeCache, vala_attribute_cache_unref)
VALA_EXTERN ValaAttributeCache* vala_code_node_get_attribute_cache (ValaCodeNode* self,
                                                        gint index);
VALA_EXTERN void vala_code_node_set_attribute_cache (ValaCodeNode* self,
                                         gint index,
                                         ValaAttributeCache* cache);
VALA_EXTERN gchar* vala_code_node_to_string (ValaCodeNode* self);
VALA_EXTERN void vala_code_node_get_defined_variables (ValaCodeNode* self,
                                           ValaCollection* collection);
VALA_EXTERN void vala_code_node_get_used_variables (ValaCodeNode* self,
                                        ValaCollection* collection);
VALA_EXTERN void vala_code_node_get_error_types (ValaCodeNode* self,
                                     ValaCollection* collection,
                                     ValaSourceReference* source_reference);
VALA_EXTERN gchar* vala_code_node_get_temp_name (void);
VALA_EXTERN gint vala_code_node_get_attribute_cache_index (void);
VALA_EXTERN ValaCodeNode* vala_code_node_construct (GType object_type);
VALA_EXTERN ValaAttributeCache* vala_attribute_cache_new (void);
VALA_EXTERN ValaAttributeCache* vala_attribute_cache_construct (GType object_type);
VALA_EXTERN void vala_code_visitor_visit_source_file (ValaCodeVisitor* self,
                                          ValaSourceFile* source_file);
VALA_EXTERN void vala_code_visitor_visit_namespace (ValaCodeVisitor* self,
                                        ValaNamespace* ns);
VALA_EXTERN void vala_code_visitor_visit_class (ValaCodeVisitor* self,
                                    ValaClass* cl);
VALA_EXTERN void vala_code_visitor_visit_struct (ValaCodeVisitor* self,
                                     ValaStruct* st);
VALA_EXTERN void vala_code_visitor_visit_interface (ValaCodeVisitor* self,
                                        ValaInterface* iface);
VALA_EXTERN void vala_code_visitor_visit_enum (ValaCodeVisitor* self,
                                   ValaEnum* en);
VALA_EXTERN void vala_code_visitor_visit_enum_value (ValaCodeVisitor* self,
                                         ValaEnumValue* ev);
VALA_EXTERN void vala_code_visitor_visit_error_domain (ValaCodeVisitor* self,
                                           ValaErrorDomain* edomain);
VALA_EXTERN void vala_code_visitor_visit_error_code (ValaCodeVisitor* self,
                                         ValaErrorCode* ecode);
VALA_EXTERN void vala_code_visitor_visit_delegate (ValaCodeVisitor* self,
                                       ValaDelegate* d);
VALA_EXTERN void vala_code_visitor_visit_constant (ValaCodeVisitor* self,
                                       ValaConstant* c);
VALA_EXTERN void vala_code_visitor_visit_field (ValaCodeVisitor* self,
                                    ValaField* f);
VALA_EXTERN void vala_code_visitor_visit_method (ValaCodeVisitor* self,
                                     ValaMethod* m);
VALA_EXTERN void vala_code_visitor_visit_creation_method (ValaCodeVisitor* self,
                                              ValaCreationMethod* m);
VALA_EXTERN void vala_code_visitor_visit_formal_parameter (ValaCodeVisitor* self,
                                               ValaParameter* p);
VALA_EXTERN void vala_code_visitor_visit_property (ValaCodeVisitor* self,
                                       ValaProperty* prop);
VALA_EXTERN void vala_code_visitor_visit_property_accessor (ValaCodeVisitor* self,
                                                ValaPropertyAccessor* acc);
VALA_EXTERN void vala_code_visitor_visit_signal (ValaCodeVisitor* self,
                                     ValaSignal* sig);
VALA_EXTERN void vala_code_visitor_visit_constructor (ValaCodeVisitor* self,
                                          ValaConstructor* c);
VALA_EXTERN void vala_code_visitor_visit_destructor (ValaCodeVisitor* self,
                                         ValaDestructor* d);
VALA_EXTERN void vala_code_visitor_visit_type_parameter (ValaCodeVisitor* self,
                                             ValaTypeParameter* p);
VALA_EXTERN void vala_code_visitor_visit_using_directive (ValaCodeVisitor* self,
                                              ValaUsingDirective* ns);
VALA_EXTERN void vala_code_visitor_visit_data_type (ValaCodeVisitor* self,
                                        ValaDataType* type);
VALA_EXTERN void vala_code_visitor_visit_block (ValaCodeVisitor* self,
                                    ValaBlock* b);
VALA_EXTERN void vala_code_visitor_visit_empty_statement (ValaCodeVisitor* self,
                                              ValaEmptyStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_declaration_statement (ValaCodeVisitor* self,
                                                    ValaDeclarationStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_local_variable (ValaCodeVisitor* self,
                                             ValaLocalVariable* local);
VALA_EXTERN void vala_code_visitor_visit_initializer_list (ValaCodeVisitor* self,
                                               ValaInitializerList* list);
VALA_EXTERN void vala_code_visitor_visit_expression_statement (ValaCodeVisitor* self,
                                                   ValaExpressionStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_if_statement (ValaCodeVisitor* self,
                                           ValaIfStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_switch_statement (ValaCodeVisitor* self,
                                               ValaSwitchStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_switch_section (ValaCodeVisitor* self,
                                             ValaSwitchSection* section);
VALA_EXTERN void vala_code_visitor_visit_switch_label (ValaCodeVisitor* self,
                                           ValaSwitchLabel* label);
VALA_EXTERN void vala_code_visitor_visit_loop_statement (ValaCodeVisitor* self,
                                             ValaLoopStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_while_statement (ValaCodeVisitor* self,
                                              ValaWhileStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_do_statement (ValaCodeVisitor* self,
                                           ValaDoStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_for_statement (ValaCodeVisitor* self,
                                            ValaForStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_foreach_statement (ValaCodeVisitor* self,
                                                ValaForeachStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_break_statement (ValaCodeVisitor* self,
                                              ValaBreakStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_continue_statement (ValaCodeVisitor* self,
                                                 ValaContinueStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_return_statement (ValaCodeVisitor* self,
                                               ValaReturnStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_yield_statement (ValaCodeVisitor* self,
                                              ValaYieldStatement* y);
VALA_EXTERN void vala_code_visitor_visit_throw_statement (ValaCodeVisitor* self,
                                              ValaThrowStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_try_statement (ValaCodeVisitor* self,
                                            ValaTryStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_catch_clause (ValaCodeVisitor* self,
                                           ValaCatchClause* clause);
VALA_EXTERN void vala_code_visitor_visit_lock_statement (ValaCodeVisitor* self,
                                             ValaLockStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_unlock_statement (ValaCodeVisitor* self,
                                               ValaUnlockStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_with_statement (ValaCodeVisitor* self,
                                             ValaWithStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_delete_statement (ValaCodeVisitor* self,
                                               ValaDeleteStatement* stmt);
VALA_EXTERN void vala_code_visitor_visit_expression (ValaCodeVisitor* self,
                                         ValaExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_array_creation_expression (ValaCodeVisitor* self,
                                                        ValaArrayCreationExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_boolean_literal (ValaCodeVisitor* self,
                                              ValaBooleanLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_character_literal (ValaCodeVisitor* self,
                                                ValaCharacterLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_integer_literal (ValaCodeVisitor* self,
                                              ValaIntegerLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_real_literal (ValaCodeVisitor* self,
                                           ValaRealLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_regex_literal (ValaCodeVisitor* self,
                                            ValaRegexLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_string_literal (ValaCodeVisitor* self,
                                             ValaStringLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_template (ValaCodeVisitor* self,
                                       ValaTemplate* tmpl);
VALA_EXTERN void vala_code_visitor_visit_tuple (ValaCodeVisitor* self,
                                    ValaTuple* tuple);
VALA_EXTERN void vala_code_visitor_visit_null_literal (ValaCodeVisitor* self,
                                           ValaNullLiteral* lit);
VALA_EXTERN void vala_code_visitor_visit_member_access (ValaCodeVisitor* self,
                                            ValaMemberAccess* expr);
VALA_EXTERN void vala_code_visitor_visit_method_call (ValaCodeVisitor* self,
                                          ValaMethodCall* expr);
VALA_EXTERN void vala_code_visitor_visit_element_access (ValaCodeVisitor* self,
                                             ValaElementAccess* expr);
VALA_EXTERN void vala_code_visitor_visit_slice_expression (ValaCodeVisitor* self,
                                               ValaSliceExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_base_access (ValaCodeVisitor* self,
                                          ValaBaseAccess* expr);
VALA_EXTERN void vala_code_visitor_visit_postfix_expression (ValaCodeVisitor* self,
                                                 ValaPostfixExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_object_creation_expression (ValaCodeVisitor* self,
                                                         ValaObjectCreationExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_sizeof_expression (ValaCodeVisitor* self,
                                                ValaSizeofExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_typeof_expression (ValaCodeVisitor* self,
                                                ValaTypeofExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_unary_expression (ValaCodeVisitor* self,
                                               ValaUnaryExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_cast_expression (ValaCodeVisitor* self,
                                              ValaCastExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_named_argument (ValaCodeVisitor* self,
                                             ValaNamedArgument* expr);
VALA_EXTERN void vala_code_visitor_visit_pointer_indirection (ValaCodeVisitor* self,
                                                  ValaPointerIndirection* expr);
VALA_EXTERN void vala_code_visitor_visit_addressof_expression (ValaCodeVisitor* self,
                                                   ValaAddressofExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_reference_transfer_expression (ValaCodeVisitor* self,
                                                            ValaReferenceTransferExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_binary_expression (ValaCodeVisitor* self,
                                                ValaBinaryExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_type_check (ValaCodeVisitor* self,
                                         ValaTypeCheck* expr);
VALA_EXTERN void vala_code_visitor_visit_conditional_expression (ValaCodeVisitor* self,
                                                     ValaConditionalExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_lambda_expression (ValaCodeVisitor* self,
                                                ValaLambdaExpression* expr);
VALA_EXTERN void vala_code_visitor_visit_assignment (ValaCodeVisitor* self,
                                         ValaAssignment* a);
VALA_EXTERN void vala_code_visitor_visit_end_full_expression (ValaCodeVisitor* self,
                                                  ValaExpression* expr);
VALA_EXTERN ValaCodeVisitor* vala_code_visitor_construct (GType object_type);
VALA_EXTERN GType vala_code_writer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCodeWriter, vala_code_visitor_unref)
VALA_EXTERN GType vala_code_writer_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaCodeWriter* vala_code_writer_new (ValaCodeWriterType type);
VALA_EXTERN ValaCodeWriter* vala_code_writer_construct (GType object_type,
                                            ValaCodeWriterType type);
VALA_EXTERN void vala_code_writer_set_cheader_override (ValaCodeWriter* self,
                                            const gchar* original,
                                            const gchar* replacement);
VALA_EXTERN void vala_code_writer_write_file (ValaCodeWriter* self,
                                  ValaCodeContext* context,
                                  const gchar* filename);
VALA_EXTERN ValaComment* vala_comment_new (const gchar* comment,
                               ValaSourceReference* _source_reference);
VALA_EXTERN ValaComment* vala_comment_construct (GType object_type,
                                     const gchar* comment,
                                     ValaSourceReference* _source_reference);
VALA_EXTERN const gchar* vala_comment_get_content (ValaComment* self);
VALA_EXTERN ValaSourceReference* vala_comment_get_source_reference (ValaComment* self);
VALA_EXTERN GType vala_gir_comment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGirComment, vala_comment_unref)
VALA_EXTERN ValaMapIterator* vala_gir_comment_parameter_iterator (ValaGirComment* self);
VALA_EXTERN ValaComment* vala_gir_comment_get_return_content (ValaGirComment* self);
VALA_EXTERN void vala_gir_comment_set_return_content (ValaGirComment* self,
                                          ValaComment* value);
VALA_EXTERN ValaGirComment* vala_gir_comment_new (const gchar* comment,
                                      ValaSourceReference* _source_reference);
VALA_EXTERN ValaGirComment* vala_gir_comment_construct (GType object_type,
                                            const gchar* comment,
                                            ValaSourceReference* _source_reference);
VALA_EXTERN ValaComment* vala_gir_comment_get_content_for_parameter (ValaGirComment* self,
                                                         const gchar* name);
VALA_EXTERN ValaExpression* vala_conditional_expression_get_condition (ValaConditionalExpression* self);
VALA_EXTERN ValaExpression* vala_conditional_expression_get_true_expression (ValaConditionalExpression* self);
VALA_EXTERN ValaExpression* vala_conditional_expression_get_false_expression (ValaConditionalExpression* self);
VALA_EXTERN ValaConditionalExpression* vala_conditional_expression_new (ValaExpression* cond,
                                                            ValaExpression* true_expr,
                                                            ValaExpression* false_expr,
                                                            ValaSourceReference* source);
VALA_EXTERN ValaConditionalExpression* vala_conditional_expression_construct (GType object_type,
                                                                  ValaExpression* cond,
                                                                  ValaExpression* true_expr,
                                                                  ValaExpression* false_expr,
                                                                  ValaSourceReference* source);
VALA_EXTERN ValaDataType* vala_constant_get_type_reference (ValaConstant* self);
VALA_EXTERN ValaExpression* vala_constant_get_value (ValaConstant* self);
VALA_EXTERN ValaConstant* vala_constant_new (const gchar* name,
                                 ValaDataType* type_reference,
                                 ValaExpression* value,
                                 ValaSourceReference* source_reference,
                                 ValaComment* comment);
VALA_EXTERN ValaConstant* vala_constant_construct (GType object_type,
                                       const gchar* name,
                                       ValaDataType* type_reference,
                                       ValaExpression* value,
                                       ValaSourceReference* source_reference,
                                       ValaComment* comment);
VALA_EXTERN ValaParameter* vala_constructor_get_this_parameter (ValaConstructor* self);
VALA_EXTERN void vala_constructor_set_this_parameter (ValaConstructor* self,
                                          ValaParameter* value);
VALA_EXTERN GType vala_member_binding_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaMemberBinding vala_constructor_get_binding (ValaConstructor* self);
VALA_EXTERN void vala_constructor_set_binding (ValaConstructor* self,
                                   ValaMemberBinding value);
VALA_EXTERN ValaConstructor* vala_constructor_new (ValaSourceReference* source);
VALA_EXTERN ValaConstructor* vala_constructor_construct (GType object_type,
                                             ValaSourceReference* source);
VALA_EXTERN ValaContinueStatement* vala_continue_statement_new (ValaSourceReference* source);
VALA_EXTERN ValaContinueStatement* vala_continue_statement_construct (GType object_type,
                                                          ValaSourceReference* source);
VALA_EXTERN const gchar* vala_creation_method_get_class_name (ValaCreationMethod* self);
VALA_EXTERN void vala_creation_method_set_class_name (ValaCreationMethod* self,
                                          const gchar* value);
VALA_EXTERN gboolean vala_creation_method_get_chain_up (ValaCreationMethod* self);
VALA_EXTERN void vala_creation_method_set_chain_up (ValaCreationMethod* self,
                                        gboolean value);
VALA_EXTERN ValaCreationMethod* vala_creation_method_new (const gchar* class_name,
                                              const gchar* name,
                                              ValaSourceReference* source_reference,
                                              ValaComment* comment);
VALA_EXTERN ValaCreationMethod* vala_creation_method_construct (GType object_type,
                                                    const gchar* class_name,
                                                    const gchar* name,
                                                    ValaSourceReference* source_reference,
                                                    ValaComment* comment);
VALA_EXTERN gboolean vala_data_type_get_value_owned (ValaDataType* self);
VALA_EXTERN void vala_data_type_set_value_owned (ValaDataType* self,
                                     gboolean value);
VALA_EXTERN gboolean vala_data_type_get_nullable (ValaDataType* self);
VALA_EXTERN void vala_data_type_set_nullable (ValaDataType* self,
                                  gboolean value);
VALA_EXTERN ValaSymbol* vala_data_type_get_symbol (ValaDataType* self);
VALA_EXTERN ValaSymbol* vala_data_type_get_context_symbol (ValaDataType* self);
VALA_EXTERN void vala_data_type_set_context_symbol (ValaDataType* self,
                                        ValaSymbol* value);
VALA_EXTERN ValaTypeSymbol* vala_data_type_get_type_symbol (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_get_floating_reference (ValaDataType* self);
VALA_EXTERN void vala_data_type_set_floating_reference (ValaDataType* self,
                                            gboolean value);
VALA_EXTERN gboolean vala_data_type_get_is_dynamic (ValaDataType* self);
VALA_EXTERN void vala_data_type_set_is_dynamic (ValaDataType* self,
                                    gboolean value);
VALA_EXTERN ValaDataType* vala_data_type_construct_with_symbol (GType object_type,
                                                    ValaSymbol* symbol,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN void vala_data_type_add_type_argument (ValaDataType* self,
                                       ValaDataType* arg);
VALA_EXTERN ValaList* vala_data_type_get_type_arguments (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_has_type_arguments (ValaDataType* self);
VALA_EXTERN void vala_data_type_remove_all_type_arguments (ValaDataType* self);
VALA_EXTERN gchar* vala_data_type_to_qualified_string (ValaDataType* self,
                                           ValaScope* scope);
VALA_EXTERN ValaDataType* vala_data_type_copy (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_equals (ValaDataType* self,
                                ValaDataType* type2);
VALA_EXTERN gboolean vala_data_type_stricter (ValaDataType* self,
                                  ValaDataType* type2);
VALA_EXTERN gboolean vala_data_type_compatible (ValaDataType* self,
                                    ValaDataType* target_type);
VALA_EXTERN gboolean vala_data_type_is_invokable (ValaDataType* self);
VALA_EXTERN ValaDataType* vala_data_type_get_return_type (ValaDataType* self);
VALA_EXTERN ValaList* vala_data_type_get_parameters (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_is_reference_type_or_type_parameter (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_is_accessible (ValaDataType* self,
                                       ValaSymbol* sym);
VALA_EXTERN ValaSymbol* vala_data_type_get_member (ValaDataType* self,
                                       const gchar* member_name);
VALA_EXTERN ValaSymbol* vala_data_type_get_pointer_member (ValaDataType* self,
                                               const gchar* member_name);
VALA_EXTERN gboolean vala_data_type_is_real_struct_type (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_is_real_non_null_struct_type (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_is_non_null_simple_type (ValaDataType* self);
VALA_EXTERN gboolean vala_data_type_is_disposable (ValaDataType* self);
VALA_EXTERN ValaDataType* vala_data_type_get_actual_type (ValaDataType* self,
                                              ValaDataType* derived_instance_type,
                                              ValaList* method_type_arguments,
                                              ValaCodeNode* node_reference);
VALA_EXTERN gboolean vala_data_type_is_generic (ValaDataType* self);
VALA_EXTERN void vala_data_type_replace_type_parameter (ValaDataType* self,
                                            ValaTypeParameter* old_type_param,
                                            ValaTypeParameter* new_type_param);
VALA_EXTERN ValaDataType* vala_data_type_infer_type_argument (ValaDataType* self,
                                                  ValaTypeParameter* type_param,
                                                  ValaDataType* value_type);
VALA_EXTERN gchar* vala_data_type_to_prototype_string (ValaDataType* self,
                                           const gchar* override_name);
VALA_EXTERN gboolean vala_data_type_is_weak (ValaDataType* self);
VALA_EXTERN gchar* vala_data_type_get_type_signature (ValaDataType* self,
                                          ValaSymbol* symbol);
VALA_EXTERN gboolean vala_data_type_check_type_arguments (ValaDataType* self,
                                              ValaCodeContext* context,
                                              gboolean allow_none);
VALA_EXTERN ValaDataType* vala_data_type_construct (GType object_type);
VALA_EXTERN ValaSymbol* vala_declaration_statement_get_declaration (ValaDeclarationStatement* self);
VALA_EXTERN ValaDeclarationStatement* vala_declaration_statement_new (ValaSymbol* declaration,
                                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaDeclarationStatement* vala_declaration_statement_construct (GType object_type,
                                                                ValaSymbol* declaration,
                                                                ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_delegate_get_has_target (ValaDelegate* self);
VALA_EXTERN void vala_delegate_set_has_target (ValaDelegate* self,
                                   gboolean value);
VALA_EXTERN ValaDataType* vala_delegate_get_sender_type (ValaDelegate* self);
VALA_EXTERN void vala_delegate_set_sender_type (ValaDelegate* self,
                                    ValaDataType* value);
VALA_EXTERN ValaDelegate* vala_delegate_new (const gchar* name,
                                 ValaDataType* return_type,
                                 ValaSourceReference* source_reference,
                                 ValaComment* comment);
VALA_EXTERN ValaDelegate* vala_delegate_construct (GType object_type,
                                       const gchar* name,
                                       ValaDataType* return_type,
                                       ValaSourceReference* source_reference,
                                       ValaComment* comment);
VALA_EXTERN void vala_delegate_add_type_parameter (ValaDelegate* self,
                                       ValaTypeParameter* p);
VALA_EXTERN ValaList* vala_delegate_get_type_parameters (ValaDelegate* self);
VALA_EXTERN gboolean vala_delegate_has_type_parameters (ValaDelegate* self);
VALA_EXTERN gboolean vala_delegate_matches_method (ValaDelegate* self,
                                       ValaMethod* m,
                                       ValaDataType* dt);
VALA_EXTERN void vala_delegate_add_error_type (ValaDelegate* self,
                                   ValaDataType* error_type);
VALA_EXTERN GType vala_delegate_destroy_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDelegateDestroyField, vala_code_node_unref)
VALA_EXTERN ValaDelegateDestroyField* vala_delegate_destroy_field_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaDelegateDestroyField* vala_delegate_destroy_field_construct (GType object_type,
                                                                 ValaSourceReference* source_reference);
VALA_EXTERN GType vala_delegate_target_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDelegateTargetField, vala_code_node_unref)
VALA_EXTERN ValaDelegateTargetField* vala_delegate_target_field_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaDelegateTargetField* vala_delegate_target_field_construct (GType object_type,
                                                               ValaSourceReference* source_reference);
VALA_EXTERN GType vala_delegate_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDelegateType, vala_code_node_unref)
VALA_EXTERN ValaDelegate* vala_delegate_type_get_delegate_symbol (ValaDelegateType* self);
VALA_EXTERN gboolean vala_delegate_type_get_is_called_once (ValaDelegateType* self);
VALA_EXTERN void vala_delegate_type_set_is_called_once (ValaDelegateType* self,
                                            gboolean value);
VALA_EXTERN ValaDelegateType* vala_delegate_type_new (ValaDelegate* delegate_symbol,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaDelegateType* vala_delegate_type_construct (GType object_type,
                                                ValaDelegate* delegate_symbol,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaExpression* vala_delete_statement_get_expression (ValaDeleteStatement* self);
VALA_EXTERN ValaDeleteStatement* vala_delete_statement_new (ValaExpression* expression,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaDeleteStatement* vala_delete_statement_construct (GType object_type,
                                                      ValaExpression* expression,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaParameter* vala_destructor_get_this_parameter (ValaDestructor* self);
VALA_EXTERN void vala_destructor_set_this_parameter (ValaDestructor* self,
                                         ValaParameter* value);
VALA_EXTERN ValaMemberBinding vala_destructor_get_binding (ValaDestructor* self);
VALA_EXTERN void vala_destructor_set_binding (ValaDestructor* self,
                                  ValaMemberBinding value);
VALA_EXTERN ValaDestructor* vala_destructor_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaDestructor* vala_destructor_construct (GType object_type,
                                           ValaSourceReference* source_reference);
VALA_EXTERN ValaDoStatement* vala_do_statement_new (ValaExpression* condition,
                                        ValaBlock* body,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaDoStatement* vala_do_statement_construct (GType object_type,
                                              ValaExpression* condition,
                                              ValaBlock* body,
                                              ValaSourceReference* source_reference);
VALA_EXTERN GType vala_dynamic_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDynamicMethod, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_dynamic_method_get_dynamic_type (ValaDynamicMethod* self);
VALA_EXTERN ValaMethodCall* vala_dynamic_method_get_invocation (ValaDynamicMethod* self);
VALA_EXTERN void vala_dynamic_method_set_invocation (ValaDynamicMethod* self,
                                         ValaMethodCall* value);
VALA_EXTERN ValaDynamicMethod* vala_dynamic_method_new (ValaDataType* dynamic_type,
                                            const gchar* name,
                                            ValaDataType* return_type,
                                            ValaSourceReference* source_reference,
                                            ValaComment* comment);
VALA_EXTERN ValaDynamicMethod* vala_dynamic_method_construct (GType object_type,
                                                  ValaDataType* dynamic_type,
                                                  const gchar* name,
                                                  ValaDataType* return_type,
                                                  ValaSourceReference* source_reference,
                                                  ValaComment* comment);
VALA_EXTERN GType vala_dynamic_property_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDynamicProperty, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_dynamic_property_get_dynamic_type (ValaDynamicProperty* self);
VALA_EXTERN ValaDynamicProperty* vala_dynamic_property_new (ValaDataType* dynamic_type,
                                                const gchar* name,
                                                ValaSourceReference* source_reference,
                                                ValaComment* comment);
VALA_EXTERN ValaDynamicProperty* vala_dynamic_property_construct (GType object_type,
                                                      ValaDataType* dynamic_type,
                                                      const gchar* name,
                                                      ValaSourceReference* source_reference,
                                                      ValaComment* comment);
VALA_EXTERN GType vala_dynamic_signal_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaDynamicSignal, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_dynamic_signal_get_dynamic_type (ValaDynamicSignal* self);
VALA_EXTERN ValaExpression* vala_dynamic_signal_get_handler (ValaDynamicSignal* self);
VALA_EXTERN void vala_dynamic_signal_set_handler (ValaDynamicSignal* self,
                                      ValaExpression* value);
VALA_EXTERN ValaDynamicSignal* vala_dynamic_signal_new (ValaDataType* dynamic_type,
                                            const gchar* name,
                                            ValaDataType* return_type,
                                            ValaSourceReference* source_reference,
                                            ValaComment* comment);
VALA_EXTERN ValaDynamicSignal* vala_dynamic_signal_construct (GType object_type,
                                                  ValaDataType* dynamic_type,
                                                  const gchar* name,
                                                  ValaDataType* return_type,
                                                  ValaSourceReference* source_reference,
                                                  ValaComment* comment);
VALA_EXTERN ValaExpression* vala_element_access_get_container (ValaElementAccess* self);
VALA_EXTERN void vala_element_access_set_container (ValaElementAccess* self,
                                        ValaExpression* value);
VALA_EXTERN gboolean vala_element_access_get_null_safe_access (ValaElementAccess* self);
VALA_EXTERN void vala_element_access_set_null_safe_access (ValaElementAccess* self,
                                               gboolean value);
VALA_EXTERN void vala_element_access_append_index (ValaElementAccess* self,
                                       ValaExpression* index);
VALA_EXTERN ValaList* vala_element_access_get_indices (ValaElementAccess* self);
VALA_EXTERN ValaElementAccess* vala_element_access_new (ValaExpression* container,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaElementAccess* vala_element_access_construct (GType object_type,
                                                  ValaExpression* container,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaEmptyStatement* vala_empty_statement_new (ValaSourceReference* source);
VALA_EXTERN ValaEmptyStatement* vala_empty_statement_construct (GType object_type,
                                                    ValaSourceReference* source);
VALA_EXTERN gboolean vala_enum_get_is_flags (ValaEnum* self);
VALA_EXTERN ValaEnum* vala_enum_new (const gchar* name,
                         ValaSourceReference* source_reference,
                         ValaComment* comment);
VALA_EXTERN ValaEnum* vala_enum_construct (GType object_type,
                               const gchar* name,
                               ValaSourceReference* source_reference,
                               ValaComment* comment);
VALA_EXTERN void vala_enum_add_value (ValaEnum* self,
                          ValaEnumValue* value);
VALA_EXTERN ValaList* vala_enum_get_values (ValaEnum* self);
VALA_EXTERN ValaList* vala_enum_get_methods (ValaEnum* self);
VALA_EXTERN ValaList* vala_enum_get_constants (ValaEnum* self);
VALA_EXTERN const gchar* vala_enum_value_get_nick (ValaEnumValue* self);
VALA_EXTERN ValaEnumValue* vala_enum_value_new (const gchar* name,
                                    ValaExpression* value,
                                    ValaSourceReference* source_reference,
                                    ValaComment* comment);
VALA_EXTERN ValaEnumValue* vala_enum_value_construct (GType object_type,
                                          const gchar* name,
                                          ValaExpression* value,
                                          ValaSourceReference* source_reference,
                                          ValaComment* comment);
VALA_EXTERN GType vala_enum_value_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaEnumValueType, vala_code_node_unref)
VALA_EXTERN ValaEnumValueType* vala_enum_value_type_new (ValaEnum* type_symbol,
                                             ValaSourceReference* source_reference);
VALA_EXTERN ValaEnumValueType* vala_enum_value_type_construct (GType object_type,
                                                   ValaEnum* type_symbol,
                                                   ValaSourceReference* source_reference);
VALA_EXTERN ValaMethod* vala_enum_value_type_get_to_string_method (ValaEnumValueType* self);
VALA_EXTERN ValaExpression* vala_error_code_get_value (ValaErrorCode* self);
VALA_EXTERN void vala_error_code_set_value (ValaErrorCode* self,
                                ValaExpression* value);
VALA_EXTERN ValaConstant* vala_error_code_get_code (ValaErrorCode* self);
VALA_EXTERN const gchar* vala_error_code_get_nick (ValaErrorCode* self);
VALA_EXTERN ValaErrorCode* vala_error_code_new (const gchar* name,
                                    ValaSourceReference* source_reference,
                                    ValaComment* comment);
VALA_EXTERN ValaErrorCode* vala_error_code_construct (GType object_type,
                                          const gchar* name,
                                          ValaSourceReference* source_reference,
                                          ValaComment* comment);
VALA_EXTERN ValaErrorCode* vala_error_code_new_with_value (const gchar* name,
                                               ValaExpression* value,
                                               ValaSourceReference* source_reference);
VALA_EXTERN ValaErrorCode* vala_error_code_construct_with_value (GType object_type,
                                                     const gchar* name,
                                                     ValaExpression* value,
                                                     ValaSourceReference* source_reference);
VALA_EXTERN ValaErrorDomain* vala_error_domain_new (const gchar* name,
                                        ValaSourceReference* source_reference,
                                        ValaComment* comment);
VALA_EXTERN ValaErrorDomain* vala_error_domain_construct (GType object_type,
                                              const gchar* name,
                                              ValaSourceReference* source_reference,
                                              ValaComment* comment);
VALA_EXTERN void vala_error_domain_add_code (ValaErrorDomain* self,
                                 ValaErrorCode* ecode);
VALA_EXTERN ValaList* vala_error_domain_get_codes (ValaErrorDomain* self);
VALA_EXTERN ValaList* vala_error_domain_get_methods (ValaErrorDomain* self);
VALA_EXTERN GType vala_error_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaErrorType, vala_code_node_unref)
VALA_EXTERN ValaErrorDomain* vala_error_type_get_error_domain (ValaErrorType* self);
VALA_EXTERN ValaErrorCode* vala_error_type_get_error_code (ValaErrorType* self);
VALA_EXTERN void vala_error_type_set_error_code (ValaErrorType* self,
                                     ValaErrorCode* value);
VALA_EXTERN gboolean vala_error_type_get_dynamic_error (ValaErrorType* self);
VALA_EXTERN void vala_error_type_set_dynamic_error (ValaErrorType* self,
                                        gboolean value);
VALA_EXTERN ValaErrorType* vala_error_type_new (ValaErrorDomain* error_domain,
                                    ValaErrorCode* error_code,
                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaErrorType* vala_error_type_construct (GType object_type,
                                          ValaErrorDomain* error_domain,
                                          ValaErrorCode* error_code,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaDataType* vala_expression_get_value_type (ValaExpression* self);
VALA_EXTERN void vala_expression_set_value_type (ValaExpression* self,
                                     ValaDataType* value);
VALA_EXTERN ValaDataType* vala_expression_get_formal_value_type (ValaExpression* self);
VALA_EXTERN void vala_expression_set_formal_value_type (ValaExpression* self,
                                            ValaDataType* value);
VALA_EXTERN ValaDataType* vala_expression_get_target_type (ValaExpression* self);
VALA_EXTERN void vala_expression_set_target_type (ValaExpression* self,
                                      ValaDataType* value);
VALA_EXTERN ValaDataType* vala_expression_get_formal_target_type (ValaExpression* self);
VALA_EXTERN void vala_expression_set_formal_target_type (ValaExpression* self,
                                             ValaDataType* value);
VALA_EXTERN ValaSymbol* vala_expression_get_symbol_reference (ValaExpression* self);
VALA_EXTERN void vala_expression_set_symbol_reference (ValaExpression* self,
                                           ValaSymbol* value);
VALA_EXTERN gboolean vala_expression_get_lvalue (ValaExpression* self);
VALA_EXTERN void vala_expression_set_lvalue (ValaExpression* self,
                                 gboolean value);
VALA_EXTERN ValaTargetValue* vala_expression_get_target_value (ValaExpression* self);
VALA_EXTERN void vala_expression_set_target_value (ValaExpression* self,
                                       ValaTargetValue* value);
VALA_EXTERN gboolean vala_expression_is_constant (ValaExpression* self);
VALA_EXTERN gboolean vala_expression_is_pure (ValaExpression* self);
VALA_EXTERN gboolean vala_expression_is_non_null (ValaExpression* self);
VALA_EXTERN gboolean vala_expression_is_accessible (ValaExpression* self,
                                        ValaSymbol* sym);
VALA_EXTERN gboolean vala_expression_is_always_true (ValaExpression* self);
VALA_EXTERN gboolean vala_expression_is_always_false (ValaExpression* self);
VALA_EXTERN ValaStatement* vala_expression_get_parent_statement (ValaExpression* self);
VALA_EXTERN void vala_expression_insert_statement (ValaExpression* self,
                                       ValaBlock* block,
                                       ValaStatement* stmt);
VALA_EXTERN ValaExpression* vala_expression_construct (GType object_type);
VALA_EXTERN ValaExpression* vala_expression_statement_get_expression (ValaExpressionStatement* self);
VALA_EXTERN ValaExpressionStatement* vala_expression_statement_new (ValaExpression* expression,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaExpressionStatement* vala_expression_statement_construct (GType object_type,
                                                              ValaExpression* expression,
                                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberBinding vala_field_get_binding (ValaField* self);
VALA_EXTERN void vala_field_set_binding (ValaField* self,
                             ValaMemberBinding value);
VALA_EXTERN gboolean vala_field_get_is_volatile (ValaField* self);
VALA_EXTERN void vala_field_set_is_volatile (ValaField* self,
                                 gboolean value);
VALA_EXTERN ValaField* vala_field_new (const gchar* name,
                           ValaDataType* variable_type,
                           ValaExpression* initializer,
                           ValaSourceReference* source_reference,
                           ValaComment* comment);
VALA_EXTERN ValaField* vala_field_construct (GType object_type,
                                 const gchar* name,
                                 ValaDataType* variable_type,
                                 ValaExpression* initializer,
                                 ValaSourceReference* source_reference,
                                 ValaComment* comment);
VALA_EXTERN GType vala_field_prototype_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaFieldPrototype, vala_code_node_unref)
VALA_EXTERN ValaField* vala_field_prototype_get_field_symbol (ValaFieldPrototype* self);
VALA_EXTERN ValaFieldPrototype* vala_field_prototype_new (ValaField* field_symbol,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaFieldPrototype* vala_field_prototype_construct (GType object_type,
                                                    ValaField* field_symbol,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN GType vala_floating_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaFloatingType, vala_code_node_unref)
VALA_EXTERN ValaFloatingType* vala_floating_type_new (ValaStruct* type_symbol,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaFloatingType* vala_floating_type_construct (GType object_type,
                                                ValaStruct* type_symbol,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaFlowAnalyzer* vala_flow_analyzer_new (void);
VALA_EXTERN ValaFlowAnalyzer* vala_flow_analyzer_construct (GType object_type);
VALA_EXTERN void vala_flow_analyzer_analyze (ValaFlowAnalyzer* self,
                                 ValaCodeContext* context);
VALA_EXTERN ValaDataType* vala_foreach_statement_get_type_reference (ValaForeachStatement* self);
VALA_EXTERN const gchar* vala_foreach_statement_get_variable_name (ValaForeachStatement* self);
VALA_EXTERN ValaExpression* vala_foreach_statement_get_collection (ValaForeachStatement* self);
VALA_EXTERN ValaBlock* vala_foreach_statement_get_body (ValaForeachStatement* self);
VALA_EXTERN gboolean vala_foreach_statement_get_use_iterator (ValaForeachStatement* self);
VALA_EXTERN ValaLocalVariable* vala_foreach_statement_get_element_variable (ValaForeachStatement* self);
VALA_EXTERN ValaLocalVariable* vala_foreach_statement_get_collection_variable (ValaForeachStatement* self);
VALA_EXTERN ValaLocalVariable* vala_foreach_statement_get_iterator_variable (ValaForeachStatement* self);
VALA_EXTERN ValaForeachStatement* vala_foreach_statement_new (ValaDataType* type_reference,
                                                  const gchar* variable_name,
                                                  ValaExpression* collection,
                                                  ValaBlock* body,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaForeachStatement* vala_foreach_statement_construct (GType object_type,
                                                        ValaDataType* type_reference,
                                                        const gchar* variable_name,
                                                        ValaExpression* collection,
                                                        ValaBlock* body,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaForStatement* vala_for_statement_new (ValaExpression* condition,
                                          ValaBlock* body,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaForStatement* vala_for_statement_construct (GType object_type,
                                                ValaExpression* condition,
                                                ValaBlock* body,
                                                ValaSourceReference* source_reference);
VALA_EXTERN void vala_for_statement_add_initializer (ValaForStatement* self,
                                         ValaExpression* init);
VALA_EXTERN ValaList* vala_for_statement_get_initializer (ValaForStatement* self);
VALA_EXTERN void vala_for_statement_add_iterator (ValaForStatement* self,
                                      ValaExpression* iter);
VALA_EXTERN ValaList* vala_for_statement_get_iterator (ValaForStatement* self);
VALA_EXTERN GType vala_gir_parser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGirParser, vala_code_visitor_unref)
VALA_EXTERN void vala_gir_parser_parse (ValaGirParser* self,
                            ValaCodeContext* context);
VALA_EXTERN void vala_gir_parser_parse_file (ValaGirParser* self,
                                 ValaSourceFile* source_file);
VALA_EXTERN ValaGirParser* vala_gir_parser_new (void);
VALA_EXTERN ValaGirParser* vala_gir_parser_construct (GType object_type);
VALA_EXTERN GType vala_generic_destroy_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGenericDestroyField, vala_code_node_unref)
VALA_EXTERN ValaGenericDestroyField* vala_generic_destroy_field_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaGenericDestroyField* vala_generic_destroy_field_construct (GType object_type,
                                                               ValaSourceReference* source_reference);
VALA_EXTERN GType vala_generic_dup_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGenericDupField, vala_code_node_unref)
VALA_EXTERN ValaGenericDupField* vala_generic_dup_field_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaGenericDupField* vala_generic_dup_field_construct (GType object_type,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN GType vala_generic_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGenericType, vala_code_node_unref)
VALA_EXTERN ValaTypeParameter* vala_generic_type_get_type_parameter (ValaGenericType* self);
VALA_EXTERN ValaGenericType* vala_generic_type_new (ValaTypeParameter* type_parameter,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaGenericType* vala_generic_type_construct (GType object_type,
                                              ValaTypeParameter* type_parameter,
                                              ValaSourceReference* source_reference);
VALA_EXTERN GType vala_genie_parser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGenieParser, vala_code_visitor_unref)
VALA_EXTERN ValaGenieParser* vala_genie_parser_new (void);
VALA_EXTERN ValaGenieParser* vala_genie_parser_construct (GType object_type);
VALA_EXTERN void vala_genie_parser_parse (ValaGenieParser* self,
                              ValaCodeContext* context);
VALA_EXTERN void vala_genie_parser_parse_file (ValaGenieParser* self,
                                   ValaSourceFile* source_file);
VALA_EXTERN gpointer vala_genie_scanner_ref (gpointer instance);
VALA_EXTERN void vala_genie_scanner_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_genie_param_spec_scanner (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
VALA_EXTERN void vala_genie_value_set_scanner (GValue* value,
                                   gpointer v_object);
VALA_EXTERN void vala_genie_value_take_scanner (GValue* value,
                                    gpointer v_object);
VALA_EXTERN gpointer vala_genie_value_get_scanner (const GValue* value);
VALA_EXTERN GType vala_genie_scanner_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaGenieScanner, vala_genie_scanner_unref)
VALA_EXTERN ValaSourceFile* vala_genie_scanner_get_source_file (ValaGenieScanner* self);
VALA_EXTERN gint vala_genie_scanner_get_indent_spaces (ValaGenieScanner* self);
VALA_EXTERN void vala_genie_scanner_set_indent_spaces (ValaGenieScanner* self,
                                           gint value);
VALA_EXTERN ValaGenieScanner* vala_genie_scanner_new (ValaSourceFile* source_file);
VALA_EXTERN ValaGenieScanner* vala_genie_scanner_construct (GType object_type,
                                                ValaSourceFile* source_file);
VALA_EXTERN GType vala_source_location_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaSourceLocation* vala_source_location_dup (const ValaSourceLocation* self);
VALA_EXTERN void vala_source_location_free (ValaSourceLocation* self);
VALA_EXTERN GType vala_genie_token_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaGenieTokenType vala_genie_scanner_read_regex_token (ValaGenieScanner* self,
                                                        ValaSourceLocation* token_begin,
                                                        ValaSourceLocation* token_end);
VALA_EXTERN void vala_genie_scanner_seek (ValaGenieScanner* self,
                              ValaSourceLocation* location);
VALA_EXTERN ValaGenieTokenType vala_genie_scanner_get_identifier_or_keyword (gchar* begin,
                                                                 gint len);
VALA_EXTERN ValaGenieTokenType vala_genie_scanner_read_template_token (ValaGenieScanner* self,
                                                           ValaSourceLocation* token_begin,
                                                           ValaSourceLocation* token_end);
VALA_EXTERN ValaGenieTokenType vala_genie_scanner_read_token (ValaGenieScanner* self,
                                                  ValaSourceLocation* token_begin,
                                                  ValaSourceLocation* token_end);
VALA_EXTERN void vala_genie_scanner_parse_file_comments (ValaGenieScanner* self);
VALA_EXTERN ValaComment* vala_genie_scanner_pop_comment (ValaGenieScanner* self);
VALA_EXTERN const gchar* vala_genie_token_type_to_string (ValaGenieTokenType self);
VALA_EXTERN ValaExpression* vala_if_statement_get_condition (ValaIfStatement* self);
VALA_EXTERN ValaBlock* vala_if_statement_get_true_statement (ValaIfStatement* self);
VALA_EXTERN ValaBlock* vala_if_statement_get_false_statement (ValaIfStatement* self);
VALA_EXTERN ValaIfStatement* vala_if_statement_new (ValaExpression* cond,
                                        ValaBlock* true_stmt,
                                        ValaBlock* false_stmt,
                                        ValaSourceReference* source);
VALA_EXTERN ValaIfStatement* vala_if_statement_construct (GType object_type,
                                              ValaExpression* cond,
                                              ValaBlock* true_stmt,
                                              ValaBlock* false_stmt,
                                              ValaSourceReference* source);
VALA_EXTERN void vala_initializer_list_append (ValaInitializerList* self,
                                   ValaExpression* expr);
VALA_EXTERN ValaList* vala_initializer_list_get_initializers (ValaInitializerList* self);
VALA_EXTERN gint vala_initializer_list_get_size (ValaInitializerList* self);
VALA_EXTERN ValaInitializerList* vala_initializer_list_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaInitializerList* vala_initializer_list_construct (GType object_type,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_integer_literal_get_value (ValaIntegerLiteral* self);
VALA_EXTERN const gchar* vala_integer_literal_get_type_suffix (ValaIntegerLiteral* self);
VALA_EXTERN ValaIntegerLiteral* vala_integer_literal_new (const gchar* i,
                                              ValaSourceReference* source);
VALA_EXTERN ValaIntegerLiteral* vala_integer_literal_construct (GType object_type,
                                                    const gchar* i,
                                                    ValaSourceReference* source);
VALA_EXTERN GType vala_integer_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaIntegerType, vala_code_node_unref)
VALA_EXTERN ValaIntegerType* vala_integer_type_new (ValaStruct* type_symbol,
                                        const gchar* literal_value,
                                        const gchar* literal_type_name,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaIntegerType* vala_integer_type_construct (GType object_type,
                                              ValaStruct* type_symbol,
                                              const gchar* literal_value,
                                              const gchar* literal_type_name,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaInterface* vala_interface_new (const gchar* name,
                                   ValaSourceReference* source_reference,
                                   ValaComment* comment);
VALA_EXTERN ValaInterface* vala_interface_construct (GType object_type,
                                         const gchar* name,
                                         ValaSourceReference* source_reference,
                                         ValaComment* comment);
VALA_EXTERN void vala_interface_add_prerequisite (ValaInterface* self,
                                      ValaDataType* type);
VALA_EXTERN ValaList* vala_interface_get_prerequisites (ValaInterface* self);
VALA_EXTERN ValaList* vala_interface_get_virtuals (ValaInterface* self);
VALA_EXTERN GType vala_interface_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInterfaceType, vala_code_node_unref)
VALA_EXTERN ValaInterface* vala_interface_type_get_interface_symbol (ValaInterfaceType* self);
VALA_EXTERN ValaInterfaceType* vala_interface_type_new (ValaInterface* interface_symbol,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaInterfaceType* vala_interface_type_construct (GType object_type,
                                                  ValaInterface* interface_symbol,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN GType vala_invalid_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInvalidExpression, vala_code_node_unref)
VALA_EXTERN ValaInvalidExpression* vala_invalid_expression_new (void);
VALA_EXTERN ValaInvalidExpression* vala_invalid_expression_construct (GType object_type);
VALA_EXTERN GType vala_invalid_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaInvalidType, vala_code_node_unref)
VALA_EXTERN ValaInvalidType* vala_invalid_type_new (void);
VALA_EXTERN ValaInvalidType* vala_invalid_type_construct (GType object_type);
VALA_EXTERN ValaExpression* vala_lambda_expression_get_expression_body (ValaLambdaExpression* self);
VALA_EXTERN ValaBlock* vala_lambda_expression_get_statement_body (ValaLambdaExpression* self);
VALA_EXTERN ValaMethod* vala_lambda_expression_get_method (ValaLambdaExpression* self);
VALA_EXTERN ValaLambdaExpression* vala_lambda_expression_new (ValaExpression* expression_body,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaLambdaExpression* vala_lambda_expression_construct (GType object_type,
                                                        ValaExpression* expression_body,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaLambdaExpression* vala_lambda_expression_new_with_statement_body (ValaBlock* statement_body,
                                                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaLambdaExpression* vala_lambda_expression_construct_with_statement_body (GType object_type,
                                                                            ValaBlock* statement_body,
                                                                            ValaSourceReference* source_reference);
VALA_EXTERN void vala_lambda_expression_add_parameter (ValaLambdaExpression* self,
                                           ValaParameter* param);
VALA_EXTERN ValaList* vala_lambda_expression_get_parameters (ValaLambdaExpression* self);
VALA_EXTERN ValaLiteral* vala_literal_construct (GType object_type);
VALA_EXTERN gboolean vala_local_variable_get_is_result (ValaLocalVariable* self);
VALA_EXTERN void vala_local_variable_set_is_result (ValaLocalVariable* self,
                                        gboolean value);
VALA_EXTERN gboolean vala_local_variable_get_captured (ValaLocalVariable* self);
VALA_EXTERN void vala_local_variable_set_captured (ValaLocalVariable* self,
                                       gboolean value);
VALA_EXTERN gboolean vala_local_variable_get_init (ValaLocalVariable* self);
VALA_EXTERN void vala_local_variable_set_init (ValaLocalVariable* self,
                                   gboolean value);
VALA_EXTERN ValaLocalVariable* vala_local_variable_new (ValaDataType* variable_type,
                                            const gchar* name,
                                            ValaExpression* initializer,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaLocalVariable* vala_local_variable_construct (GType object_type,
                                                  ValaDataType* variable_type,
                                                  const gchar* name,
                                                  ValaExpression* initializer,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_lockable_get_lock_used (ValaLockable* self);
VALA_EXTERN void vala_lockable_set_lock_used (ValaLockable* self,
                                  gboolean value);
VALA_EXTERN ValaExpression* vala_lock_statement_get_resource (ValaLockStatement* self);
VALA_EXTERN ValaBlock* vala_lock_statement_get_body (ValaLockStatement* self);
VALA_EXTERN ValaLockStatement* vala_lock_statement_new (ValaExpression* resource,
                                            ValaBlock* body,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaLockStatement* vala_lock_statement_construct (GType object_type,
                                                  ValaExpression* resource,
                                                  ValaBlock* body,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaExpression* vala_loop_get_condition (ValaLoop* self);
VALA_EXTERN ValaBlock* vala_loop_get_body (ValaLoop* self);
VALA_EXTERN ValaLoop* vala_loop_construct (GType object_type,
                               ValaExpression* condition,
                               ValaBlock* body,
                               ValaSourceReference* source_reference);
VALA_EXTERN ValaLoopStatement* vala_loop_statement_new (ValaBlock* body,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaLoopStatement* vala_loop_statement_construct (GType object_type,
                                                  ValaBlock* body,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN gpointer vala_markup_reader_ref (gpointer instance);
VALA_EXTERN void vala_markup_reader_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_markup_reader (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
VALA_EXTERN void vala_value_set_markup_reader (GValue* value,
                                   gpointer v_object);
VALA_EXTERN void vala_value_take_markup_reader (GValue* value,
                                    gpointer v_object);
VALA_EXTERN gpointer vala_value_get_markup_reader (const GValue* value);
VALA_EXTERN GType vala_markup_reader_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMarkupReader, vala_markup_reader_unref)
VALA_EXTERN const gchar* vala_markup_reader_get_filename (ValaMarkupReader* self);
VALA_EXTERN const gchar* vala_markup_reader_get_name (ValaMarkupReader* self);
VALA_EXTERN const gchar* vala_markup_reader_get_content (ValaMarkupReader* self);
VALA_EXTERN ValaMarkupReader* vala_markup_reader_new (const gchar* filename);
VALA_EXTERN ValaMarkupReader* vala_markup_reader_construct (GType object_type,
                                                const gchar* filename);
VALA_EXTERN ValaMarkupReader* vala_markup_reader_new_from_string (const gchar* filename,
                                                      const gchar* content);
VALA_EXTERN ValaMarkupReader* vala_markup_reader_construct_from_string (GType object_type,
                                                            const gchar* filename,
                                                            const gchar* content);
VALA_EXTERN gboolean vala_markup_reader_has_attribute (ValaMarkupReader* self,
                                           const gchar* attr);
VALA_EXTERN gchar* vala_markup_reader_get_attribute (ValaMarkupReader* self,
                                         const gchar* attr);
VALA_EXTERN ValaMap* vala_markup_reader_get_attributes (ValaMarkupReader* self);
VALA_EXTERN GType vala_markup_token_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaMarkupTokenType vala_markup_reader_read_token (ValaMarkupReader* self,
                                                   ValaSourceLocation* token_begin,
                                                   ValaSourceLocation* token_end);
VALA_EXTERN const gchar* vala_markup_token_type_to_string (ValaMarkupTokenType self);
VALA_EXTERN ValaExpression* vala_member_access_get_inner (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_inner (ValaMemberAccess* self,
                                   ValaExpression* value);
VALA_EXTERN const gchar* vala_member_access_get_member_name (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_member_name (ValaMemberAccess* self,
                                         const gchar* value);
VALA_EXTERN gboolean vala_member_access_get_pointer_member_access (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_pointer_member_access (ValaMemberAccess* self,
                                                   gboolean value);
VALA_EXTERN gboolean vala_member_access_get_prototype_access (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_prototype_access (ValaMemberAccess* self,
                                              gboolean value);
VALA_EXTERN gboolean vala_member_access_get_tainted_access (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_tainted_access (ValaMemberAccess* self,
                                            gboolean value);
VALA_EXTERN gboolean vala_member_access_get_qualified (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_qualified (ValaMemberAccess* self,
                                       gboolean value);
VALA_EXTERN gboolean vala_member_access_get_null_safe_access (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_set_null_safe_access (ValaMemberAccess* self,
                                              gboolean value);
VALA_EXTERN ValaMemberAccess* vala_member_access_new (ValaExpression* inner,
                                          const gchar* member_name,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberAccess* vala_member_access_construct (GType object_type,
                                                ValaExpression* inner,
                                                const gchar* member_name,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberAccess* vala_member_access_new_simple (const gchar* member_name,
                                                 ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberAccess* vala_member_access_construct_simple (GType object_type,
                                                       const gchar* member_name,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberAccess* vala_member_access_new_pointer (ValaExpression* inner,
                                                  const gchar* member_name,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberAccess* vala_member_access_construct_pointer (GType object_type,
                                                        ValaExpression* inner,
                                                        const gchar* member_name,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN void vala_member_access_add_type_argument (ValaMemberAccess* self,
                                           ValaDataType* arg);
VALA_EXTERN ValaList* vala_member_access_get_type_arguments (ValaMemberAccess* self);
VALA_EXTERN void vala_member_access_check_lvalue_access (ValaMemberAccess* self);
VALA_EXTERN GType vala_member_initializer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMemberInitializer, vala_code_node_unref)
VALA_EXTERN const gchar* vala_member_initializer_get_name (ValaMemberInitializer* self);
VALA_EXTERN ValaExpression* vala_member_initializer_get_initializer (ValaMemberInitializer* self);
VALA_EXTERN ValaMemberInitializer* vala_member_initializer_new (const gchar* name,
                                                    ValaExpression* initializer,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberInitializer* vala_member_initializer_construct (GType object_type,
                                                          const gchar* name,
                                                          ValaExpression* initializer,
                                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaMemberBinding vala_method_get_binding (ValaMethod* self);
VALA_EXTERN void vala_method_set_binding (ValaMethod* self,
                              ValaMemberBinding value);
VALA_EXTERN gboolean vala_method_get_is_abstract (ValaMethod* self);
VALA_EXTERN void vala_method_set_is_abstract (ValaMethod* self,
                                  gboolean value);
VALA_EXTERN gboolean vala_method_get_is_virtual (ValaMethod* self);
VALA_EXTERN void vala_method_set_is_virtual (ValaMethod* self,
                                 gboolean value);
VALA_EXTERN gboolean vala_method_get_overrides (ValaMethod* self);
VALA_EXTERN void vala_method_set_overrides (ValaMethod* self,
                                gboolean value);
VALA_EXTERN gboolean vala_method_get_is_inline (ValaMethod* self);
VALA_EXTERN void vala_method_set_is_inline (ValaMethod* self,
                                gboolean value);
VALA_EXTERN gboolean vala_method_get_returns_floating_reference (ValaMethod* self);
VALA_EXTERN void vala_method_set_returns_floating_reference (ValaMethod* self,
                                                 gboolean value);
VALA_EXTERN gboolean vala_method_get_returns_modified_pointer (ValaMethod* self);
VALA_EXTERN void vala_method_set_returns_modified_pointer (ValaMethod* self,
                                               gboolean value);
VALA_EXTERN ValaMethod* vala_method_get_base_method (ValaMethod* self);
VALA_EXTERN ValaMethod* vala_method_get_base_interface_method (ValaMethod* self);
VALA_EXTERN ValaDataType* vala_method_get_base_interface_type (ValaMethod* self);
VALA_EXTERN void vala_method_set_base_interface_type (ValaMethod* self,
                                          ValaDataType* value);
VALA_EXTERN gboolean vala_method_get_entry_point (ValaMethod* self);
VALA_EXTERN gboolean vala_method_get_is_main_block (ValaMethod* self);
VALA_EXTERN ValaParameter* vala_method_get_this_parameter (ValaMethod* self);
VALA_EXTERN void vala_method_set_this_parameter (ValaMethod* self,
                                     ValaParameter* value);
VALA_EXTERN gboolean vala_method_get_printf_format (ValaMethod* self);
VALA_EXTERN void vala_method_set_printf_format (ValaMethod* self,
                                    gboolean value);
VALA_EXTERN gboolean vala_method_get_scanf_format (ValaMethod* self);
VALA_EXTERN void vala_method_set_scanf_format (ValaMethod* self,
                                   gboolean value);
VALA_EXTERN gboolean vala_method_get_has_construct_function (ValaMethod* self);
VALA_EXTERN void vala_method_set_has_construct_function (ValaMethod* self,
                                             gboolean value);
VALA_EXTERN ValaLocalVariable* vala_method_get_params_array_var (ValaMethod* self);
VALA_EXTERN void vala_method_set_params_array_var (ValaMethod* self,
                                       ValaLocalVariable* value);
VALA_EXTERN ValaSignal* vala_method_get_signal_reference (ValaMethod* self);
VALA_EXTERN void vala_method_set_signal_reference (ValaMethod* self,
                                       ValaSignal* value);
VALA_EXTERN gboolean vala_method_get_closure (ValaMethod* self);
VALA_EXTERN void vala_method_set_closure (ValaMethod* self,
                              gboolean value);
VALA_EXTERN gboolean vala_method_get_coroutine (ValaMethod* self);
VALA_EXTERN void vala_method_set_coroutine (ValaMethod* self,
                                gboolean value);
VALA_EXTERN gboolean vala_method_get_is_async_callback (ValaMethod* self);
VALA_EXTERN void vala_method_set_is_async_callback (ValaMethod* self,
                                        gboolean value);
VALA_EXTERN ValaMethod* vala_method_new (const gchar* name,
                             ValaDataType* return_type,
                             ValaSourceReference* source_reference,
                             ValaComment* comment);
VALA_EXTERN ValaMethod* vala_method_construct (GType object_type,
                                   const gchar* name,
                                   ValaDataType* return_type,
                                   ValaSourceReference* source_reference,
                                   ValaComment* comment);
VALA_EXTERN ValaMethod* vala_method_new_main_block (ValaSourceReference* source_reference);
VALA_EXTERN ValaMethod* vala_method_construct_main_block (GType object_type,
                                              ValaSourceReference* source_reference);
VALA_EXTERN void vala_method_clear_parameters (ValaMethod* self);
VALA_EXTERN gboolean vala_method_is_variadic (ValaMethod* self);
VALA_EXTERN gboolean vala_method_compatible (ValaMethod* self,
                                 ValaMethod* base_method,
                                 gchar** invalid_match);
VALA_EXTERN gboolean vala_method_compatible_no_error (ValaMethod* self,
                                          ValaMethod* base_method);
VALA_EXTERN void vala_method_add_type_parameter (ValaMethod* self,
                                     ValaTypeParameter* p);
VALA_EXTERN ValaList* vala_method_get_type_parameters (ValaMethod* self);
VALA_EXTERN gint vala_method_get_type_parameter_index (ValaMethod* self,
                                           const gchar* name);
VALA_EXTERN gboolean vala_method_has_type_parameters (ValaMethod* self);
VALA_EXTERN void vala_method_add_precondition (ValaMethod* self,
                                   ValaExpression* precondition);
VALA_EXTERN ValaList* vala_method_get_preconditions (ValaMethod* self);
VALA_EXTERN void vala_method_add_postcondition (ValaMethod* self,
                                    ValaExpression* postcondition);
VALA_EXTERN ValaList* vala_method_get_postconditions (ValaMethod* self);
VALA_EXTERN void vala_method_add_error_type (ValaMethod* self,
                                 ValaDataType* error_type);
VALA_EXTERN gint vala_method_get_required_arguments (ValaMethod* self);
VALA_EXTERN ValaMethod* vala_method_get_end_method (ValaMethod* self);
VALA_EXTERN ValaMethod* vala_method_get_callback_method (ValaMethod* self);
VALA_EXTERN ValaList* vala_method_get_async_begin_parameters (ValaMethod* self);
VALA_EXTERN ValaList* vala_method_get_async_end_parameters (ValaMethod* self);
VALA_EXTERN void vala_method_add_captured_variable (ValaMethod* self,
                                        ValaLocalVariable* local);
VALA_EXTERN void vala_method_get_captured_variables (ValaMethod* self,
                                         ValaCollection* variables);
VALA_EXTERN gint vala_method_get_format_arg_index (ValaMethod* self);
VALA_EXTERN gboolean vala_method_has_error_type_parameter (ValaMethod* self);
VALA_EXTERN gboolean vala_method_call_get_is_assert (ValaMethodCall* self);
VALA_EXTERN gboolean vala_method_call_get_is_constructv_chainup (ValaMethodCall* self);
VALA_EXTERN ValaMethodCall* vala_method_call_new (ValaExpression* call,
                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaMethodCall* vala_method_call_construct (GType object_type,
                                            ValaExpression* call,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaStringLiteral* vala_method_call_get_format_literal (ValaMethodCall* self);
VALA_EXTERN GType vala_method_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaMethodType, vala_code_node_unref)
VALA_EXTERN ValaMethod* vala_method_type_get_method_symbol (ValaMethodType* self);
VALA_EXTERN ValaMethodType* vala_method_type_new (ValaMethod* method_symbol,
                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaMethodType* vala_method_type_construct (GType object_type,
                                            ValaMethod* method_symbol,
                                            ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_named_argument_get_name (ValaNamedArgument* self);
VALA_EXTERN ValaExpression* vala_named_argument_get_inner (ValaNamedArgument* self);
VALA_EXTERN ValaNamedArgument* vala_named_argument_new (const gchar* name,
                                            ValaExpression* inner,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaNamedArgument* vala_named_argument_construct (GType object_type,
                                                  const gchar* name,
                                                  ValaExpression* inner,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaNamespace* vala_namespace_new (const gchar* name,
                                   ValaSourceReference* source_reference);
VALA_EXTERN ValaNamespace* vala_namespace_construct (GType object_type,
                                         const gchar* name,
                                         ValaSourceReference* source_reference);
VALA_EXTERN void vala_namespace_add_using_directive (ValaNamespace* self,
                                         ValaUsingDirective* ns);
VALA_EXTERN void vala_namespace_add_comment (ValaNamespace* self,
                                 ValaComment* comment);
VALA_EXTERN ValaList* vala_namespace_get_comments (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_namespaces (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_structs (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_classes (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_interfaces (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_enums (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_error_domains (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_fields (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_constants (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_delegates (ValaNamespace* self);
VALA_EXTERN ValaList* vala_namespace_get_methods (ValaNamespace* self);
VALA_EXTERN ValaNullLiteral* vala_null_literal_new (ValaSourceReference* source);
VALA_EXTERN ValaNullLiteral* vala_null_literal_construct (GType object_type,
                                              ValaSourceReference* source);
VALA_EXTERN GType vala_null_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaNullType, vala_code_node_unref)
VALA_EXTERN ValaNullType* vala_null_type_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaNullType* vala_null_type_construct (GType object_type,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaDataType* vala_object_creation_expression_get_type_reference (ValaObjectCreationExpression* self);
VALA_EXTERN ValaMemberAccess* vala_object_creation_expression_get_member_name (ValaObjectCreationExpression* self);
VALA_EXTERN gboolean vala_object_creation_expression_get_struct_creation (ValaObjectCreationExpression* self);
VALA_EXTERN void vala_object_creation_expression_set_struct_creation (ValaObjectCreationExpression* self,
                                                          gboolean value);
VALA_EXTERN ValaObjectCreationExpression* vala_object_creation_expression_new (ValaMemberAccess* member_name,
                                                                   ValaSourceReference* source_reference);
VALA_EXTERN ValaObjectCreationExpression* vala_object_creation_expression_construct (GType object_type,
                                                                         ValaMemberAccess* member_name,
                                                                         ValaSourceReference* source_reference);
VALA_EXTERN void vala_object_creation_expression_add_member_initializer (ValaObjectCreationExpression* self,
                                                             ValaMemberInitializer* init);
VALA_EXTERN ValaList* vala_object_creation_expression_get_object_initializer (ValaObjectCreationExpression* self);
VALA_EXTERN GType vala_object_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaObjectType, vala_code_node_unref)
VALA_EXTERN ValaObjectTypeSymbol* vala_object_type_get_object_type_symbol (ValaObjectType* self);
VALA_EXTERN ValaObjectType* vala_object_type_new (ValaObjectTypeSymbol* type_symbol,
                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaObjectType* vala_object_type_construct (GType object_type,
                                            ValaObjectTypeSymbol* type_symbol,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaObjectTypeSymbol* vala_object_type_symbol_construct (GType object_type,
                                                         const gchar* name,
                                                         ValaSourceReference* source_reference,
                                                         ValaComment* comment);
VALA_EXTERN ValaList* vala_object_type_symbol_get_members (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_fields (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_methods (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_properties (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_signals (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_classes (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_interfaces (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_structs (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_enums (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_delegates (ValaObjectTypeSymbol* self);
VALA_EXTERN ValaList* vala_object_type_symbol_get_constants (ValaObjectTypeSymbol* self);
VALA_EXTERN void vala_object_type_symbol_add_type_parameter (ValaObjectTypeSymbol* self,
                                                 ValaTypeParameter* p);
VALA_EXTERN ValaList* vala_object_type_symbol_get_type_parameters (ValaObjectTypeSymbol* self);
VALA_EXTERN gboolean vala_object_type_symbol_has_type_parameters (ValaObjectTypeSymbol* self);
VALA_EXTERN void vala_object_type_symbol_add_hidden_method (ValaObjectTypeSymbol* self,
                                                ValaMethod* m);
VALA_EXTERN GType vala_parameter_direction_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaParameterDirection vala_parameter_get_direction (ValaParameter* self);
VALA_EXTERN void vala_parameter_set_direction (ValaParameter* self,
                                   ValaParameterDirection value);
VALA_EXTERN gboolean vala_parameter_get_ellipsis (ValaParameter* self);
VALA_EXTERN void vala_parameter_set_ellipsis (ValaParameter* self,
                                  gboolean value);
VALA_EXTERN gboolean vala_parameter_get_params_array (ValaParameter* self);
VALA_EXTERN void vala_parameter_set_params_array (ValaParameter* self,
                                      gboolean value);
VALA_EXTERN gboolean vala_parameter_get_captured (ValaParameter* self);
VALA_EXTERN void vala_parameter_set_captured (ValaParameter* self,
                                  gboolean value);
VALA_EXTERN gboolean vala_parameter_get_format_arg (ValaParameter* self);
VALA_EXTERN ValaParameter* vala_parameter_get_base_parameter (ValaParameter* self);
VALA_EXTERN void vala_parameter_set_base_parameter (ValaParameter* self,
                                        ValaParameter* value);
VALA_EXTERN ValaParameter* vala_parameter_new (const gchar* name,
                                   ValaDataType* variable_type,
                                   ValaSourceReference* source_reference);
VALA_EXTERN ValaParameter* vala_parameter_construct (GType object_type,
                                         const gchar* name,
                                         ValaDataType* variable_type,
                                         ValaSourceReference* source_reference);
VALA_EXTERN ValaParameter* vala_parameter_new_with_ellipsis (ValaSourceReference* source_reference);
VALA_EXTERN ValaParameter* vala_parameter_construct_with_ellipsis (GType object_type,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN ValaParameter* vala_parameter_copy (ValaParameter* self);
VALA_EXTERN GType vala_parser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaParser, vala_code_visitor_unref)
VALA_EXTERN ValaParser* vala_parser_new (void);
VALA_EXTERN ValaParser* vala_parser_construct (GType object_type);
VALA_EXTERN void vala_parser_parse (ValaParser* self,
                        ValaCodeContext* context);
VALA_EXTERN void vala_parser_parse_file (ValaParser* self,
                             ValaSourceFile* source_file);
VALA_EXTERN GQuark vala_parse_error_quark (void);
VALA_EXTERN GType vala_parse_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaVariable* vala_phi_function_get_original_variable (ValaPhiFunction* self);
VALA_EXTERN ValaList* vala_phi_function_get_operands (ValaPhiFunction* self);
VALA_EXTERN ValaPhiFunction* vala_phi_function_new (ValaVariable* variable,
                                        gint num_of_ops);
VALA_EXTERN ValaPhiFunction* vala_phi_function_construct (GType object_type,
                                              ValaVariable* variable,
                                              gint num_of_ops);
VALA_EXTERN ValaExpression* vala_pointer_indirection_get_inner (ValaPointerIndirection* self);
VALA_EXTERN ValaPointerIndirection* vala_pointer_indirection_new (ValaExpression* inner,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaPointerIndirection* vala_pointer_indirection_construct (GType object_type,
                                                            ValaExpression* inner,
                                                            ValaSourceReference* source_reference);
VALA_EXTERN GType vala_pointer_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPointerType, vala_code_node_unref)
VALA_EXTERN ValaDataType* vala_pointer_type_get_base_type (ValaPointerType* self);
VALA_EXTERN void vala_pointer_type_set_base_type (ValaPointerType* self,
                                      ValaDataType* value);
VALA_EXTERN ValaPointerType* vala_pointer_type_new (ValaDataType* base_type,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaPointerType* vala_pointer_type_construct (GType object_type,
                                              ValaDataType* base_type,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaExpression* vala_postfix_expression_get_inner (ValaPostfixExpression* self);
VALA_EXTERN gboolean vala_postfix_expression_get_increment (ValaPostfixExpression* self);
VALA_EXTERN ValaPostfixExpression* vala_postfix_expression_new (ValaExpression* _inner,
                                                    gboolean inc,
                                                    ValaSourceReference* source);
VALA_EXTERN ValaPostfixExpression* vala_postfix_expression_construct (GType object_type,
                                                          ValaExpression* _inner,
                                                          gboolean inc,
                                                          ValaSourceReference* source);
VALA_EXTERN ValaProperty* vala_property_accessor_get_prop (ValaPropertyAccessor* self);
VALA_EXTERN ValaDataType* vala_property_accessor_get_value_type (ValaPropertyAccessor* self);
VALA_EXTERN gboolean vala_property_accessor_get_readable (ValaPropertyAccessor* self);
VALA_EXTERN gboolean vala_property_accessor_get_writable (ValaPropertyAccessor* self);
VALA_EXTERN gboolean vala_property_accessor_get_construction (ValaPropertyAccessor* self);
VALA_EXTERN gboolean vala_property_accessor_get_automatic_body (ValaPropertyAccessor* self);
VALA_EXTERN ValaParameter* vala_property_accessor_get_value_parameter (ValaPropertyAccessor* self);
VALA_EXTERN ValaPropertyAccessor* vala_property_accessor_new (gboolean readable,
                                                  gboolean writable,
                                                  gboolean construction,
                                                  ValaDataType* value_type,
                                                  ValaBlock* body,
                                                  ValaSourceReference* source_reference,
                                                  ValaComment* comment);
VALA_EXTERN ValaPropertyAccessor* vala_property_accessor_construct (GType object_type,
                                                        gboolean readable,
                                                        gboolean writable,
                                                        gboolean construction,
                                                        ValaDataType* value_type,
                                                        ValaBlock* body,
                                                        ValaSourceReference* source_reference,
                                                        ValaComment* comment);
VALA_EXTERN ValaMethod* vala_property_accessor_get_method (ValaPropertyAccessor* self);
VALA_EXTERN ValaDataType* vala_property_get_property_type (ValaProperty* self);
VALA_EXTERN void vala_property_set_property_type (ValaProperty* self,
                                      ValaDataType* value);
VALA_EXTERN ValaPropertyAccessor* vala_property_get_get_accessor (ValaProperty* self);
VALA_EXTERN void vala_property_set_get_accessor (ValaProperty* self,
                                     ValaPropertyAccessor* value);
VALA_EXTERN ValaPropertyAccessor* vala_property_get_set_accessor (ValaProperty* self);
VALA_EXTERN void vala_property_set_set_accessor (ValaProperty* self,
                                     ValaPropertyAccessor* value);
VALA_EXTERN ValaParameter* vala_property_get_this_parameter (ValaProperty* self);
VALA_EXTERN void vala_property_set_this_parameter (ValaProperty* self,
                                       ValaParameter* value);
VALA_EXTERN gboolean vala_property_get_interface_only (ValaProperty* self);
VALA_EXTERN void vala_property_set_interface_only (ValaProperty* self,
                                       gboolean value);
VALA_EXTERN gboolean vala_property_get_is_abstract (ValaProperty* self);
VALA_EXTERN void vala_property_set_is_abstract (ValaProperty* self,
                                    gboolean value);
VALA_EXTERN gboolean vala_property_get_is_virtual (ValaProperty* self);
VALA_EXTERN void vala_property_set_is_virtual (ValaProperty* self,
                                   gboolean value);
VALA_EXTERN gboolean vala_property_get_overrides (ValaProperty* self);
VALA_EXTERN void vala_property_set_overrides (ValaProperty* self,
                                  gboolean value);
VALA_EXTERN ValaField* vala_property_get_field (ValaProperty* self);
VALA_EXTERN ValaMemberBinding vala_property_get_binding (ValaProperty* self);
VALA_EXTERN void vala_property_set_binding (ValaProperty* self,
                                ValaMemberBinding value);
VALA_EXTERN const gchar* vala_property_get_nick (ValaProperty* self);
VALA_EXTERN const gchar* vala_property_get_blurb (ValaProperty* self);
VALA_EXTERN gboolean vala_property_get_notify (ValaProperty* self);
VALA_EXTERN ValaProperty* vala_property_get_base_property (ValaProperty* self);
VALA_EXTERN ValaProperty* vala_property_get_base_interface_property (ValaProperty* self);
VALA_EXTERN ValaExpression* vala_property_get_initializer (ValaProperty* self);
VALA_EXTERN void vala_property_set_initializer (ValaProperty* self,
                                    ValaExpression* value);
VALA_EXTERN ValaProperty* vala_property_new (const gchar* name,
                                 ValaDataType* property_type,
                                 ValaPropertyAccessor* get_accessor,
                                 ValaPropertyAccessor* set_accessor,
                                 ValaSourceReference* source_reference,
                                 ValaComment* comment);
VALA_EXTERN ValaProperty* vala_property_construct (GType object_type,
                                       const gchar* name,
                                       ValaDataType* property_type,
                                       ValaPropertyAccessor* get_accessor,
                                       ValaPropertyAccessor* set_accessor,
                                       ValaSourceReference* source_reference,
                                       ValaComment* comment);
VALA_EXTERN gboolean vala_property_compatible (ValaProperty* self,
                                   ValaProperty* base_property,
                                   gchar** invalid_match);
VALA_EXTERN GType vala_property_prototype_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaPropertyPrototype, vala_code_node_unref)
VALA_EXTERN ValaProperty* vala_property_prototype_get_property_symbol (ValaPropertyPrototype* self);
VALA_EXTERN ValaPropertyPrototype* vala_property_prototype_new (ValaProperty* property_symbol,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaPropertyPrototype* vala_property_prototype_construct (GType object_type,
                                                          ValaProperty* property_symbol,
                                                          ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_real_literal_get_value (ValaRealLiteral* self);
VALA_EXTERN ValaRealLiteral* vala_real_literal_new (const gchar* r,
                                        ValaSourceReference* source);
VALA_EXTERN ValaRealLiteral* vala_real_literal_construct (GType object_type,
                                              const gchar* r,
                                              ValaSourceReference* source);
VALA_EXTERN ValaExpression* vala_reference_transfer_expression_get_inner (ValaReferenceTransferExpression* self);
VALA_EXTERN ValaReferenceTransferExpression* vala_reference_transfer_expression_new (ValaExpression* inner,
                                                                         ValaSourceReference* source_reference);
VALA_EXTERN ValaReferenceTransferExpression* vala_reference_transfer_expression_construct (GType object_type,
                                                                               ValaExpression* inner,
                                                                               ValaSourceReference* source_reference);
VALA_EXTERN ValaReferenceType* vala_reference_type_construct (GType object_type,
                                                  ValaSymbol* symbol,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_regex_literal_get_value (ValaRegexLiteral* self);
VALA_EXTERN ValaRegexLiteral* vala_regex_literal_new (const gchar* value,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaRegexLiteral* vala_regex_literal_construct (GType object_type,
                                                const gchar* value,
                                                ValaSourceReference* source_reference);
VALA_EXTERN GType vala_report_colored_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean vala_report_get_enable_warnings (ValaReport* self);
VALA_EXTERN void vala_report_set_enable_warnings (ValaReport* self,
                                      gboolean value);
VALA_EXTERN gboolean vala_report_set_colors (ValaReport* self,
                                 const gchar* str,
                                 ValaReportColored colored_output);
VALA_EXTERN void vala_report_set_verbose_errors (ValaReport* self,
                                     gboolean verbose);
VALA_EXTERN gint vala_report_get_warnings (ValaReport* self);
VALA_EXTERN gint vala_report_get_errors (ValaReport* self);
VALA_EXTERN void vala_report_note (ValaReport* self,
                       ValaSourceReference* source,
                       const gchar* message);
VALA_EXTERN void vala_report_depr (ValaReport* self,
                       ValaSourceReference* source,
                       const gchar* message);
VALA_EXTERN void vala_report_warn (ValaReport* self,
                       ValaSourceReference* source,
                       const gchar* message);
VALA_EXTERN void vala_report_err (ValaReport* self,
                      ValaSourceReference* source,
                      const gchar* message);
VALA_EXTERN void vala_report_notice (ValaSourceReference* source,
                         const gchar* msg_format,
                         ...)  G_GNUC_PRINTF(2,3) ;
VALA_EXTERN void vala_report_deprecated (ValaSourceReference* source,
                             const gchar* msg_format,
                             ...)  G_GNUC_PRINTF(2,3) ;
VALA_EXTERN void vala_report_experimental (ValaSourceReference* source,
                               const gchar* msg_format,
                               ...)  G_GNUC_PRINTF(2,3) ;
VALA_EXTERN void vala_report_warning (ValaSourceReference* source,
                          const gchar* msg_format,
                          ...)  G_GNUC_PRINTF(2,3) ;
VALA_EXTERN void vala_report_error (ValaSourceReference* source,
                        const gchar* msg_format,
                        ...)  G_GNUC_PRINTF(2,3) ;
VALA_EXTERN ValaReport* vala_report_new (void);
VALA_EXTERN ValaReport* vala_report_construct (GType object_type);
VALA_EXTERN ValaExpression* vala_return_statement_get_return_expression (ValaReturnStatement* self);
VALA_EXTERN ValaReturnStatement* vala_return_statement_new (ValaExpression* return_expression,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaReturnStatement* vala_return_statement_construct (GType object_type,
                                                      ValaExpression* return_expression,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN gpointer vala_scanner_ref (gpointer instance);
VALA_EXTERN void vala_scanner_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_scanner (const gchar* name,
                                     const gchar* nick,
                                     const gchar* blurb,
                                     GType object_type,
                                     GParamFlags flags);
VALA_EXTERN void vala_value_set_scanner (GValue* value,
                             gpointer v_object);
VALA_EXTERN void vala_value_take_scanner (GValue* value,
                              gpointer v_object);
VALA_EXTERN gpointer vala_value_get_scanner (const GValue* value);
VALA_EXTERN GType vala_scanner_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaScanner, vala_scanner_unref)
VALA_EXTERN ValaSourceFile* vala_scanner_get_source_file (ValaScanner* self);
VALA_EXTERN ValaScanner* vala_scanner_new (ValaSourceFile* source_file);
VALA_EXTERN ValaScanner* vala_scanner_construct (GType object_type,
                                     ValaSourceFile* source_file);
VALA_EXTERN void vala_scanner_seek (ValaScanner* self,
                        ValaSourceLocation* location);
VALA_EXTERN GType vala_token_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaTokenType vala_scanner_read_regex_token (ValaScanner* self,
                                             ValaSourceLocation* token_begin,
                                             ValaSourceLocation* token_end);
VALA_EXTERN ValaTokenType vala_scanner_get_identifier_or_keyword (gchar* begin,
                                                      gint len);
VALA_EXTERN ValaTokenType vala_scanner_read_template_token (ValaScanner* self,
                                                ValaSourceLocation* token_begin,
                                                ValaSourceLocation* token_end);
VALA_EXTERN ValaTokenType vala_scanner_read_token (ValaScanner* self,
                                       ValaSourceLocation* token_begin,
                                       ValaSourceLocation* token_end);
VALA_EXTERN void vala_scanner_parse_file_comments (ValaScanner* self);
VALA_EXTERN ValaComment* vala_scanner_pop_comment (ValaScanner* self);
VALA_EXTERN ValaSymbol* vala_scope_get_owner (ValaScope* self);
VALA_EXTERN void vala_scope_set_owner (ValaScope* self,
                           ValaSymbol* value);
VALA_EXTERN ValaScope* vala_scope_get_parent_scope (ValaScope* self);
VALA_EXTERN void vala_scope_set_parent_scope (ValaScope* self,
                                  ValaScope* value);
VALA_EXTERN ValaScope* vala_scope_new (ValaSymbol* owner);
VALA_EXTERN ValaScope* vala_scope_construct (GType object_type,
                                 ValaSymbol* owner);
VALA_EXTERN void vala_scope_add (ValaScope* self,
                     const gchar* name,
                     ValaSymbol* sym);
VALA_EXTERN void vala_scope_remove (ValaScope* self,
                        const gchar* name);
VALA_EXTERN ValaSymbol* vala_scope_lookup (ValaScope* self,
                               const gchar* name);
VALA_EXTERN gboolean vala_scope_is_subscope_of (ValaScope* self,
                                    ValaScope* scope);
VALA_EXTERN ValaMap* vala_scope_get_symbol_table (ValaScope* self);
VALA_EXTERN GType vala_struct_value_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStructValueType, vala_code_node_unref)
VALA_EXTERN ValaSymbol* vala_semantic_analyzer_get_current_symbol (ValaSemanticAnalyzer* self);
VALA_EXTERN void vala_semantic_analyzer_set_current_symbol (ValaSemanticAnalyzer* self,
                                                ValaSymbol* value);
VALA_EXTERN ValaSourceFile* vala_semantic_analyzer_get_current_source_file (ValaSemanticAnalyzer* self);
VALA_EXTERN void vala_semantic_analyzer_set_current_source_file (ValaSemanticAnalyzer* self,
                                                     ValaSourceFile* value);
VALA_EXTERN ValaTypeSymbol* vala_semantic_analyzer_get_current_type_symbol (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaClass* vala_semantic_analyzer_get_current_class (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaStruct* vala_semantic_analyzer_get_current_struct (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaMethod* vala_semantic_analyzer_get_current_method (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaMethod* vala_semantic_analyzer_get_current_async_method (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaPropertyAccessor* vala_semantic_analyzer_get_current_property_accessor (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaSymbol* vala_semantic_analyzer_get_current_method_or_property_accessor (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_current_return_type (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaSemanticAnalyzer* vala_semantic_analyzer_new (void);
VALA_EXTERN ValaSemanticAnalyzer* vala_semantic_analyzer_construct (GType object_type);
VALA_EXTERN void vala_semantic_analyzer_analyze (ValaSemanticAnalyzer* self,
                                     ValaCodeContext* context);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_value_type_for_symbol (ValaSemanticAnalyzer* self,
                                                                ValaSymbol* sym,
                                                                gboolean lvalue);
VALA_EXTERN ValaSymbol* vala_semantic_analyzer_symbol_lookup_inherited (ValaSymbol* sym,
                                                            const gchar* name);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_data_type_for_symbol (ValaSymbol* sym);
VALA_EXTERN ValaSymbol* vala_semantic_analyzer_get_symbol_for_data_type (ValaDataType* type);
VALA_EXTERN gboolean vala_semantic_analyzer_is_gobject_property (ValaSemanticAnalyzer* self,
                                                     ValaProperty* prop);
VALA_EXTERN gboolean vala_semantic_analyzer_is_gobject_property_type (ValaSemanticAnalyzer* self,
                                                          ValaDataType* property_type);
VALA_EXTERN gboolean vala_semantic_analyzer_check_arguments (ValaSemanticAnalyzer* self,
                                                 ValaExpression* expr,
                                                 ValaDataType* mtype,
                                                 ValaList* params,
                                                 ValaList* args);
VALA_EXTERN gboolean vala_semantic_analyzer_check_variadic_arguments (ValaSemanticAnalyzer* self,
                                                          ValaIterator* arg_it,
                                                          gint i,
                                                          ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_semantic_analyzer_check_print_format (ValaSemanticAnalyzer* self,
                                                    const gchar* format,
                                                    ValaIterator* arg_it,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_actual_type (ValaDataType* derived_instance_type,
                                                      ValaList* method_type_arguments,
                                                      ValaGenericType* generic_type,
                                                      ValaCodeNode* node_reference);
VALA_EXTERN gboolean vala_semantic_analyzer_is_in_instance_method (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaExpression* vala_semantic_analyzer_create_temp_access (ValaLocalVariable* local,
                                                           ValaDataType* target_type);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_arithmetic_result_type (ValaSemanticAnalyzer* self,
                                                                 ValaDataType* left_type,
                                                                 ValaDataType* right_type);
VALA_EXTERN ValaMethod* vala_semantic_analyzer_find_current_method (ValaSemanticAnalyzer* self);
VALA_EXTERN ValaMethod* vala_semantic_analyzer_find_parent_method (ValaSymbol* sym);
VALA_EXTERN ValaSymbol* vala_semantic_analyzer_find_parent_method_or_property_accessor (ValaSymbol* sym);
VALA_EXTERN ValaTypeSymbol* vala_semantic_analyzer_find_parent_type_symbol (ValaSymbol* sym);
VALA_EXTERN ValaDataType* vala_semantic_analyzer_get_this_type (ValaSymbol* s,
                                                    ValaTypeSymbol* parent);
VALA_EXTERN gboolean vala_semantic_analyzer_is_in_constructor (ValaSemanticAnalyzer* self);
VALA_EXTERN gboolean vala_semantic_analyzer_is_in_destructor (ValaSemanticAnalyzer* self);
VALA_EXTERN gboolean vala_semantic_analyzer_is_reference_type_argument (ValaSemanticAnalyzer* self,
                                                            ValaDataType* type_arg);
VALA_EXTERN gboolean vala_semantic_analyzer_is_nullable_value_type_argument (ValaSemanticAnalyzer* self,
                                                                 ValaDataType* type_arg);
VALA_EXTERN gboolean vala_semantic_analyzer_is_signed_integer_type_argument (ValaSemanticAnalyzer* self,
                                                                 ValaDataType* type_arg);
VALA_EXTERN gboolean vala_semantic_analyzer_is_unsigned_integer_type_argument (ValaSemanticAnalyzer* self,
                                                                   ValaDataType* type_arg);
VALA_EXTERN void vala_semantic_analyzer_check_type (ValaSemanticAnalyzer* self,
                                        ValaDataType* type);
VALA_EXTERN void vala_semantic_analyzer_check_type_arguments (ValaSemanticAnalyzer* self,
                                                  ValaMemberAccess* access);
VALA_EXTERN ValaBlock* vala_signal_get_body (ValaSignal* self);
VALA_EXTERN void vala_signal_set_body (ValaSignal* self,
                           ValaBlock* value);
VALA_EXTERN gboolean vala_signal_get_is_virtual (ValaSignal* self);
VALA_EXTERN void vala_signal_set_is_virtual (ValaSignal* self,
                                 gboolean value);
VALA_EXTERN ValaMethod* vala_signal_get_default_handler (ValaSignal* self);
VALA_EXTERN ValaMethod* vala_signal_get_emitter (ValaSignal* self);
VALA_EXTERN ValaSignal* vala_signal_new (const gchar* name,
                             ValaDataType* return_type,
                             ValaSourceReference* source_reference,
                             ValaComment* comment);
VALA_EXTERN ValaSignal* vala_signal_construct (GType object_type,
                                   const gchar* name,
                                   ValaDataType* return_type,
                                   ValaSourceReference* source_reference,
                                   ValaComment* comment);
VALA_EXTERN ValaDelegate* vala_signal_get_delegate (ValaSignal* self,
                                        ValaDataType* sender_type,
                                        ValaCodeNode* node_reference);
VALA_EXTERN GType vala_signal_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaSignalType, vala_code_node_unref)
VALA_EXTERN ValaSignal* vala_signal_type_get_signal_symbol (ValaSignalType* self);
VALA_EXTERN ValaSignalType* vala_signal_type_new (ValaSignal* signal_symbol,
                                      ValaSourceReference* source_reference);
VALA_EXTERN ValaSignalType* vala_signal_type_construct (GType object_type,
                                            ValaSignal* signal_symbol,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaDelegateType* vala_signal_type_get_handler_type (ValaSignalType* self);
VALA_EXTERN ValaDataType* vala_sizeof_expression_get_type_reference (ValaSizeofExpression* self);
VALA_EXTERN ValaSizeofExpression* vala_sizeof_expression_new (ValaDataType* type,
                                                  ValaSourceReference* source);
VALA_EXTERN ValaSizeofExpression* vala_sizeof_expression_construct (GType object_type,
                                                        ValaDataType* type,
                                                        ValaSourceReference* source);
VALA_EXTERN ValaExpression* vala_slice_expression_get_container (ValaSliceExpression* self);
VALA_EXTERN ValaExpression* vala_slice_expression_get_start (ValaSliceExpression* self);
VALA_EXTERN ValaExpression* vala_slice_expression_get_stop (ValaSliceExpression* self);
VALA_EXTERN gboolean vala_slice_expression_get_null_safe_access (ValaSliceExpression* self);
VALA_EXTERN void vala_slice_expression_set_null_safe_access (ValaSliceExpression* self,
                                                 gboolean value);
VALA_EXTERN ValaSliceExpression* vala_slice_expression_new (ValaExpression* container,
                                                ValaExpression* start,
                                                ValaExpression* stop,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaSliceExpression* vala_slice_expression_construct (GType object_type,
                                                      ValaExpression* container,
                                                      ValaExpression* start,
                                                      ValaExpression* stop,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_source_file_get_filename (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_relative_filename (ValaSourceFile* self,
                                             const gchar* value);
VALA_EXTERN const gchar* vala_source_file_get_package_name (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_package_name (ValaSourceFile* self,
                                        const gchar* value);
VALA_EXTERN const gchar* vala_source_file_get_installed_version (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_installed_version (ValaSourceFile* self,
                                             const gchar* value);
VALA_EXTERN GType vala_source_file_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaSourceFileType vala_source_file_get_file_type (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_file_type (ValaSourceFile* self,
                                     ValaSourceFileType value);
VALA_EXTERN gboolean vala_source_file_get_from_commandline (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_from_commandline (ValaSourceFile* self,
                                            gboolean value);
VALA_EXTERN const gchar* vala_source_file_get_gir_namespace (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_gir_namespace (ValaSourceFile* self,
                                         const gchar* value);
VALA_EXTERN const gchar* vala_source_file_get_gir_version (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_gir_version (ValaSourceFile* self,
                                       const gchar* value);
VALA_EXTERN gboolean vala_source_file_get_gir_ambiguous (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_gir_ambiguous (ValaSourceFile* self,
                                         gboolean value);
VALA_EXTERN ValaCodeContext* vala_source_file_get_context (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_context (ValaSourceFile* self,
                                   ValaCodeContext* value);
VALA_EXTERN const gchar* vala_source_file_get_content (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_content (ValaSourceFile* self,
                                   const gchar* value);
VALA_EXTERN gboolean vala_source_file_get_used (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_used (ValaSourceFile* self,
                                gboolean value);
VALA_EXTERN ValaList* vala_source_file_get_current_using_directives (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_set_current_using_directives (ValaSourceFile* self,
                                                    ValaList* value);
VALA_EXTERN ValaSourceFile* vala_source_file_new (ValaCodeContext* context,
                                      ValaSourceFileType type,
                                      const gchar* filename,
                                      const gchar* content,
                                      gboolean cmdline);
VALA_EXTERN ValaSourceFile* vala_source_file_construct (GType object_type,
                                            ValaCodeContext* context,
                                            ValaSourceFileType type,
                                            const gchar* filename,
                                            const gchar* content,
                                            gboolean cmdline);
VALA_EXTERN void vala_source_file_add_comment (ValaSourceFile* self,
                                   ValaComment* comment);
VALA_EXTERN ValaList* vala_source_file_get_comments (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_add_using_directive (ValaSourceFile* self,
                                           ValaUsingDirective* ns);
VALA_EXTERN void vala_source_file_add_node (ValaSourceFile* self,
                                ValaCodeNode* node);
VALA_EXTERN void vala_source_file_remove_node (ValaSourceFile* self,
                                   ValaCodeNode* node);
VALA_EXTERN ValaList* vala_source_file_get_nodes (ValaSourceFile* self);
VALA_EXTERN void vala_source_file_accept (ValaSourceFile* self,
                              ValaCodeVisitor* visitor);
VALA_EXTERN void vala_source_file_accept_children (ValaSourceFile* self,
                                       ValaCodeVisitor* visitor);
VALA_EXTERN gchar* vala_source_file_get_relative_filename (ValaSourceFile* self);
VALA_EXTERN gchar* vala_source_file_get_csource_filename (ValaSourceFile* self);
VALA_EXTERN gchar* vala_source_file_get_cinclude_filename (ValaSourceFile* self);
VALA_EXTERN gchar* vala_source_file_get_source_line (ValaSourceFile* self,
                                         gint lineno);
VALA_EXTERN gchar* vala_source_file_get_mapped_contents (ValaSourceFile* self);
VALA_EXTERN gsize vala_source_file_get_mapped_length (ValaSourceFile* self);
VALA_EXTERN gboolean vala_source_file_check (ValaSourceFile* self,
                                 ValaCodeContext* context);
VALA_EXTERN void vala_source_location_init (ValaSourceLocation *self,
                                gchar* _pos,
                                gint _line,
                                gint _column);
VALA_EXTERN gchar* vala_source_location_to_string (ValaSourceLocation *self);
VALA_EXTERN ValaSourceFile* vala_source_reference_get_file (ValaSourceReference* self);
VALA_EXTERN void vala_source_reference_set_file (ValaSourceReference* self,
                                     ValaSourceFile* value);
VALA_EXTERN void vala_source_reference_get_begin (ValaSourceReference* self,
                                      ValaSourceLocation * result);
VALA_EXTERN void vala_source_reference_set_begin (ValaSourceReference* self,
                                      ValaSourceLocation * value);
VALA_EXTERN void vala_source_reference_get_end (ValaSourceReference* self,
                                    ValaSourceLocation * result);
VALA_EXTERN void vala_source_reference_set_end (ValaSourceReference* self,
                                    ValaSourceLocation * value);
VALA_EXTERN ValaList* vala_source_reference_get_using_directives (ValaSourceReference* self);
VALA_EXTERN ValaSourceReference* vala_source_reference_new (ValaSourceFile* _file,
                                                ValaSourceLocation* begin,
                                                ValaSourceLocation* end);
VALA_EXTERN ValaSourceReference* vala_source_reference_construct (GType object_type,
                                                      ValaSourceFile* _file,
                                                      ValaSourceLocation* begin,
                                                      ValaSourceLocation* end);
VALA_EXTERN gboolean vala_source_reference_contains (ValaSourceReference* self,
                                         ValaSourceLocation* location);
VALA_EXTERN gchar* vala_source_reference_to_string (ValaSourceReference* self);
VALA_EXTERN GType vala_statement_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaStatementList, vala_code_node_unref)
VALA_EXTERN gint vala_statement_list_get_length (ValaStatementList* self);
VALA_EXTERN ValaStatementList* vala_statement_list_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaStatementList* vala_statement_list_construct (GType object_type,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaStatement* vala_statement_list_get (ValaStatementList* self,
                                        gint index);
VALA_EXTERN void vala_statement_list_set (ValaStatementList* self,
                              gint index,
                              ValaStatement* stmt);
VALA_EXTERN void vala_statement_list_add (ValaStatementList* self,
                              ValaStatement* stmt);
VALA_EXTERN void vala_statement_list_insert (ValaStatementList* self,
                                 gint index,
                                 ValaStatement* stmt);
VALA_EXTERN const gchar* vala_string_literal_get_value (ValaStringLiteral* self);
VALA_EXTERN void vala_string_literal_set_value (ValaStringLiteral* self,
                                    const gchar* value);
VALA_EXTERN gboolean vala_string_literal_get_translate (ValaStringLiteral* self);
VALA_EXTERN void vala_string_literal_set_translate (ValaStringLiteral* self,
                                        gboolean value);
VALA_EXTERN ValaStringLiteral* vala_string_literal_new (const gchar* value,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaStringLiteral* vala_string_literal_construct (GType object_type,
                                                  const gchar* value,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN gchar* vala_string_literal_eval (ValaStringLiteral* self);
VALA_EXTERN ValaStringLiteral* vala_string_literal_get_format_literal (ValaExpression* expr);
VALA_EXTERN ValaDataType* vala_struct_get_base_type (ValaStruct* self);
VALA_EXTERN void vala_struct_set_base_type (ValaStruct* self,
                                ValaDataType* value);
VALA_EXTERN ValaStruct* vala_struct_get_base_struct (ValaStruct* self);
VALA_EXTERN ValaCreationMethod* vala_struct_get_default_construction_method (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_get_is_immutable (ValaStruct* self);
VALA_EXTERN void vala_struct_set_is_immutable (ValaStruct* self,
                                   gboolean value);
VALA_EXTERN gint vala_struct_get_width (ValaStruct* self);
VALA_EXTERN void vala_struct_set_width (ValaStruct* self,
                            gint value);
VALA_EXTERN gboolean vala_struct_get_signed (ValaStruct* self);
VALA_EXTERN void vala_struct_set_signed (ValaStruct* self,
                             gboolean value);
VALA_EXTERN gint vala_struct_get_rank (ValaStruct* self);
VALA_EXTERN void vala_struct_set_rank (ValaStruct* self,
                           gint value);
VALA_EXTERN ValaStruct* vala_struct_new (const gchar* name,
                             ValaSourceReference* source_reference,
                             ValaComment* comment);
VALA_EXTERN ValaStruct* vala_struct_construct (GType object_type,
                                   const gchar* name,
                                   ValaSourceReference* source_reference,
                                   ValaComment* comment);
VALA_EXTERN void vala_struct_add_type_parameter (ValaStruct* self,
                                     ValaTypeParameter* p);
VALA_EXTERN ValaList* vala_struct_get_type_parameters (ValaStruct* self);
VALA_EXTERN ValaList* vala_struct_get_fields (ValaStruct* self);
VALA_EXTERN ValaList* vala_struct_get_constants (ValaStruct* self);
VALA_EXTERN ValaList* vala_struct_get_methods (ValaStruct* self);
VALA_EXTERN ValaList* vala_struct_get_properties (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_is_boolean_type (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_is_integer_type (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_is_floating_type (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_is_decimal_floating_type (ValaStruct* self);
VALA_EXTERN gboolean vala_struct_is_simple_type (ValaStruct* self);
VALA_EXTERN void vala_struct_set_simple_type (ValaStruct* self,
                                  gboolean simple_type);
VALA_EXTERN gboolean vala_struct_is_disposable (ValaStruct* self);
VALA_EXTERN ValaStructValueType* vala_struct_value_type_new (ValaStruct* type_symbol,
                                                 ValaSourceReference* source_reference);
VALA_EXTERN ValaStructValueType* vala_struct_value_type_construct (GType object_type,
                                                       ValaStruct* type_symbol,
                                                       ValaSourceReference* source_reference);
VALA_EXTERN ValaBasicBlock* vala_subroutine_get_entry_block (ValaSubroutine* self);
VALA_EXTERN void vala_subroutine_set_entry_block (ValaSubroutine* self,
                                      ValaBasicBlock* value);
VALA_EXTERN ValaBasicBlock* vala_subroutine_get_return_block (ValaSubroutine* self);
VALA_EXTERN void vala_subroutine_set_return_block (ValaSubroutine* self,
                                       ValaBasicBlock* value);
VALA_EXTERN ValaBasicBlock* vala_subroutine_get_exit_block (ValaSubroutine* self);
VALA_EXTERN void vala_subroutine_set_exit_block (ValaSubroutine* self,
                                     ValaBasicBlock* value);
VALA_EXTERN ValaLocalVariable* vala_subroutine_get_result_var (ValaSubroutine* self);
VALA_EXTERN void vala_subroutine_set_result_var (ValaSubroutine* self,
                                     ValaLocalVariable* value);
VALA_EXTERN gboolean vala_subroutine_get_has_result (ValaSubroutine* self);
VALA_EXTERN ValaSubroutine* vala_subroutine_construct (GType object_type,
                                           const gchar* name,
                                           ValaSourceReference* source_reference,
                                           ValaComment* comment);
VALA_EXTERN ValaBlock* vala_subroutine_get_body (ValaSubroutine* self);
VALA_EXTERN void vala_subroutine_set_body (ValaSubroutine* self,
                               ValaBlock* value);
VALA_EXTERN ValaExpression* vala_switch_label_get_expression (ValaSwitchLabel* self);
VALA_EXTERN ValaSwitchSection* vala_switch_label_get_section (ValaSwitchLabel* self);
VALA_EXTERN ValaSwitchLabel* vala_switch_label_new (ValaExpression* expr,
                                        ValaSourceReference* source);
VALA_EXTERN ValaSwitchLabel* vala_switch_label_construct (GType object_type,
                                              ValaExpression* expr,
                                              ValaSourceReference* source);
VALA_EXTERN ValaSwitchLabel* vala_switch_label_new_with_default (ValaSourceReference* source);
VALA_EXTERN ValaSwitchLabel* vala_switch_label_construct_with_default (GType object_type,
                                                           ValaSourceReference* source);
VALA_EXTERN ValaSwitchSection* vala_switch_section_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaSwitchSection* vala_switch_section_construct (GType object_type,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN void vala_switch_section_add_label (ValaSwitchSection* self,
                                    ValaSwitchLabel* label);
VALA_EXTERN ValaList* vala_switch_section_get_labels (ValaSwitchSection* self);
VALA_EXTERN gboolean vala_switch_section_has_default_label (ValaSwitchSection* self);
VALA_EXTERN ValaExpression* vala_switch_statement_get_expression (ValaSwitchStatement* self);
VALA_EXTERN ValaSwitchStatement* vala_switch_statement_new (ValaExpression* expression,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaSwitchStatement* vala_switch_statement_construct (GType object_type,
                                                      ValaExpression* expression,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN void vala_switch_statement_add_section (ValaSwitchStatement* self,
                                        ValaSwitchSection* section);
VALA_EXTERN ValaList* vala_switch_statement_get_sections (ValaSwitchStatement* self);
VALA_EXTERN ValaSymbol* vala_symbol_get_parent_symbol (ValaSymbol* self);
VALA_EXTERN ValaScope* vala_symbol_get_owner (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_owner (ValaSymbol* self,
                            ValaScope* value);
VALA_EXTERN const gchar* vala_symbol_get_name (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_name (ValaSymbol* self,
                           const gchar* value);
VALA_EXTERN gboolean vala_symbol_get_active (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_active (ValaSymbol* self,
                             gboolean value);
VALA_EXTERN gboolean vala_symbol_get_used (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_used (ValaSymbol* self,
                           gboolean value);
VALA_EXTERN gboolean vala_symbol_get_anonymous (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_anonymous (ValaSymbol* self,
                                gboolean value);
VALA_EXTERN GType vala_symbol_accessibility_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaSymbolAccessibility vala_symbol_get_access (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_access (ValaSymbol* self,
                             ValaSymbolAccessibility value);
VALA_EXTERN ValaComment* vala_symbol_get_comment (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_comment (ValaSymbol* self,
                              ValaComment* value);
VALA_EXTERN gpointer vala_version_attribute_ref (gpointer instance);
VALA_EXTERN void vala_version_attribute_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_version_attribute (const gchar* name,
                                               const gchar* nick,
                                               const gchar* blurb,
                                               GType object_type,
                                               GParamFlags flags);
VALA_EXTERN void vala_value_set_version_attribute (GValue* value,
                                       gpointer v_object);
VALA_EXTERN void vala_value_take_version_attribute (GValue* value,
                                        gpointer v_object);
VALA_EXTERN gpointer vala_value_get_version_attribute (const GValue* value);
VALA_EXTERN GType vala_version_attribute_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaVersionAttribute, vala_version_attribute_unref)
VALA_EXTERN ValaVersionAttribute* vala_symbol_get_version (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_get_hides (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_hides (ValaSymbol* self,
                            gboolean value);
VALA_EXTERN gboolean vala_symbol_is_internal_symbol (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_is_private_symbol (ValaSymbol* self);
VALA_EXTERN ValaScope* vala_symbol_get_scope (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_get_is_extern (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_is_extern (ValaSymbol* self,
                                gboolean value);
VALA_EXTERN gboolean vala_symbol_get_external (ValaSymbol* self);
VALA_EXTERN void vala_symbol_set_external (ValaSymbol* self,
                               gboolean value);
VALA_EXTERN gboolean vala_symbol_get_external_package (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_get_from_commandline (ValaSymbol* self);
VALA_EXTERN ValaSourceFileType vala_symbol_get_source_type (ValaSymbol* self);
VALA_EXTERN ValaSymbol* vala_symbol_construct (GType object_type,
                                   const gchar* name,
                                   ValaSourceReference* source_reference,
                                   ValaComment* comment);
VALA_EXTERN gchar* vala_symbol_get_full_name (ValaSymbol* self);
VALA_EXTERN gchar* vala_symbol_camel_case_to_lower_case (const gchar* camel_case);
VALA_EXTERN gchar* vala_symbol_lower_case_to_camel_case (const gchar* lower_case);
VALA_EXTERN gboolean vala_symbol_equal_func (ValaSymbol* a,
                                 ValaSymbol* b);
VALA_EXTERN guint vala_symbol_hash_func (ValaSymbol* s);
VALA_EXTERN ValaScope* vala_symbol_get_top_accessible_scope (ValaSymbol* self,
                                                 gboolean is_internal);
VALA_EXTERN gboolean vala_symbol_is_instance_member (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_is_class_member (ValaSymbol* self);
VALA_EXTERN ValaSymbol* vala_symbol_get_hidden_member (ValaSymbol* self);
VALA_EXTERN gboolean vala_symbol_is_accessible (ValaSymbol* self,
                                    ValaSymbol* sym);
VALA_EXTERN void vala_symbol_add_namespace (ValaSymbol* self,
                                ValaNamespace* ns);
VALA_EXTERN void vala_symbol_add_class (ValaSymbol* self,
                            ValaClass* cl);
VALA_EXTERN void vala_symbol_add_interface (ValaSymbol* self,
                                ValaInterface* iface);
VALA_EXTERN void vala_symbol_add_struct (ValaSymbol* self,
                             ValaStruct* st);
VALA_EXTERN void vala_symbol_add_enum (ValaSymbol* self,
                           ValaEnum* en);
VALA_EXTERN void vala_symbol_add_error_domain (ValaSymbol* self,
                                   ValaErrorDomain* edomain);
VALA_EXTERN void vala_symbol_add_delegate (ValaSymbol* self,
                               ValaDelegate* d);
VALA_EXTERN void vala_symbol_add_constant (ValaSymbol* self,
                               ValaConstant* constant);
VALA_EXTERN void vala_symbol_add_field (ValaSymbol* self,
                            ValaField* f);
VALA_EXTERN void vala_symbol_add_method (ValaSymbol* self,
                             ValaMethod* m);
VALA_EXTERN void vala_symbol_add_property (ValaSymbol* self,
                               ValaProperty* prop);
VALA_EXTERN void vala_symbol_add_signal (ValaSymbol* self,
                             ValaSignal* sig);
VALA_EXTERN void vala_symbol_add_constructor (ValaSymbol* self,
                                  ValaConstructor* c);
VALA_EXTERN void vala_symbol_add_destructor (ValaSymbol* self,
                                 ValaDestructor* d);
VALA_EXTERN const gchar* vala_symbol_accessibility_to_string (ValaSymbolAccessibility self);
VALA_EXTERN void vala_symbol_resolver_resolve (ValaSymbolResolver* self,
                                   ValaCodeContext* context);
VALA_EXTERN ValaSymbolResolver* vala_symbol_resolver_new (void);
VALA_EXTERN ValaSymbolResolver* vala_symbol_resolver_construct (GType object_type);
VALA_EXTERN ValaDataType* vala_target_value_get_value_type (ValaTargetValue* self);
VALA_EXTERN void vala_target_value_set_value_type (ValaTargetValue* self,
                                       ValaDataType* value);
VALA_EXTERN ValaDataType* vala_target_value_get_actual_value_type (ValaTargetValue* self);
VALA_EXTERN void vala_target_value_set_actual_value_type (ValaTargetValue* self,
                                              ValaDataType* value);
VALA_EXTERN ValaTargetValue* vala_target_value_construct (GType object_type,
                                              ValaDataType* value_type);
VALA_EXTERN ValaTemplate* vala_template_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaTemplate* vala_template_construct (GType object_type,
                                       ValaSourceReference* source_reference);
VALA_EXTERN void vala_template_add_expression (ValaTemplate* self,
                                   ValaExpression* expr);
VALA_EXTERN ValaList* vala_template_get_expressions (ValaTemplate* self);
VALA_EXTERN ValaExpression* vala_throw_statement_get_error_expression (ValaThrowStatement* self);
VALA_EXTERN ValaThrowStatement* vala_throw_statement_new (ValaExpression* error_expression,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaThrowStatement* vala_throw_statement_construct (GType object_type,
                                                    ValaExpression* error_expression,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN const gchar* vala_token_type_to_string (ValaTokenType self);
VALA_EXTERN GType vala_traverse_visitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaTraverseVisitor, vala_code_visitor_unref)
VALA_EXTERN GType vala_traverse_status_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaTraverseVisitor* vala_traverse_visitor_new (ValaTraverseFunc func,
                                                gpointer func_target,
                                                GDestroyNotify func_target_destroy_notify);
VALA_EXTERN ValaTraverseVisitor* vala_traverse_visitor_construct (GType object_type,
                                                      ValaTraverseFunc func,
                                                      gpointer func_target,
                                                      GDestroyNotify func_target_destroy_notify);
VALA_EXTERN ValaBlock* vala_try_statement_get_body (ValaTryStatement* self);
VALA_EXTERN ValaBlock* vala_try_statement_get_finally_body (ValaTryStatement* self);
VALA_EXTERN gboolean vala_try_statement_get_after_try_block_reachable (ValaTryStatement* self);
VALA_EXTERN void vala_try_statement_set_after_try_block_reachable (ValaTryStatement* self,
                                                       gboolean value);
VALA_EXTERN ValaTryStatement* vala_try_statement_new (ValaBlock* body,
                                          ValaBlock* finally_body,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaTryStatement* vala_try_statement_construct (GType object_type,
                                                ValaBlock* body,
                                                ValaBlock* finally_body,
                                                ValaSourceReference* source_reference);
VALA_EXTERN void vala_try_statement_add_catch_clause (ValaTryStatement* self,
                                          ValaCatchClause* clause);
VALA_EXTERN ValaList* vala_try_statement_get_catch_clauses (ValaTryStatement* self);
VALA_EXTERN ValaTuple* vala_tuple_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaTuple* vala_tuple_construct (GType object_type,
                                 ValaSourceReference* source_reference);
VALA_EXTERN void vala_tuple_add_expression (ValaTuple* self,
                                ValaExpression* expr);
VALA_EXTERN ValaList* vala_tuple_get_expressions (ValaTuple* self);
VALA_EXTERN ValaExpression* vala_typecheck_get_expression (ValaTypeCheck* self);
VALA_EXTERN ValaDataType* vala_typecheck_get_type_reference (ValaTypeCheck* self);
VALA_EXTERN ValaTypeCheck* vala_typecheck_new (ValaExpression* expr,
                                   ValaDataType* type,
                                   ValaSourceReference* source);
VALA_EXTERN ValaTypeCheck* vala_typecheck_construct (GType object_type,
                                         ValaExpression* expr,
                                         ValaDataType* type,
                                         ValaSourceReference* source);
VALA_EXTERN ValaDataType* vala_typeof_expression_get_type_reference (ValaTypeofExpression* self);
VALA_EXTERN ValaTypeofExpression* vala_typeof_expression_new (ValaDataType* type,
                                                  ValaSourceReference* source);
VALA_EXTERN ValaTypeofExpression* vala_typeof_expression_construct (GType object_type,
                                                        ValaDataType* type,
                                                        ValaSourceReference* source);
VALA_EXTERN ValaTypeParameter* vala_typeparameter_new (const gchar* name,
                                           ValaSourceReference* source_reference);
VALA_EXTERN ValaTypeParameter* vala_typeparameter_construct (GType object_type,
                                                 const gchar* name,
                                                 ValaSourceReference* source_reference);
VALA_EXTERN gboolean vala_typeparameter_equals (ValaTypeParameter* self,
                                    ValaTypeParameter* param2);
VALA_EXTERN ValaTypeSymbol* vala_typesymbol_construct (GType object_type,
                                           const gchar* name,
                                           ValaSourceReference* source_reference,
                                           ValaComment* comment);
VALA_EXTERN gboolean vala_typesymbol_is_reference_type (ValaTypeSymbol* self);
VALA_EXTERN gboolean vala_typesymbol_is_subtype_of (ValaTypeSymbol* self,
                                        ValaTypeSymbol* t);
VALA_EXTERN gint vala_typesymbol_get_type_parameter_index (ValaTypeSymbol* self,
                                               const gchar* name);
VALA_EXTERN GType vala_unary_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaUnaryOperator vala_unary_expression_get_operator (ValaUnaryExpression* self);
VALA_EXTERN ValaExpression* vala_unary_expression_get_inner (ValaUnaryExpression* self);
VALA_EXTERN ValaUnaryExpression* vala_unary_expression_new (ValaUnaryOperator op,
                                                ValaExpression* _inner,
                                                ValaSourceReference* source);
VALA_EXTERN ValaUnaryExpression* vala_unary_expression_construct (GType object_type,
                                                      ValaUnaryOperator op,
                                                      ValaExpression* _inner,
                                                      ValaSourceReference* source);
VALA_EXTERN const gchar* vala_unary_operator_to_string (ValaUnaryOperator self);
VALA_EXTERN ValaExpression* vala_unlock_statement_get_resource (ValaUnlockStatement* self);
VALA_EXTERN ValaUnlockStatement* vala_unlock_statement_new (ValaExpression* resource,
                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaUnlockStatement* vala_unlock_statement_construct (GType object_type,
                                                      ValaExpression* resource,
                                                      ValaSourceReference* source_reference);
VALA_EXTERN GType vala_unresolved_symbol_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUnresolvedSymbol, vala_code_node_unref)
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_get_inner (ValaUnresolvedSymbol* self);
VALA_EXTERN void vala_unresolved_symbol_set_inner (ValaUnresolvedSymbol* self,
                                       ValaUnresolvedSymbol* value);
VALA_EXTERN gboolean vala_unresolved_symbol_get_qualified (ValaUnresolvedSymbol* self);
VALA_EXTERN void vala_unresolved_symbol_set_qualified (ValaUnresolvedSymbol* self,
                                           gboolean value);
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_new (ValaUnresolvedSymbol* inner,
                                                  const gchar* name,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_construct (GType object_type,
                                                        ValaUnresolvedSymbol* inner,
                                                        const gchar* name,
                                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_new_from_expression (ValaMemberAccess* ma);
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_construct_from_expression (GType object_type,
                                                                        ValaMemberAccess* ma);
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_symbol_copy (ValaUnresolvedSymbol* self);
VALA_EXTERN GType vala_unresolved_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaUnresolvedType, vala_code_node_unref)
VALA_EXTERN ValaUnresolvedSymbol* vala_unresolved_type_get_unresolved_symbol (ValaUnresolvedType* self);
VALA_EXTERN void vala_unresolved_type_set_unresolved_symbol (ValaUnresolvedType* self,
                                                 ValaUnresolvedSymbol* value);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_construct (GType object_type,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_new_from_symbol (ValaUnresolvedSymbol* symbol,
                                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_construct_from_symbol (GType object_type,
                                                                ValaUnresolvedSymbol* symbol,
                                                                ValaSourceReference* source_reference);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_new_from_expression (ValaMemberAccess* expr);
VALA_EXTERN ValaUnresolvedType* vala_unresolved_type_construct_from_expression (GType object_type,
                                                                    ValaMemberAccess* expr);
VALA_EXTERN ValaUsedAttr* vala_used_attr_new (void);
VALA_EXTERN ValaUsedAttr* vala_used_attr_construct (GType object_type);
VALA_EXTERN void vala_used_attr_mark (ValaUsedAttr* self,
                          const gchar* attribute,
                          const gchar* argument);
VALA_EXTERN void vala_used_attr_check_unused (ValaUsedAttr* self,
                                  ValaCodeContext* context);
VALA_EXTERN ValaSymbol* vala_using_directive_get_namespace_symbol (ValaUsingDirective* self);
VALA_EXTERN void vala_using_directive_set_namespace_symbol (ValaUsingDirective* self,
                                                ValaSymbol* value);
VALA_EXTERN ValaUsingDirective* vala_using_directive_new (ValaSymbol* namespace_symbol,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaUsingDirective* vala_using_directive_construct (GType object_type,
                                                    ValaSymbol* namespace_symbol,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaValueType* vala_value_type_construct (GType object_type,
                                          ValaTypeSymbol* type_symbol,
                                          ValaSourceReference* source_reference);
VALA_EXTERN ValaExpression* vala_variable_get_initializer (ValaVariable* self);
VALA_EXTERN void vala_variable_set_initializer (ValaVariable* self,
                                    ValaExpression* value);
VALA_EXTERN ValaDataType* vala_variable_get_variable_type (ValaVariable* self);
VALA_EXTERN void vala_variable_set_variable_type (ValaVariable* self,
                                      ValaDataType* value);
VALA_EXTERN gboolean vala_variable_get_single_assignment (ValaVariable* self);
VALA_EXTERN void vala_variable_set_single_assignment (ValaVariable* self,
                                          gboolean value);
VALA_EXTERN ValaVariable* vala_variable_construct (GType object_type,
                                       ValaDataType* variable_type,
                                       const gchar* name,
                                       ValaExpression* initializer,
                                       ValaSourceReference* source_reference,
                                       ValaComment* comment);
VALA_EXTERN GType vala_var_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaVarType, vala_code_node_unref)
VALA_EXTERN ValaVarType* vala_var_type_new (gboolean value_owned);
VALA_EXTERN ValaVarType* vala_var_type_construct (GType object_type,
                                      gboolean value_owned);
VALA_EXTERN guint vala_get_major_version (void);
VALA_EXTERN guint vala_get_minor_version (void);
VALA_EXTERN guint vala_get_micro_version (void);
VALA_EXTERN const gchar* vala_get_build_version (void);
VALA_EXTERN const gchar* vala_check_version (guint required_major,
                                 guint required_minor,
                                 guint required_micro);
VALA_EXTERN ValaVersionAttribute* vala_version_attribute_new (ValaSymbol* symbol);
VALA_EXTERN ValaVersionAttribute* vala_version_attribute_construct (GType object_type,
                                                        ValaSymbol* symbol);
VALA_EXTERN gboolean vala_version_attribute_get_deprecated (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_deprecated (ValaVersionAttribute* self,
                                            gboolean value);
VALA_EXTERN gchar* vala_version_attribute_get_deprecated_since (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_deprecated_since (ValaVersionAttribute* self,
                                                  const gchar* value);
VALA_EXTERN gchar* vala_version_attribute_get_replacement (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_replacement (ValaVersionAttribute* self,
                                             const gchar* value);
VALA_EXTERN gboolean vala_version_attribute_get_experimental (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_experimental (ValaVersionAttribute* self,
                                              gboolean value);
VALA_EXTERN gchar* vala_version_attribute_get_experimental_until (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_experimental_until (ValaVersionAttribute* self,
                                                    const gchar* value);
VALA_EXTERN gchar* vala_version_attribute_get_since (ValaVersionAttribute* self);
VALA_EXTERN void vala_version_attribute_set_since (ValaVersionAttribute* self,
                                       const gchar* value);
VALA_EXTERN gboolean vala_version_attribute_check (ValaVersionAttribute* self,
                                       ValaCodeContext* context,
                                       ValaSourceReference* source_ref);
VALA_EXTERN gint vala_version_attribute_cmp_versions (const gchar* v1str,
                                          const gchar* v2str);
VALA_EXTERN GType vala_void_type_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaVoidType, vala_code_node_unref)
VALA_EXTERN ValaVoidType* vala_void_type_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaVoidType* vala_void_type_construct (GType object_type,
                                        ValaSourceReference* source_reference);
VALA_EXTERN ValaWhileStatement* vala_while_statement_new (ValaExpression* condition,
                                              ValaBlock* body,
                                              ValaSourceReference* source_reference);
VALA_EXTERN ValaWhileStatement* vala_while_statement_construct (GType object_type,
                                                    ValaExpression* condition,
                                                    ValaBlock* body,
                                                    ValaSourceReference* source_reference);
VALA_EXTERN ValaExpression* vala_with_statement_get_expression (ValaWithStatement* self);
VALA_EXTERN ValaLocalVariable* vala_with_statement_get_with_variable (ValaWithStatement* self);
VALA_EXTERN ValaBlock* vala_with_statement_get_body (ValaWithStatement* self);
VALA_EXTERN ValaWithStatement* vala_with_statement_new (ValaLocalVariable* variable,
                                            ValaExpression* expression,
                                            ValaBlock* body,
                                            ValaSourceReference* source_reference);
VALA_EXTERN ValaWithStatement* vala_with_statement_construct (GType object_type,
                                                  ValaLocalVariable* variable,
                                                  ValaExpression* expression,
                                                  ValaBlock* body,
                                                  ValaSourceReference* source_reference);
VALA_EXTERN ValaYieldStatement* vala_yield_statement_new (ValaSourceReference* source_reference);
VALA_EXTERN ValaYieldStatement* vala_yield_statement_construct (GType object_type,
                                                    ValaSourceReference* source_reference);

G_END_DECLS

#endif
