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

#ifndef __VALACCODE_H__
#define __VALACCODE_H__

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

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define VALA_TYPE_CCODE_NODE (vala_ccode_node_get_type ())
#define VALA_CCODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_NODE, ValaCCodeNode))
#define VALA_CCODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_NODE, ValaCCodeNodeClass))
#define VALA_IS_CCODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_NODE))
#define VALA_IS_CCODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_NODE))
#define VALA_CCODE_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_NODE, ValaCCodeNodeClass))

typedef struct _ValaCCodeNode ValaCCodeNode;
typedef struct _ValaCCodeNodeClass ValaCCodeNodeClass;
typedef struct _ValaCCodeNodePrivate ValaCCodeNodePrivate;

#define VALA_TYPE_CCODE_WRITER (vala_ccode_writer_get_type ())
#define VALA_CCODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_WRITER, ValaCCodeWriter))
#define VALA_CCODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_WRITER, ValaCCodeWriterClass))
#define VALA_IS_CCODE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_WRITER))
#define VALA_IS_CCODE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_WRITER))
#define VALA_CCODE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_WRITER, ValaCCodeWriterClass))

typedef struct _ValaCCodeWriter ValaCCodeWriter;
typedef struct _ValaCCodeWriterClass ValaCCodeWriterClass;

#define VALA_TYPE_CCODE_EXPRESSION (vala_ccode_expression_get_type ())
#define VALA_CCODE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_EXPRESSION, ValaCCodeExpression))
#define VALA_CCODE_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_EXPRESSION, ValaCCodeExpressionClass))
#define VALA_IS_CCODE_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_EXPRESSION))
#define VALA_IS_CCODE_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_EXPRESSION))
#define VALA_CCODE_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_EXPRESSION, ValaCCodeExpressionClass))

typedef struct _ValaCCodeExpression ValaCCodeExpression;
typedef struct _ValaCCodeExpressionClass ValaCCodeExpressionClass;
typedef struct _ValaCCodeExpressionPrivate ValaCCodeExpressionPrivate;

#define VALA_TYPE_CCODE_ASSIGNMENT (vala_ccode_assignment_get_type ())
#define VALA_CCODE_ASSIGNMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ASSIGNMENT, ValaCCodeAssignment))
#define VALA_CCODE_ASSIGNMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ASSIGNMENT, ValaCCodeAssignmentClass))
#define VALA_IS_CCODE_ASSIGNMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ASSIGNMENT))
#define VALA_IS_CCODE_ASSIGNMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ASSIGNMENT))
#define VALA_CCODE_ASSIGNMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ASSIGNMENT, ValaCCodeAssignmentClass))

typedef struct _ValaCCodeAssignment ValaCCodeAssignment;
typedef struct _ValaCCodeAssignmentClass ValaCCodeAssignmentClass;
typedef struct _ValaCCodeAssignmentPrivate ValaCCodeAssignmentPrivate;
typedef enum  {
	VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE,
	VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_OR,
	VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_AND,
	VALA_CCODE_ASSIGNMENT_OPERATOR_BITWISE_XOR,
	VALA_CCODE_ASSIGNMENT_OPERATOR_ADD,
	VALA_CCODE_ASSIGNMENT_OPERATOR_SUB,
	VALA_CCODE_ASSIGNMENT_OPERATOR_MUL,
	VALA_CCODE_ASSIGNMENT_OPERATOR_DIV,
	VALA_CCODE_ASSIGNMENT_OPERATOR_PERCENT,
	VALA_CCODE_ASSIGNMENT_OPERATOR_SHIFT_LEFT,
	VALA_CCODE_ASSIGNMENT_OPERATOR_SHIFT_RIGHT
} ValaCCodeAssignmentOperator;

#define VALA_TYPE_CCODE_ASSIGNMENT_OPERATOR (vala_ccode_assignment_operator_get_type ())

#define VALA_TYPE_CCODE_BINARY_EXPRESSION (vala_ccode_binary_expression_get_type ())
#define VALA_CCODE_BINARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BINARY_EXPRESSION, ValaCCodeBinaryExpression))
#define VALA_CCODE_BINARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BINARY_EXPRESSION, ValaCCodeBinaryExpressionClass))
#define VALA_IS_CCODE_BINARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BINARY_EXPRESSION))
#define VALA_IS_CCODE_BINARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BINARY_EXPRESSION))
#define VALA_CCODE_BINARY_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BINARY_EXPRESSION, ValaCCodeBinaryExpressionClass))

typedef struct _ValaCCodeBinaryExpression ValaCCodeBinaryExpression;
typedef struct _ValaCCodeBinaryExpressionClass ValaCCodeBinaryExpressionClass;
typedef struct _ValaCCodeBinaryExpressionPrivate ValaCCodeBinaryExpressionPrivate;
typedef enum  {
	VALA_CCODE_BINARY_OPERATOR_PLUS,
	VALA_CCODE_BINARY_OPERATOR_MINUS,
	VALA_CCODE_BINARY_OPERATOR_MUL,
	VALA_CCODE_BINARY_OPERATOR_DIV,
	VALA_CCODE_BINARY_OPERATOR_MOD,
	VALA_CCODE_BINARY_OPERATOR_SHIFT_LEFT,
	VALA_CCODE_BINARY_OPERATOR_SHIFT_RIGHT,
	VALA_CCODE_BINARY_OPERATOR_LESS_THAN,
	VALA_CCODE_BINARY_OPERATOR_GREATER_THAN,
	VALA_CCODE_BINARY_OPERATOR_LESS_THAN_OR_EQUAL,
	VALA_CCODE_BINARY_OPERATOR_GREATER_THAN_OR_EQUAL,
	VALA_CCODE_BINARY_OPERATOR_EQUALITY,
	VALA_CCODE_BINARY_OPERATOR_INEQUALITY,
	VALA_CCODE_BINARY_OPERATOR_BITWISE_AND,
	VALA_CCODE_BINARY_OPERATOR_BITWISE_OR,
	VALA_CCODE_BINARY_OPERATOR_BITWISE_XOR,
	VALA_CCODE_BINARY_OPERATOR_AND,
	VALA_CCODE_BINARY_OPERATOR_OR
} ValaCCodeBinaryOperator;

#define VALA_TYPE_CCODE_BINARY_OPERATOR (vala_ccode_binary_operator_get_type ())

#define VALA_TYPE_CCODE_STATEMENT (vala_ccode_statement_get_type ())
#define VALA_CCODE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STATEMENT, ValaCCodeStatement))
#define VALA_CCODE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STATEMENT, ValaCCodeStatementClass))
#define VALA_IS_CCODE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STATEMENT))
#define VALA_IS_CCODE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STATEMENT))
#define VALA_CCODE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STATEMENT, ValaCCodeStatementClass))

typedef struct _ValaCCodeStatement ValaCCodeStatement;
typedef struct _ValaCCodeStatementClass ValaCCodeStatementClass;
typedef struct _ValaCCodeStatementPrivate ValaCCodeStatementPrivate;

#define VALA_TYPE_CCODE_BLOCK (vala_ccode_block_get_type ())
#define VALA_CCODE_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BLOCK, ValaCCodeBlock))
#define VALA_CCODE_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BLOCK, ValaCCodeBlockClass))
#define VALA_IS_CCODE_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BLOCK))
#define VALA_IS_CCODE_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BLOCK))
#define VALA_CCODE_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BLOCK, ValaCCodeBlockClass))

typedef struct _ValaCCodeBlock ValaCCodeBlock;
typedef struct _ValaCCodeBlockClass ValaCCodeBlockClass;
typedef struct _ValaCCodeBlockPrivate ValaCCodeBlockPrivate;

#define VALA_TYPE_CCODE_BREAK_STATEMENT (vala_ccode_break_statement_get_type ())
#define VALA_CCODE_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BREAK_STATEMENT, ValaCCodeBreakStatement))
#define VALA_CCODE_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BREAK_STATEMENT, ValaCCodeBreakStatementClass))
#define VALA_IS_CCODE_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BREAK_STATEMENT))
#define VALA_IS_CCODE_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BREAK_STATEMENT))
#define VALA_CCODE_BREAK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BREAK_STATEMENT, ValaCCodeBreakStatementClass))

typedef struct _ValaCCodeBreakStatement ValaCCodeBreakStatement;
typedef struct _ValaCCodeBreakStatementClass ValaCCodeBreakStatementClass;
typedef struct _ValaCCodeBreakStatementPrivate ValaCCodeBreakStatementPrivate;

#define VALA_TYPE_CCODE_CASE_STATEMENT (vala_ccode_case_statement_get_type ())
#define VALA_CCODE_CASE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CASE_STATEMENT, ValaCCodeCaseStatement))
#define VALA_CCODE_CASE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CASE_STATEMENT, ValaCCodeCaseStatementClass))
#define VALA_IS_CCODE_CASE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CASE_STATEMENT))
#define VALA_IS_CCODE_CASE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CASE_STATEMENT))
#define VALA_CCODE_CASE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CASE_STATEMENT, ValaCCodeCaseStatementClass))

typedef struct _ValaCCodeCaseStatement ValaCCodeCaseStatement;
typedef struct _ValaCCodeCaseStatementClass ValaCCodeCaseStatementClass;
typedef struct _ValaCCodeCaseStatementPrivate ValaCCodeCaseStatementPrivate;

#define VALA_TYPE_CCODE_CAST_EXPRESSION (vala_ccode_cast_expression_get_type ())
#define VALA_CCODE_CAST_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CAST_EXPRESSION, ValaCCodeCastExpression))
#define VALA_CCODE_CAST_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CAST_EXPRESSION, ValaCCodeCastExpressionClass))
#define VALA_IS_CCODE_CAST_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CAST_EXPRESSION))
#define VALA_IS_CCODE_CAST_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CAST_EXPRESSION))
#define VALA_CCODE_CAST_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CAST_EXPRESSION, ValaCCodeCastExpressionClass))

typedef struct _ValaCCodeCastExpression ValaCCodeCastExpression;
typedef struct _ValaCCodeCastExpressionClass ValaCCodeCastExpressionClass;
typedef struct _ValaCCodeCastExpressionPrivate ValaCCodeCastExpressionPrivate;

#define VALA_TYPE_CCODE_COMMA_EXPRESSION (vala_ccode_comma_expression_get_type ())
#define VALA_CCODE_COMMA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_COMMA_EXPRESSION, ValaCCodeCommaExpression))
#define VALA_CCODE_COMMA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_COMMA_EXPRESSION, ValaCCodeCommaExpressionClass))
#define VALA_IS_CCODE_COMMA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_COMMA_EXPRESSION))
#define VALA_IS_CCODE_COMMA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_COMMA_EXPRESSION))
#define VALA_CCODE_COMMA_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_COMMA_EXPRESSION, ValaCCodeCommaExpressionClass))

typedef struct _ValaCCodeCommaExpression ValaCCodeCommaExpression;
typedef struct _ValaCCodeCommaExpressionClass ValaCCodeCommaExpressionClass;
typedef struct _ValaCCodeCommaExpressionPrivate ValaCCodeCommaExpressionPrivate;

#define VALA_TYPE_CCODE_COMMENT (vala_ccode_comment_get_type ())
#define VALA_CCODE_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_COMMENT, ValaCCodeComment))
#define VALA_CCODE_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_COMMENT, ValaCCodeCommentClass))
#define VALA_IS_CCODE_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_COMMENT))
#define VALA_IS_CCODE_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_COMMENT))
#define VALA_CCODE_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_COMMENT, ValaCCodeCommentClass))

typedef struct _ValaCCodeComment ValaCCodeComment;
typedef struct _ValaCCodeCommentClass ValaCCodeCommentClass;
typedef struct _ValaCCodeCommentPrivate ValaCCodeCommentPrivate;

#define VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION (vala_ccode_conditional_expression_get_type ())
#define VALA_CCODE_CONDITIONAL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION, ValaCCodeConditionalExpression))
#define VALA_CCODE_CONDITIONAL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION, ValaCCodeConditionalExpressionClass))
#define VALA_IS_CCODE_CONDITIONAL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION))
#define VALA_IS_CCODE_CONDITIONAL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION))
#define VALA_CCODE_CONDITIONAL_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION, ValaCCodeConditionalExpressionClass))

typedef struct _ValaCCodeConditionalExpression ValaCCodeConditionalExpression;
typedef struct _ValaCCodeConditionalExpressionClass ValaCCodeConditionalExpressionClass;
typedef struct _ValaCCodeConditionalExpressionPrivate ValaCCodeConditionalExpressionPrivate;

#define VALA_TYPE_CCODE_CONSTANT (vala_ccode_constant_get_type ())
#define VALA_CCODE_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONSTANT, ValaCCodeConstant))
#define VALA_CCODE_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONSTANT, ValaCCodeConstantClass))
#define VALA_IS_CCODE_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONSTANT))
#define VALA_IS_CCODE_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONSTANT))
#define VALA_CCODE_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONSTANT, ValaCCodeConstantClass))

typedef struct _ValaCCodeConstant ValaCCodeConstant;
typedef struct _ValaCCodeConstantClass ValaCCodeConstantClass;
typedef struct _ValaCCodeConstantPrivate ValaCCodeConstantPrivate;

#define VALA_TYPE_CCODE_IDENTIFIER (vala_ccode_identifier_get_type ())
#define VALA_CCODE_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_IDENTIFIER, ValaCCodeIdentifier))
#define VALA_CCODE_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_IDENTIFIER, ValaCCodeIdentifierClass))
#define VALA_IS_CCODE_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_IDENTIFIER))
#define VALA_IS_CCODE_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_IDENTIFIER))
#define VALA_CCODE_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_IDENTIFIER, ValaCCodeIdentifierClass))

typedef struct _ValaCCodeIdentifier ValaCCodeIdentifier;
typedef struct _ValaCCodeIdentifierClass ValaCCodeIdentifierClass;
typedef struct _ValaCCodeIdentifierPrivate ValaCCodeIdentifierPrivate;

#define VALA_TYPE_CCODE_CONSTANT_IDENTIFIER (vala_ccode_constant_identifier_get_type ())
#define VALA_CCODE_CONSTANT_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONSTANT_IDENTIFIER, ValaCCodeConstantIdentifier))
#define VALA_CCODE_CONSTANT_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONSTANT_IDENTIFIER, ValaCCodeConstantIdentifierClass))
#define VALA_IS_CCODE_CONSTANT_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONSTANT_IDENTIFIER))
#define VALA_IS_CCODE_CONSTANT_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONSTANT_IDENTIFIER))
#define VALA_CCODE_CONSTANT_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONSTANT_IDENTIFIER, ValaCCodeConstantIdentifierClass))

typedef struct _ValaCCodeConstantIdentifier ValaCCodeConstantIdentifier;
typedef struct _ValaCCodeConstantIdentifierClass ValaCCodeConstantIdentifierClass;
typedef struct _ValaCCodeConstantIdentifierPrivate ValaCCodeConstantIdentifierPrivate;

#define VALA_TYPE_CCODE_CONTINUE_STATEMENT (vala_ccode_continue_statement_get_type ())
#define VALA_CCODE_CONTINUE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONTINUE_STATEMENT, ValaCCodeContinueStatement))
#define VALA_CCODE_CONTINUE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONTINUE_STATEMENT, ValaCCodeContinueStatementClass))
#define VALA_IS_CCODE_CONTINUE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONTINUE_STATEMENT))
#define VALA_IS_CCODE_CONTINUE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONTINUE_STATEMENT))
#define VALA_CCODE_CONTINUE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONTINUE_STATEMENT, ValaCCodeContinueStatementClass))

typedef struct _ValaCCodeContinueStatement ValaCCodeContinueStatement;
typedef struct _ValaCCodeContinueStatementClass ValaCCodeContinueStatementClass;
typedef struct _ValaCCodeContinueStatementPrivate ValaCCodeContinueStatementPrivate;

#define VALA_TYPE_CCODE_DECLARATION (vala_ccode_declaration_get_type ())
#define VALA_CCODE_DECLARATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DECLARATION, ValaCCodeDeclaration))
#define VALA_CCODE_DECLARATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DECLARATION, ValaCCodeDeclarationClass))
#define VALA_IS_CCODE_DECLARATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DECLARATION))
#define VALA_IS_CCODE_DECLARATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DECLARATION))
#define VALA_CCODE_DECLARATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DECLARATION, ValaCCodeDeclarationClass))

typedef struct _ValaCCodeDeclaration ValaCCodeDeclaration;
typedef struct _ValaCCodeDeclarationClass ValaCCodeDeclarationClass;
typedef struct _ValaCCodeDeclarationPrivate ValaCCodeDeclarationPrivate;

#define VALA_TYPE_CCODE_DECLARATOR (vala_ccode_declarator_get_type ())
#define VALA_CCODE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclarator))
#define VALA_CCODE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclaratorClass))
#define VALA_IS_CCODE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DECLARATOR))
#define VALA_IS_CCODE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DECLARATOR))
#define VALA_CCODE_DECLARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DECLARATOR, ValaCCodeDeclaratorClass))

typedef struct _ValaCCodeDeclarator ValaCCodeDeclarator;
typedef struct _ValaCCodeDeclaratorClass ValaCCodeDeclaratorClass;
typedef struct _ValaCCodeDeclaratorPrivate ValaCCodeDeclaratorPrivate;

#define VALA_TYPE_CCODE_DEFINE (vala_ccode_define_get_type ())
#define VALA_CCODE_DEFINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DEFINE, ValaCCodeDefine))
#define VALA_CCODE_DEFINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DEFINE, ValaCCodeDefineClass))
#define VALA_IS_CCODE_DEFINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DEFINE))
#define VALA_IS_CCODE_DEFINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DEFINE))
#define VALA_CCODE_DEFINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DEFINE, ValaCCodeDefineClass))

typedef struct _ValaCCodeDefine ValaCCodeDefine;
typedef struct _ValaCCodeDefineClass ValaCCodeDefineClass;
typedef struct _ValaCCodeDefinePrivate ValaCCodeDefinePrivate;

#define VALA_TYPE_CCODE_DO_STATEMENT (vala_ccode_do_statement_get_type ())
#define VALA_CCODE_DO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DO_STATEMENT, ValaCCodeDoStatement))
#define VALA_CCODE_DO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DO_STATEMENT, ValaCCodeDoStatementClass))
#define VALA_IS_CCODE_DO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DO_STATEMENT))
#define VALA_IS_CCODE_DO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DO_STATEMENT))
#define VALA_CCODE_DO_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DO_STATEMENT, ValaCCodeDoStatementClass))

typedef struct _ValaCCodeDoStatement ValaCCodeDoStatement;
typedef struct _ValaCCodeDoStatementClass ValaCCodeDoStatementClass;
typedef struct _ValaCCodeDoStatementPrivate ValaCCodeDoStatementPrivate;

#define VALA_TYPE_CCODE_EMPTY_STATEMENT (vala_ccode_empty_statement_get_type ())
#define VALA_CCODE_EMPTY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_EMPTY_STATEMENT, ValaCCodeEmptyStatement))
#define VALA_CCODE_EMPTY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_EMPTY_STATEMENT, ValaCCodeEmptyStatementClass))
#define VALA_IS_CCODE_EMPTY_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_EMPTY_STATEMENT))
#define VALA_IS_CCODE_EMPTY_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_EMPTY_STATEMENT))
#define VALA_CCODE_EMPTY_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_EMPTY_STATEMENT, ValaCCodeEmptyStatementClass))

typedef struct _ValaCCodeEmptyStatement ValaCCodeEmptyStatement;
typedef struct _ValaCCodeEmptyStatementClass ValaCCodeEmptyStatementClass;
typedef struct _ValaCCodeEmptyStatementPrivate ValaCCodeEmptyStatementPrivate;

#define VALA_TYPE_CCODE_ENUM (vala_ccode_enum_get_type ())
#define VALA_CCODE_ENUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ENUM, ValaCCodeEnum))
#define VALA_CCODE_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ENUM, ValaCCodeEnumClass))
#define VALA_IS_CCODE_ENUM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ENUM))
#define VALA_IS_CCODE_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ENUM))
#define VALA_CCODE_ENUM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ENUM, ValaCCodeEnumClass))

typedef struct _ValaCCodeEnum ValaCCodeEnum;
typedef struct _ValaCCodeEnumClass ValaCCodeEnumClass;
typedef struct _ValaCCodeEnumPrivate ValaCCodeEnumPrivate;

#define VALA_TYPE_CCODE_ENUM_VALUE (vala_ccode_enum_value_get_type ())
#define VALA_CCODE_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ENUM_VALUE, ValaCCodeEnumValue))
#define VALA_CCODE_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ENUM_VALUE, ValaCCodeEnumValueClass))
#define VALA_IS_CCODE_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ENUM_VALUE))
#define VALA_IS_CCODE_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ENUM_VALUE))
#define VALA_CCODE_ENUM_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ENUM_VALUE, ValaCCodeEnumValueClass))

typedef struct _ValaCCodeEnumValue ValaCCodeEnumValue;
typedef struct _ValaCCodeEnumValueClass ValaCCodeEnumValueClass;
typedef struct _ValaCCodeEnumValuePrivate ValaCCodeEnumValuePrivate;

#define VALA_TYPE_CCODE_EXPRESSION_STATEMENT (vala_ccode_expression_statement_get_type ())
#define VALA_CCODE_EXPRESSION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_EXPRESSION_STATEMENT, ValaCCodeExpressionStatement))
#define VALA_CCODE_EXPRESSION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_EXPRESSION_STATEMENT, ValaCCodeExpressionStatementClass))
#define VALA_IS_CCODE_EXPRESSION_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_EXPRESSION_STATEMENT))
#define VALA_IS_CCODE_EXPRESSION_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_EXPRESSION_STATEMENT))
#define VALA_CCODE_EXPRESSION_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_EXPRESSION_STATEMENT, ValaCCodeExpressionStatementClass))

typedef struct _ValaCCodeExpressionStatement ValaCCodeExpressionStatement;
typedef struct _ValaCCodeExpressionStatementClass ValaCCodeExpressionStatementClass;
typedef struct _ValaCCodeExpressionStatementPrivate ValaCCodeExpressionStatementPrivate;

#define VALA_TYPE_CCODE_FILE (vala_ccode_file_get_type ())
#define VALA_CCODE_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FILE, ValaCCodeFile))
#define VALA_CCODE_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FILE, ValaCCodeFileClass))
#define VALA_IS_CCODE_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FILE))
#define VALA_IS_CCODE_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FILE))
#define VALA_CCODE_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FILE, ValaCCodeFileClass))

typedef struct _ValaCCodeFile ValaCCodeFile;
typedef struct _ValaCCodeFileClass ValaCCodeFileClass;
typedef struct _ValaCCodeFilePrivate ValaCCodeFilePrivate;
typedef enum  {
	CCODE_FILE_TYPE_SOURCE = 1 << 0,
	CCODE_FILE_TYPE_PUBLIC_HEADER = 1 << 1,
	CCODE_FILE_TYPE_INTERNAL_HEADER = 1 << 2,
	CCODE_FILE_TYPE_HEADER = CCODE_FILE_TYPE_PUBLIC_HEADER | CCODE_FILE_TYPE_INTERNAL_HEADER
} CCodeFileType;

#define TYPE_CCODE_FILE_TYPE (ccode_file_type_get_type ())

#define VALA_TYPE_CCODE_FUNCTION (vala_ccode_function_get_type ())
#define VALA_CCODE_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FUNCTION, ValaCCodeFunction))
#define VALA_CCODE_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FUNCTION, ValaCCodeFunctionClass))
#define VALA_IS_CCODE_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FUNCTION))
#define VALA_IS_CCODE_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FUNCTION))
#define VALA_CCODE_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FUNCTION, ValaCCodeFunctionClass))

typedef struct _ValaCCodeFunction ValaCCodeFunction;
typedef struct _ValaCCodeFunctionClass ValaCCodeFunctionClass;

#define VALA_TYPE_CCODE_FOR_STATEMENT (vala_ccode_for_statement_get_type ())
#define VALA_CCODE_FOR_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FOR_STATEMENT, ValaCCodeForStatement))
#define VALA_CCODE_FOR_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FOR_STATEMENT, ValaCCodeForStatementClass))
#define VALA_IS_CCODE_FOR_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FOR_STATEMENT))
#define VALA_IS_CCODE_FOR_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FOR_STATEMENT))
#define VALA_CCODE_FOR_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FOR_STATEMENT, ValaCCodeForStatementClass))

typedef struct _ValaCCodeForStatement ValaCCodeForStatement;
typedef struct _ValaCCodeForStatementClass ValaCCodeForStatementClass;
typedef struct _ValaCCodeForStatementPrivate ValaCCodeForStatementPrivate;

#define VALA_TYPE_CCODE_FRAGMENT (vala_ccode_fragment_get_type ())
#define VALA_CCODE_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FRAGMENT, ValaCCodeFragment))
#define VALA_CCODE_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FRAGMENT, ValaCCodeFragmentClass))
#define VALA_IS_CCODE_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FRAGMENT))
#define VALA_IS_CCODE_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FRAGMENT))
#define VALA_CCODE_FRAGMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FRAGMENT, ValaCCodeFragmentClass))

typedef struct _ValaCCodeFragment ValaCCodeFragment;
typedef struct _ValaCCodeFragmentClass ValaCCodeFragmentClass;
typedef struct _ValaCCodeFragmentPrivate ValaCCodeFragmentPrivate;
typedef struct _ValaCCodeFunctionPrivate ValaCCodeFunctionPrivate;

#define VALA_TYPE_CCODE_LINE_DIRECTIVE (vala_ccode_line_directive_get_type ())
#define VALA_CCODE_LINE_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_LINE_DIRECTIVE, ValaCCodeLineDirective))
#define VALA_CCODE_LINE_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_LINE_DIRECTIVE, ValaCCodeLineDirectiveClass))
#define VALA_IS_CCODE_LINE_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_LINE_DIRECTIVE))
#define VALA_IS_CCODE_LINE_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_LINE_DIRECTIVE))
#define VALA_CCODE_LINE_DIRECTIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_LINE_DIRECTIVE, ValaCCodeLineDirectiveClass))

typedef struct _ValaCCodeLineDirective ValaCCodeLineDirective;
typedef struct _ValaCCodeLineDirectiveClass ValaCCodeLineDirectiveClass;

#define VALA_TYPE_CCODE_PARAMETER (vala_ccode_parameter_get_type ())
#define VALA_CCODE_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameter))
#define VALA_CCODE_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameterClass))
#define VALA_IS_CCODE_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_PARAMETER))
#define VALA_IS_CCODE_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_PARAMETER))
#define VALA_CCODE_PARAMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_PARAMETER, ValaCCodeParameterClass))

typedef struct _ValaCCodeParameter ValaCCodeParameter;
typedef struct _ValaCCodeParameterClass ValaCCodeParameterClass;
typedef enum  {
	VALA_CCODE_MODIFIERS_NONE = 0,
	VALA_CCODE_MODIFIERS_STATIC = 1 << 0,
	VALA_CCODE_MODIFIERS_REGISTER = 1 << 1,
	VALA_CCODE_MODIFIERS_EXTERN = 1 << 2,
	VALA_CCODE_MODIFIERS_INLINE = 1 << 3,
	VALA_CCODE_MODIFIERS_VOLATILE = 1 << 4,
	VALA_CCODE_MODIFIERS_DEPRECATED = 1 << 5,
	VALA_CCODE_MODIFIERS_THREAD_LOCAL = 1 << 6,
	VALA_CCODE_MODIFIERS_INTERNAL = 1 << 7,
	VALA_CCODE_MODIFIERS_CONST = 1 << 8,
	VALA_CCODE_MODIFIERS_UNUSED = 1 << 9,
	VALA_CCODE_MODIFIERS_CONSTRUCTOR = 1 << 10,
	VALA_CCODE_MODIFIERS_DESTRUCTOR = 1 << 11,
	VALA_CCODE_MODIFIERS_FORMAT_ARG = 1 << 12,
	VALA_CCODE_MODIFIERS_PRINTF = 1 << 13,
	VALA_CCODE_MODIFIERS_SCANF = 1 << 14,
	VALA_CCODE_MODIFIERS_NO_INLINE = 1 << 15
} ValaCCodeModifiers;

#define VALA_TYPE_CCODE_MODIFIERS (vala_ccode_modifiers_get_type ())

#define VALA_TYPE_CCODE_FUNCTION_CALL (vala_ccode_function_call_get_type ())
#define VALA_CCODE_FUNCTION_CALL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCall))
#define VALA_CCODE_FUNCTION_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCallClass))
#define VALA_IS_CCODE_FUNCTION_CALL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FUNCTION_CALL))
#define VALA_IS_CCODE_FUNCTION_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FUNCTION_CALL))
#define VALA_CCODE_FUNCTION_CALL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCallClass))

typedef struct _ValaCCodeFunctionCall ValaCCodeFunctionCall;
typedef struct _ValaCCodeFunctionCallClass ValaCCodeFunctionCallClass;
typedef struct _ValaCCodeFunctionCallPrivate ValaCCodeFunctionCallPrivate;

#define VALA_TYPE_CCODE_FUNCTION_DECLARATOR (vala_ccode_function_declarator_get_type ())
#define VALA_CCODE_FUNCTION_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclarator))
#define VALA_CCODE_FUNCTION_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclaratorClass))
#define VALA_IS_CCODE_FUNCTION_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR))
#define VALA_IS_CCODE_FUNCTION_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_FUNCTION_DECLARATOR))
#define VALA_CCODE_FUNCTION_DECLARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_FUNCTION_DECLARATOR, ValaCCodeFunctionDeclaratorClass))

typedef struct _ValaCCodeFunctionDeclarator ValaCCodeFunctionDeclarator;
typedef struct _ValaCCodeFunctionDeclaratorClass ValaCCodeFunctionDeclaratorClass;
typedef struct _ValaCCodeFunctionDeclaratorPrivate ValaCCodeFunctionDeclaratorPrivate;

#define VALA_TYPE_CCODE_GGNUC_SECTION (vala_ccode_ggnuc_section_get_type ())
#define VALA_CCODE_GGNUC_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_GGNUC_SECTION, ValaCCodeGGnucSection))
#define VALA_CCODE_GGNUC_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_GGNUC_SECTION, ValaCCodeGGnucSectionClass))
#define VALA_IS_CCODE_GGNUC_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_GGNUC_SECTION))
#define VALA_IS_CCODE_GGNUC_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_GGNUC_SECTION))
#define VALA_CCODE_GGNUC_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_GGNUC_SECTION, ValaCCodeGGnucSectionClass))

typedef struct _ValaCCodeGGnucSection ValaCCodeGGnucSection;
typedef struct _ValaCCodeGGnucSectionClass ValaCCodeGGnucSectionClass;
typedef struct _ValaCCodeGGnucSectionPrivate ValaCCodeGGnucSectionPrivate;
typedef enum  {
	VALA_GGNUC_SECTION_TYPE_IGNORE_DEPRECATIONS
} ValaGGnucSectionType;

#define VALA_TYPE_GGNUC_SECTION_TYPE (vala_ggnuc_section_type_get_type ())

#define VALA_TYPE_CCODE_GOTO_STATEMENT (vala_ccode_goto_statement_get_type ())
#define VALA_CCODE_GOTO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_GOTO_STATEMENT, ValaCCodeGotoStatement))
#define VALA_CCODE_GOTO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_GOTO_STATEMENT, ValaCCodeGotoStatementClass))
#define VALA_IS_CCODE_GOTO_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_GOTO_STATEMENT))
#define VALA_IS_CCODE_GOTO_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_GOTO_STATEMENT))
#define VALA_CCODE_GOTO_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_GOTO_STATEMENT, ValaCCodeGotoStatementClass))

typedef struct _ValaCCodeGotoStatement ValaCCodeGotoStatement;
typedef struct _ValaCCodeGotoStatementClass ValaCCodeGotoStatementClass;
typedef struct _ValaCCodeGotoStatementPrivate ValaCCodeGotoStatementPrivate;

#define VALA_TYPE_CCODE_IF_STATEMENT (vala_ccode_if_statement_get_type ())
#define VALA_CCODE_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_IF_STATEMENT, ValaCCodeIfStatement))
#define VALA_CCODE_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_IF_STATEMENT, ValaCCodeIfStatementClass))
#define VALA_IS_CCODE_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_IF_STATEMENT))
#define VALA_IS_CCODE_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_IF_STATEMENT))
#define VALA_CCODE_IF_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_IF_STATEMENT, ValaCCodeIfStatementClass))

typedef struct _ValaCCodeIfStatement ValaCCodeIfStatement;
typedef struct _ValaCCodeIfStatementClass ValaCCodeIfStatementClass;
typedef struct _ValaCCodeIfStatementPrivate ValaCCodeIfStatementPrivate;

#define VALA_TYPE_CCODE_INCLUDE_DIRECTIVE (vala_ccode_include_directive_get_type ())
#define VALA_CCODE_INCLUDE_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_INCLUDE_DIRECTIVE, ValaCCodeIncludeDirective))
#define VALA_CCODE_INCLUDE_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_INCLUDE_DIRECTIVE, ValaCCodeIncludeDirectiveClass))
#define VALA_IS_CCODE_INCLUDE_DIRECTIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_INCLUDE_DIRECTIVE))
#define VALA_IS_CCODE_INCLUDE_DIRECTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_INCLUDE_DIRECTIVE))
#define VALA_CCODE_INCLUDE_DIRECTIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_INCLUDE_DIRECTIVE, ValaCCodeIncludeDirectiveClass))

typedef struct _ValaCCodeIncludeDirective ValaCCodeIncludeDirective;
typedef struct _ValaCCodeIncludeDirectiveClass ValaCCodeIncludeDirectiveClass;
typedef struct _ValaCCodeIncludeDirectivePrivate ValaCCodeIncludeDirectivePrivate;

#define VALA_TYPE_CCODE_INITIALIZER_LIST (vala_ccode_initializer_list_get_type ())
#define VALA_CCODE_INITIALIZER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_INITIALIZER_LIST, ValaCCodeInitializerList))
#define VALA_CCODE_INITIALIZER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_INITIALIZER_LIST, ValaCCodeInitializerListClass))
#define VALA_IS_CCODE_INITIALIZER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_INITIALIZER_LIST))
#define VALA_IS_CCODE_INITIALIZER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_INITIALIZER_LIST))
#define VALA_CCODE_INITIALIZER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_INITIALIZER_LIST, ValaCCodeInitializerListClass))

typedef struct _ValaCCodeInitializerList ValaCCodeInitializerList;
typedef struct _ValaCCodeInitializerListClass ValaCCodeInitializerListClass;
typedef struct _ValaCCodeInitializerListPrivate ValaCCodeInitializerListPrivate;

#define VALA_TYPE_CCODE_INVALID_EXPRESSION (vala_ccode_invalid_expression_get_type ())
#define VALA_CCODE_INVALID_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_INVALID_EXPRESSION, ValaCCodeInvalidExpression))
#define VALA_CCODE_INVALID_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_INVALID_EXPRESSION, ValaCCodeInvalidExpressionClass))
#define VALA_IS_CCODE_INVALID_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_INVALID_EXPRESSION))
#define VALA_IS_CCODE_INVALID_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_INVALID_EXPRESSION))
#define VALA_CCODE_INVALID_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_INVALID_EXPRESSION, ValaCCodeInvalidExpressionClass))

typedef struct _ValaCCodeInvalidExpression ValaCCodeInvalidExpression;
typedef struct _ValaCCodeInvalidExpressionClass ValaCCodeInvalidExpressionClass;
typedef struct _ValaCCodeInvalidExpressionPrivate ValaCCodeInvalidExpressionPrivate;

#define VALA_TYPE_CCODE_LABEL (vala_ccode_label_get_type ())
#define VALA_CCODE_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_LABEL, ValaCCodeLabel))
#define VALA_CCODE_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_LABEL, ValaCCodeLabelClass))
#define VALA_IS_CCODE_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_LABEL))
#define VALA_IS_CCODE_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_LABEL))
#define VALA_CCODE_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_LABEL, ValaCCodeLabelClass))

typedef struct _ValaCCodeLabel ValaCCodeLabel;
typedef struct _ValaCCodeLabelClass ValaCCodeLabelClass;
typedef struct _ValaCCodeLabelPrivate ValaCCodeLabelPrivate;
typedef struct _ValaCCodeLineDirectivePrivate ValaCCodeLineDirectivePrivate;

#define VALA_TYPE_CCODE_IF_SECTION (vala_ccode_if_section_get_type ())
#define VALA_CCODE_IF_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_IF_SECTION, ValaCCodeIfSection))
#define VALA_CCODE_IF_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_IF_SECTION, ValaCCodeIfSectionClass))
#define VALA_IS_CCODE_IF_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_IF_SECTION))
#define VALA_IS_CCODE_IF_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_IF_SECTION))
#define VALA_CCODE_IF_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_IF_SECTION, ValaCCodeIfSectionClass))

typedef struct _ValaCCodeIfSection ValaCCodeIfSection;
typedef struct _ValaCCodeIfSectionClass ValaCCodeIfSectionClass;
typedef struct _ValaCCodeIfSectionPrivate ValaCCodeIfSectionPrivate;

#define VALA_TYPE_CCODE_MACRO_REPLACEMENT (vala_ccode_macro_replacement_get_type ())
#define VALA_CCODE_MACRO_REPLACEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MACRO_REPLACEMENT, ValaCCodeMacroReplacement))
#define VALA_CCODE_MACRO_REPLACEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MACRO_REPLACEMENT, ValaCCodeMacroReplacementClass))
#define VALA_IS_CCODE_MACRO_REPLACEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MACRO_REPLACEMENT))
#define VALA_IS_CCODE_MACRO_REPLACEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MACRO_REPLACEMENT))
#define VALA_CCODE_MACRO_REPLACEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MACRO_REPLACEMENT, ValaCCodeMacroReplacementClass))

typedef struct _ValaCCodeMacroReplacement ValaCCodeMacroReplacement;
typedef struct _ValaCCodeMacroReplacementClass ValaCCodeMacroReplacementClass;
typedef struct _ValaCCodeMacroReplacementPrivate ValaCCodeMacroReplacementPrivate;

#define VALA_TYPE_CCODE_MEMBER_ACCESS (vala_ccode_member_access_get_type ())
#define VALA_CCODE_MEMBER_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS, ValaCCodeMemberAccess))
#define VALA_CCODE_MEMBER_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS, ValaCCodeMemberAccessClass))
#define VALA_IS_CCODE_MEMBER_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS))
#define VALA_IS_CCODE_MEMBER_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS))
#define VALA_CCODE_MEMBER_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS, ValaCCodeMemberAccessClass))

typedef struct _ValaCCodeMemberAccess ValaCCodeMemberAccess;
typedef struct _ValaCCodeMemberAccessClass ValaCCodeMemberAccessClass;
typedef struct _ValaCCodeMemberAccessPrivate ValaCCodeMemberAccessPrivate;

#define VALA_TYPE_CCODE_NEWLINE (vala_ccode_newline_get_type ())
#define VALA_CCODE_NEWLINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_NEWLINE, ValaCCodeNewline))
#define VALA_CCODE_NEWLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_NEWLINE, ValaCCodeNewlineClass))
#define VALA_IS_CCODE_NEWLINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_NEWLINE))
#define VALA_IS_CCODE_NEWLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_NEWLINE))
#define VALA_CCODE_NEWLINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_NEWLINE, ValaCCodeNewlineClass))

typedef struct _ValaCCodeNewline ValaCCodeNewline;
typedef struct _ValaCCodeNewlineClass ValaCCodeNewlineClass;
typedef struct _ValaCCodeNewlinePrivate ValaCCodeNewlinePrivate;

#define VALA_TYPE_CCODE_ONCE_SECTION (vala_ccode_once_section_get_type ())
#define VALA_CCODE_ONCE_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ONCE_SECTION, ValaCCodeOnceSection))
#define VALA_CCODE_ONCE_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ONCE_SECTION, ValaCCodeOnceSectionClass))
#define VALA_IS_CCODE_ONCE_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ONCE_SECTION))
#define VALA_IS_CCODE_ONCE_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ONCE_SECTION))
#define VALA_CCODE_ONCE_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ONCE_SECTION, ValaCCodeOnceSectionClass))

typedef struct _ValaCCodeOnceSection ValaCCodeOnceSection;
typedef struct _ValaCCodeOnceSectionClass ValaCCodeOnceSectionClass;
typedef struct _ValaCCodeOnceSectionPrivate ValaCCodeOnceSectionPrivate;
typedef struct _ValaCCodeParameterPrivate ValaCCodeParameterPrivate;

#define VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION (vala_ccode_parenthesized_expression_get_type ())
#define VALA_CCODE_PARENTHESIZED_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION, ValaCCodeParenthesizedExpression))
#define VALA_CCODE_PARENTHESIZED_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION, ValaCCodeParenthesizedExpressionClass))
#define VALA_IS_CCODE_PARENTHESIZED_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION))
#define VALA_IS_CCODE_PARENTHESIZED_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION))
#define VALA_CCODE_PARENTHESIZED_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_PARENTHESIZED_EXPRESSION, ValaCCodeParenthesizedExpressionClass))

typedef struct _ValaCCodeParenthesizedExpression ValaCCodeParenthesizedExpression;
typedef struct _ValaCCodeParenthesizedExpressionClass ValaCCodeParenthesizedExpressionClass;
typedef struct _ValaCCodeParenthesizedExpressionPrivate ValaCCodeParenthesizedExpressionPrivate;

#define VALA_TYPE_CCODE_RETURN_STATEMENT (vala_ccode_return_statement_get_type ())
#define VALA_CCODE_RETURN_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_RETURN_STATEMENT, ValaCCodeReturnStatement))
#define VALA_CCODE_RETURN_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_RETURN_STATEMENT, ValaCCodeReturnStatementClass))
#define VALA_IS_CCODE_RETURN_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_RETURN_STATEMENT))
#define VALA_IS_CCODE_RETURN_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_RETURN_STATEMENT))
#define VALA_CCODE_RETURN_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_RETURN_STATEMENT, ValaCCodeReturnStatementClass))

typedef struct _ValaCCodeReturnStatement ValaCCodeReturnStatement;
typedef struct _ValaCCodeReturnStatementClass ValaCCodeReturnStatementClass;
typedef struct _ValaCCodeReturnStatementPrivate ValaCCodeReturnStatementPrivate;

#define VALA_TYPE_CCODE_STRUCT (vala_ccode_struct_get_type ())
#define VALA_CCODE_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STRUCT, ValaCCodeStruct))
#define VALA_CCODE_STRUCT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STRUCT, ValaCCodeStructClass))
#define VALA_IS_CCODE_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STRUCT))
#define VALA_IS_CCODE_STRUCT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STRUCT))
#define VALA_CCODE_STRUCT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STRUCT, ValaCCodeStructClass))

typedef struct _ValaCCodeStruct ValaCCodeStruct;
typedef struct _ValaCCodeStructClass ValaCCodeStructClass;
typedef struct _ValaCCodeStructPrivate ValaCCodeStructPrivate;

#define VALA_TYPE_CCODE_DECLARATOR_SUFFIX (vala_ccode_declarator_suffix_get_type ())
#define VALA_CCODE_DECLARATOR_SUFFIX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DECLARATOR_SUFFIX, ValaCCodeDeclaratorSuffix))
#define VALA_CCODE_DECLARATOR_SUFFIX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DECLARATOR_SUFFIX, ValaCCodeDeclaratorSuffixClass))
#define VALA_IS_CCODE_DECLARATOR_SUFFIX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DECLARATOR_SUFFIX))
#define VALA_IS_CCODE_DECLARATOR_SUFFIX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DECLARATOR_SUFFIX))
#define VALA_CCODE_DECLARATOR_SUFFIX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DECLARATOR_SUFFIX, ValaCCodeDeclaratorSuffixClass))

typedef struct _ValaCCodeDeclaratorSuffix ValaCCodeDeclaratorSuffix;
typedef struct _ValaCCodeDeclaratorSuffixClass ValaCCodeDeclaratorSuffixClass;

#define VALA_TYPE_CCODE_SWITCH_STATEMENT (vala_ccode_switch_statement_get_type ())
#define VALA_CCODE_SWITCH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_SWITCH_STATEMENT, ValaCCodeSwitchStatement))
#define VALA_CCODE_SWITCH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_SWITCH_STATEMENT, ValaCCodeSwitchStatementClass))
#define VALA_IS_CCODE_SWITCH_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_SWITCH_STATEMENT))
#define VALA_IS_CCODE_SWITCH_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_SWITCH_STATEMENT))
#define VALA_CCODE_SWITCH_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_SWITCH_STATEMENT, ValaCCodeSwitchStatementClass))

typedef struct _ValaCCodeSwitchStatement ValaCCodeSwitchStatement;
typedef struct _ValaCCodeSwitchStatementClass ValaCCodeSwitchStatementClass;
typedef struct _ValaCCodeSwitchStatementPrivate ValaCCodeSwitchStatementPrivate;

#define VALA_TYPE_CCODE_TYPE_DEFINITION (vala_ccode_type_definition_get_type ())
#define VALA_CCODE_TYPE_DEFINITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_TYPE_DEFINITION, ValaCCodeTypeDefinition))
#define VALA_CCODE_TYPE_DEFINITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_TYPE_DEFINITION, ValaCCodeTypeDefinitionClass))
#define VALA_IS_CCODE_TYPE_DEFINITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_TYPE_DEFINITION))
#define VALA_IS_CCODE_TYPE_DEFINITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_TYPE_DEFINITION))
#define VALA_CCODE_TYPE_DEFINITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_TYPE_DEFINITION, ValaCCodeTypeDefinitionClass))

typedef struct _ValaCCodeTypeDefinition ValaCCodeTypeDefinition;
typedef struct _ValaCCodeTypeDefinitionClass ValaCCodeTypeDefinitionClass;
typedef struct _ValaCCodeTypeDefinitionPrivate ValaCCodeTypeDefinitionPrivate;

#define VALA_TYPE_CCODE_UNARY_EXPRESSION (vala_ccode_unary_expression_get_type ())
#define VALA_CCODE_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_UNARY_EXPRESSION, ValaCCodeUnaryExpression))
#define VALA_CCODE_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_UNARY_EXPRESSION, ValaCCodeUnaryExpressionClass))
#define VALA_IS_CCODE_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_UNARY_EXPRESSION))
#define VALA_IS_CCODE_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_UNARY_EXPRESSION))
#define VALA_CCODE_UNARY_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_UNARY_EXPRESSION, ValaCCodeUnaryExpressionClass))

typedef struct _ValaCCodeUnaryExpression ValaCCodeUnaryExpression;
typedef struct _ValaCCodeUnaryExpressionClass ValaCCodeUnaryExpressionClass;
typedef struct _ValaCCodeUnaryExpressionPrivate ValaCCodeUnaryExpressionPrivate;
typedef enum  {
	VALA_CCODE_UNARY_OPERATOR_PLUS,
	VALA_CCODE_UNARY_OPERATOR_MINUS,
	VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION,
	VALA_CCODE_UNARY_OPERATOR_BITWISE_COMPLEMENT,
	VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION,
	VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF,
	VALA_CCODE_UNARY_OPERATOR_PREFIX_INCREMENT,
	VALA_CCODE_UNARY_OPERATOR_PREFIX_DECREMENT,
	VALA_CCODE_UNARY_OPERATOR_POSTFIX_INCREMENT,
	VALA_CCODE_UNARY_OPERATOR_POSTFIX_DECREMENT
} ValaCCodeUnaryOperator;

#define VALA_TYPE_CCODE_UNARY_OPERATOR (vala_ccode_unary_operator_get_type ())

#define VALA_TYPE_CCODE_VARIABLE_DECLARATOR (vala_ccode_variable_declarator_get_type ())
#define VALA_CCODE_VARIABLE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_VARIABLE_DECLARATOR, ValaCCodeVariableDeclarator))
#define VALA_CCODE_VARIABLE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_VARIABLE_DECLARATOR, ValaCCodeVariableDeclaratorClass))
#define VALA_IS_CCODE_VARIABLE_DECLARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_VARIABLE_DECLARATOR))
#define VALA_IS_CCODE_VARIABLE_DECLARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_VARIABLE_DECLARATOR))
#define VALA_CCODE_VARIABLE_DECLARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_VARIABLE_DECLARATOR, ValaCCodeVariableDeclaratorClass))

typedef struct _ValaCCodeVariableDeclarator ValaCCodeVariableDeclarator;
typedef struct _ValaCCodeVariableDeclaratorClass ValaCCodeVariableDeclaratorClass;
typedef struct _ValaCCodeVariableDeclaratorPrivate ValaCCodeVariableDeclaratorPrivate;
typedef struct _ValaCCodeDeclaratorSuffixPrivate ValaCCodeDeclaratorSuffixPrivate;

#define VALA_TYPE_CCODE_WHILE_STATEMENT (vala_ccode_while_statement_get_type ())
#define VALA_CCODE_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_WHILE_STATEMENT, ValaCCodeWhileStatement))
#define VALA_CCODE_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_WHILE_STATEMENT, ValaCCodeWhileStatementClass))
#define VALA_IS_CCODE_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_WHILE_STATEMENT))
#define VALA_IS_CCODE_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_WHILE_STATEMENT))
#define VALA_CCODE_WHILE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_WHILE_STATEMENT, ValaCCodeWhileStatementClass))

typedef struct _ValaCCodeWhileStatement ValaCCodeWhileStatement;
typedef struct _ValaCCodeWhileStatementClass ValaCCodeWhileStatementClass;
typedef struct _ValaCCodeWhileStatementPrivate ValaCCodeWhileStatementPrivate;
typedef struct _ValaCCodeWriterPrivate ValaCCodeWriterPrivate;

#define VALA_TYPE_CCODE_ELEMENT_ACCESS (vala_ccode_element_access_get_type ())
#define VALA_CCODE_ELEMENT_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ELEMENT_ACCESS, ValaCCodeElementAccess))
#define VALA_CCODE_ELEMENT_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ELEMENT_ACCESS, ValaCCodeElementAccessClass))
#define VALA_IS_CCODE_ELEMENT_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ELEMENT_ACCESS))
#define VALA_IS_CCODE_ELEMENT_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ELEMENT_ACCESS))
#define VALA_CCODE_ELEMENT_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ELEMENT_ACCESS, ValaCCodeElementAccessClass))

typedef struct _ValaCCodeElementAccess ValaCCodeElementAccess;
typedef struct _ValaCCodeElementAccessClass ValaCCodeElementAccessClass;
typedef struct _ValaCCodeElementAccessPrivate ValaCCodeElementAccessPrivate;

struct _ValaCCodeNode {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeNodePrivate * priv;
};

struct _ValaCCodeNodeClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeNode *self);
	void (*write) (ValaCCodeNode* self, ValaCCodeWriter* writer);
	void (*write_declaration) (ValaCCodeNode* self, ValaCCodeWriter* writer);
	void (*write_combined) (ValaCCodeNode* self, ValaCCodeWriter* writer);
};

struct _ValaCCodeExpression {
	ValaCCodeNode parent_instance;
	ValaCCodeExpressionPrivate * priv;
};

struct _ValaCCodeExpressionClass {
	ValaCCodeNodeClass parent_class;
	void (*write_inner) (ValaCCodeExpression* self, ValaCCodeWriter* writer);
};

struct _ValaCCodeAssignment {
	ValaCCodeExpression parent_instance;
	ValaCCodeAssignmentPrivate * priv;
};

struct _ValaCCodeAssignmentClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeBinaryExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeBinaryExpressionPrivate * priv;
};

struct _ValaCCodeBinaryExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeStatement {
	ValaCCodeNode parent_instance;
	ValaCCodeStatementPrivate * priv;
};

struct _ValaCCodeStatementClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeBlock {
	ValaCCodeStatement parent_instance;
	ValaCCodeBlockPrivate * priv;
};

struct _ValaCCodeBlockClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeBreakStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeBreakStatementPrivate * priv;
};

struct _ValaCCodeBreakStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeCaseStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeCaseStatementPrivate * priv;
};

struct _ValaCCodeCaseStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeCastExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeCastExpressionPrivate * priv;
};

struct _ValaCCodeCastExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeCommaExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeCommaExpressionPrivate * priv;
};

struct _ValaCCodeCommaExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeComment {
	ValaCCodeNode parent_instance;
	ValaCCodeCommentPrivate * priv;
};

struct _ValaCCodeCommentClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeConditionalExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeConditionalExpressionPrivate * priv;
};

struct _ValaCCodeConditionalExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeConstant {
	ValaCCodeExpression parent_instance;
	ValaCCodeConstantPrivate * priv;
};

struct _ValaCCodeConstantClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeIdentifier {
	ValaCCodeExpression parent_instance;
	ValaCCodeIdentifierPrivate * priv;
};

struct _ValaCCodeIdentifierClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeConstantIdentifier {
	ValaCCodeIdentifier parent_instance;
	ValaCCodeConstantIdentifierPrivate * priv;
};

struct _ValaCCodeConstantIdentifierClass {
	ValaCCodeIdentifierClass parent_class;
};

struct _ValaCCodeContinueStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeContinueStatementPrivate * priv;
};

struct _ValaCCodeContinueStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeDeclaration {
	ValaCCodeStatement parent_instance;
	ValaCCodeDeclarationPrivate * priv;
};

struct _ValaCCodeDeclarationClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeDeclarator {
	ValaCCodeNode parent_instance;
	ValaCCodeDeclaratorPrivate * priv;
};

struct _ValaCCodeDeclaratorClass {
	ValaCCodeNodeClass parent_class;
	void (*write_initialization) (ValaCCodeDeclarator* self, ValaCCodeWriter* writer);
};

struct _ValaCCodeDefine {
	ValaCCodeNode parent_instance;
	ValaCCodeDefinePrivate * priv;
};

struct _ValaCCodeDefineClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeDoStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeDoStatementPrivate * priv;
};

struct _ValaCCodeDoStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeEmptyStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeEmptyStatementPrivate * priv;
};

struct _ValaCCodeEmptyStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeEnum {
	ValaCCodeNode parent_instance;
	ValaCCodeEnumPrivate * priv;
};

struct _ValaCCodeEnumClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeEnumValue {
	ValaCCodeNode parent_instance;
	ValaCCodeEnumValuePrivate * priv;
};

struct _ValaCCodeEnumValueClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeExpressionStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeExpressionStatementPrivate * priv;
};

struct _ValaCCodeExpressionStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeFile {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeFilePrivate * priv;
};

struct _ValaCCodeFileClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeFile *self);
};

struct _ValaCCodeForStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeForStatementPrivate * priv;
};

struct _ValaCCodeForStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeFragment {
	ValaCCodeNode parent_instance;
	ValaCCodeFragmentPrivate * priv;
};

struct _ValaCCodeFragmentClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeFunction {
	ValaCCodeNode parent_instance;
	ValaCCodeFunctionPrivate * priv;
};

struct _ValaCCodeFunctionClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeFunctionCall {
	ValaCCodeExpression parent_instance;
	ValaCCodeFunctionCallPrivate * priv;
};

struct _ValaCCodeFunctionCallClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeFunctionDeclarator {
	ValaCCodeDeclarator parent_instance;
	ValaCCodeFunctionDeclaratorPrivate * priv;
};

struct _ValaCCodeFunctionDeclaratorClass {
	ValaCCodeDeclaratorClass parent_class;
};

struct _ValaCCodeGGnucSection {
	ValaCCodeFragment parent_instance;
	ValaCCodeGGnucSectionPrivate * priv;
};

struct _ValaCCodeGGnucSectionClass {
	ValaCCodeFragmentClass parent_class;
};

struct _ValaCCodeGotoStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeGotoStatementPrivate * priv;
};

struct _ValaCCodeGotoStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeIfStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeIfStatementPrivate * priv;
};

struct _ValaCCodeIfStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeIncludeDirective {
	ValaCCodeNode parent_instance;
	ValaCCodeIncludeDirectivePrivate * priv;
};

struct _ValaCCodeIncludeDirectiveClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeInitializerList {
	ValaCCodeExpression parent_instance;
	ValaCCodeInitializerListPrivate * priv;
};

struct _ValaCCodeInitializerListClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeInvalidExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeInvalidExpressionPrivate * priv;
};

struct _ValaCCodeInvalidExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeLabel {
	ValaCCodeStatement parent_instance;
	ValaCCodeLabelPrivate * priv;
};

struct _ValaCCodeLabelClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeLineDirective {
	ValaCCodeNode parent_instance;
	ValaCCodeLineDirectivePrivate * priv;
};

struct _ValaCCodeLineDirectiveClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeIfSection {
	ValaCCodeFragment parent_instance;
	ValaCCodeIfSectionPrivate * priv;
};

struct _ValaCCodeIfSectionClass {
	ValaCCodeFragmentClass parent_class;
};

struct _ValaCCodeMacroReplacement {
	ValaCCodeDefine parent_instance;
	ValaCCodeMacroReplacementPrivate * priv;
};

struct _ValaCCodeMacroReplacementClass {
	ValaCCodeDefineClass parent_class;
};

struct _ValaCCodeMemberAccess {
	ValaCCodeExpression parent_instance;
	ValaCCodeMemberAccessPrivate * priv;
};

struct _ValaCCodeMemberAccessClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeNewline {
	ValaCCodeNode parent_instance;
	ValaCCodeNewlinePrivate * priv;
};

struct _ValaCCodeNewlineClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeOnceSection {
	ValaCCodeFragment parent_instance;
	ValaCCodeOnceSectionPrivate * priv;
};

struct _ValaCCodeOnceSectionClass {
	ValaCCodeFragmentClass parent_class;
};

struct _ValaCCodeParameter {
	ValaCCodeNode parent_instance;
	ValaCCodeParameterPrivate * priv;
};

struct _ValaCCodeParameterClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeParenthesizedExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeParenthesizedExpressionPrivate * priv;
};

struct _ValaCCodeParenthesizedExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeReturnStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeReturnStatementPrivate * priv;
};

struct _ValaCCodeReturnStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeStruct {
	ValaCCodeNode parent_instance;
	ValaCCodeStructPrivate * priv;
};

struct _ValaCCodeStructClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeSwitchStatement {
	ValaCCodeBlock parent_instance;
	ValaCCodeSwitchStatementPrivate * priv;
};

struct _ValaCCodeSwitchStatementClass {
	ValaCCodeBlockClass parent_class;
};

struct _ValaCCodeTypeDefinition {
	ValaCCodeNode parent_instance;
	ValaCCodeTypeDefinitionPrivate * priv;
};

struct _ValaCCodeTypeDefinitionClass {
	ValaCCodeNodeClass parent_class;
};

struct _ValaCCodeUnaryExpression {
	ValaCCodeExpression parent_instance;
	ValaCCodeUnaryExpressionPrivate * priv;
};

struct _ValaCCodeUnaryExpressionClass {
	ValaCCodeExpressionClass parent_class;
};

struct _ValaCCodeVariableDeclarator {
	ValaCCodeDeclarator parent_instance;
	ValaCCodeVariableDeclaratorPrivate * priv;
};

struct _ValaCCodeVariableDeclaratorClass {
	ValaCCodeDeclaratorClass parent_class;
};

struct _ValaCCodeDeclaratorSuffix {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeDeclaratorSuffixPrivate * priv;
};

struct _ValaCCodeDeclaratorSuffixClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeDeclaratorSuffix *self);
};

struct _ValaCCodeWhileStatement {
	ValaCCodeStatement parent_instance;
	ValaCCodeWhileStatementPrivate * priv;
};

struct _ValaCCodeWhileStatementClass {
	ValaCCodeStatementClass parent_class;
};

struct _ValaCCodeWriter {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeWriterPrivate * priv;
};

struct _ValaCCodeWriterClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeWriter *self);
};

struct _ValaCCodeElementAccess {
	ValaCCodeExpression parent_instance;
	ValaCCodeElementAccessPrivate * priv;
};

struct _ValaCCodeElementAccessClass {
	ValaCCodeExpressionClass parent_class;
};

VALA_EXTERN const gchar* vala_GNUC_CONST;
VALA_EXTERN const gchar* vala_GNUC_DEPRECATED;
VALA_EXTERN const gchar* vala_GNUC_FORMAT;
VALA_EXTERN const gchar* vala_GNUC_INTERNAL;
VALA_EXTERN const gchar* vala_GNUC_NO_INLINE;
VALA_EXTERN const gchar* vala_GNUC_PRINTF;
VALA_EXTERN const gchar* vala_GNUC_SCANF;
VALA_EXTERN const gchar* vala_GNUC_UNUSED;
VALA_EXTERN void vala_ccode_init (ValaProfile profile);
VALA_EXTERN gpointer vala_ccode_node_ref (gpointer instance);
VALA_EXTERN void vala_ccode_node_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_ccode_node (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
VALA_EXTERN void vala_value_set_ccode_node (GValue* value,
                                gpointer v_object);
VALA_EXTERN void vala_value_take_ccode_node (GValue* value,
                                 gpointer v_object);
VALA_EXTERN gpointer vala_value_get_ccode_node (const GValue* value);
VALA_EXTERN GType vala_ccode_node_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeNode, vala_ccode_node_unref)
VALA_EXTERN gpointer vala_ccode_writer_ref (gpointer instance);
VALA_EXTERN void vala_ccode_writer_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_ccode_writer (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void vala_value_set_ccode_writer (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void vala_value_take_ccode_writer (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer vala_value_get_ccode_writer (const GValue* value);
VALA_EXTERN GType vala_ccode_writer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeWriter, vala_ccode_writer_unref)
VALA_EXTERN GType vala_ccode_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeExpression, vala_ccode_node_unref)
VALA_EXTERN GType vala_ccode_assignment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeAssignment, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_assignment_get_left (ValaCCodeAssignment* self);
VALA_EXTERN void vala_ccode_assignment_set_left (ValaCCodeAssignment* self,
                                     ValaCCodeExpression* value);
VALA_EXTERN GType vala_ccode_assignment_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaCCodeAssignmentOperator vala_ccode_assignment_get_operator (ValaCCodeAssignment* self);
VALA_EXTERN void vala_ccode_assignment_set_operator (ValaCCodeAssignment* self,
                                         ValaCCodeAssignmentOperator value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_assignment_get_right (ValaCCodeAssignment* self);
VALA_EXTERN void vala_ccode_assignment_set_right (ValaCCodeAssignment* self,
                                      ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeAssignment* vala_ccode_assignment_new (ValaCCodeExpression* l,
                                                ValaCCodeExpression* r,
                                                ValaCCodeAssignmentOperator op);
VALA_EXTERN ValaCCodeAssignment* vala_ccode_assignment_construct (GType object_type,
                                                      ValaCCodeExpression* l,
                                                      ValaCCodeExpression* r,
                                                      ValaCCodeAssignmentOperator op);
VALA_EXTERN GType vala_ccode_binary_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeBinaryExpression, vala_ccode_node_unref)
VALA_EXTERN GType vala_ccode_binary_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaCCodeBinaryOperator vala_ccode_binary_expression_get_operator (ValaCCodeBinaryExpression* self);
VALA_EXTERN void vala_ccode_binary_expression_set_operator (ValaCCodeBinaryExpression* self,
                                                ValaCCodeBinaryOperator value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_binary_expression_get_left (ValaCCodeBinaryExpression* self);
VALA_EXTERN void vala_ccode_binary_expression_set_left (ValaCCodeBinaryExpression* self,
                                            ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_binary_expression_get_right (ValaCCodeBinaryExpression* self);
VALA_EXTERN void vala_ccode_binary_expression_set_right (ValaCCodeBinaryExpression* self,
                                             ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeBinaryExpression* vala_ccode_binary_expression_new (ValaCCodeBinaryOperator op,
                                                             ValaCCodeExpression* l,
                                                             ValaCCodeExpression* r);
VALA_EXTERN ValaCCodeBinaryExpression* vala_ccode_binary_expression_construct (GType object_type,
                                                                   ValaCCodeBinaryOperator op,
                                                                   ValaCCodeExpression* l,
                                                                   ValaCCodeExpression* r);
VALA_EXTERN GType vala_ccode_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeStatement, vala_ccode_node_unref)
VALA_EXTERN GType vala_ccode_block_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeBlock, vala_ccode_node_unref)
VALA_EXTERN gboolean vala_ccode_block_get_suppress_newline (ValaCCodeBlock* self);
VALA_EXTERN void vala_ccode_block_set_suppress_newline (ValaCCodeBlock* self,
                                            gboolean value);
VALA_EXTERN void vala_ccode_block_prepend_statement (ValaCCodeBlock* self,
                                         ValaCCodeNode* statement);
VALA_EXTERN void vala_ccode_block_add_statement (ValaCCodeBlock* self,
                                     ValaCCodeNode* statement);
VALA_EXTERN ValaCCodeBlock* vala_ccode_block_new (void);
VALA_EXTERN ValaCCodeBlock* vala_ccode_block_construct (GType object_type);
VALA_EXTERN GType vala_ccode_break_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeBreakStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeBreakStatement* vala_ccode_break_statement_new (void);
VALA_EXTERN ValaCCodeBreakStatement* vala_ccode_break_statement_construct (GType object_type);
VALA_EXTERN GType vala_ccode_case_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeCaseStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_case_statement_get_expression (ValaCCodeCaseStatement* self);
VALA_EXTERN void vala_ccode_case_statement_set_expression (ValaCCodeCaseStatement* self,
                                               ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeCaseStatement* vala_ccode_case_statement_new (ValaCCodeExpression* expression);
VALA_EXTERN ValaCCodeCaseStatement* vala_ccode_case_statement_construct (GType object_type,
                                                             ValaCCodeExpression* expression);
VALA_EXTERN GType vala_ccode_cast_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeCastExpression, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_cast_expression_get_inner (ValaCCodeCastExpression* self);
VALA_EXTERN void vala_ccode_cast_expression_set_inner (ValaCCodeCastExpression* self,
                                           ValaCCodeExpression* value);
VALA_EXTERN const gchar* vala_ccode_cast_expression_get_type_name (ValaCCodeCastExpression* self);
VALA_EXTERN void vala_ccode_cast_expression_set_type_name (ValaCCodeCastExpression* self,
                                               const gchar* value);
VALA_EXTERN ValaCCodeCastExpression* vala_ccode_cast_expression_new (ValaCCodeExpression* expr,
                                                         const gchar* type);
VALA_EXTERN ValaCCodeCastExpression* vala_ccode_cast_expression_construct (GType object_type,
                                                               ValaCCodeExpression* expr,
                                                               const gchar* type);
VALA_EXTERN GType vala_ccode_comma_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeCommaExpression, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_comma_expression_append_expression (ValaCCodeCommaExpression* self,
                                                    ValaCCodeExpression* expr);
VALA_EXTERN void vala_ccode_comma_expression_set_expression (ValaCCodeCommaExpression* self,
                                                 gint index,
                                                 ValaCCodeExpression* expr);
VALA_EXTERN ValaList* vala_ccode_comma_expression_get_inner (ValaCCodeCommaExpression* self);
VALA_EXTERN ValaCCodeCommaExpression* vala_ccode_comma_expression_new (void);
VALA_EXTERN ValaCCodeCommaExpression* vala_ccode_comma_expression_construct (GType object_type);
VALA_EXTERN GType vala_ccode_comment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeComment, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_comment_get_text (ValaCCodeComment* self);
VALA_EXTERN void vala_ccode_comment_set_text (ValaCCodeComment* self,
                                  const gchar* value);
VALA_EXTERN ValaCCodeComment* vala_ccode_comment_new (const gchar* _text);
VALA_EXTERN ValaCCodeComment* vala_ccode_comment_construct (GType object_type,
                                                const gchar* _text);
VALA_EXTERN GType vala_ccode_conditional_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeConditionalExpression, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_conditional_expression_get_condition (ValaCCodeConditionalExpression* self);
VALA_EXTERN void vala_ccode_conditional_expression_set_condition (ValaCCodeConditionalExpression* self,
                                                      ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_conditional_expression_get_true_expression (ValaCCodeConditionalExpression* self);
VALA_EXTERN void vala_ccode_conditional_expression_set_true_expression (ValaCCodeConditionalExpression* self,
                                                            ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_conditional_expression_get_false_expression (ValaCCodeConditionalExpression* self);
VALA_EXTERN void vala_ccode_conditional_expression_set_false_expression (ValaCCodeConditionalExpression* self,
                                                             ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeConditionalExpression* vala_ccode_conditional_expression_new (ValaCCodeExpression* cond,
                                                                       ValaCCodeExpression* true_expr,
                                                                       ValaCCodeExpression* false_expr);
VALA_EXTERN ValaCCodeConditionalExpression* vala_ccode_conditional_expression_construct (GType object_type,
                                                                             ValaCCodeExpression* cond,
                                                                             ValaCCodeExpression* true_expr,
                                                                             ValaCCodeExpression* false_expr);
VALA_EXTERN GType vala_ccode_constant_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeConstant, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_constant_get_name (ValaCCodeConstant* self);
VALA_EXTERN void vala_ccode_constant_set_name (ValaCCodeConstant* self,
                                   const gchar* value);
VALA_EXTERN ValaCCodeConstant* vala_ccode_constant_new (const gchar* _name);
VALA_EXTERN ValaCCodeConstant* vala_ccode_constant_construct (GType object_type,
                                                  const gchar* _name);
VALA_EXTERN ValaCCodeConstant* vala_ccode_constant_new_string (const gchar* _name);
VALA_EXTERN ValaCCodeConstant* vala_ccode_constant_construct_string (GType object_type,
                                                         const gchar* _name);
VALA_EXTERN GType vala_ccode_identifier_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeIdentifier, vala_ccode_node_unref)
VALA_EXTERN GType vala_ccode_constant_identifier_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeConstantIdentifier, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeConstantIdentifier* vala_ccode_constant_identifier_new (const gchar* name);
VALA_EXTERN ValaCCodeConstantIdentifier* vala_ccode_constant_identifier_construct (GType object_type,
                                                                       const gchar* name);
VALA_EXTERN GType vala_ccode_continue_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeContinueStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeContinueStatement* vala_ccode_continue_statement_new (void);
VALA_EXTERN ValaCCodeContinueStatement* vala_ccode_continue_statement_construct (GType object_type);
VALA_EXTERN GType vala_ccode_declaration_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDeclaration, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_declaration_get_type_name (ValaCCodeDeclaration* self);
VALA_EXTERN void vala_ccode_declaration_set_type_name (ValaCCodeDeclaration* self,
                                           const gchar* value);
VALA_EXTERN ValaCCodeDeclaration* vala_ccode_declaration_new (const gchar* type_name);
VALA_EXTERN ValaCCodeDeclaration* vala_ccode_declaration_construct (GType object_type,
                                                        const gchar* type_name);
VALA_EXTERN GType vala_ccode_declarator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDeclarator, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_declaration_add_declarator (ValaCCodeDeclaration* self,
                                            ValaCCodeDeclarator* decl);
VALA_EXTERN ValaList* vala_ccode_declaration_get_declarators (ValaCCodeDeclaration* self);
VALA_EXTERN const gchar* vala_ccode_declarator_get_name (ValaCCodeDeclarator* self);
VALA_EXTERN void vala_ccode_declarator_set_name (ValaCCodeDeclarator* self,
                                     const gchar* value);
VALA_EXTERN void vala_ccode_declarator_write_initialization (ValaCCodeDeclarator* self,
                                                 ValaCCodeWriter* writer);
VALA_EXTERN ValaCCodeDeclarator* vala_ccode_declarator_construct (GType object_type);
VALA_EXTERN GType vala_ccode_define_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDefine, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_define_get_name (ValaCCodeDefine* self);
VALA_EXTERN void vala_ccode_define_set_name (ValaCCodeDefine* self,
                                 const gchar* value);
VALA_EXTERN const gchar* vala_ccode_define_get_value (ValaCCodeDefine* self);
VALA_EXTERN void vala_ccode_define_set_value (ValaCCodeDefine* self,
                                  const gchar* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_define_get_value_expression (ValaCCodeDefine* self);
VALA_EXTERN void vala_ccode_define_set_value_expression (ValaCCodeDefine* self,
                                             ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeDefine* vala_ccode_define_new (const gchar* name,
                                        const gchar* value);
VALA_EXTERN ValaCCodeDefine* vala_ccode_define_construct (GType object_type,
                                              const gchar* name,
                                              const gchar* value);
VALA_EXTERN ValaCCodeDefine* vala_ccode_define_new_with_expression (const gchar* name,
                                                        ValaCCodeExpression* expression);
VALA_EXTERN ValaCCodeDefine* vala_ccode_define_construct_with_expression (GType object_type,
                                                              const gchar* name,
                                                              ValaCCodeExpression* expression);
VALA_EXTERN GType vala_ccode_do_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDoStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeStatement* vala_ccode_do_statement_get_body (ValaCCodeDoStatement* self);
VALA_EXTERN void vala_ccode_do_statement_set_body (ValaCCodeDoStatement* self,
                                       ValaCCodeStatement* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_do_statement_get_condition (ValaCCodeDoStatement* self);
VALA_EXTERN void vala_ccode_do_statement_set_condition (ValaCCodeDoStatement* self,
                                            ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeDoStatement* vala_ccode_do_statement_new (ValaCCodeStatement* stmt,
                                                   ValaCCodeExpression* cond);
VALA_EXTERN ValaCCodeDoStatement* vala_ccode_do_statement_construct (GType object_type,
                                                         ValaCCodeStatement* stmt,
                                                         ValaCCodeExpression* cond);
VALA_EXTERN GType vala_ccode_empty_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeEmptyStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeEmptyStatement* vala_ccode_empty_statement_new (void);
VALA_EXTERN ValaCCodeEmptyStatement* vala_ccode_empty_statement_construct (GType object_type);
VALA_EXTERN GType vala_ccode_enum_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeEnum, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_enum_get_name (ValaCCodeEnum* self);
VALA_EXTERN void vala_ccode_enum_set_name (ValaCCodeEnum* self,
                               const gchar* value);
VALA_EXTERN ValaCCodeEnum* vala_ccode_enum_new (const gchar* name);
VALA_EXTERN ValaCCodeEnum* vala_ccode_enum_construct (GType object_type,
                                          const gchar* name);
VALA_EXTERN GType vala_ccode_enum_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeEnumValue, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_enum_add_value (ValaCCodeEnum* self,
                                ValaCCodeEnumValue* value);
VALA_EXTERN const gchar* vala_ccode_enum_value_get_name (ValaCCodeEnumValue* self);
VALA_EXTERN void vala_ccode_enum_value_set_name (ValaCCodeEnumValue* self,
                                     const gchar* value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_enum_value_get_value (ValaCCodeEnumValue* self);
VALA_EXTERN void vala_ccode_enum_value_set_value (ValaCCodeEnumValue* self,
                                      ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeEnumValue* vala_ccode_enum_value_new (const gchar* name,
                                               ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeEnumValue* vala_ccode_enum_value_construct (GType object_type,
                                                     const gchar* name,
                                                     ValaCCodeExpression* value);
VALA_EXTERN void vala_ccode_expression_write_inner (ValaCCodeExpression* self,
                                        ValaCCodeWriter* writer);
VALA_EXTERN ValaCCodeExpression* vala_ccode_expression_construct (GType object_type);
VALA_EXTERN GType vala_ccode_expression_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeExpressionStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_expression_statement_get_expression (ValaCCodeExpressionStatement* self);
VALA_EXTERN void vala_ccode_expression_statement_set_expression (ValaCCodeExpressionStatement* self,
                                                     ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeExpressionStatement* vala_ccode_expression_statement_new (ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeExpressionStatement* vala_ccode_expression_statement_construct (GType object_type,
                                                                         ValaCCodeExpression* expr);
VALA_EXTERN gpointer vala_ccode_file_ref (gpointer instance);
VALA_EXTERN void vala_ccode_file_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_ccode_file (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
VALA_EXTERN void vala_value_set_ccode_file (GValue* value,
                                gpointer v_object);
VALA_EXTERN void vala_value_take_ccode_file (GValue* value,
                                 gpointer v_object);
VALA_EXTERN gpointer vala_value_get_ccode_file (const GValue* value);
VALA_EXTERN GType vala_ccode_file_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeFile, vala_ccode_file_unref)
VALA_EXTERN GType ccode_file_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN CCodeFileType vala_ccode_file_get_file_type (ValaCCodeFile* self);
VALA_EXTERN ValaSourceFile* vala_ccode_file_get_file (ValaCCodeFile* self);
VALA_EXTERN ValaCCodeFile* vala_ccode_file_new (CCodeFileType type,
                                    ValaSourceFile* source_file);
VALA_EXTERN ValaCCodeFile* vala_ccode_file_construct (GType object_type,
                                          CCodeFileType type,
                                          ValaSourceFile* source_file);
VALA_EXTERN gboolean vala_ccode_file_add_declaration (ValaCCodeFile* self,
                                          const gchar* name);
VALA_EXTERN void vala_ccode_file_add_comment (ValaCCodeFile* self,
                                  ValaCCodeComment* comment);
VALA_EXTERN void vala_ccode_file_add_feature_test_macro (ValaCCodeFile* self,
                                             const gchar* feature_test_macro);
VALA_EXTERN void vala_ccode_file_add_include (ValaCCodeFile* self,
                                  const gchar* filename,
                                  gboolean local);
VALA_EXTERN void vala_ccode_file_add_define (ValaCCodeFile* self,
                                 ValaCCodeNode* node);
VALA_EXTERN void vala_ccode_file_add_type_declaration (ValaCCodeFile* self,
                                           ValaCCodeNode* node);
VALA_EXTERN void vala_ccode_file_add_type_definition (ValaCCodeFile* self,
                                          ValaCCodeNode* node);
VALA_EXTERN void vala_ccode_file_add_type_member_declaration (ValaCCodeFile* self,
                                                  ValaCCodeNode* node);
VALA_EXTERN void vala_ccode_file_add_constant_declaration (ValaCCodeFile* self,
                                               ValaCCodeNode* node);
VALA_EXTERN void vala_ccode_file_add_type_member_definition (ValaCCodeFile* self,
                                                 ValaCCodeNode* node);
VALA_EXTERN GType vala_ccode_function_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeFunction, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_file_add_function_declaration (ValaCCodeFile* self,
                                               ValaCCodeFunction* func);
VALA_EXTERN void vala_ccode_file_add_function (ValaCCodeFile* self,
                                   ValaCCodeFunction* func);
VALA_EXTERN ValaList* vala_ccode_file_get_symbols (ValaCCodeFile* self);
VALA_EXTERN gboolean vala_ccode_file_store (ValaCCodeFile* self,
                                const gchar* filename,
                                const gchar* source_filename,
                                gboolean write_version,
                                gboolean line_directives,
                                const gchar* begin_decls,
                                const gchar* end_decls);
VALA_EXTERN GType vala_ccode_for_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeForStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_for_statement_get_condition (ValaCCodeForStatement* self);
VALA_EXTERN void vala_ccode_for_statement_set_condition (ValaCCodeForStatement* self,
                                             ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeStatement* vala_ccode_for_statement_get_body (ValaCCodeForStatement* self);
VALA_EXTERN void vala_ccode_for_statement_set_body (ValaCCodeForStatement* self,
                                        ValaCCodeStatement* value);
VALA_EXTERN ValaCCodeForStatement* vala_ccode_for_statement_new (ValaCCodeExpression* condition,
                                                     ValaCCodeStatement* body);
VALA_EXTERN ValaCCodeForStatement* vala_ccode_for_statement_construct (GType object_type,
                                                           ValaCCodeExpression* condition,
                                                           ValaCCodeStatement* body);
VALA_EXTERN void vala_ccode_for_statement_add_initializer (ValaCCodeForStatement* self,
                                               ValaCCodeExpression* expr);
VALA_EXTERN void vala_ccode_for_statement_add_iterator (ValaCCodeForStatement* self,
                                            ValaCCodeExpression* expr);
VALA_EXTERN GType vala_ccode_fragment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeFragment, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_fragment_append (ValaCCodeFragment* self,
                                 ValaCCodeNode* node);
VALA_EXTERN ValaList* vala_ccode_fragment_get_children (ValaCCodeFragment* self);
VALA_EXTERN ValaCCodeFragment* vala_ccode_fragment_new (void);
VALA_EXTERN ValaCCodeFragment* vala_ccode_fragment_construct (GType object_type);
VALA_EXTERN const gchar* vala_ccode_function_get_name (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_name (ValaCCodeFunction* self,
                                   const gchar* value);
VALA_EXTERN const gchar* vala_ccode_function_get_return_type (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_return_type (ValaCCodeFunction* self,
                                          const gchar* value);
VALA_EXTERN gboolean vala_ccode_function_get_is_declaration (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_is_declaration (ValaCCodeFunction* self,
                                             gboolean value);
VALA_EXTERN ValaCCodeBlock* vala_ccode_function_get_block (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_block (ValaCCodeFunction* self,
                                    ValaCCodeBlock* value);
VALA_EXTERN GType vala_ccode_line_directive_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeLineDirective, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeLineDirective* vala_ccode_function_get_current_line (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_current_line (ValaCCodeFunction* self,
                                           ValaCCodeLineDirective* value);
VALA_EXTERN ValaCCodeBlock* vala_ccode_function_get_current_block (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_set_current_block (ValaCCodeFunction* self,
                                            ValaCCodeBlock* value);
VALA_EXTERN ValaCCodeFunction* vala_ccode_function_new (const gchar* name,
                                            const gchar* return_type);
VALA_EXTERN ValaCCodeFunction* vala_ccode_function_construct (GType object_type,
                                                  const gchar* name,
                                                  const gchar* return_type);
VALA_EXTERN GType vala_ccode_parameter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeParameter, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_function_add_parameter (ValaCCodeFunction* self,
                                        ValaCCodeParameter* param);
VALA_EXTERN void vala_ccode_function_insert_parameter (ValaCCodeFunction* self,
                                           gint position,
                                           ValaCCodeParameter* param);
VALA_EXTERN gint vala_ccode_function_get_parameter_count (ValaCCodeFunction* self);
VALA_EXTERN ValaCCodeParameter* vala_ccode_function_get_parameter (ValaCCodeFunction* self,
                                                       gint position);
VALA_EXTERN ValaCCodeFunction* vala_ccode_function_copy (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_add_statement (ValaCCodeFunction* self,
                                        ValaCCodeNode* stmt);
VALA_EXTERN void vala_ccode_function_open_block (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_open_if (ValaCCodeFunction* self,
                                  ValaCCodeExpression* condition);
VALA_EXTERN void vala_ccode_function_add_else (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_else_if (ValaCCodeFunction* self,
                                  ValaCCodeExpression* condition);
VALA_EXTERN void vala_ccode_function_open_while (ValaCCodeFunction* self,
                                     ValaCCodeExpression* condition);
VALA_EXTERN void vala_ccode_function_open_for (ValaCCodeFunction* self,
                                   ValaCCodeExpression* initializer,
                                   ValaCCodeExpression* condition,
                                   ValaCCodeExpression* iterator);
VALA_EXTERN void vala_ccode_function_open_switch (ValaCCodeFunction* self,
                                      ValaCCodeExpression* expression);
VALA_EXTERN void vala_ccode_function_add_label (ValaCCodeFunction* self,
                                    const gchar* label);
VALA_EXTERN void vala_ccode_function_add_case (ValaCCodeFunction* self,
                                   ValaCCodeExpression* expression);
VALA_EXTERN void vala_ccode_function_add_default (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_add_goto (ValaCCodeFunction* self,
                                   const gchar* target);
VALA_EXTERN void vala_ccode_function_add_expression (ValaCCodeFunction* self,
                                         ValaCCodeExpression* expression);
VALA_EXTERN void vala_ccode_function_add_assignment (ValaCCodeFunction* self,
                                         ValaCCodeExpression* left,
                                         ValaCCodeExpression* right);
VALA_EXTERN void vala_ccode_function_add_return (ValaCCodeFunction* self,
                                     ValaCCodeExpression* expression);
VALA_EXTERN void vala_ccode_function_add_break (ValaCCodeFunction* self);
VALA_EXTERN void vala_ccode_function_add_continue (ValaCCodeFunction* self);
VALA_EXTERN GType vala_ccode_modifiers_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void vala_ccode_function_add_declaration (ValaCCodeFunction* self,
                                          const gchar* type_name,
                                          ValaCCodeDeclarator* declarator,
                                          ValaCCodeModifiers modifiers);
VALA_EXTERN void vala_ccode_function_close (ValaCCodeFunction* self);
VALA_EXTERN GType vala_ccode_function_call_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeFunctionCall, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_function_call_get_call (ValaCCodeFunctionCall* self);
VALA_EXTERN void vala_ccode_function_call_set_call (ValaCCodeFunctionCall* self,
                                        ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeFunctionCall* vala_ccode_function_call_new (ValaCCodeExpression* call);
VALA_EXTERN ValaCCodeFunctionCall* vala_ccode_function_call_construct (GType object_type,
                                                           ValaCCodeExpression* call);
VALA_EXTERN void vala_ccode_function_call_add_argument (ValaCCodeFunctionCall* self,
                                            ValaCCodeExpression* expr);
VALA_EXTERN void vala_ccode_function_call_insert_argument (ValaCCodeFunctionCall* self,
                                               gint index,
                                               ValaCCodeExpression* expr);
VALA_EXTERN ValaList* vala_ccode_function_call_get_arguments (ValaCCodeFunctionCall* self);
VALA_EXTERN GType vala_ccode_function_declarator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeFunctionDeclarator, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_new (const gchar* name);
VALA_EXTERN ValaCCodeFunctionDeclarator* vala_ccode_function_declarator_construct (GType object_type,
                                                                       const gchar* name);
VALA_EXTERN void vala_ccode_function_declarator_add_parameter (ValaCCodeFunctionDeclarator* self,
                                                   ValaCCodeParameter* param);
VALA_EXTERN GType vala_ccode_ggnuc_section_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeGGnucSection, vala_ccode_node_unref)
VALA_EXTERN GType vala_ggnuc_section_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaGGnucSectionType vala_ccode_ggnuc_section_get_section_type (ValaCCodeGGnucSection* self);
VALA_EXTERN void vala_ccode_ggnuc_section_set_section_type (ValaCCodeGGnucSection* self,
                                                ValaGGnucSectionType value);
VALA_EXTERN ValaCCodeGGnucSection* vala_ccode_ggnuc_section_new (ValaGGnucSectionType t);
VALA_EXTERN ValaCCodeGGnucSection* vala_ccode_ggnuc_section_construct (GType object_type,
                                                           ValaGGnucSectionType t);
VALA_EXTERN const gchar* vala_ggnuc_section_type_to_string (ValaGGnucSectionType self);
VALA_EXTERN GType vala_ccode_goto_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeGotoStatement, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_goto_statement_get_name (ValaCCodeGotoStatement* self);
VALA_EXTERN void vala_ccode_goto_statement_set_name (ValaCCodeGotoStatement* self,
                                         const gchar* value);
VALA_EXTERN ValaCCodeGotoStatement* vala_ccode_goto_statement_new (const gchar* name);
VALA_EXTERN ValaCCodeGotoStatement* vala_ccode_goto_statement_construct (GType object_type,
                                                             const gchar* name);
VALA_EXTERN const gchar* vala_ccode_identifier_get_name (ValaCCodeIdentifier* self);
VALA_EXTERN void vala_ccode_identifier_set_name (ValaCCodeIdentifier* self,
                                     const gchar* value);
VALA_EXTERN ValaCCodeIdentifier* vala_ccode_identifier_new (const gchar* _name);
VALA_EXTERN ValaCCodeIdentifier* vala_ccode_identifier_construct (GType object_type,
                                                      const gchar* _name);
VALA_EXTERN GType vala_ccode_if_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeIfStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_if_statement_get_condition (ValaCCodeIfStatement* self);
VALA_EXTERN void vala_ccode_if_statement_set_condition (ValaCCodeIfStatement* self,
                                            ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeStatement* vala_ccode_if_statement_get_true_statement (ValaCCodeIfStatement* self);
VALA_EXTERN void vala_ccode_if_statement_set_true_statement (ValaCCodeIfStatement* self,
                                                 ValaCCodeStatement* value);
VALA_EXTERN ValaCCodeStatement* vala_ccode_if_statement_get_false_statement (ValaCCodeIfStatement* self);
VALA_EXTERN void vala_ccode_if_statement_set_false_statement (ValaCCodeIfStatement* self,
                                                  ValaCCodeStatement* value);
VALA_EXTERN ValaCCodeIfStatement* vala_ccode_if_statement_new (ValaCCodeExpression* cond,
                                                   ValaCCodeStatement* true_stmt,
                                                   ValaCCodeStatement* false_stmt);
VALA_EXTERN ValaCCodeIfStatement* vala_ccode_if_statement_construct (GType object_type,
                                                         ValaCCodeExpression* cond,
                                                         ValaCCodeStatement* true_stmt,
                                                         ValaCCodeStatement* false_stmt);
VALA_EXTERN gboolean vala_ccode_if_statement_get_else_if (ValaCCodeIfStatement* self);
VALA_EXTERN void vala_ccode_if_statement_set_else_if (ValaCCodeIfStatement* self,
                                          gboolean value);
VALA_EXTERN GType vala_ccode_include_directive_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeIncludeDirective, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_include_directive_get_filename (ValaCCodeIncludeDirective* self);
VALA_EXTERN void vala_ccode_include_directive_set_filename (ValaCCodeIncludeDirective* self,
                                                const gchar* value);
VALA_EXTERN gboolean vala_ccode_include_directive_get_local (ValaCCodeIncludeDirective* self);
VALA_EXTERN void vala_ccode_include_directive_set_local (ValaCCodeIncludeDirective* self,
                                             gboolean value);
VALA_EXTERN ValaCCodeIncludeDirective* vala_ccode_include_directive_new (const gchar* _filename,
                                                             gboolean _local);
VALA_EXTERN ValaCCodeIncludeDirective* vala_ccode_include_directive_construct (GType object_type,
                                                                   const gchar* _filename,
                                                                   gboolean _local);
VALA_EXTERN GType vala_ccode_initializer_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeInitializerList, vala_ccode_node_unref)
VALA_EXTERN void vala_ccode_initializer_list_append (ValaCCodeInitializerList* self,
                                         ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeInitializerList* vala_ccode_initializer_list_new (void);
VALA_EXTERN ValaCCodeInitializerList* vala_ccode_initializer_list_construct (GType object_type);
VALA_EXTERN GType vala_ccode_invalid_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeInvalidExpression, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeInvalidExpression* vala_ccode_invalid_expression_new (void);
VALA_EXTERN ValaCCodeInvalidExpression* vala_ccode_invalid_expression_construct (GType object_type);
VALA_EXTERN GType vala_ccode_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeLabel, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_label_get_name (ValaCCodeLabel* self);
VALA_EXTERN void vala_ccode_label_set_name (ValaCCodeLabel* self,
                                const gchar* value);
VALA_EXTERN ValaCCodeLabel* vala_ccode_label_new (const gchar* name);
VALA_EXTERN ValaCCodeLabel* vala_ccode_label_construct (GType object_type,
                                            const gchar* name);
VALA_EXTERN const gchar* vala_ccode_line_directive_get_filename (ValaCCodeLineDirective* self);
VALA_EXTERN void vala_ccode_line_directive_set_filename (ValaCCodeLineDirective* self,
                                             const gchar* value);
VALA_EXTERN gint vala_ccode_line_directive_get_line_number (ValaCCodeLineDirective* self);
VALA_EXTERN void vala_ccode_line_directive_set_line_number (ValaCCodeLineDirective* self,
                                                gint value);
VALA_EXTERN ValaCCodeLineDirective* vala_ccode_line_directive_new (const gchar* _filename,
                                                       gint _line);
VALA_EXTERN ValaCCodeLineDirective* vala_ccode_line_directive_construct (GType object_type,
                                                             const gchar* _filename,
                                                             gint _line);
VALA_EXTERN GType vala_ccode_if_section_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeIfSection, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_if_section_get_expression (ValaCCodeIfSection* self);
VALA_EXTERN void vala_ccode_if_section_set_expression (ValaCCodeIfSection* self,
                                           const gchar* value);
VALA_EXTERN ValaCCodeIfSection* vala_ccode_if_section_new (const gchar* expr);
VALA_EXTERN ValaCCodeIfSection* vala_ccode_if_section_construct (GType object_type,
                                                     const gchar* expr);
VALA_EXTERN ValaCCodeIfSection* vala_ccode_if_section_append_else (ValaCCodeIfSection* self,
                                                       const gchar* expr);
VALA_EXTERN GType vala_ccode_macro_replacement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeMacroReplacement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeMacroReplacement* vala_ccode_macro_replacement_new (const gchar* name,
                                                             const gchar* replacement);
VALA_EXTERN ValaCCodeMacroReplacement* vala_ccode_macro_replacement_construct (GType object_type,
                                                                   const gchar* name,
                                                                   const gchar* replacement);
VALA_EXTERN ValaCCodeMacroReplacement* vala_ccode_macro_replacement_new_with_expression (const gchar* name,
                                                                             ValaCCodeExpression* replacement_expression);
VALA_EXTERN ValaCCodeMacroReplacement* vala_ccode_macro_replacement_construct_with_expression (GType object_type,
                                                                                   const gchar* name,
                                                                                   ValaCCodeExpression* replacement_expression);
VALA_EXTERN GType vala_ccode_member_access_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeMemberAccess, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_member_access_get_inner (ValaCCodeMemberAccess* self);
VALA_EXTERN void vala_ccode_member_access_set_inner (ValaCCodeMemberAccess* self,
                                         ValaCCodeExpression* value);
VALA_EXTERN const gchar* vala_ccode_member_access_get_member_name (ValaCCodeMemberAccess* self);
VALA_EXTERN void vala_ccode_member_access_set_member_name (ValaCCodeMemberAccess* self,
                                               const gchar* value);
VALA_EXTERN gboolean vala_ccode_member_access_get_is_pointer (ValaCCodeMemberAccess* self);
VALA_EXTERN void vala_ccode_member_access_set_is_pointer (ValaCCodeMemberAccess* self,
                                              gboolean value);
VALA_EXTERN ValaCCodeMemberAccess* vala_ccode_member_access_new (ValaCCodeExpression* container,
                                                     const gchar* member,
                                                     gboolean pointer);
VALA_EXTERN ValaCCodeMemberAccess* vala_ccode_member_access_construct (GType object_type,
                                                           ValaCCodeExpression* container,
                                                           const gchar* member,
                                                           gboolean pointer);
VALA_EXTERN ValaCCodeMemberAccess* vala_ccode_member_access_new_pointer (ValaCCodeExpression* container,
                                                             const gchar* member);
VALA_EXTERN ValaCCodeMemberAccess* vala_ccode_member_access_construct_pointer (GType object_type,
                                                                   ValaCCodeExpression* container,
                                                                   const gchar* member);
VALA_EXTERN GType vala_ccode_newline_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeNewline, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeNewline* vala_ccode_newline_new (void);
VALA_EXTERN ValaCCodeNewline* vala_ccode_newline_construct (GType object_type);
VALA_EXTERN ValaCCodeLineDirective* vala_ccode_node_get_line (ValaCCodeNode* self);
VALA_EXTERN void vala_ccode_node_set_line (ValaCCodeNode* self,
                               ValaCCodeLineDirective* value);
VALA_EXTERN ValaCCodeModifiers vala_ccode_node_get_modifiers (ValaCCodeNode* self);
VALA_EXTERN void vala_ccode_node_set_modifiers (ValaCCodeNode* self,
                                    ValaCCodeModifiers value);
VALA_EXTERN void vala_ccode_node_write (ValaCCodeNode* self,
                            ValaCCodeWriter* writer);
VALA_EXTERN void vala_ccode_node_write_declaration (ValaCCodeNode* self,
                                        ValaCCodeWriter* writer);
VALA_EXTERN void vala_ccode_node_write_combined (ValaCCodeNode* self,
                                     ValaCCodeWriter* writer);
VALA_EXTERN ValaCCodeNode* vala_ccode_node_construct (GType object_type);
VALA_EXTERN GType vala_ccode_once_section_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeOnceSection, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_once_section_get_define (ValaCCodeOnceSection* self);
VALA_EXTERN void vala_ccode_once_section_set_define (ValaCCodeOnceSection* self,
                                         const gchar* value);
VALA_EXTERN ValaCCodeOnceSection* vala_ccode_once_section_new (const gchar* def);
VALA_EXTERN ValaCCodeOnceSection* vala_ccode_once_section_construct (GType object_type,
                                                         const gchar* def);
VALA_EXTERN const gchar* vala_ccode_parameter_get_name (ValaCCodeParameter* self);
VALA_EXTERN void vala_ccode_parameter_set_name (ValaCCodeParameter* self,
                                    const gchar* value);
VALA_EXTERN const gchar* vala_ccode_parameter_get_type_name (ValaCCodeParameter* self);
VALA_EXTERN void vala_ccode_parameter_set_type_name (ValaCCodeParameter* self,
                                         const gchar* value);
VALA_EXTERN gboolean vala_ccode_parameter_get_ellipsis (ValaCCodeParameter* self);
VALA_EXTERN void vala_ccode_parameter_set_ellipsis (ValaCCodeParameter* self,
                                        gboolean value);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_new (const gchar* n,
                                              const gchar* type);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_construct (GType object_type,
                                                    const gchar* n,
                                                    const gchar* type);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_new_with_ellipsis (void);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_construct_with_ellipsis (GType object_type);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_new_with_declarator (const gchar* type,
                                                              ValaCCodeDeclarator* decl);
VALA_EXTERN ValaCCodeParameter* vala_ccode_parameter_construct_with_declarator (GType object_type,
                                                                    const gchar* type,
                                                                    ValaCCodeDeclarator* decl);
VALA_EXTERN GType vala_ccode_parenthesized_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeParenthesizedExpression, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_parenthesized_expression_get_inner (ValaCCodeParenthesizedExpression* self);
VALA_EXTERN void vala_ccode_parenthesized_expression_set_inner (ValaCCodeParenthesizedExpression* self,
                                                    ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeParenthesizedExpression* vala_ccode_parenthesized_expression_new (ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeParenthesizedExpression* vala_ccode_parenthesized_expression_construct (GType object_type,
                                                                                 ValaCCodeExpression* expr);
VALA_EXTERN GType vala_ccode_return_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeReturnStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_return_statement_get_return_expression (ValaCCodeReturnStatement* self);
VALA_EXTERN void vala_ccode_return_statement_set_return_expression (ValaCCodeReturnStatement* self,
                                                        ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeReturnStatement* vala_ccode_return_statement_new (ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeReturnStatement* vala_ccode_return_statement_construct (GType object_type,
                                                                 ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeStatement* vala_ccode_statement_construct (GType object_type);
VALA_EXTERN GType vala_ccode_struct_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeStruct, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_struct_get_name (ValaCCodeStruct* self);
VALA_EXTERN void vala_ccode_struct_set_name (ValaCCodeStruct* self,
                                 const gchar* value);
VALA_EXTERN gboolean vala_ccode_struct_get_is_empty (ValaCCodeStruct* self);
VALA_EXTERN ValaCCodeStruct* vala_ccode_struct_new (const gchar* name);
VALA_EXTERN ValaCCodeStruct* vala_ccode_struct_construct (GType object_type,
                                              const gchar* name);
VALA_EXTERN void vala_ccode_struct_add_declaration (ValaCCodeStruct* self,
                                        ValaCCodeDeclaration* decl);
VALA_EXTERN gpointer vala_ccode_declarator_suffix_ref (gpointer instance);
VALA_EXTERN void vala_ccode_declarator_suffix_unref (gpointer instance);
VALA_EXTERN GParamSpec* vala_param_spec_ccode_declarator_suffix (const gchar* name,
                                                     const gchar* nick,
                                                     const gchar* blurb,
                                                     GType object_type,
                                                     GParamFlags flags);
VALA_EXTERN void vala_value_set_ccode_declarator_suffix (GValue* value,
                                             gpointer v_object);
VALA_EXTERN void vala_value_take_ccode_declarator_suffix (GValue* value,
                                              gpointer v_object);
VALA_EXTERN gpointer vala_value_get_ccode_declarator_suffix (const GValue* value);
VALA_EXTERN GType vala_ccode_declarator_suffix_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeDeclaratorSuffix, vala_ccode_declarator_suffix_unref)
VALA_EXTERN void vala_ccode_struct_add_field (ValaCCodeStruct* self,
                                  const gchar* type_name,
                                  const gchar* name,
                                  ValaCCodeModifiers modifiers,
                                  ValaCCodeDeclaratorSuffix* declarator_suffix);
VALA_EXTERN GType vala_ccode_switch_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeSwitchStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_switch_statement_get_expression (ValaCCodeSwitchStatement* self);
VALA_EXTERN void vala_ccode_switch_statement_set_expression (ValaCCodeSwitchStatement* self,
                                                 ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeSwitchStatement* vala_ccode_switch_statement_new (ValaCCodeExpression* expression);
VALA_EXTERN ValaCCodeSwitchStatement* vala_ccode_switch_statement_construct (GType object_type,
                                                                 ValaCCodeExpression* expression);
VALA_EXTERN GType vala_ccode_type_definition_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeTypeDefinition, vala_ccode_node_unref)
VALA_EXTERN const gchar* vala_ccode_type_definition_get_type_name (ValaCCodeTypeDefinition* self);
VALA_EXTERN void vala_ccode_type_definition_set_type_name (ValaCCodeTypeDefinition* self,
                                               const gchar* value);
VALA_EXTERN ValaCCodeDeclarator* vala_ccode_type_definition_get_declarator (ValaCCodeTypeDefinition* self);
VALA_EXTERN void vala_ccode_type_definition_set_declarator (ValaCCodeTypeDefinition* self,
                                                ValaCCodeDeclarator* value);
VALA_EXTERN ValaCCodeTypeDefinition* vala_ccode_type_definition_new (const gchar* type,
                                                         ValaCCodeDeclarator* decl);
VALA_EXTERN ValaCCodeTypeDefinition* vala_ccode_type_definition_construct (GType object_type,
                                                               const gchar* type,
                                                               ValaCCodeDeclarator* decl);
VALA_EXTERN GType vala_ccode_unary_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeUnaryExpression, vala_ccode_node_unref)
VALA_EXTERN GType vala_ccode_unary_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ValaCCodeUnaryOperator vala_ccode_unary_expression_get_operator (ValaCCodeUnaryExpression* self);
VALA_EXTERN void vala_ccode_unary_expression_set_operator (ValaCCodeUnaryExpression* self,
                                               ValaCCodeUnaryOperator value);
VALA_EXTERN ValaCCodeExpression* vala_ccode_unary_expression_get_inner (ValaCCodeUnaryExpression* self);
VALA_EXTERN void vala_ccode_unary_expression_set_inner (ValaCCodeUnaryExpression* self,
                                            ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeUnaryExpression* vala_ccode_unary_expression_new (ValaCCodeUnaryOperator op,
                                                           ValaCCodeExpression* expr);
VALA_EXTERN ValaCCodeUnaryExpression* vala_ccode_unary_expression_construct (GType object_type,
                                                                 ValaCCodeUnaryOperator op,
                                                                 ValaCCodeExpression* expr);
VALA_EXTERN GType vala_ccode_variable_declarator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeVariableDeclarator, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_variable_declarator_get_initializer (ValaCCodeVariableDeclarator* self);
VALA_EXTERN void vala_ccode_variable_declarator_set_initializer (ValaCCodeVariableDeclarator* self,
                                                     ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_variable_declarator_get_declarator_suffix (ValaCCodeVariableDeclarator* self);
VALA_EXTERN void vala_ccode_variable_declarator_set_declarator_suffix (ValaCCodeVariableDeclarator* self,
                                                           ValaCCodeDeclaratorSuffix* value);
VALA_EXTERN gboolean vala_ccode_variable_declarator_get_init0 (ValaCCodeVariableDeclarator* self);
VALA_EXTERN void vala_ccode_variable_declarator_set_init0 (ValaCCodeVariableDeclarator* self,
                                               gboolean value);
VALA_EXTERN ValaCCodeVariableDeclarator* vala_ccode_variable_declarator_new (const gchar* name,
                                                                 ValaCCodeExpression* initializer,
                                                                 ValaCCodeDeclaratorSuffix* declarator_suffix);
VALA_EXTERN ValaCCodeVariableDeclarator* vala_ccode_variable_declarator_construct (GType object_type,
                                                                       const gchar* name,
                                                                       ValaCCodeExpression* initializer,
                                                                       ValaCCodeDeclaratorSuffix* declarator_suffix);
VALA_EXTERN ValaCCodeVariableDeclarator* vala_ccode_variable_declarator_new_zero (const gchar* name,
                                                                      ValaCCodeExpression* initializer,
                                                                      ValaCCodeDeclaratorSuffix* declarator_suffix);
VALA_EXTERN ValaCCodeVariableDeclarator* vala_ccode_variable_declarator_construct_zero (GType object_type,
                                                                            const gchar* name,
                                                                            ValaCCodeExpression* initializer,
                                                                            ValaCCodeDeclaratorSuffix* declarator_suffix);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_new_with_array (ValaCCodeExpression* array_length);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_construct_with_array (GType object_type,
                                                                              ValaCCodeExpression* array_length);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_new_with_multi_array (ValaList* array_length);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_construct_with_multi_array (GType object_type,
                                                                                    ValaList* array_length);
VALA_EXTERN void vala_ccode_declarator_suffix_write (ValaCCodeDeclaratorSuffix* self,
                                         ValaCCodeWriter* writer);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_new (void);
VALA_EXTERN ValaCCodeDeclaratorSuffix* vala_ccode_declarator_suffix_construct (GType object_type);
VALA_EXTERN GType vala_ccode_while_statement_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeWhileStatement, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_while_statement_get_condition (ValaCCodeWhileStatement* self);
VALA_EXTERN void vala_ccode_while_statement_set_condition (ValaCCodeWhileStatement* self,
                                               ValaCCodeExpression* value);
VALA_EXTERN ValaCCodeStatement* vala_ccode_while_statement_get_body (ValaCCodeWhileStatement* self);
VALA_EXTERN void vala_ccode_while_statement_set_body (ValaCCodeWhileStatement* self,
                                          ValaCCodeStatement* value);
VALA_EXTERN ValaCCodeWhileStatement* vala_ccode_while_statement_new (ValaCCodeExpression* cond,
                                                         ValaCCodeStatement* stmt);
VALA_EXTERN ValaCCodeWhileStatement* vala_ccode_while_statement_construct (GType object_type,
                                                               ValaCCodeExpression* cond,
                                                               ValaCCodeStatement* stmt);
VALA_EXTERN const gchar* vala_ccode_writer_get_filename (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_set_filename (ValaCCodeWriter* self,
                                     const gchar* value);
VALA_EXTERN gboolean vala_ccode_writer_get_line_directives (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_set_line_directives (ValaCCodeWriter* self,
                                            gboolean value);
VALA_EXTERN gboolean vala_ccode_writer_get_bol (ValaCCodeWriter* self);
VALA_EXTERN ValaCCodeWriter* vala_ccode_writer_new (const gchar* filename,
                                        const gchar* source_filename);
VALA_EXTERN ValaCCodeWriter* vala_ccode_writer_construct (GType object_type,
                                              const gchar* filename,
                                              const gchar* source_filename);
VALA_EXTERN gboolean vala_ccode_writer_open (ValaCCodeWriter* self,
                                 gboolean write_version);
VALA_EXTERN void vala_ccode_writer_close (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_write_indent (ValaCCodeWriter* self,
                                     ValaCCodeLineDirective* line);
VALA_EXTERN void vala_ccode_writer_write_nspaces (ValaCCodeWriter* self,
                                      guint n);
VALA_EXTERN void vala_ccode_writer_write_string (ValaCCodeWriter* self,
                                     const gchar* s);
VALA_EXTERN void vala_ccode_writer_write_newline (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_write_begin_block (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_write_end_block (ValaCCodeWriter* self);
VALA_EXTERN void vala_ccode_writer_write_comment (ValaCCodeWriter* self,
                                      const gchar* text);
VALA_EXTERN GType vala_ccode_element_access_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ValaCCodeElementAccess, vala_ccode_node_unref)
VALA_EXTERN ValaCCodeExpression* vala_ccode_element_access_get_container (ValaCCodeElementAccess* self);
VALA_EXTERN void vala_ccode_element_access_set_container (ValaCCodeElementAccess* self,
                                              ValaCCodeExpression* value);
VALA_EXTERN ValaList* vala_ccode_element_access_get_indices (ValaCCodeElementAccess* self);
VALA_EXTERN void vala_ccode_element_access_set_indices (ValaCCodeElementAccess* self,
                                            ValaList* value);
VALA_EXTERN ValaCCodeElementAccess* vala_ccode_element_access_new (ValaCCodeExpression* cont,
                                                       ValaCCodeExpression* i);
VALA_EXTERN ValaCCodeElementAccess* vala_ccode_element_access_construct (GType object_type,
                                                             ValaCCodeExpression* cont,
                                                             ValaCCodeExpression* i);
VALA_EXTERN ValaCCodeElementAccess* vala_ccode_element_access_new_with_indices (ValaCCodeExpression* cont,
                                                                    ValaList* i);
VALA_EXTERN ValaCCodeElementAccess* vala_ccode_element_access_construct_with_indices (GType object_type,
                                                                          ValaCCodeExpression* cont,
                                                                          ValaList* i);

G_END_DECLS

#endif
