/* gee.vapi generated by valac, do not modify. */

[CCode (cprefix = "Vala", lower_case_cprefix = "vala_")]
namespace Vala {
	[CCode (cheader_filename = "valagee.h")]
	public class ArrayList<G> : Vala.CollectionObject, Vala.Iterable<G>, Vala.Collection<G>, Vala.List<G> {
		public ArrayList (GLib.EqualFunc equal_func = GLib.direct_equal);
		public GLib.EqualFunc equal_func { set; }
	}
	[CCode (ref_function = "vala_collection_object_ref", unref_function = "vala_collection_object_unref", cheader_filename = "valagee.h")]
	public class CollectionObject {
		public CollectionObject ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public class HashMap<K,V> : Vala.CollectionObject, Vala.Map<K,V> {
		public HashMap (GLib.HashFunc key_hash_func = GLib.direct_hash, GLib.EqualFunc key_equal_func = GLib.direct_equal, GLib.EqualFunc value_equal_func = GLib.direct_equal);
		public GLib.EqualFunc key_equal_func { set; }
		public GLib.HashFunc key_hash_func { set; }
		public GLib.EqualFunc value_equal_func { set; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public class HashSet<G> : Vala.CollectionObject, Vala.Iterable<G>, Vala.Collection<G>, Vala.Set<G> {
		public HashSet (GLib.HashFunc hash_func = GLib.direct_hash, GLib.EqualFunc equal_func = GLib.direct_equal);
		public GLib.EqualFunc equal_func { set; }
		public GLib.HashFunc hash_func { set; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface Collection<G> : Vala.Iterable<G> {
		public abstract bool add (G item);
		public abstract void clear ();
		public abstract bool contains (G item);
		public abstract bool remove (G item);
		public abstract int size { get; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface Iterable<G> : Vala.CollectionObject {
		public abstract GLib.Type get_element_type ();
		public abstract Vala.Iterator<G> iterator ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface Iterator<G> : Vala.CollectionObject {
		public abstract G @get ();
		public abstract bool next ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface List<G> : Vala.Collection<G> {
		public abstract G @get (int index);
		public abstract int index_of (G item);
		public abstract void insert (int index, G item);
		public abstract void remove_at (int index);
		public abstract void @set (int index, G item);
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface Map<K,V> : Vala.CollectionObject {
		public abstract void clear ();
		public abstract bool contains (K key);
		public abstract V @get (K key);
		public abstract Vala.Set<K> get_keys ();
		public abstract Vala.Collection<V> get_values ();
		public abstract bool remove (K key);
		public abstract void @set (K key, V value);
		public abstract int size { get; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public interface Set<G> : Vala.Collection<G> {
	}
}
/* ccode.vapi generated by valac, do not modify. */

[CCode (cprefix = "Vala", lower_case_cprefix = "vala_")]
namespace Vala {
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeAssignment : Vala.CCodeExpression {
		public CCodeAssignment (Vala.CCodeExpression l, Vala.CCodeExpression r, Vala.CCodeAssignmentOperator op = Vala.CCodeAssignmentOperator.SIMPLE);
		public override void write (Vala.CCodeWriter writer);
		public override void write_inner (Vala.CCodeWriter writer);
		public Vala.CCodeExpression left { get; set; }
		public Vala.CCodeAssignmentOperator operator { get; set; }
		public Vala.CCodeExpression right { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeBinaryExpression : Vala.CCodeExpression {
		public CCodeBinaryExpression (Vala.CCodeBinaryOperator op, Vala.CCodeExpression l, Vala.CCodeExpression r);
		public override void write (Vala.CCodeWriter writer);
		public override void write_inner (Vala.CCodeWriter writer);
		public Vala.CCodeExpression left { get; set; }
		public Vala.CCodeBinaryOperator operator { get; set; }
		public Vala.CCodeExpression right { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeBlock : Vala.CCodeStatement {
		public CCodeBlock ();
		public void add_statement (Vala.CCodeNode statement);
		public void prepend_statement (Vala.CCodeNode statement);
		public override void write (Vala.CCodeWriter writer);
		public bool suppress_newline { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeBreakStatement : Vala.CCodeStatement {
		public CCodeBreakStatement ();
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeCaseStatement : Vala.CCodeStatement {
		public CCodeCaseStatement (Vala.CCodeExpression expression);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeCastExpression : Vala.CCodeExpression {
		public CCodeCastExpression (Vala.CCodeExpression expr, string type);
		public override void write (Vala.CCodeWriter writer);
		public override void write_inner (Vala.CCodeWriter writer);
		public Vala.CCodeExpression inner { get; set; }
		public string type_name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeCommaExpression : Vala.CCodeExpression {
		public CCodeCommaExpression ();
		public void append_expression (Vala.CCodeExpression expr);
		public Vala.List<Vala.CCodeExpression> get_inner ();
		public void set_expression (int index, Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeComment : Vala.CCodeNode {
		public CCodeComment (string _text);
		public override void write (Vala.CCodeWriter writer);
		public string text { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeConditionalExpression : Vala.CCodeExpression {
		public CCodeConditionalExpression (Vala.CCodeExpression cond, Vala.CCodeExpression true_expr, Vala.CCodeExpression false_expr);
		public override void write (Vala.CCodeWriter writer);
		public override void write_inner (Vala.CCodeWriter writer);
		public Vala.CCodeExpression condition { get; set; }
		public Vala.CCodeExpression false_expression { get; set; }
		public Vala.CCodeExpression true_expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeConstant : Vala.CCodeExpression {
		public CCodeConstant (global::string _name);
		public CCodeConstant.string (global::string _name);
		public override void write (Vala.CCodeWriter writer);
		public global::string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeContinueStatement : Vala.CCodeStatement {
		public CCodeContinueStatement ();
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeDeclaration : Vala.CCodeStatement {
		public CCodeDeclaration (string type_name);
		public void add_declarator (Vala.CCodeDeclarator decl);
		public override void write (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
		public Vala.CCodeModifiers modifiers { get; set; }
		public string type_name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public abstract class CCodeDeclarator : Vala.CCodeNode {
		public CCodeDeclarator ();
		public virtual void write_initialization (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeDoStatement : Vala.CCodeStatement {
		public CCodeDoStatement (Vala.CCodeStatement stmt, Vala.CCodeExpression cond);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeStatement body { get; set; }
		public Vala.CCodeExpression condition { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeElementAccess : Vala.CCodeExpression {
		public CCodeElementAccess (Vala.CCodeExpression cont, Vala.CCodeExpression i);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression container { get; set; }
		public Vala.CCodeExpression index { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeEmptyStatement : Vala.CCodeStatement {
		public CCodeEmptyStatement ();
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeEnum : Vala.CCodeNode {
		public CCodeEnum (string? name = null);
		public void add_value (Vala.CCodeEnumValue value);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeEnumValue : Vala.CCodeNode {
		public CCodeEnumValue (string name, Vala.CCodeExpression? value = null);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
		public Vala.CCodeExpression? value { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public abstract class CCodeExpression : Vala.CCodeNode {
		public CCodeExpression ();
		public virtual void write_inner (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeExpressionStatement : Vala.CCodeStatement {
		public CCodeExpressionStatement (Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeForStatement : Vala.CCodeStatement {
		public CCodeForStatement (Vala.CCodeExpression? condition, Vala.CCodeStatement? body = null);
		public void add_initializer (Vala.CCodeExpression expr);
		public void add_iterator (Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeStatement body { get; set; }
		public Vala.CCodeExpression? condition { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeFormalParameter : Vala.CCodeNode {
		public CCodeFormalParameter (string n, string type);
		public CCodeFormalParameter.with_ellipsis ();
		public override void write (Vala.CCodeWriter writer);
		public bool ellipsis { get; set; }
		public string name { get; set; }
		public string type_name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeFragment : Vala.CCodeNode {
		public CCodeFragment ();
		public void append (Vala.CCodeNode node);
		public Vala.List<Vala.CCodeNode> get_children ();
		public override void write (Vala.CCodeWriter writer);
		public override void write_combined (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeFunction : Vala.CCodeNode {
		public CCodeFunction (string name, string return_type = "void");
		public void add_parameter (Vala.CCodeFormalParameter param);
		public Vala.CCodeFunction copy ();
		public override void write (Vala.CCodeWriter writer);
		public string attributes { get; set; }
		public Vala.CCodeBlock block { get; set; }
		public Vala.CCodeModifiers modifiers { get; set; }
		public string name { get; set; }
		public string return_type { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeFunctionCall : Vala.CCodeExpression {
		public CCodeFunctionCall (Vala.CCodeExpression? call = null);
		public void add_argument (Vala.CCodeExpression expr);
		public Vala.List<Vala.CCodeExpression> get_arguments ();
		public void insert_argument (int index, Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression? call { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeFunctionDeclarator : Vala.CCodeDeclarator {
		public CCodeFunctionDeclarator (string name);
		public void add_parameter (Vala.CCodeFormalParameter param);
		public override void write (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeGotoStatement : Vala.CCodeStatement {
		public CCodeGotoStatement (string name);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeIdentifier : Vala.CCodeExpression {
		public CCodeIdentifier (string _name);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeIfStatement : Vala.CCodeStatement {
		public CCodeIfStatement (Vala.CCodeExpression cond, Vala.CCodeStatement true_stmt, Vala.CCodeStatement? false_stmt = null);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression condition { get; set; }
		public bool else_if { get; set; }
		public Vala.CCodeStatement? false_statement { get; set; }
		public Vala.CCodeStatement true_statement { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeIncludeDirective : Vala.CCodeNode {
		public CCodeIncludeDirective (string _filename, bool _local = false);
		public override void write (Vala.CCodeWriter writer);
		public string filename { get; set; }
		public bool local { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeInitializerList : Vala.CCodeExpression {
		public CCodeInitializerList ();
		public void append (Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeInvalidExpression : Vala.CCodeExpression {
		public CCodeInvalidExpression ();
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeLabel : Vala.CCodeStatement {
		public CCodeLabel (string name);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeLineDirective : Vala.CCodeNode {
		public CCodeLineDirective (string _filename, int _line);
		public override void write (Vala.CCodeWriter writer);
		public string filename { get; set; }
		public int line_number { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeMacroReplacement : Vala.CCodeNode {
		public CCodeMacroReplacement (string name, string replacement);
		public CCodeMacroReplacement.with_expression (string name, Vala.CCodeExpression replacement_expression);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
		public string replacement { get; set; }
		public Vala.CCodeExpression replacement_expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeMemberAccess : Vala.CCodeExpression {
		public CCodeMemberAccess (Vala.CCodeExpression container, string member, bool pointer = false);
		public CCodeMemberAccess.pointer (Vala.CCodeExpression container, string member);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression inner { get; set; }
		public bool is_pointer { get; set; }
		public string member_name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeNewline : Vala.CCodeNode {
		public CCodeNewline ();
		public override void write (Vala.CCodeWriter writer);
	}
	[CCode (ref_function = "vala_ccode_node_ref", unref_function = "vala_ccode_node_unref", cheader_filename = "valaccode.h")]
	public abstract class CCodeNode {
		public CCodeNode ();
		public abstract void write (Vala.CCodeWriter writer);
		public virtual void write_combined (Vala.CCodeWriter writer);
		public virtual void write_declaration (Vala.CCodeWriter writer);
		public Vala.CCodeLineDirective line { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeOnceSection : Vala.CCodeFragment {
		public CCodeOnceSection (string def);
		public override void write (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
		public string define { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeParenthesizedExpression : Vala.CCodeExpression {
		public CCodeParenthesizedExpression (Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression inner { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeReturnStatement : Vala.CCodeStatement {
		public CCodeReturnStatement (Vala.CCodeExpression? expr = null);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression? return_expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public abstract class CCodeStatement : Vala.CCodeNode {
		public CCodeStatement ();
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeStruct : Vala.CCodeNode {
		public CCodeStruct (string name);
		public void add_declaration (Vala.CCodeDeclaration decl);
		public void add_field (string type_name, string name, string? declarator_suffix = null);
		public override void write (Vala.CCodeWriter writer);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeSwitchStatement : Vala.CCodeBlock {
		public CCodeSwitchStatement (Vala.CCodeExpression expression);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeExpression expression { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeTypeDefinition : Vala.CCodeNode {
		public CCodeTypeDefinition (string type, Vala.CCodeDeclarator decl);
		public override void write (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
		public Vala.CCodeDeclarator declarator { get; set; }
		public string type_name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeUnaryExpression : Vala.CCodeExpression {
		public CCodeUnaryExpression (Vala.CCodeUnaryOperator op, Vala.CCodeExpression expr);
		public override void write (Vala.CCodeWriter writer);
		public override void write_inner (Vala.CCodeWriter writer);
		public Vala.CCodeExpression inner { get; set; }
		public Vala.CCodeUnaryOperator operator { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeVariableDeclarator : Vala.CCodeDeclarator {
		public CCodeVariableDeclarator (string name, Vala.CCodeExpression? initializer = null, string? declarator_suffix = null);
		public override void write (Vala.CCodeWriter writer);
		public override void write_declaration (Vala.CCodeWriter writer);
		public override void write_initialization (Vala.CCodeWriter writer);
		public CCodeVariableDeclarator.zero (string name, Vala.CCodeExpression initializer, string? declarator_suffix = null);
		public string? declarator_suffix { get; set; }
		public bool init0 { get; set; }
		public Vala.CCodeExpression? initializer { get; set; }
		public string name { get; set; }
	}
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeWhileStatement : Vala.CCodeStatement {
		public CCodeWhileStatement (Vala.CCodeExpression cond, Vala.CCodeStatement? stmt = null);
		public override void write (Vala.CCodeWriter writer);
		public Vala.CCodeStatement body { get; set; }
		public Vala.CCodeExpression condition { get; set; }
	}
	[CCode (ref_function = "vala_ccode_writer_ref", unref_function = "vala_ccode_writer_unref", cheader_filename = "valaccode.h")]
	public class CCodeWriter {
		public CCodeWriter (string filename, string? source_filename = null);
		public void close ();
		public bool open (bool write_version);
		public void write_begin_block ();
		public void write_comment (string text);
		public void write_end_block ();
		public void write_indent (Vala.CCodeLineDirective? line = null);
		public void write_newline ();
		public void write_string (string s);
		public bool bol { get; }
		public string filename { get; set; }
		public bool line_directives { get; set; }
	}
	[CCode (cprefix = "VALA_CCODE_ASSIGNMENT_OPERATOR_", cheader_filename = "valaccode.h")]
	public enum CCodeAssignmentOperator {
		SIMPLE,
		BITWISE_OR,
		BITWISE_AND,
		BITWISE_XOR,
		ADD,
		SUB,
		MUL,
		DIV,
		PERCENT,
		SHIFT_LEFT,
		SHIFT_RIGHT
	}
	[CCode (cprefix = "VALA_CCODE_BINARY_OPERATOR_", cheader_filename = "valaccode.h")]
	public enum CCodeBinaryOperator {
		PLUS,
		MINUS,
		MUL,
		DIV,
		MOD,
		SHIFT_LEFT,
		SHIFT_RIGHT,
		LESS_THAN,
		GREATER_THAN,
		LESS_THAN_OR_EQUAL,
		GREATER_THAN_OR_EQUAL,
		EQUALITY,
		INEQUALITY,
		BITWISE_AND,
		BITWISE_OR,
		BITWISE_XOR,
		AND,
		OR
	}
	[CCode (cprefix = "VALA_CCODE_MODIFIERS_", cheader_filename = "valaccode.h")]
	[Flags]
	public enum CCodeModifiers {
		NONE,
		STATIC,
		REGISTER,
		EXTERN,
		INLINE,
		VOLATILE
	}
	[CCode (cprefix = "VALA_CCODE_UNARY_OPERATOR_", cheader_filename = "valaccode.h")]
	public enum CCodeUnaryOperator {
		PLUS,
		MINUS,
		LOGICAL_NEGATION,
		BITWISE_COMPLEMENT,
		POINTER_INDIRECTION,
		ADDRESS_OF,
		PREFIX_INCREMENT,
		PREFIX_DECREMENT,
		POSTFIX_INCREMENT,
		POSTFIX_DECREMENT
	}
}
/* vala.vapi generated by valac, do not modify. */

[CCode (cprefix = "Vala", lower_case_cprefix = "vala_")]
namespace Vala {
	[CCode (cprefix = "ValaGenie", lower_case_cprefix = "vala_genie_")]
	namespace Genie {
		[CCode (cheader_filename = "vala.h")]
		public class Parser : Vala.CodeVisitor {
			public Parser ();
			public void parse (Vala.CodeContext context);
			public void parse_file (Vala.SourceFile source_file);
			public override void visit_source_file (Vala.SourceFile source_file);
		}
		[CCode (ref_function = "vala_genie_scanner_ref", unref_function = "vala_genie_scanner_unref", cheader_filename = "vala.h")]
		public class Scanner {
			public Scanner (Vala.SourceFile source_file);
			public void parse_file_comments ();
			public Vala.Comment? pop_comment ();
			public Vala.Genie.TokenType read_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
			public int indent_spaces { get; set; }
			public Vala.SourceFile source_file { get; set; }
		}
		[CCode (cprefix = "VALA_GENIE_TOKEN_TYPE_", cheader_filename = "vala.h")]
		public enum TokenType {
			NONE,
			ABSTRACT,
			ARRAY,
			AS,
			ASSERT,
			ASSIGN,
			ASSIGN_ADD,
			ASSIGN_BITWISE_AND,
			ASSIGN_BITWISE_OR,
			ASSIGN_BITWISE_XOR,
			ASSIGN_DIV,
			ASSIGN_MUL,
			ASSIGN_PERCENT,
			ASSIGN_SHIFT_LEFT,
			ASSIGN_SUB,
			ASYNC,
			BITWISE_AND,
			BITWISE_OR,
			BREAK,
			CARRET,
			CASE,
			CHARACTER_LITERAL,
			CLASS,
			CLOSE_BRACE,
			CLOSE_BRACKET,
			CLOSE_PARENS,
			COLON,
			COMMA,
			CONST,
			CONSTRUCT,
			CONTINUE,
			DEDENT,
			DEF,
			DEFAULT,
			DELEGATE,
			DELETE,
			DICT,
			DIV,
			DO,
			DOT,
			DOWNTO,
			DYNAMIC,
			ELLIPSIS,
			ELSE,
			ENUM,
			ENSURES,
			ERRORDOMAIN,
			EOF,
			EOL,
			EVENT,
			EXCEPT,
			EXTERN,
			FALSE,
			FINAL,
			FINALLY,
			FOR,
			GET,
			HASH,
			IDENTIFIER,
			IF,
			IMPLEMENTS,
			IN,
			INDENT,
			INIT,
			INLINE,
			INTEGER_LITERAL,
			INTERFACE,
			INTERNAL,
			INTERR,
			IS,
			ISA,
			LAMBDA,
			LIST,
			LOCK,
			MINUS,
			NAMESPACE,
			NEW,
			NULL,
			OF,
			OUT,
			OP_AND,
			OP_DEC,
			OP_EQ,
			OP_GE,
			OP_GT,
			OP_INC,
			OP_LE,
			OP_LT,
			OP_NE,
			OP_NEG,
			OP_OR,
			OP_PTR,
			OP_SHIFT_LEFT,
			OPEN_BRACE,
			OPEN_BRACKET,
			OPEN_PARENS,
			OVERRIDE,
			OWNED,
			PARAMS,
			PASS,
			PERCENT,
			PLUS,
			PRINT,
			PRIVATE,
			PROP,
			PROTECTED,
			PUBLIC,
			RAISE,
			RAISES,
			REAL_LITERAL,
			READONLY,
			REF,
			REQUIRES,
			RETURN,
			SEMICOLON,
			SET,
			SIZEOF,
			STAR,
			STATIC,
			STRING_LITERAL,
			STRUCT,
			SUPER,
			THIS,
			TILDE,
			TO,
			TRUE,
			TRY,
			TYPEOF,
			UNOWNED,
			USES,
			VAR,
			VERBATIM_STRING_LITERAL,
			VIRTUAL,
			VOID,
			VOLATILE,
			WEAK,
			WHEN,
			WHILE,
			WRITEONLY,
			YIELD;
			public unowned string to_string ();
		}
	}
	[CCode (cheader_filename = "vala.h")]
	public class AddressofExpression : Vala.Expression {
		public AddressofExpression (Vala.Expression inner, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression inner { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ArrayCreationExpression : Vala.Expression {
		public ArrayCreationExpression (Vala.DataType element_type, int rank, Vala.InitializerList? initializer_list, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void append_size (Vala.Expression size);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_sizes ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.DataType element_type { get; set; }
		public Vala.InitializerList? initializer_list { get; set; }
		public int rank { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ArrayLengthField : Vala.Field {
		public ArrayLengthField (Vala.SourceReference source_reference);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ArrayMoveMethod : Vala.Method {
		public ArrayMoveMethod (Vala.SourceReference source_reference);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ArrayResizeMethod : Vala.Method {
		public ArrayResizeMethod (Vala.SourceReference source_reference);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ArrayType : Vala.ReferenceType {
		public ArrayType (Vala.DataType element_type, int rank, Vala.SourceReference? source_reference);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override Vala.DataType get_actual_type (Vala.DataType? derived_instance_type, Vala.MemberAccess? method_access, Vala.CodeNode node_reference);
		public override string get_cdeclarator_suffix ();
		public override string? get_cname ();
		public override Vala.Symbol? get_member (string member_name);
		public override Vala.List<Vala.Symbol> get_symbols ();
		public override string? get_type_id ();
		public override bool is_array ();
		public override bool is_reference_type_or_type_parameter ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.DataType element_type { get; set; }
		public bool fixed_length { get; set; }
		public bool inline_allocated { get; set; }
		public bool invalid_syntax { get; set; }
		public int length { get; set; }
		public int rank { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Assignment : Vala.Expression {
		public Assignment (Vala.Expression left, Vala.Expression right, Vala.AssignmentOperator operator = Vala.AssignmentOperator.SIMPLE, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression left { get; set; }
		public Vala.AssignmentOperator operator { get; set; }
		public Vala.Expression right { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Attribute : Vala.CodeNode {
		public Vala.Map<string,Vala.Expression> args;
		public Attribute (string name, Vala.SourceReference? source_reference = null);
		public void add_argument (string key, Vala.Expression value);
		public bool get_bool (string name);
		public double get_double (string name);
		public int get_integer (string name);
		public string? get_string (string name);
		public bool has_argument (string name);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class BaseAccess : Vala.Expression {
		public BaseAccess (Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override string to_string ();
	}
	[CCode (ref_function = "vala_basic_block_ref", unref_function = "vala_basic_block_unref", cheader_filename = "vala.h")]
	public class BasicBlock {
		public BasicBlock ();
		public void add_child (Vala.BasicBlock block);
		public void add_dominator_frontier (Vala.BasicBlock block);
		public void add_node (Vala.CodeNode node);
		public void add_phi_function (Vala.PhiFunction phi);
		public void connect (Vala.BasicBlock target);
		public BasicBlock.entry ();
		public BasicBlock.exit ();
		public Vala.List<Vala.BasicBlock> get_children ();
		public Vala.Set<Vala.BasicBlock> get_dominator_frontier ();
		public Vala.List<Vala.CodeNode> get_nodes ();
		public Vala.Set<Vala.PhiFunction> get_phi_functions ();
		public Vala.List<weak Vala.BasicBlock> get_predecessors ();
		public Vala.List<weak Vala.BasicBlock> get_successors ();
		public Vala.BasicBlock parent { get; set; }
		public int postorder_number { get; set; }
		public bool postorder_visited { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class BinaryExpression : Vala.Expression {
		public bool chained;
		public BinaryExpression (Vala.BinaryOperator op, Vala.Expression _left, Vala.Expression _right, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public string get_operator_string ();
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_constant ();
		public override bool is_non_null ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override string to_string ();
		public Vala.Expression left { get; set; }
		public Vala.BinaryOperator operator { get; set; }
		public Vala.Expression right { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Block : Vala.Symbol, Vala.Statement {
		public Block (Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_local_variable (Vala.LocalVariable local);
		public void add_statement (Vala.Statement stmt);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.LocalVariable> get_local_variables ();
		public Vala.List<Vala.Statement> get_statements ();
		public void insert_before (Vala.Statement stmt, Vala.Statement new_stmt);
		public void insert_statement (int index, Vala.Statement stmt);
		public void remove_local_variable (Vala.LocalVariable local);
		public void replace_statement (Vala.Statement old_stmt, Vala.Statement new_stmt);
		public bool captured { get; set; }
		public bool contains_jump_statement { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class BooleanLiteral : Vala.Literal {
		public BooleanLiteral (bool b, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override string to_string ();
		public bool value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class BooleanType : Vala.ValueType {
		public BooleanType (Vala.Struct type_symbol);
		public override Vala.DataType copy ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class BreakStatement : Vala.CodeNode, Vala.Statement {
		public BreakStatement (Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
	}
	[CCode (cheader_filename = "vala.h")]
	public class CastExpression : Vala.Expression {
		public CastExpression (Vala.Expression inner, Vala.DataType type_reference, Vala.SourceReference source_reference, bool is_silent_cast);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public CastExpression.non_null (Vala.Expression inner, Vala.SourceReference source_reference);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Expression inner { get; set; }
		public bool is_non_null_cast { get; set; }
		public bool is_silent_cast { get; set; }
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class CatchClause : Vala.CodeNode {
		public CatchClause (Vala.DataType? error_type, string? variable_name, Vala.Block body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Block body { get; set; }
		public string? clabel_name { get; set; }
		public Vala.DataType? error_type { get; set; }
		public Vala.LocalVariable error_variable { get; set; }
		public string? variable_name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class CharacterLiteral : Vala.Literal {
		public CharacterLiteral (string c, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public unichar get_char ();
		public override bool is_pure ();
		public override string to_string ();
		public string value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Class : Vala.ObjectTypeSymbol {
		public Class (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_base_type (Vala.DataType type);
		public void add_class (Vala.Class cl);
		public void add_constant (Vala.Constant c);
		public void add_delegate (Vala.Delegate d);
		public void add_enum (Vala.Enum en);
		public void add_field (Vala.Field f);
		public void add_method (Vala.Method m);
		public void add_property (Vala.Property prop);
		public void add_signal (Vala.Signal sig);
		public void add_struct (Vala.Struct st);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.DataType> get_base_types ();
		public Vala.List<Vala.Class> get_classes ();
		public override string get_cname (bool const_type = false);
		public Vala.List<Vala.Constant> get_constants ();
		public override string get_cprefix ();
		public string get_default_cname ();
		public string get_default_free_function ();
		public string? get_default_param_spec_function ();
		public Vala.List<Vala.Delegate> get_delegates ();
		public override string? get_dup_function ();
		public Vala.List<Vala.Enum> get_enums ();
		public Vala.List<Vala.Field> get_fields ();
		public override string? get_free_function ();
		public override string? get_get_value_function ();
		public override string? get_lower_case_cname (string? infix);
		public override string get_lower_case_cprefix ();
		public override string? get_marshaller_type_name ();
		public override Vala.List<Vala.Method> get_methods ();
		public override string? get_param_spec_function ();
		public override Vala.List<Vala.Property> get_properties ();
		public override string? get_ref_function ();
		public override string? get_ref_sink_function ();
		public override string? get_set_value_function ();
		public override Vala.List<Vala.Signal> get_signals ();
		public Vala.List<Vala.Struct> get_structs ();
		public override string? get_take_value_function ();
		public override string? get_type_id ();
		public override string? get_unref_function ();
		public override string? get_upper_case_cname (string? infix);
		public bool is_fundamental ();
		public override bool is_reference_counting ();
		public override bool is_reference_type ();
		public override bool is_subtype_of (Vala.TypeSymbol t);
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public void set_dup_function (string? name);
		public void set_free_function (string name);
		public void set_ref_function (string? name);
		public void set_ref_sink_function (string? name);
		public void set_type_id (string type_id);
		public void set_unref_function (string? name);
		public Vala.Class base_class { get; set; }
		public Vala.Constructor class_constructor { get; set; }
		public Vala.Destructor? class_destructor { get; set; }
		public string const_cname { get; set; }
		public Vala.Constructor constructor { get; set; }
		public Vala.Method default_construction_method { get; set; }
		public Vala.Destructor? destructor { get; set; }
		public bool free_function_address_of { get; set; }
		public bool has_class_private_fields { get; set; }
		public bool has_private_fields { get; set; }
		public bool is_abstract { get; set; }
		public bool is_compact { get; set; }
		public bool is_error_base { get; }
		public bool is_immutable { get; set; }
		public bool ref_function_void { get; set; }
		public Vala.Constructor static_constructor { get; set; }
		public Vala.Destructor? static_destructor { get; set; }
		public string? type_check_function { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ClassType : Vala.ReferenceType {
		public ClassType (Vala.Class class_symbol);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public Vala.Class class_symbol { get; set; }
	}
	[CCode (ref_function = "vala_code_context_ref", unref_function = "vala_code_context_unref", cheader_filename = "vala.h")]
	public class CodeContext {
		public CodeContext ();
		public void accept (Vala.CodeVisitor visitor);
		public void add_c_source_file (string file);
		public void add_define (string define);
		public void add_package (string pkg);
		public void add_source_file (Vala.SourceFile file);
		public static Vala.CodeContext @get ();
		public Vala.List<string> get_c_source_files ();
		public string? get_gir_path (string gir, string[] directories);
		public string? get_package_path (string pkg, string[] directories);
		public Vala.List<string> get_packages ();
		public Vala.List<Vala.SourceFile> get_source_files ();
		public bool has_package (string pkg);
		public bool is_defined (string define);
		public static void pop ();
		public static void push (Vala.CodeContext context);
		public bool require_glib_version (int major, int minor);
		public bool assert { get; set; }
		public string basedir { get; set; }
		public bool ccode_only { get; set; }
		public bool checking { get; set; }
		public Vala.CodeGenerator codegen { get; set; }
		public bool compile_only { get; set; }
		public bool dbus_transformation { get; set; }
		public bool debug { get; set; }
		public bool deprecated { get; set; }
		public string directory { get; set; }
		public Vala.Method? entry_point { get; set; }
		public string entry_point_name { get; set; }
		public bool experimental { get; set; }
		public bool experimental_non_null { get; set; }
		public string? header_filename { get; set; }
		public string? includedir { get; set; }
		public string? internal_header_filename { get; set; }
		public bool mem_profiler { get; set; }
		public Vala.Method module_init_method { get; set; }
		public int optlevel { get; set; }
		public string output { get; set; }
		public Vala.Profile profile { get; set; }
		public Vala.Report report { get; set; }
		public Vala.Namespace root { get; }
		public bool save_csources { get; }
		public bool save_temps { get; set; }
		public string? symbols_filename { get; set; }
		public int target_glib_major { get; set; }
		public int target_glib_minor { get; set; }
		public bool thread { get; set; }
		public bool use_header { get; set; }
		public bool verbose_mode { get; set; }
		public bool version_header { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class CodeGenerator : Vala.CodeVisitor {
		public CodeGenerator ();
		public virtual void emit (Vala.CodeContext context);
	}
	[CCode (ref_function = "vala_code_node_ref", unref_function = "vala_code_node_unref", cheader_filename = "vala.h")]
	public abstract class CodeNode {
		public GLib.List<Vala.Attribute> attributes;
		public CodeNode ();
		public virtual void accept (Vala.CodeVisitor visitor);
		public virtual void accept_children (Vala.CodeVisitor visitor);
		public void add_error_type (Vala.DataType error_type);
		public void add_error_types (Vala.List<Vala.DataType> error_types);
		public virtual bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Attribute? get_attribute (string name);
		public virtual void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public Vala.List<Vala.DataType> get_error_types ();
		public static string get_temp_name ();
		public virtual void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public virtual void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public virtual void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public virtual string to_string ();
		public Vala.CCodeNode? ccodenode { get; set; }
		public bool checked { get; set; }
		public bool error { get; set; }
		public Vala.CodeNode? parent_node { get; set; }
		public Vala.SourceReference? source_reference { get; set; }
		public bool tree_can_fail { get; }
		public string type_name { get; }
		public bool unreachable { get; set; }
	}
	[CCode (ref_function = "vala_code_visitor_ref", unref_function = "vala_code_visitor_unref", cheader_filename = "vala.h")]
	public abstract class CodeVisitor {
		public CodeVisitor ();
		public virtual void visit_addressof_expression (Vala.AddressofExpression expr);
		public virtual void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		public virtual void visit_assignment (Vala.Assignment a);
		public virtual void visit_base_access (Vala.BaseAccess expr);
		public virtual void visit_binary_expression (Vala.BinaryExpression expr);
		public virtual void visit_block (Vala.Block b);
		public virtual void visit_boolean_literal (Vala.BooleanLiteral lit);
		public virtual void visit_break_statement (Vala.BreakStatement stmt);
		public virtual void visit_cast_expression (Vala.CastExpression expr);
		public virtual void visit_catch_clause (Vala.CatchClause clause);
		public virtual void visit_character_literal (Vala.CharacterLiteral lit);
		public virtual void visit_class (Vala.Class cl);
		public virtual void visit_conditional_expression (Vala.ConditionalExpression expr);
		public virtual void visit_constant (Vala.Constant c);
		public virtual void visit_constructor (Vala.Constructor c);
		public virtual void visit_continue_statement (Vala.ContinueStatement stmt);
		public virtual void visit_creation_method (Vala.CreationMethod m);
		public virtual void visit_data_type (Vala.DataType type);
		public virtual void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public virtual void visit_delegate (Vala.Delegate d);
		public virtual void visit_delete_statement (Vala.DeleteStatement stmt);
		public virtual void visit_destructor (Vala.Destructor d);
		public virtual void visit_do_statement (Vala.DoStatement stmt);
		public virtual void visit_element_access (Vala.ElementAccess expr);
		public virtual void visit_empty_statement (Vala.EmptyStatement stmt);
		public virtual void visit_end_full_expression (Vala.Expression expr);
		public virtual void visit_enum (Vala.Enum en);
		public virtual void visit_enum_value (Vala.EnumValue ev);
		public virtual void visit_error_code (Vala.ErrorCode ecode);
		public virtual void visit_error_domain (Vala.ErrorDomain edomain);
		public virtual void visit_expression (Vala.Expression expr);
		public virtual void visit_expression_statement (Vala.ExpressionStatement stmt);
		public virtual void visit_field (Vala.Field f);
		public virtual void visit_for_statement (Vala.ForStatement stmt);
		public virtual void visit_foreach_statement (Vala.ForeachStatement stmt);
		public virtual void visit_formal_parameter (Vala.FormalParameter p);
		public virtual void visit_if_statement (Vala.IfStatement stmt);
		public virtual void visit_initializer_list (Vala.InitializerList list);
		public virtual void visit_integer_literal (Vala.IntegerLiteral lit);
		public virtual void visit_interface (Vala.Interface iface);
		public virtual void visit_lambda_expression (Vala.LambdaExpression expr);
		public virtual void visit_list_literal (Vala.ListLiteral lit);
		public virtual void visit_local_variable (Vala.LocalVariable local);
		public virtual void visit_lock_statement (Vala.LockStatement stmt);
		public virtual void visit_loop (Vala.Loop stmt);
		public virtual void visit_map_literal (Vala.MapLiteral lit);
		public virtual void visit_member (Vala.Member m);
		public virtual void visit_member_access (Vala.MemberAccess expr);
		public virtual void visit_method (Vala.Method m);
		public virtual void visit_method_call (Vala.MethodCall expr);
		public virtual void visit_named_argument (Vala.NamedArgument expr);
		public virtual void visit_namespace (Vala.Namespace ns);
		public virtual void visit_null_literal (Vala.NullLiteral lit);
		public virtual void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public virtual void visit_pointer_indirection (Vala.PointerIndirection expr);
		public virtual void visit_postfix_expression (Vala.PostfixExpression expr);
		public virtual void visit_property (Vala.Property prop);
		public virtual void visit_property_accessor (Vala.PropertyAccessor acc);
		public virtual void visit_real_literal (Vala.RealLiteral lit);
		public virtual void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public virtual void visit_regex_literal (Vala.RegexLiteral lit);
		public virtual void visit_return_statement (Vala.ReturnStatement stmt);
		public virtual void visit_set_literal (Vala.SetLiteral lit);
		public virtual void visit_signal (Vala.Signal sig);
		public virtual void visit_sizeof_expression (Vala.SizeofExpression expr);
		public virtual void visit_slice_expression (Vala.SliceExpression expr);
		public virtual void visit_source_file (Vala.SourceFile source_file);
		public virtual void visit_string_literal (Vala.StringLiteral lit);
		public virtual void visit_struct (Vala.Struct st);
		public virtual void visit_switch_label (Vala.SwitchLabel label);
		public virtual void visit_switch_section (Vala.SwitchSection section);
		public virtual void visit_switch_statement (Vala.SwitchStatement stmt);
		public virtual void visit_template (Vala.Template tmpl);
		public virtual void visit_throw_statement (Vala.ThrowStatement stmt);
		public virtual void visit_try_statement (Vala.TryStatement stmt);
		public virtual void visit_tuple (Vala.Tuple tuple);
		public virtual void visit_type_check (Vala.TypeCheck expr);
		public virtual void visit_type_parameter (Vala.TypeParameter p);
		public virtual void visit_typeof_expression (Vala.TypeofExpression expr);
		public virtual void visit_unary_expression (Vala.UnaryExpression expr);
		public virtual void visit_unlock_statement (Vala.UnlockStatement stmt);
		public virtual void visit_using_directive (Vala.UsingDirective ns);
		public virtual void visit_while_statement (Vala.WhileStatement stmt);
		public virtual void visit_yield_statement (Vala.YieldStatement y);
	}
	[CCode (cheader_filename = "vala.h")]
	public class CodeWriter : Vala.CodeVisitor {
		public CodeWriter (bool dump_tree = false, bool emit_internal = false);
		public void set_cheader_override (string original, string replacement);
		public override void visit_addressof_expression (Vala.AddressofExpression expr);
		public override void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		public override void visit_assignment (Vala.Assignment a);
		public override void visit_base_access (Vala.BaseAccess expr);
		public override void visit_binary_expression (Vala.BinaryExpression expr);
		public override void visit_block (Vala.Block b);
		public override void visit_boolean_literal (Vala.BooleanLiteral lit);
		public override void visit_break_statement (Vala.BreakStatement stmt);
		public override void visit_cast_expression (Vala.CastExpression expr);
		public override void visit_catch_clause (Vala.CatchClause clause);
		public override void visit_character_literal (Vala.CharacterLiteral lit);
		public override void visit_class (Vala.Class cl);
		public override void visit_conditional_expression (Vala.ConditionalExpression expr);
		public override void visit_constant (Vala.Constant c);
		public override void visit_constructor (Vala.Constructor c);
		public override void visit_continue_statement (Vala.ContinueStatement stmt);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public override void visit_delegate (Vala.Delegate cb);
		public override void visit_delete_statement (Vala.DeleteStatement stmt);
		public override void visit_do_statement (Vala.DoStatement stmt);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_empty_statement (Vala.EmptyStatement stmt);
		public override void visit_enum (Vala.Enum en);
		public override void visit_error_code (Vala.ErrorCode ecode);
		public override void visit_error_domain (Vala.ErrorDomain edomain);
		public override void visit_expression_statement (Vala.ExpressionStatement stmt);
		public override void visit_field (Vala.Field f);
		public override void visit_for_statement (Vala.ForStatement stmt);
		public override void visit_foreach_statement (Vala.ForeachStatement stmt);
		public override void visit_if_statement (Vala.IfStatement stmt);
		public override void visit_initializer_list (Vala.InitializerList list);
		public override void visit_integer_literal (Vala.IntegerLiteral lit);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_lambda_expression (Vala.LambdaExpression expr);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_lock_statement (Vala.LockStatement stmt);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_member_access (Vala.MemberAccess expr);
		public override void visit_method (Vala.Method m);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_namespace (Vala.Namespace ns);
		public override void visit_null_literal (Vala.NullLiteral lit);
		public override void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public override void visit_pointer_indirection (Vala.PointerIndirection expr);
		public override void visit_postfix_expression (Vala.PostfixExpression expr);
		public override void visit_property (Vala.Property prop);
		public override void visit_real_literal (Vala.RealLiteral lit);
		public override void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_signal (Vala.Signal sig);
		public override void visit_sizeof_expression (Vala.SizeofExpression expr);
		public override void visit_slice_expression (Vala.SliceExpression expr);
		public override void visit_string_literal (Vala.StringLiteral lit);
		public override void visit_struct (Vala.Struct st);
		public override void visit_switch_label (Vala.SwitchLabel label);
		public override void visit_switch_section (Vala.SwitchSection section);
		public override void visit_switch_statement (Vala.SwitchStatement stmt);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
		public override void visit_type_check (Vala.TypeCheck expr);
		public override void visit_typeof_expression (Vala.TypeofExpression expr);
		public override void visit_unary_expression (Vala.UnaryExpression expr);
		public override void visit_while_statement (Vala.WhileStatement stmt);
		public override void visit_yield_statement (Vala.YieldStatement y);
		public void write_file (Vala.CodeContext context, string filename);
	}
	[CCode (ref_function = "vala_comment_ref", unref_function = "vala_comment_unref", cheader_filename = "vala.h")]
	public class Comment {
		public Comment (string comment, Vala.SourceReference _source_reference);
		public string content { get; set; }
		public Vala.SourceReference source_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ConditionalExpression : Vala.Expression {
		public ConditionalExpression (Vala.Expression cond, Vala.Expression true_expr, Vala.Expression false_expr, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public Vala.Expression condition { get; set; }
		public Vala.Expression false_expression { get; set; }
		public Vala.Expression true_expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Constant : Vala.Member, Vala.Lockable {
		public Constant (string name, Vala.DataType type_reference, Vala.Expression? initializer, Vala.SourceReference? source_reference, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public string get_cname ();
		public string get_default_cname ();
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Expression? initializer { get; set; }
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Constructor : Vala.Symbol {
		public Constructor (Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public MemberBinding binding { get; set; }
		public Vala.Block body { get; set; }
		public Vala.FormalParameter this_parameter { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ContinueStatement : Vala.CodeNode, Vala.Statement {
		public ContinueStatement (Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
	}
	[CCode (cheader_filename = "vala.h")]
	public class CreationMethod : Vala.Method {
		public CreationMethod (string? class_name, string? name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_default_cname ();
		public override string get_real_cname ();
		public bool chain_up { get; set; }
		public string class_name { get; set; }
		public string? custom_return_type_cname { get; set; }
		public int n_construction_params { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class DataType : Vala.CodeNode {
		public DataType ();
		public override void accept (Vala.CodeVisitor visitor);
		public void add_type_argument (Vala.DataType arg);
		public virtual bool compatible (Vala.DataType target_type);
		public abstract Vala.DataType copy ();
		public virtual bool equals (Vala.DataType type2);
		public virtual Vala.DataType get_actual_type (Vala.DataType? derived_instance_type, Vala.MemberAccess? method_access, Vala.CodeNode node_reference);
		public virtual string get_cdeclarator_suffix ();
		public virtual string? get_cname ();
		public string get_const_cname ();
		public virtual string? get_lower_case_cname (string? infix = null);
		public virtual Vala.Symbol? get_member (string member_name);
		public virtual Vala.List<Vala.FormalParameter>? get_parameters ();
		public virtual Vala.Symbol? get_pointer_member (string member_name);
		public virtual Vala.DataType? get_return_type ();
		public virtual Vala.List<Vala.Symbol> get_symbols ();
		public Vala.List<Vala.DataType> get_type_arguments ();
		public virtual string? get_type_id ();
		public bool has_type_arguments ();
		public virtual bool is_array ();
		public virtual bool is_disposable ();
		public virtual bool is_invokable ();
		public bool is_real_non_null_struct_type ();
		public virtual bool is_real_struct_type ();
		public virtual bool is_reference_type_or_type_parameter ();
		public void remove_all_type_arguments ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public virtual bool stricter (Vala.DataType type2);
		public virtual string to_qualified_string (Vala.Scope? scope = null);
		public override string to_string ();
		public Vala.TypeSymbol data_type { get; set; }
		public bool floating_reference { get; set; }
		public bool is_dynamic { get; set; }
		public bool nullable { get; set; }
		public Vala.TypeParameter type_parameter { get; set; }
		public bool value_owned { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DeclarationStatement : Vala.CodeNode, Vala.Statement {
		public DeclarationStatement (Vala.Symbol declaration, Vala.SourceReference? source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public Vala.Symbol declaration { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Delegate : Vala.TypeSymbol {
		public Delegate (string? name, Vala.DataType return_type, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_parameter (Vala.FormalParameter param);
		public void add_type_parameter (Vala.TypeParameter p);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_cname (bool const_type = false);
		public override string? get_get_value_function ();
		public override string? get_marshaller_type_name ();
		public Vala.List<Vala.FormalParameter> get_parameters ();
		public string get_prototype_string (string name);
		public override string? get_set_value_function ();
		public override string? get_type_id ();
		public override bool is_reference_type ();
		public bool matches_method (Vala.Method m);
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public bool array_null_terminated { get; set; }
		public double carray_length_parameter_position { get; set; }
		public double cdelegate_target_parameter_position { get; set; }
		public double cinstance_parameter_position { get; set; }
		public bool has_target { get; set; }
		public bool no_array_length { get; set; }
		public Vala.DataType return_type { get; set; }
		public Vala.DataType? sender_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DelegateType : Vala.DataType {
		public DelegateType (Vala.Delegate delegate_symbol);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override Vala.List<Vala.FormalParameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override Vala.List<Vala.Symbol> get_symbols ();
		public override string? get_type_id ();
		public override bool is_disposable ();
		public override bool is_invokable ();
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.Delegate delegate_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DeleteStatement : Vala.CodeNode, Vala.Statement {
		public DeleteStatement (Vala.Expression expression, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Expression expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Destructor : Vala.Symbol {
		public Destructor (Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public MemberBinding binding { get; set; }
		public Vala.Block body { get; set; }
		public Vala.FormalParameter this_parameter { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DoStatement : Vala.CodeNode, Vala.Statement {
		public DoStatement (Vala.Block body, Vala.Expression condition, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Block body { get; set; }
		public Vala.Expression condition { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DynamicMethod : Vala.Method {
		public DynamicMethod (Vala.DataType dynamic_type, string name, Vala.DataType return_type, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.List<string> get_cheader_filenames ();
		public override string get_default_cname ();
		public Vala.DataType dynamic_type { get; set; }
		public Vala.MethodCall invocation { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DynamicProperty : Vala.Property {
		public DynamicProperty (Vala.DataType dynamic_type, string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.List<string> get_cheader_filenames ();
		public Vala.DataType dynamic_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class DynamicSignal : Vala.Signal {
		public DynamicSignal (Vala.DataType dynamic_type, string name, Vala.DataType return_type, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.DataType dynamic_type { get; set; }
		public Vala.Expression handler { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ElementAccess : Vala.Expression {
		public ElementAccess (Vala.Expression container, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void append_index (Vala.Expression index);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public Vala.List<Vala.Expression> get_indices ();
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression container { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class EmptyStatement : Vala.CodeNode, Vala.Statement {
		public EmptyStatement (Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
	}
	[CCode (cheader_filename = "vala.h")]
	public class Enum : Vala.TypeSymbol {
		public Enum (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_constant (Vala.Constant c);
		public void add_method (Vala.Method m);
		public void add_value (Vala.EnumValue value);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_cname (bool const_type = false);
		public Vala.List<Vala.Constant> get_constants ();
		public override string get_cprefix ();
		public override string? get_default_value ();
		public override string? get_get_value_function ();
		public override string? get_lower_case_cname (string? infix);
		public override string get_lower_case_cprefix ();
		public override string? get_marshaller_type_name ();
		public Vala.List<Vala.Method> get_methods ();
		public override string? get_set_value_function ();
		public override string? get_type_id ();
		public override string? get_upper_case_cname (string? infix = null);
		public Vala.List<Vala.EnumValue> get_values ();
		public override bool is_reference_type ();
		public void process_attributes ();
		public void set_cname (string cname);
		public void set_cprefix (string? cprefix);
		public void set_type_id (string? type_id);
		public bool has_type_id { get; set; }
		public bool is_flags { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class EnumValue : Vala.Symbol {
		public EnumValue (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.CCodeConstant get_canonical_cconstant ();
		public string get_cname ();
		public string get_default_cname ();
		public void process_attributes ();
		public void set_cname (string cname);
		public EnumValue.with_value (string name, Vala.Expression value, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public Vala.Comment comment { get; set; }
		public Vala.Expression value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class EnumValueType : Vala.ValueType {
		public EnumValueType (Vala.Enum type_symbol);
		public override Vala.DataType copy ();
		public override Vala.Symbol? get_member (string member_name);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ErrorCode : Vala.TypeSymbol {
		public ErrorCode (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_cname (bool const_type = false);
		public override string? get_lower_case_cname (string? infix);
		public ErrorCode.with_value (string name, Vala.Expression value, Vala.SourceReference? source_reference = null);
		public Vala.Expression value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ErrorDomain : Vala.TypeSymbol {
		public ErrorDomain (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_code (Vala.ErrorCode ecode);
		public void add_method (Vala.Method m);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_cname (bool const_type = false);
		public Vala.List<Vala.ErrorCode> get_codes ();
		public override string get_cprefix ();
		public override string? get_get_value_function ();
		public override string? get_lower_case_cname (string? infix);
		public override string get_lower_case_cprefix ();
		public override string? get_marshaller_type_name ();
		public Vala.List<Vala.Method> get_methods ();
		public override string? get_set_value_function ();
		public override string? get_type_id ();
		public override string? get_upper_case_cname (string? infix);
		public override bool is_reference_type ();
		public void process_attributes ();
		public void set_cprefix (string cprefix);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ErrorType : Vala.ReferenceType {
		public ErrorType (Vala.ErrorDomain? error_domain, Vala.ErrorCode? error_code, Vala.SourceReference? source_reference = null);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override bool equals (Vala.DataType type2);
		public override string? get_cname ();
		public override string? get_lower_case_cname (string? infix = null);
		public override Vala.Symbol? get_member (string member_name);
		public override string? get_type_id ();
		public override bool is_reference_type_or_type_parameter ();
		public override string to_qualified_string (Vala.Scope? scope);
		public bool dynamic_error { get; set; }
		public Vala.ErrorCode? error_code { get; set; }
		public Vala.ErrorDomain? error_domain { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class Expression : Vala.CodeNode {
		public Vala.ArrayList<Vala.LocalVariable> temp_vars;
		public Expression ();
		public void append_array_size (Vala.CCodeExpression size);
		public Vala.List<Vala.CCodeExpression> get_array_sizes ();
		public void insert_statement (Vala.Block block, Vala.Statement stmt);
		public virtual bool is_constant ();
		public virtual bool is_non_null ();
		public abstract bool is_pure ();
		public Vala.CCodeExpression? delegate_target { get; set; }
		public Vala.CCodeExpression? delegate_target_destroy_notify { get; set; }
		public Vala.DataType? formal_target_type { get; set; }
		public Vala.DataType? formal_value_type { get; set; }
		public bool lvalue { get; set; }
		public Vala.Statement? parent_statement { get; }
		public Vala.Symbol symbol_reference { get; set; }
		public Vala.DataType target_type { get; set; }
		public Vala.DataType value_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ExpressionStatement : Vala.CodeNode, Vala.Statement {
		public ExpressionStatement (Vala.Expression expression, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public Vala.Property? assigned_property ();
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Field : Vala.Member, Vala.Lockable {
		public Field (string name, Vala.DataType field_type, Vala.Expression? initializer, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public string? get_array_length_cexpr ();
		public string? get_array_length_cname ();
		public string get_cname ();
		public string? get_ctype ();
		public string get_default_cname ();
		public void process_attributes ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_array_length_cexpr (string? array_length_cexpr);
		public void set_array_length_cname (string? array_length_cname);
		public void set_cname (string cname);
		public void set_ctype (string ctype);
		public string? array_length_type { get; set; }
		public bool array_null_terminated { get; set; }
		public MemberBinding binding { get; set; }
		public Vala.DataType field_type { get; set; }
		public bool has_array_length_cexpr { get; }
		public bool has_array_length_cname { get; }
		public Vala.Expression? initializer { get; set; }
		public bool is_volatile { get; set; }
		public bool no_array_length { get; set; }
		public bool no_delegate_target { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class FieldPrototype : Vala.DataType {
		public FieldPrototype (Vala.Field field_symbol);
		public override Vala.DataType copy ();
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.Field field_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class FloatingType : Vala.ValueType {
		public FloatingType (Vala.Struct type_symbol);
		public override Vala.DataType copy ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class FlowAnalyzer : Vala.CodeVisitor {
		public FlowAnalyzer ();
		public void analyze (Vala.CodeContext context);
		public override void visit_block (Vala.Block b);
		public override void visit_break_statement (Vala.BreakStatement stmt);
		public override void visit_class (Vala.Class cl);
		public override void visit_continue_statement (Vala.ContinueStatement stmt);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public override void visit_enum (Vala.Enum en);
		public override void visit_error_domain (Vala.ErrorDomain ed);
		public override void visit_expression (Vala.Expression expr);
		public override void visit_expression_statement (Vala.ExpressionStatement stmt);
		public override void visit_field (Vala.Field f);
		public override void visit_foreach_statement (Vala.ForeachStatement stmt);
		public override void visit_if_statement (Vala.IfStatement stmt);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_lambda_expression (Vala.LambdaExpression le);
		public override void visit_lock_statement (Vala.LockStatement stmt);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_method (Vala.Method m);
		public override void visit_property (Vala.Property prop);
		public override void visit_property_accessor (Vala.PropertyAccessor acc);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_source_file (Vala.SourceFile source_file);
		public override void visit_struct (Vala.Struct st);
		public override void visit_switch_statement (Vala.SwitchStatement stmt);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
		public override void visit_unlock_statement (Vala.UnlockStatement stmt);
		public override void visit_yield_statement (Vala.YieldStatement stmt);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ForStatement : Vala.CodeNode, Vala.Statement {
		public ForStatement (Vala.Expression? condition, Vala.Block body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_initializer (Vala.Expression init);
		public void add_iterator (Vala.Expression iter);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_initializer ();
		public Vala.List<Vala.Expression> get_iterator ();
		public Vala.Block body { get; set; }
		public Vala.Expression? condition { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ForeachStatement : Vala.Block {
		public ForeachStatement (Vala.DataType? type_reference, string variable_name, Vala.Expression collection, Vala.Block body, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Block body { get; set; }
		public Vala.Expression collection { get; set; }
		public Vala.LocalVariable collection_variable { get; set; }
		public Vala.LocalVariable element_variable { get; set; }
		public Vala.LocalVariable iterator_variable { get; set; }
		public Vala.DataType? type_reference { get; set; }
		public bool use_iterator { get; set; }
		public string variable_name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class FormalParameter : Vala.Symbol {
		public FormalParameter (string name, Vala.DataType parameter_type, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.FormalParameter copy ();
		public void process_attributes ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public FormalParameter.with_ellipsis (Vala.SourceReference? source_reference = null);
		public bool array_null_terminated { get; set; }
		public bool captured { get; set; }
		public double carray_length_parameter_position { get; set; }
		public double cdelegate_target_parameter_position { get; set; }
		public double cdestroy_notify_parameter_position { get; set; }
		public double cparameter_position { get; set; }
		public string? ctype { get; set; }
		public Vala.Expression? default_expression { get; set; }
		public Vala.ParameterDirection direction { get; set; }
		public bool ellipsis { get; set; }
		public bool no_array_length { get; set; }
		public Vala.DataType parameter_type { get; set; }
		public bool params_array { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class GenericType : Vala.DataType {
		public GenericType (Vala.TypeParameter type_parameter);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override string? get_type_id ();
		public override string to_qualified_string (Vala.Scope? scope = null);
	}
	[CCode (cheader_filename = "vala.h")]
	public class GirParser : Vala.CodeVisitor {
		public GirParser ();
		public string[]? get_package_names ();
		public void parse (Vala.CodeContext context);
		public void parse_file (Vala.SourceFile source_file);
		public void parse_metadata (string metadata_filename);
		public override void visit_source_file (Vala.SourceFile source_file);
	}
	[CCode (cheader_filename = "vala.h")]
	public class IfStatement : Vala.CodeNode, Vala.Statement {
		public IfStatement (Vala.Expression cond, Vala.Block true_stmt, Vala.Block? false_stmt, Vala.SourceReference? source);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression condition { get; set; }
		public Vala.Block? false_statement { get; set; }
		public Vala.Block true_statement { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class InitializerList : Vala.Expression {
		public InitializerList (Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void append (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_initializers ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public int size { get; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class IntegerLiteral : Vala.Literal {
		public IntegerLiteral (string i, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override string to_string ();
		public string type_suffix { get; set; }
		public string value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class IntegerType : Vala.ValueType {
		public IntegerType (Vala.Struct type_symbol, string? literal_value = null, string? literal_type_name = null);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class Interface : Vala.ObjectTypeSymbol {
		public Interface (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_class (Vala.Class cl);
		public void add_constant (Vala.Constant c);
		public void add_delegate (Vala.Delegate d);
		public void add_enum (Vala.Enum en);
		public void add_field (Vala.Field f);
		public void add_method (Vala.Method m);
		public void add_prerequisite (Vala.DataType type);
		public void add_property (Vala.Property prop);
		public void add_signal (Vala.Signal sig);
		public void add_struct (Vala.Struct st);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Class> get_classes ();
		public override string get_cname (bool const_type = false);
		public Vala.List<Vala.Constant> get_constants ();
		public override string get_cprefix ();
		public string get_default_lower_case_csuffix ();
		public Vala.List<Vala.Delegate> get_delegates ();
		public Vala.List<Vala.Enum> get_enums ();
		public Vala.List<Vala.Field> get_fields ();
		public override string? get_get_value_function ();
		public override string? get_lower_case_cname (string? infix);
		public override string get_lower_case_cprefix ();
		public string get_lower_case_csuffix ();
		public override string? get_marshaller_type_name ();
		public override Vala.List<Vala.Method> get_methods ();
		public override string? get_param_spec_function ();
		public Vala.List<Vala.DataType> get_prerequisites ();
		public override Vala.List<Vala.Property> get_properties ();
		public override string? get_ref_function ();
		public override string? get_ref_sink_function ();
		public override string? get_set_value_function ();
		public override Vala.List<Vala.Signal> get_signals ();
		public Vala.List<Vala.Struct> get_structs ();
		public override string? get_take_value_function ();
		public string get_type_cname ();
		public override string? get_type_id ();
		public override string? get_unref_function ();
		public override string? get_upper_case_cname (string? infix);
		public override bool is_reference_counting ();
		public override bool is_reference_type ();
		public override bool is_subtype_of (Vala.TypeSymbol t);
		public void prepend_prerequisite (Vala.DataType type);
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public void set_lower_case_csuffix (string csuffix);
		public void set_type_cname (string type_cname);
	}
	[CCode (cheader_filename = "vala.h")]
	public class InterfaceType : Vala.ReferenceType {
		public InterfaceType (Vala.Interface interface_symbol);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public Vala.Interface interface_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class InvalidType : Vala.DataType {
		public InvalidType ();
		public override Vala.DataType copy ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class LambdaExpression : Vala.Expression {
		public LambdaExpression (Vala.Expression expression_body, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_parameter (string param);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<string> get_parameters ();
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public LambdaExpression.with_statement_body (Vala.Block statement_body, Vala.SourceReference source_reference);
		public Vala.Expression expression_body { get; set; }
		public Vala.Method method { get; set; }
		public Vala.Block statement_body { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ListLiteral : Vala.Literal {
		public ListLiteral (Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_expression (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_expressions ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.DataType element_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class Literal : Vala.Expression {
		public Literal ();
		public override bool is_constant ();
		public override bool is_pure ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class LocalVariable : Vala.Symbol {
		public LocalVariable (Vala.DataType? variable_type, string name, Vala.Expression? initializer = null, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public bool captured { get; set; }
		public bool floating { get; set; }
		public Vala.Expression? initializer { get; set; }
		public bool is_result { get; set; }
		public bool no_init { get; set; }
		public Vala.DataType? variable_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class LockStatement : Vala.CodeNode, Vala.Statement {
		public LockStatement (Vala.Expression resource, Vala.Block? body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Block? body { get; set; }
		public Vala.Expression resource { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Loop : Vala.CodeNode, Vala.Statement {
		public Loop (Vala.Block body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Block body { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MapLiteral : Vala.Literal {
		public MapLiteral (Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_key (Vala.Expression expr);
		public void add_value (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_keys ();
		public Vala.List<Vala.Expression> get_values ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.DataType map_key_type { get; set; }
		public Vala.DataType map_value_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MarkupReader : GLib.Object {
		public MarkupReader (string filename);
		public string? get_attribute (string attr);
		public Vala.MarkupTokenType read_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
		public string filename { get; set; }
		public string name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class Member : Vala.Symbol {
		public Member (string? name, Vala.SourceReference? source_reference, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public void add_cheader_filename (string filename);
		public override Vala.List<string> get_cheader_filenames ();
		public Vala.Symbol? get_hidden_member ();
		public Vala.Comment comment { get; set; }
		public bool hides { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MemberAccess : Vala.Expression {
		public MemberAccess (Vala.Expression? inner, string member_name, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_type_argument (Vala.DataType arg);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public Vala.List<Vala.DataType> get_type_arguments ();
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_constant ();
		public override bool is_non_null ();
		public override bool is_pure ();
		public MemberAccess.pointer (Vala.Expression inner, string member_name, Vala.SourceReference? source_reference = null);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public MemberAccess.simple (string member_name, Vala.SourceReference? source_reference = null);
		public override string to_string ();
		public bool creation_member { get; set; }
		public Vala.Expression? inner { get; set; }
		public string member_name { get; set; }
		public bool pointer_member_access { get; set; }
		public bool prototype_access { get; set; }
		public bool qualified { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MemberInitializer : Vala.CodeNode {
		public MemberInitializer (string name, Vala.Expression initializer, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression initializer { get; set; }
		public string name { get; set; }
		public Vala.Symbol symbol_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Method : Vala.Member {
		public const string DEFAULT_SENTINEL;
		public Method (string? name, Vala.DataType return_type, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_captured_variable (Vala.LocalVariable local);
		public void add_parameter (Vala.FormalParameter param);
		public void add_postcondition (Vala.Expression postcondition);
		public void add_precondition (Vala.Expression precondition);
		public void add_type_parameter (Vala.TypeParameter p);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public void clear_parameters ();
		public bool compatible (Vala.Method base_method, out string? invalid_match);
		public Vala.List<Vala.FormalParameter> get_async_begin_parameters ();
		public Vala.List<Vala.FormalParameter> get_async_end_parameters ();
		public Vala.Method get_callback_method ();
		public void get_captured_variables (Vala.Collection<Vala.LocalVariable> variables);
		public string get_cname ();
		public virtual string get_default_cname ();
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public string get_finish_cname ();
		public string get_finish_real_cname ();
		public string get_finish_vfunc_name ();
		public Vala.List<Vala.FormalParameter> get_parameters ();
		public Vala.List<Vala.Expression> get_postconditions ();
		public Vala.List<Vala.Expression> get_preconditions ();
		public virtual string get_real_cname ();
		public int get_required_arguments ();
		public int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public string? array_length_type { get; set; }
		public bool array_null_terminated { get; set; }
		public Vala.Method base_interface_method { get; }
		public Vala.Method base_method { get; }
		public MemberBinding binding { get; set; }
		public Vala.Block body { get; set; }
		public double carray_length_parameter_position { get; set; }
		public double cdelegate_target_parameter_position { get; set; }
		public double cinstance_parameter_position { get; set; }
		public bool closure { get; set; }
		public bool coroutine { get; set; }
		public Vala.BasicBlock entry_block { get; set; }
		public bool entry_point { get; set; }
		public Vala.BasicBlock exit_block { get; set; }
		public double generic_type_parameter_position { get; set; }
		public bool has_construct_function { get; set; }
		public bool has_generic_type_parameter { get; set; }
		public bool has_new_function { get; set; }
		public bool is_abstract { get; set; }
		public bool is_async_callback { get; set; }
		public bool is_inline { get; set; }
		public bool is_virtual { get; set; }
		public bool no_array_length { get; set; }
		public bool overrides { get; set; }
		public bool printf_format { get; set; }
		public Vala.LocalVariable result_var { get; set; }
		public Vala.DataType return_type { get; set; }
		public bool returns_floating_reference { get; set; }
		public bool returns_modified_pointer { get; set; }
		public bool scanf_format { get; set; }
		public string sentinel { get; set; }
		public Vala.Signal signal_reference { get; set; }
		public bool simple_generics { get; set; }
		public Vala.FormalParameter this_parameter { get; set; }
		public string vfunc_name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MethodCall : Vala.Expression {
		public Vala.Expression _call;
		public MethodCall (Vala.Expression call, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_argument (Vala.Expression arg);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_argument_list ();
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression call { get; set; }
		public bool is_assert { get; set; }
		public bool is_yield_expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MethodType : Vala.DataType {
		public MethodType (Vala.Method method_symbol);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override Vala.Symbol? get_member (string member_name);
		public override Vala.List<Vala.FormalParameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_invokable ();
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.Method method_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class NamedArgument : Vala.Expression {
		public NamedArgument (string name, Vala.Expression inner, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression inner { get; set; }
		public string name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Namespace : Vala.Symbol {
		public Namespace (string? name, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_cheader_filename (string cheader_filename);
		public void add_class (Vala.Class cl);
		public void add_comment (Vala.Comment comment);
		public void add_constant (Vala.Constant constant);
		public void add_cprefix (string cprefix);
		public void add_delegate (Vala.Delegate d);
		public void add_enum (Vala.Enum en);
		public void add_error_domain (Vala.ErrorDomain edomain);
		public void add_field (Vala.Field f);
		public void add_interface (Vala.Interface iface);
		public void add_method (Vala.Method m);
		public void add_namespace (Vala.Namespace ns);
		public void add_struct (Vala.Struct st);
		public void add_using_directive (Vala.UsingDirective ns);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.List<string> get_cheader_filenames ();
		public Vala.List<Vala.Class> get_classes ();
		public Vala.List<Vala.Comment> get_comments ();
		public Vala.List<Vala.Constant> get_constants ();
		public override string get_cprefix ();
		public Vala.List<string> get_cprefixes ();
		public Vala.List<Vala.Delegate> get_delegates ();
		public Vala.List<Vala.Enum> get_enums ();
		public Vala.List<Vala.ErrorDomain> get_error_domains ();
		public Vala.List<Vala.Field> get_fields ();
		public Vala.List<Vala.Interface> get_interfaces ();
		public override string get_lower_case_cprefix ();
		public Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.Namespace> get_namespaces ();
		public Vala.List<Vala.Struct> get_structs ();
		public void process_attributes ();
		public void remove_struct (Vala.Struct st);
		public void set_cheader_filename (string cheader_filename);
		public void set_lower_case_cprefix (string cprefix);
	}
	[CCode (cheader_filename = "vala.h")]
	public class NullLiteral : Vala.Literal {
		public NullLiteral (Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override string to_string ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class NullType : Vala.ReferenceType {
		public NullType (Vala.SourceReference? source_reference);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override bool is_disposable ();
		public override string to_qualified_string (Vala.Scope? scope = null);
	}
	[CCode (cheader_filename = "vala.h")]
	public class ObjectCreationExpression : Vala.Expression {
		public ObjectCreationExpression (Vala.MemberAccess member_name, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_argument (Vala.Expression arg);
		public void add_member_initializer (Vala.MemberInitializer init);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_argument_list ();
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public Vala.List<Vala.MemberInitializer> get_object_initializer ();
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Method constructor { get; set; }
		public Vala.MemberAccess member_name { get; set; }
		public bool struct_creation { get; set; }
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ObjectType : Vala.ReferenceType {
		public ObjectType (Vala.ObjectTypeSymbol type_symbol);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override Vala.List<Vala.FormalParameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_invokable ();
		public override bool stricter (Vala.DataType target_type);
		public Vala.ObjectTypeSymbol type_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class ObjectTypeSymbol : Vala.TypeSymbol {
		public ObjectTypeSymbol (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public void add_hidden_method (Vala.Method m);
		public void add_type_parameter (Vala.TypeParameter p);
		public abstract Vala.List<Vala.Method> get_methods ();
		public abstract Vala.List<Vala.Property> get_properties ();
		public abstract Vala.List<Vala.Signal> get_signals ();
		public Vala.ObjectType get_this_type ();
		public override int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class Parser : Vala.CodeVisitor {
		public Parser ();
		public void parse (Vala.CodeContext context);
		public void parse_file (Vala.SourceFile source_file);
		public override void visit_source_file (Vala.SourceFile source_file);
	}
	[CCode (ref_function = "vala_phi_function_ref", unref_function = "vala_phi_function_unref", cheader_filename = "vala.h")]
	public class PhiFunction {
		public PhiFunction (Vala.LocalVariable variable, int num_of_ops);
		public Vala.List<Vala.LocalVariable?> operands { get; set; }
		public Vala.LocalVariable original_variable { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class PointerIndirection : Vala.Expression {
		public PointerIndirection (Vala.Expression inner, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression inner { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class PointerType : Vala.DataType {
		public PointerType (Vala.DataType base_type, Vala.SourceReference? source_reference = null);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override Vala.Symbol? get_pointer_member (string member_name);
		public override Vala.List<Vala.Symbol> get_symbols ();
		public override string? get_type_id ();
		public override bool is_disposable ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.DataType base_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class PostfixExpression : Vala.Expression {
		public PostfixExpression (Vala.Expression _inner, bool inc, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public bool increment { get; set; }
		public Vala.Expression inner { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Property : Vala.Member, Vala.Lockable {
		public Property (string name, Vala.DataType? property_type, Vala.PropertyAccessor? get_accessor, Vala.PropertyAccessor? set_accessor, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public bool equals (Vala.Property prop2);
		public Vala.CCodeConstant get_canonical_cconstant ();
		public string get_canonical_name ();
		public string get_upper_case_cname ();
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public bool array_null_terminated { get; set; }
		public Vala.Property base_interface_property { get; }
		public Vala.Property base_property { get; }
		public MemberBinding binding { get; set; }
		public string blurb { get; set; }
		public Vala.Expression default_expression { get; set; }
		public Vala.Field field { get; set; }
		public Vala.PropertyAccessor? get_accessor { get; set; }
		public bool interface_only { get; set; }
		public bool is_abstract { get; set; }
		public bool is_virtual { get; set; }
		public string nick { get; set; }
		public bool no_accessor_method { get; set; }
		public bool no_array_length { get; set; }
		public bool notify { get; set; }
		public bool overrides { get; set; }
		public Vala.DataType? property_type { get; set; }
		public Vala.PropertyAccessor? set_accessor { get; set; }
		public Vala.FormalParameter this_parameter { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class PropertyAccessor : Vala.Symbol {
		public PropertyAccessor (bool readable, bool writable, bool construction, Vala.DataType? value_type, Vala.Block? body, Vala.SourceReference? source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override Vala.List<string> get_cheader_filenames ();
		public string get_cname ();
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public bool automatic_body { get; set; }
		public Vala.Block? body { get; set; }
		public bool construction { get; set; }
		public Vala.BasicBlock entry_block { get; set; }
		public Vala.BasicBlock exit_block { get; set; }
		public Vala.Property prop { get; }
		public bool readable { get; set; }
		public Vala.LocalVariable? result_var { get; set; }
		public Vala.FormalParameter value_parameter { get; set; }
		public Vala.DataType? value_type { get; set; }
		public bool writable { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class RealLiteral : Vala.Literal {
		public RealLiteral (string r, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public string get_type_name ();
		public override bool is_pure ();
		public override string to_string ();
		public string value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ReferenceTransferExpression : Vala.Expression {
		public ReferenceTransferExpression (Vala.Expression inner, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression inner { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class ReferenceType : Vala.DataType {
		public ReferenceType ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class RegexLiteral : Vala.Literal {
		public RegexLiteral (string value, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_non_null ();
		public override bool is_pure ();
		public override string to_string ();
		public string value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Report : GLib.Object {
		public Report ();
		public virtual void err (Vala.SourceReference? source, string message);
		public static void error (Vala.SourceReference? source, string message);
		public int get_errors ();
		public int get_warnings ();
		public virtual void note (Vala.SourceReference? source, string message);
		public static void notice (Vala.SourceReference? source, string message);
		public void set_verbose_errors (bool verbose);
		public virtual void warn (Vala.SourceReference? source, string message);
		public static void warning (Vala.SourceReference? source, string message);
		public bool enable_warnings { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ReturnStatement : Vala.CodeNode, Vala.Statement {
		public ReturnStatement (Vala.Expression? return_expression = null, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression? return_expression { get; set; }
	}
	[CCode (ref_function = "vala_scanner_ref", unref_function = "vala_scanner_unref", cheader_filename = "vala.h")]
	public class Scanner {
		public Scanner (Vala.SourceFile source_file);
		public static Vala.TokenType get_identifier_or_keyword (char* begin, int len);
		public void parse_file_comments ();
		public Vala.Comment? pop_comment ();
		public Vala.TokenType read_regex_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
		public Vala.TokenType read_template_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
		public Vala.TokenType read_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
		public void seek (Vala.SourceLocation location);
		public Vala.SourceFile source_file { get; set; }
	}
	[CCode (ref_function = "vala_scope_ref", unref_function = "vala_scope_unref", cheader_filename = "vala.h")]
	public class Scope {
		public Scope (Vala.Symbol? owner = null);
		public void add (string? name, Vala.Symbol sym);
		public Vala.Map<string,Vala.Symbol> get_symbol_table ();
		public bool is_subscope_of (Vala.Scope? scope);
		public Vala.Symbol? lookup (string name);
		public void remove (string name);
		public Vala.Symbol owner { get; set; }
		public Vala.Scope parent_scope { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SemanticAnalyzer : Vala.CodeVisitor {
		public Vala.DataType bool_type;
		public Vala.DataType double_type;
		public Vala.DataType garray_type;
		public Vala.Class gerror_type;
		public Vala.DataType glist_type;
		public Vala.DataType gslist_type;
		public Vala.StructValueType gvalue_type;
		public Vala.DataType gvaluearray_type;
		public Vala.Block insert_block;
		public Vala.DataType int8_type;
		public Vala.DataType int_type;
		public Vala.DataType list_type;
		public Vala.DataType long_type;
		public int next_lambda_id;
		public Vala.Class object_type;
		public Vala.DataType regex_type;
		public Vala.List<Vala.CodeNode> replaced_nodes;
		public Vala.Symbol root_symbol;
		public Vala.DataType short_type;
		public Vala.DataType size_t_type;
		public Vala.DataType ssize_t_type;
		public Vala.DataType string_type;
		public Vala.DataType tuple_type;
		public Vala.DataType type_type;
		public Vala.DataType uchar_type;
		public Vala.DataType uint_type;
		public Vala.DataType ulong_type;
		public Vala.DataType unichar_type;
		public Vala.DataType ushort_type;
		public Vala.DataType void_type;
		public SemanticAnalyzer ();
		public void analyze (Vala.CodeContext context);
		public bool check_arguments (Vala.Expression expr, Vala.DataType mtype, Vala.List<Vala.FormalParameter> @params, Vala.List<Vala.Expression> args);
		public Vala.Method? find_current_method ();
		public Vala.Method? find_parent_method (Vala.Symbol sym);
		public Vala.Symbol? find_parent_method_or_property_accessor (Vala.Symbol sym);
		public static Vala.DataType? get_actual_type (Vala.DataType? derived_instance_type, Vala.MemberAccess? method_access, Vala.GenericType generic_type, Vala.CodeNode node_reference);
		public Vala.DataType? get_arithmetic_result_type (Vala.DataType left_type, Vala.DataType right_type);
		public static Vala.DataType get_data_type_for_symbol (Vala.TypeSymbol sym);
		public Vala.DataType? get_value_type_for_symbol (Vala.Symbol sym, bool lvalue);
		public bool is_in_constructor ();
		public bool is_in_instance_method ();
		public bool is_type_accessible (Vala.Symbol sym, Vala.DataType type);
		public static Vala.Symbol? symbol_lookup_inherited (Vala.Symbol sym, string name);
		public void visit_member_initializer (Vala.MemberInitializer init, Vala.DataType type);
		public override void visit_source_file (Vala.SourceFile file);
		public Vala.CodeContext context { get; set; }
		public Vala.Method? current_async_method { get; }
		public Vala.Class? current_class { get; }
		public Vala.Method? current_method { get; }
		public Vala.Symbol? current_method_or_property_accessor { get; }
		public Vala.PropertyAccessor? current_property_accessor { get; }
		public Vala.DataType? current_return_type { get; }
		public Vala.SourceFile current_source_file { get; set; }
		public Vala.Struct? current_struct { get; }
		public Vala.Symbol current_symbol { get; set; }
		public Vala.TypeSymbol? current_type_symbol { get; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SetLiteral : Vala.Literal {
		public SetLiteral (Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_expression (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_expressions ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.DataType element_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Signal : Vala.Member, Vala.Lockable {
		public Signal (string name, Vala.DataType return_type, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_parameter (Vala.FormalParameter param);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.CCodeConstant get_canonical_cconstant (string? detail = null);
		public string get_cname ();
		public Vala.Delegate get_delegate (Vala.DataType sender_type, Vala.CodeNode node_reference);
		public Vala.List<Vala.FormalParameter> get_parameters ();
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public Vala.Block body { get; set; }
		public Vala.Method default_handler { get; set; }
		public bool has_emitter { get; set; }
		public bool is_action { get; set; }
		public bool is_detailed { get; set; }
		public bool is_virtual { get; set; }
		public bool no_hooks { get; set; }
		public bool no_recurse { get; set; }
		public Vala.DataType return_type { get; set; }
		public string run_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SignalType : Vala.DataType {
		public SignalType (Vala.Signal signal_symbol);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override Vala.Symbol? get_member (string member_name);
		public override Vala.List<Vala.FormalParameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override Vala.List<Vala.Symbol> get_symbols ();
		public override bool is_invokable ();
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.Signal signal_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SizeofExpression : Vala.Expression {
		public SizeofExpression (Vala.DataType type, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SliceExpression : Vala.Expression {
		public SliceExpression (Vala.Expression container, Vala.Expression start, Vala.Expression stop, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression container { get; set; }
		public Vala.Expression start { get; set; }
		public Vala.Expression stop { get; set; }
	}
	[CCode (ref_function = "vala_source_file_ref", unref_function = "vala_source_file_unref", cheader_filename = "vala.h")]
	public class SourceFile {
		public SourceFile (Vala.CodeContext context, string filename, bool pkg = false, string? content = null);
		public void accept (Vala.CodeVisitor visitor);
		public void accept_children (Vala.CodeVisitor visitor);
		public void add_comment (Vala.Comment comment);
		public void add_node (Vala.CodeNode node);
		public void add_using_directive (Vala.UsingDirective ns);
		public bool check (Vala.SemanticAnalyzer analyzer);
		public string get_cinclude_filename ();
		public Vala.List<Vala.Comment> get_comments ();
		public string get_csource_filename ();
		public char* get_mapped_contents ();
		public size_t get_mapped_length ();
		public Vala.List<Vala.CodeNode> get_nodes ();
		public string get_relative_filename ();
		public string? get_source_line (int lineno);
		public void remove_node (Vala.CodeNode node);
		public string? content { get; set; }
		public Vala.CodeContext context { get; set; }
		public Vala.List<Vala.UsingDirective> current_using_directives { get; set; }
		public bool external_package { get; set; }
		public string filename { get; set; }
		public string gir_namespace { get; set; }
		public string gir_version { get; set; }
	}
	[CCode (ref_function = "vala_source_reference_ref", unref_function = "vala_source_reference_unref", cheader_filename = "vala.h")]
	public class SourceReference {
		public SourceReference (Vala.SourceFile _file, int _first_line = 0, int _first_column = 0, int _last_line = 0, int _last_column = 0);
		public string to_string ();
		public Vala.SourceFile file { get; set; }
		public int first_column { get; set; }
		public int first_line { get; set; }
		public int last_column { get; set; }
		public int last_line { get; set; }
		public Vala.List<Vala.UsingDirective> using_directives { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class StatementList : Vala.CodeNode, Vala.Statement {
		public StatementList (Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public void add (Vala.Statement stmt);
		public Vala.Statement @get (int index);
		public void insert (int index, Vala.Statement stmt);
		public void @set (int index, Vala.Statement stmt);
		public int length { get; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class StringLiteral : Vala.Literal {
		public StringLiteral (string value, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public string? eval ();
		public override bool is_non_null ();
		public override bool is_pure ();
		public override string to_string ();
		public string value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Struct : Vala.TypeSymbol {
		public Struct (string name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_constant (Vala.Constant c);
		public void add_field (Vala.Field f);
		public void add_method (Vala.Method m);
		public void add_property (Vala.Property prop);
		public void add_type_parameter (Vala.TypeParameter p);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string get_cname (bool const_type = false);
		public Vala.List<Vala.Constant> get_constants ();
		public override string? get_copy_function ();
		public string get_default_cname ();
		public string get_default_copy_function ();
		public string get_default_destroy_function ();
		public override string? get_default_value ();
		public override string? get_destroy_function ();
		public override string? get_dup_function ();
		public Vala.List<Vala.Field> get_fields ();
		public override string? get_free_function ();
		public override string? get_get_value_function ();
		public override string? get_lower_case_cname (string? infix);
		public override string get_lower_case_cprefix ();
		public override string? get_marshaller_type_name ();
		public Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.Property> get_properties ();
		public int get_rank ();
		public override string? get_set_value_function ();
		public override string? get_type_id ();
		public override int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
		public override string? get_upper_case_cname (string? infix);
		public bool is_boolean_type ();
		public bool is_disposable ();
		public bool is_floating_type ();
		public bool is_integer_type ();
		public bool is_simple_type ();
		public override bool is_subtype_of (Vala.TypeSymbol t);
		public void process_attributes ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_cname (string cname);
		public void set_copy_function (string name);
		public void set_destroy_function (string name);
		public void set_rank (int rank);
		public void set_simple_type (bool simple_type);
		public void set_type_id (string? name);
		public Vala.Struct? base_struct { get; }
		public Vala.DataType? base_type { get; set; }
		public Vala.Method default_construction_method { get; set; }
		public bool has_copy_function { get; set; }
		public bool has_destroy_function { get; set; }
		public bool has_type_id { get; set; }
		public bool is_immutable { get; set; }
		public bool signed { get; set; }
		public int width { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class StructValueType : Vala.ValueType {
		public StructValueType (Vala.Struct type_symbol);
		public override Vala.DataType copy ();
		public override Vala.List<Vala.FormalParameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_invokable ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class SwitchLabel : Vala.CodeNode {
		public SwitchLabel (Vala.Expression expr, Vala.SourceReference? source = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public SwitchLabel.with_default (Vala.SourceReference? source = null);
		public Vala.Expression expression { get; set; }
		public Vala.SwitchSection section { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SwitchSection : Vala.Block {
		public SwitchSection (Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_label (Vala.SwitchLabel label);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.SwitchLabel> get_labels ();
		public bool has_default_label ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class SwitchStatement : Vala.CodeNode, Vala.Statement {
		public SwitchStatement (Vala.Expression expression, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_section (Vala.SwitchSection section);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.SwitchSection> get_sections ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class Symbol : Vala.CodeNode {
		public Symbol (string? name, Vala.SourceReference? source_reference);
		public static string camel_case_to_lower_case (string camel_case);
		public virtual Vala.List<string> get_cheader_filenames ();
		public virtual string get_cprefix ();
		public string get_full_name ();
		public virtual string? get_lower_case_cname (string? infix = null);
		public virtual string get_lower_case_cprefix ();
		public Vala.Scope? get_top_accessible_scope (bool is_internal = false);
		public virtual bool is_class_member ();
		public virtual bool is_instance_member ();
		public bool is_internal_symbol ();
		public bool is_private_symbol ();
		public static string lower_case_to_camel_case (string lower_case);
		public Vala.SymbolAccessibility access { get; set; }
		public bool active { get; set; }
		public bool external { get; set; }
		public bool external_package { get; }
		public string? name { get; set; }
		public Vala.Scope owner { get; set; }
		public Vala.Symbol? parent_symbol { get; }
		public Vala.Scope scope { get; }
		public bool used { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SymbolResolver : Vala.CodeVisitor {
		public SymbolResolver ();
		public void resolve (Vala.CodeContext context);
		public override void visit_array_creation_expression (Vala.ArrayCreationExpression e);
		public override void visit_assignment (Vala.Assignment a);
		public override void visit_binary_expression (Vala.BinaryExpression expr);
		public override void visit_block (Vala.Block b);
		public override void visit_catch_clause (Vala.CatchClause clause);
		public override void visit_class (Vala.Class cl);
		public override void visit_constant (Vala.Constant c);
		public override void visit_constructor (Vala.Constructor c);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_data_type (Vala.DataType data_type);
		public override void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public override void visit_delegate (Vala.Delegate cb);
		public override void visit_destructor (Vala.Destructor d);
		public override void visit_do_statement (Vala.DoStatement stmt);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_enum (Vala.Enum en);
		public override void visit_error_domain (Vala.ErrorDomain ed);
		public override void visit_expression_statement (Vala.ExpressionStatement stmt);
		public override void visit_field (Vala.Field f);
		public override void visit_for_statement (Vala.ForStatement stmt);
		public override void visit_foreach_statement (Vala.ForeachStatement stmt);
		public override void visit_formal_parameter (Vala.FormalParameter p);
		public override void visit_if_statement (Vala.IfStatement stmt);
		public override void visit_initializer_list (Vala.InitializerList list);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_lambda_expression (Vala.LambdaExpression l);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_member_access (Vala.MemberAccess expr);
		public override void visit_method (Vala.Method m);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_namespace (Vala.Namespace ns);
		public override void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public override void visit_property (Vala.Property prop);
		public override void visit_property_accessor (Vala.PropertyAccessor acc);
		public override void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_signal (Vala.Signal sig);
		public override void visit_slice_expression (Vala.SliceExpression expr);
		public override void visit_struct (Vala.Struct st);
		public override void visit_switch_label (Vala.SwitchLabel label);
		public override void visit_switch_section (Vala.SwitchSection section);
		public override void visit_switch_statement (Vala.SwitchStatement stmt);
		public override void visit_template (Vala.Template tmpl);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
		public override void visit_unary_expression (Vala.UnaryExpression expr);
		public override void visit_using_directive (Vala.UsingDirective ns);
		public override void visit_while_statement (Vala.WhileStatement stmt);
		public override void visit_yield_statement (Vala.YieldStatement stmt);
	}
	[CCode (cheader_filename = "vala.h")]
	public class Template : Vala.Expression {
		public Template ();
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_expression (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_expressions ();
		public override bool is_pure ();
	}
	[CCode (cheader_filename = "vala.h")]
	public class ThrowStatement : Vala.CodeNode, Vala.Statement {
		public ThrowStatement (Vala.Expression error_expression, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression error_expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class TryStatement : Vala.CodeNode, Vala.Statement {
		public TryStatement (Vala.Block body, Vala.Block? finally_body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_catch_clause (Vala.CatchClause clause);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.CatchClause> get_catch_clauses ();
		public bool after_try_block_reachable { get; set; }
		public Vala.Block body { get; set; }
		public Vala.Block? finally_body { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Tuple : Vala.Expression {
		public Tuple (Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public void add_expression (Vala.Expression expr);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.List<Vala.Expression> get_expressions ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
	}
	[CCode (cheader_filename = "vala.h")]
	public class TypeCheck : Vala.Expression {
		public TypeCheck (Vala.Expression expr, Vala.DataType type, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Expression expression { get; set; }
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class TypeParameter : Vala.Symbol {
		public TypeParameter (string name, Vala.SourceReference source_reference);
		public override void accept (Vala.CodeVisitor visitor);
		public bool equals (Vala.TypeParameter param2);
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class TypeSymbol : Vala.Symbol {
		public TypeSymbol (string? name, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public void add_cheader_filename (string filename);
		public override Vala.List<string> get_cheader_filenames ();
		public abstract string get_cname (bool const_type = false);
		public virtual string? get_copy_function ();
		public virtual string? get_default_value ();
		public virtual string? get_destroy_function ();
		public virtual string? get_dup_function ();
		public virtual string? get_free_function ();
		public virtual string? get_get_value_function ();
		public virtual string? get_marshaller_type_name ();
		public virtual string? get_param_spec_function ();
		public virtual string? get_ref_function ();
		public virtual string? get_ref_sink_function ();
		public virtual string? get_set_value_function ();
		public virtual string? get_take_value_function ();
		public virtual string? get_type_id ();
		public virtual int get_type_parameter_index (string name);
		public virtual string? get_unref_function ();
		public virtual string? get_upper_case_cname (string? infix = null);
		public virtual bool is_reference_counting ();
		public virtual bool is_reference_type ();
		public virtual bool is_subtype_of (Vala.TypeSymbol t);
		public Vala.Comment? comment { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class TypeofExpression : Vala.Expression {
		public TypeofExpression (Vala.DataType type, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override bool is_pure ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.DataType type_reference { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class UnaryExpression : Vala.Expression {
		public UnaryExpression (Vala.UnaryOperator op, Vala.Expression _inner, Vala.SourceReference source);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void get_defined_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override void get_used_variables (Vala.Collection<Vala.LocalVariable> collection);
		public override bool is_constant ();
		public override bool is_pure ();
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public override string to_string ();
		public Vala.Expression inner { get; set; }
		public Vala.UnaryOperator operator { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class UnlockStatement : Vala.CodeNode, Vala.Statement {
		public UnlockStatement (Vala.Expression resource, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Expression resource { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class UnresolvedSymbol : Vala.Symbol {
		public UnresolvedSymbol (Vala.UnresolvedSymbol? inner, string name, Vala.SourceReference? source_reference = null);
		public Vala.UnresolvedSymbol copy ();
		public static Vala.UnresolvedSymbol? new_from_expression (Vala.Expression expr);
		public override string to_string ();
		public Vala.UnresolvedSymbol? inner { get; set; }
		public bool qualified { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class UnresolvedType : Vala.DataType {
		public UnresolvedType ();
		public override Vala.DataType copy ();
		public UnresolvedType.from_symbol (Vala.UnresolvedSymbol symbol, Vala.SourceReference? source = null);
		public static Vala.UnresolvedType? new_from_expression (Vala.Expression expr);
		public override string to_qualified_string (Vala.Scope? scope);
		public Vala.UnresolvedSymbol unresolved_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class UsingDirective : Vala.CodeNode {
		public UsingDirective (Vala.Symbol namespace_symbol, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public Vala.Symbol namespace_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class ValueType : Vala.DataType {
		public ValueType (Vala.TypeSymbol type_symbol);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override string? get_cname ();
		public override bool is_disposable ();
		public Vala.TypeSymbol type_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class VoidType : Vala.DataType {
		public VoidType (Vala.SourceReference? source_reference = null);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public override string? get_type_id ();
		public override bool stricter (Vala.DataType type2);
		public override string to_qualified_string (Vala.Scope? scope);
	}
	[CCode (cheader_filename = "vala.h")]
	public class WhileStatement : Vala.CodeNode, Vala.Statement {
		public WhileStatement (Vala.Expression condition, Vala.Block body, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public Vala.Block body { get; set; }
		public Vala.Expression condition { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class YieldStatement : Vala.CodeNode, Vala.Statement {
		public YieldStatement (Vala.Expression? yield_expression, Vala.SourceReference? source_reference = null);
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.SemanticAnalyzer analyzer);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression? yield_expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public interface Lockable {
		public abstract bool get_lock_used ();
		public abstract void set_lock_used (bool used);
	}
	[CCode (cheader_filename = "vala.h")]
	public interface Statement : Vala.CodeNode {
	}
	[CCode (type_id = "VALA_TYPE_SOURCE_LOCATION", cheader_filename = "vala.h")]
	public struct SourceLocation {
		public char* pos;
		public int line;
		public int column;
		public SourceLocation (char* _pos, int _line, int _column);
	}
	[CCode (cprefix = "VALA_ASSIGNMENT_OPERATOR_", cheader_filename = "vala.h")]
	public enum AssignmentOperator {
		NONE,
		SIMPLE,
		BITWISE_OR,
		BITWISE_AND,
		BITWISE_XOR,
		ADD,
		SUB,
		MUL,
		DIV,
		PERCENT,
		SHIFT_LEFT,
		SHIFT_RIGHT
	}
	[CCode (cprefix = "VALA_BINARY_OPERATOR_", cheader_filename = "vala.h")]
	public enum BinaryOperator {
		NONE,
		PLUS,
		MINUS,
		MUL,
		DIV,
		MOD,
		SHIFT_LEFT,
		SHIFT_RIGHT,
		LESS_THAN,
		GREATER_THAN,
		LESS_THAN_OR_EQUAL,
		GREATER_THAN_OR_EQUAL,
		EQUALITY,
		INEQUALITY,
		BITWISE_AND,
		BITWISE_OR,
		BITWISE_XOR,
		AND,
		OR,
		IN,
		COALESCE
	}
	[CCode (cprefix = "VALA_MARKUP_TOKEN_TYPE_", cheader_filename = "vala.h")]
	public enum MarkupTokenType {
		NONE,
		START_ELEMENT,
		END_ELEMENT,
		TEXT,
		EOF;
		public unowned string to_string ();
	}
	[CCode (cprefix = "VALA_PARAMETER_DIRECTION_", cheader_filename = "vala.h")]
	public enum ParameterDirection {
		IN,
		OUT,
		REF
	}
	[CCode (cprefix = "VALA_PROFILE_", cheader_filename = "vala.h")]
	public enum Profile {
		POSIX,
		GOBJECT,
		DOVA
	}
	[CCode (cprefix = "VALA_SYMBOL_ACCESSIBILITY_", cheader_filename = "vala.h")]
	public enum SymbolAccessibility {
		PRIVATE,
		INTERNAL,
		PROTECTED,
		PUBLIC
	}
	[CCode (cprefix = "VALA_TOKEN_TYPE_", cheader_filename = "vala.h")]
	public enum TokenType {
		NONE,
		ABSTRACT,
		AS,
		ASSIGN,
		ASSIGN_ADD,
		ASSIGN_BITWISE_AND,
		ASSIGN_BITWISE_OR,
		ASSIGN_BITWISE_XOR,
		ASSIGN_DIV,
		ASSIGN_MUL,
		ASSIGN_PERCENT,
		ASSIGN_SHIFT_LEFT,
		ASSIGN_SUB,
		ASYNC,
		BASE,
		BITWISE_AND,
		BITWISE_OR,
		BREAK,
		CARRET,
		CASE,
		CATCH,
		CHARACTER_LITERAL,
		CLASS,
		CLOSE_BRACE,
		CLOSE_BRACKET,
		CLOSE_PARENS,
		CLOSE_REGEX_LITERAL,
		CLOSE_TEMPLATE,
		COLON,
		COMMA,
		CONST,
		CONSTRUCT,
		CONTINUE,
		DEFAULT,
		DELEGATE,
		DELETE,
		DIV,
		DO,
		DOUBLE_COLON,
		DOT,
		DYNAMIC,
		ELLIPSIS,
		ELSE,
		ENUM,
		ENSURES,
		ERRORDOMAIN,
		EOF,
		EXTERN,
		FALSE,
		FINALLY,
		FOR,
		FOREACH,
		GET,
		HASH,
		IDENTIFIER,
		IF,
		IN,
		INLINE,
		INTEGER_LITERAL,
		INTERFACE,
		INTERNAL,
		INTERR,
		IS,
		LAMBDA,
		LOCK,
		MINUS,
		NAMESPACE,
		NEW,
		NULL,
		OUT,
		OP_AND,
		OP_COALESCING,
		OP_DEC,
		OP_EQ,
		OP_GE,
		OP_GT,
		OP_INC,
		OP_LE,
		OP_LT,
		OP_NE,
		OP_NEG,
		OP_OR,
		OP_PTR,
		OP_SHIFT_LEFT,
		OPEN_BRACE,
		OPEN_BRACKET,
		OPEN_PARENS,
		OPEN_REGEX_LITERAL,
		OPEN_TEMPLATE,
		OVERRIDE,
		OWNED,
		PARAMS,
		PERCENT,
		PLUS,
		PRIVATE,
		PROTECTED,
		PUBLIC,
		REAL_LITERAL,
		REF,
		REGEX_LITERAL,
		REQUIRES,
		RETURN,
		SEMICOLON,
		SET,
		SIGNAL,
		SIZEOF,
		STAR,
		STATIC,
		STRING_LITERAL,
		STRUCT,
		SWITCH,
		TEMPLATE_STRING_LITERAL,
		THIS,
		THROW,
		THROWS,
		TILDE,
		TRUE,
		TRY,
		TYPEOF,
		UNOWNED,
		USING,
		VAR,
		VERBATIM_STRING_LITERAL,
		VIRTUAL,
		VOID,
		VOLATILE,
		WEAK,
		WHILE,
		YIELD;
		public unowned string to_string ();
	}
	[CCode (cprefix = "VALA_UNARY_OPERATOR_", cheader_filename = "vala.h")]
	public enum UnaryOperator {
		NONE,
		PLUS,
		MINUS,
		LOGICAL_NEGATION,
		BITWISE_COMPLEMENT,
		INCREMENT,
		DECREMENT,
		REF,
		OUT
	}
	[CCode (cprefix = "VALA_PARSE_ERROR_", cheader_filename = "vala.h")]
	public errordomain ParseError {
		FAILED,
		SYNTAX,
	}
}
[CCode (cprefix = "MEMBER_BINDING_", cheader_filename = "vala.h")]
public enum MemberBinding {
	INSTANCE,
	CLASS,
	STATIC
}
/* codegen.vapi generated by valac, do not modify. */

[CCode (cprefix = "Vala", lower_case_cprefix = "vala_")]
namespace Vala {
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeArrayModule : Vala.CCodeMethodCallModule {
		public CCodeArrayModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override string? append_struct_array_free (Vala.Struct st);
		public override void append_vala_array_free ();
		public override void append_vala_array_length ();
		public override void append_vala_array_move ();
		public override void generate_parameter (Vala.FormalParameter param, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public override Vala.CCodeExpression get_array_length_cexpression (Vala.Expression array_expr, int dim = -1);
		public override string get_array_length_cname (string array_cname, int dim);
		public override Vala.CCodeExpression get_array_size_cexpression (Vala.Expression array_expr);
		public override string get_array_size_cname (string array_cname);
		public override Vala.CCodeExpression? get_dup_func_expression (Vala.DataType type, Vala.SourceReference? source_reference, bool is_chainup);
		public override Vala.CCodeExpression? get_ref_cexpression (Vala.DataType expression_type, Vala.CCodeExpression cexpr, Vala.Expression? expr, Vala.CodeNode node);
		public override Vala.CCodeExpression get_unref_expression (Vala.CCodeExpression cvar, Vala.DataType type, Vala.Expression? expr, bool is_macro_definition);
		public override void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		public override void visit_assignment (Vala.Assignment assignment);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_slice_expression (Vala.SliceExpression expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeAssignmentModule : Vala.CCodeMemberAccessModule {
		public CCodeAssignmentModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void visit_assignment (Vala.Assignment assignment);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeBaseModule : Vala.CCodeModule {
		public Vala.CCodeFragment base_finalize_fragment;
		public Vala.CCodeFragment base_init_fragment;
		public Vala.DataType bool_type;
		public Vala.DataType char_type;
		public Vala.CCodeFragment class_finalize_fragment;
		public Vala.CCodeFragment class_init_fragment;
		public Vala.CCodeStruct closure_struct;
		public bool current_method_inner_error;
		public Vala.Symbol current_symbol;
		public Vala.TryStatement current_try;
		public bool dbus_glib_h_needed;
		public bool dbus_glib_h_needed_in_header;
		public Vala.TypeSymbol dbus_object_type;
		public Vala.DataType double_type;
		public Vala.DataType float_type;
		public Vala.CCodeFunction function;
		public Vala.TypeSymbol garray_type;
		public Vala.TypeSymbol gbytearray_type;
		public Vala.DataType genumvalue_type;
		public Vala.ErrorType gerror_type;
		public Vala.Class glist_type;
		public Vala.TypeSymbol gobject_type;
		public Vala.TypeSymbol gptrarray_type;
		public Vala.DataType gquark_type;
		public Vala.Class gslist_type;
		public Vala.TypeSymbol gstringbuilder_type;
		public Vala.TypeSymbol gthreadpool_type;
		public Vala.TypeSymbol gtype_type;
		public Vala.Struct gvalue_type;
		public Vala.Class gvaluearray_type;
		public bool gvaluecollector_h_needed;
		public Vala.CCodeDeclarationSpace header_declarations;
		public bool in_constructor;
		public bool in_plugin;
		public bool in_static_or_class_context;
		public Vala.CCodeFragment instance_finalize_fragment;
		public Vala.CCodeFragment instance_init_fragment;
		public Vala.DataType int16_type;
		public Vala.DataType int32_type;
		public Vala.DataType int64_type;
		public Vala.DataType int8_type;
		public Vala.DataType int_type;
		public Vala.CCodeDeclarationSpace internal_header_declarations;
		public Vala.DataType long_type;
		public string module_init_param_name;
		public Vala.Struct mutex_type;
		public int next_coroutine_state;
		public int next_regex_id;
		public int next_temp_var_id;
		public Vala.CCodeStruct param_spec_struct;
		public Vala.CCodeFragment pre_statement_fragment;
		public Vala.Set<string> predefined_marshal_set;
		public Vala.CCodeEnum prop_enum;
		public Vala.DataType regex_type;
		public bool requires_array_free;
		public bool requires_array_length;
		public bool requires_array_move;
		public bool requires_strcmp0;
		public Vala.Symbol root_symbol;
		public Vala.DataType short_type;
		public Vala.CCodeDeclarationSpace source_declarations;
		public Vala.CCodeFragment source_signal_marshaller_declaration;
		public Vala.CCodeFragment source_signal_marshaller_definition;
		public Vala.CCodeFragment source_type_member_definition;
		public Vala.CCodeSwitchStatement state_switch_statement;
		public Vala.DataType string_type;
		public Vala.ArrayList<Vala.LocalVariable> temp_ref_vars;
		public Vala.ArrayList<Vala.LocalVariable> temp_vars;
		public Vala.TypeSymbol type_module_type;
		public Vala.DataType uchar_type;
		public Vala.DataType uint16_type;
		public Vala.DataType uint32_type;
		public Vala.DataType uint64_type;
		public Vala.DataType uint8_type;
		public Vala.DataType uint_type;
		public Vala.DataType ulong_type;
		public Vala.DataType? unichar_type;
		public Vala.Set<string> user_marshal_set;
		public Vala.DataType ushort_type;
		public Vala.Map<string,string> variable_name_map;
		public Vala.DataType void_type;
		public Vala.Set<string> wrappers;
		public CCodeBaseModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public bool add_generated_external_symbol (Vala.Symbol external_symbol);
		public void add_generic_type_arguments (Vala.Map<int,Vala.CCodeExpression> arg_map, Vala.List<Vala.DataType> type_args, Vala.CodeNode expr, bool is_chainup = false);
		public bool add_wrapper (string wrapper_name);
		public void append_error_free (Vala.Symbol sym, Vala.CCodeFragment cfrag, Vala.TryStatement current_try);
		public virtual void append_local_free (Vala.Symbol sym, Vala.CCodeFragment cfrag, bool stop_at_loop = false);
		public virtual string? append_struct_array_free (Vala.Struct st);
		public void append_temp_decl (Vala.CCodeFragment cfrag, Vala.List<Vala.LocalVariable> temp_vars);
		public virtual void append_vala_array_free ();
		public virtual void append_vala_array_length ();
		public virtual void append_vala_array_move ();
		public void check_type (Vala.DataType type);
		public Vala.CCodeExpression convert_from_generic_pointer (Vala.CCodeExpression cexpr, Vala.DataType actual_type);
		public Vala.CCodeExpression convert_to_generic_pointer (Vala.CCodeExpression cexpr, Vala.DataType actual_type);
		public void create_local_free (Vala.CodeNode stmt, bool stop_at_loop = false);
		public Vala.CCodeStatement create_postcondition_statement (Vala.Expression postcondition);
		public void create_temp_decl (Vala.Statement stmt, Vala.List<Vala.LocalVariable> temp_vars);
		public Vala.CCodeStatement? create_type_check_statement (Vala.CodeNode method_node, Vala.DataType ret_type, Vala.TypeSymbol t, bool non_null, string var_name);
		public Vala.CCodeExpression? default_value_for_type (Vala.DataType type, bool initializer_expression);
		public override void emit (Vala.CodeContext context);
		public virtual void generate_class_declaration (Vala.Class cl, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_class_struct_declaration (Vala.Class cl, Vala.CCodeDeclarationSpace decl_space);
		public void generate_constant_declaration (Vala.Constant c, Vala.CCodeDeclarationSpace decl_space, bool definition = false);
		public virtual void generate_cparameters (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.CCodeFunction func, Vala.CCodeFunctionDeclarator? vdeclarator = null, Vala.Map<int,Vala.CCodeExpression>? carg_map = null, Vala.CCodeFunctionCall? vcall = null, int direction = 3);
		public virtual void generate_delegate_declaration (Vala.Delegate d, Vala.CCodeDeclarationSpace decl_space);
		protected string generate_destroy_func_wrapper (Vala.DataType type);
		public virtual bool generate_enum_declaration (Vala.Enum en, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_error_domain_declaration (Vala.ErrorDomain edomain, Vala.CCodeDeclarationSpace decl_space);
		public void generate_field_declaration (Vala.Field f, Vala.CCodeDeclarationSpace decl_space);
		public Vala.CCodeFunctionCall generate_instance_cast (Vala.CCodeExpression expr, Vala.TypeSymbol type);
		public virtual void generate_interface_declaration (Vala.Interface iface, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_method_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space);
		public void generate_property_accessor_declaration (Vala.PropertyAccessor acc, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_struct_declaration (Vala.Struct st, Vala.CCodeDeclarationSpace decl_space);
		public void generate_type_declaration (Vala.DataType type, Vala.CCodeDeclarationSpace decl_space);
		public Vala.CCodeExpression get_address_of_expression (Vala.Expression e, Vala.CCodeExpression ce);
		public int get_block_id (Vala.Block b);
		public Vala.CCodeNode? get_ccodenode (Vala.CodeNode node);
		public static Vala.DataType get_data_type_for_symbol (Vala.TypeSymbol sym);
		public virtual Vala.CCodeExpression get_delegate_target_cexpression (Vala.Expression delegate_expr, out Vala.CCodeExpression delegate_target_destroy_notify);
		public virtual string get_delegate_target_cname (string delegate_cname);
		public virtual string get_delegate_target_destroy_notify_cname (string delegate_cname);
		public Vala.CCodeExpression? get_destroy_func_expression (Vala.DataType type, bool is_chainup = false);
		public virtual Vala.CCodeExpression? get_dup_func_expression (Vala.DataType type, Vala.SourceReference? source_reference, bool is_chainup = false);
		public virtual Vala.CCodeExpression get_implicit_cast_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.Expression? expr = null);
		public int get_param_pos (double param_pos, bool ellipsis = false);
		public Vala.CCodeExpression get_property_set_call (Vala.Property prop, Vala.MemberAccess ma, Vala.CCodeExpression cexpr, Vala.Expression? rhs = null);
		public virtual Vala.CCodeExpression? get_ref_cexpression (Vala.DataType expression_type, Vala.CCodeExpression cexpr, Vala.Expression? expr, Vala.CodeNode node);
		public Vala.CCodeExpression get_result_cexpression (string cname = "result");
		public string get_symbol_lock_name (string symname);
		public Vala.LocalVariable get_temp_variable (Vala.DataType type, bool value_owned = true, Vala.CodeNode? node_reference = null, bool init = true);
		public Vala.DataType? get_this_type ();
		public string? get_type_check_function (Vala.TypeSymbol type);
		public virtual Vala.CCodeExpression get_unref_expression (Vala.CCodeExpression cvar, Vala.DataType type, Vala.Expression? expr, bool is_macro_definition = false);
		public override Vala.CCodeIdentifier get_value_setter_function (Vala.DataType type_reference);
		public override Vala.CCodeIdentifier get_value_taker_function (Vala.DataType type_reference);
		public Vala.CCodeExpression get_variable_cexpression (string name);
		public string get_variable_cname (string name);
		public Vala.CCodeExpression? handle_struct_argument (Vala.FormalParameter param, Vala.Expression arg, Vala.CCodeExpression? cexpr);
		public bool is_address_of_possible (Vala.Expression e);
		public bool is_constant_ccode_expression (Vala.CCodeExpression cexpr);
		public virtual bool is_gobject_property (Vala.Property prop);
		public bool is_pure_ccode_expression (Vala.CCodeExpression cexpr);
		public unowned Vala.Block? next_closure_block (Vala.Symbol sym);
		public bool requires_copy (Vala.DataType type);
		public bool requires_destroy (Vala.DataType type);
		public Vala.CCodeExpression transform_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.Expression? expr = null);
		public Vala.CCodeExpression? try_cast_value_to_type (Vala.CCodeExpression ccodeexpr, Vala.DataType from, Vala.DataType to, Vala.Expression? expr = null);
		public virtual bool variable_accessible_in_finally (Vala.LocalVariable local);
		public override void visit_addressof_expression (Vala.AddressofExpression expr);
		public override void visit_base_access (Vala.BaseAccess expr);
		public override void visit_binary_expression (Vala.BinaryExpression expr);
		public override void visit_block (Vala.Block b);
		public override void visit_boolean_literal (Vala.BooleanLiteral expr);
		public override void visit_cast_expression (Vala.CastExpression expr);
		public override void visit_character_literal (Vala.CharacterLiteral expr);
		public override void visit_class (Vala.Class cl);
		public override void visit_constant (Vala.Constant c);
		public override void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public override void visit_delete_statement (Vala.DeleteStatement stmt);
		public override void visit_destructor (Vala.Destructor d);
		public override void visit_empty_statement (Vala.EmptyStatement stmt);
		public override void visit_end_full_expression (Vala.Expression expr);
		public override void visit_enum (Vala.Enum en);
		public override void visit_expression (Vala.Expression expr);
		public override void visit_expression_statement (Vala.ExpressionStatement stmt);
		public override void visit_field (Vala.Field f);
		public override void visit_formal_parameter (Vala.FormalParameter p);
		public override void visit_initializer_list (Vala.InitializerList list);
		public override void visit_integer_literal (Vala.IntegerLiteral expr);
		public override void visit_lambda_expression (Vala.LambdaExpression l);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_lock_statement (Vala.LockStatement stmt);
		public override void visit_member (Vala.Member m);
		public override void visit_named_argument (Vala.NamedArgument expr);
		public override void visit_null_literal (Vala.NullLiteral expr);
		public override void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public override void visit_pointer_indirection (Vala.PointerIndirection expr);
		public override void visit_postfix_expression (Vala.PostfixExpression expr);
		public override void visit_property (Vala.Property prop);
		public override void visit_property_accessor (Vala.PropertyAccessor acc);
		public override void visit_real_literal (Vala.RealLiteral expr);
		public override void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public override void visit_regex_literal (Vala.RegexLiteral expr);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_sizeof_expression (Vala.SizeofExpression expr);
		public override void visit_source_file (Vala.SourceFile source_file);
		public override void visit_string_literal (Vala.StringLiteral expr);
		public override void visit_type_check (Vala.TypeCheck expr);
		public override void visit_typeof_expression (Vala.TypeofExpression expr);
		public override void visit_unary_expression (Vala.UnaryExpression expr);
		public override void visit_unlock_statement (Vala.UnlockStatement stmt);
		public Vala.CodeContext context { get; set; }
		public Vala.Class? current_class { get; }
		public Vala.Block? current_closure_block { get; }
		public Vala.Method? current_method { get; }
		public Vala.PropertyAccessor? current_property_accessor { get; }
		public Vala.DataType? current_return_type { get; }
		public Vala.TypeSymbol? current_type_symbol { get; }
		public bool in_creation_method { get; }
	}
	[CCode (ref_function = "vala_ccode_compiler_ref", unref_function = "vala_ccode_compiler_unref", cheader_filename = "valacodegen.h")]
	public class CCodeCompiler {
		public CCodeCompiler ();
		public void compile (Vala.CodeContext context, string? cc_command, string[] cc_options);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeControlFlowModule : Vala.CCodeMethodModule {
		public CCodeControlFlowModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void visit_break_statement (Vala.BreakStatement stmt);
		public override void visit_continue_statement (Vala.ContinueStatement stmt);
		public override void visit_foreach_statement (Vala.ForeachStatement stmt);
		public override void visit_if_statement (Vala.IfStatement stmt);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_switch_label (Vala.SwitchLabel label);
		public override void visit_switch_section (Vala.SwitchSection section);
		public override void visit_switch_statement (Vala.SwitchStatement stmt);
	}
	[CCode (ref_function = "vala_ccode_declaration_space_ref", unref_function = "vala_ccode_declaration_space_unref", cheader_filename = "valacodegen.h")]
	public class CCodeDeclarationSpace {
		public CCodeDeclarationSpace ();
		public void add_constant_declaration (Vala.CCodeNode node);
		public bool add_declaration (string name);
		public void add_include (string filename, bool local = false);
		public bool add_symbol_declaration (Vala.Symbol sym, string name);
		public void add_type_declaration (Vala.CCodeNode node);
		public void add_type_definition (Vala.CCodeNode node);
		public void add_type_member_declaration (Vala.CCodeNode node);
		public bool is_header { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeDelegateModule : Vala.CCodeArrayModule {
		public CCodeDelegateModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void generate_delegate_declaration (Vala.Delegate d, Vala.CCodeDeclarationSpace decl_space);
		public override void generate_parameter (Vala.FormalParameter param, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public override Vala.CCodeExpression get_delegate_target_cexpression (Vala.Expression delegate_expr, out Vala.CCodeExpression delegate_target_destroy_notify);
		public override string get_delegate_target_cname (string delegate_cname);
		public override string get_delegate_target_destroy_notify_cname (string delegate_cname);
		public override Vala.CCodeExpression get_implicit_cast_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.Expression? expr = null);
		public override void visit_delegate (Vala.Delegate d);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeGenerator : Vala.CodeGenerator {
		public Vala.CCodeModule head;
		public CCodeGenerator ();
		public virtual Vala.CCodeModule add_modules (Vala.CCodeModule head);
		public override void emit (Vala.CodeContext context);
		public override void visit_addressof_expression (Vala.AddressofExpression expr);
		public override void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		public override void visit_assignment (Vala.Assignment a);
		public override void visit_base_access (Vala.BaseAccess expr);
		public override void visit_binary_expression (Vala.BinaryExpression expr);
		public override void visit_block (Vala.Block b);
		public override void visit_boolean_literal (Vala.BooleanLiteral expr);
		public override void visit_break_statement (Vala.BreakStatement stmt);
		public override void visit_cast_expression (Vala.CastExpression expr);
		public override void visit_catch_clause (Vala.CatchClause clause);
		public override void visit_character_literal (Vala.CharacterLiteral expr);
		public override void visit_class (Vala.Class cl);
		public override void visit_constant (Vala.Constant c);
		public override void visit_constructor (Vala.Constructor c);
		public override void visit_continue_statement (Vala.ContinueStatement stmt);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public override void visit_delegate (Vala.Delegate d);
		public override void visit_delete_statement (Vala.DeleteStatement stmt);
		public override void visit_destructor (Vala.Destructor d);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_empty_statement (Vala.EmptyStatement stmt);
		public override void visit_end_full_expression (Vala.Expression expr);
		public override void visit_enum (Vala.Enum en);
		public override void visit_error_domain (Vala.ErrorDomain edomain);
		public override void visit_expression (Vala.Expression expr);
		public override void visit_expression_statement (Vala.ExpressionStatement stmt);
		public override void visit_field (Vala.Field f);
		public override void visit_foreach_statement (Vala.ForeachStatement stmt);
		public override void visit_formal_parameter (Vala.FormalParameter p);
		public override void visit_if_statement (Vala.IfStatement stmt);
		public override void visit_initializer_list (Vala.InitializerList list);
		public override void visit_integer_literal (Vala.IntegerLiteral expr);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_lambda_expression (Vala.LambdaExpression l);
		public override void visit_list_literal (Vala.ListLiteral expr);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_lock_statement (Vala.LockStatement stmt);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_map_literal (Vala.MapLiteral expr);
		public override void visit_member (Vala.Member m);
		public override void visit_member_access (Vala.MemberAccess expr);
		public override void visit_method (Vala.Method m);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_named_argument (Vala.NamedArgument expr);
		public override void visit_null_literal (Vala.NullLiteral expr);
		public override void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public override void visit_pointer_indirection (Vala.PointerIndirection expr);
		public override void visit_postfix_expression (Vala.PostfixExpression expr);
		public override void visit_property (Vala.Property prop);
		public override void visit_property_accessor (Vala.PropertyAccessor acc);
		public override void visit_real_literal (Vala.RealLiteral expr);
		public override void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public override void visit_regex_literal (Vala.RegexLiteral expr);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_set_literal (Vala.SetLiteral expr);
		public override void visit_signal (Vala.Signal sig);
		public override void visit_sizeof_expression (Vala.SizeofExpression expr);
		public override void visit_slice_expression (Vala.SliceExpression expr);
		public override void visit_source_file (Vala.SourceFile source_file);
		public override void visit_string_literal (Vala.StringLiteral expr);
		public override void visit_struct (Vala.Struct st);
		public override void visit_switch_label (Vala.SwitchLabel label);
		public override void visit_switch_section (Vala.SwitchSection section);
		public override void visit_switch_statement (Vala.SwitchStatement stmt);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
		public override void visit_tuple (Vala.Tuple expr);
		public override void visit_type_check (Vala.TypeCheck expr);
		public override void visit_typeof_expression (Vala.TypeofExpression expr);
		public override void visit_unary_expression (Vala.UnaryExpression expr);
		public override void visit_unlock_statement (Vala.UnlockStatement stmt);
		public override void visit_yield_statement (Vala.YieldStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeMemberAccessModule : Vala.CCodeControlFlowModule {
		public CCodeMemberAccessModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void visit_member_access (Vala.MemberAccess expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeMethodCallModule : Vala.CCodeAssignmentModule {
		public CCodeMethodCallModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeMethodModule : Vala.CCodeStructModule {
		public CCodeMethodModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public Vala.CCodeStatement complete_async ();
		public override void generate_cparameters (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.CCodeFunction func, Vala.CCodeFunctionDeclarator? vdeclarator = null, Vala.Map<int,Vala.CCodeExpression>? carg_map = null, Vala.CCodeFunctionCall? vcall = null, int direction = 3);
		public override void generate_method_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_method_result_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.CCodeFunction cfunc, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public virtual void generate_parameter (Vala.FormalParameter param, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public void generate_vfunc (Vala.Method m, Vala.DataType return_type, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression> carg_map, string suffix = "", int direction = 3);
		public override string? get_custom_creturn_type (Vala.Method m);
		public override bool method_has_wrapper (Vala.Method method);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_method (Vala.Method m);
	}
	[CCode (ref_function = "vala_ccode_module_ref", unref_function = "vala_ccode_module_unref", cheader_filename = "valacodegen.h")]
	public abstract class CCodeModule {
		public CCodeModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public virtual void add_simple_check (Vala.CodeNode node, Vala.CCodeFragment cfrag, bool always_fails = false);
		public virtual void emit (Vala.CodeContext context);
		public virtual void generate_dynamic_method_wrapper (Vala.DynamicMethod method);
		public virtual void generate_marshaller (Vala.List<Vala.FormalParameter> @params, Vala.DataType return_type, bool dbus = false);
		public virtual Vala.CCodeExpression get_array_length_cexpression (Vala.Expression array_expr, int dim = -1);
		public virtual string get_array_length_cname (string array_cname, int dim);
		public virtual Vala.CCodeExpression get_array_size_cexpression (Vala.Expression array_expr);
		public virtual string get_array_size_cname (string array_cname);
		public virtual Vala.CCodeExpression get_construct_property_assignment (Vala.CCodeConstant canonical_cconstant, Vala.DataType property_type, Vala.CCodeExpression value);
		public virtual string? get_custom_creturn_type (Vala.Method m);
		public virtual string get_dynamic_property_getter_cname (Vala.DynamicProperty node);
		public virtual string get_dynamic_property_setter_cname (Vala.DynamicProperty node);
		public virtual string get_dynamic_signal_cname (Vala.DynamicSignal node);
		public virtual string get_dynamic_signal_connect_after_wrapper_name (Vala.DynamicSignal node);
		public virtual string get_dynamic_signal_connect_wrapper_name (Vala.DynamicSignal node);
		public virtual string get_dynamic_signal_disconnect_wrapper_name (Vala.DynamicSignal node);
		public virtual string get_marshaller_function (Vala.List<Vala.FormalParameter> @params, Vala.DataType return_type, string? prefix = null, bool dbus = false);
		public virtual Vala.CCodeFunctionCall get_param_spec (Vala.Property prop);
		public virtual Vala.CCodeFunctionCall get_signal_creation (Vala.Signal sig, Vala.TypeSymbol type);
		public virtual Vala.CCodeIdentifier get_value_setter_function (Vala.DataType type_reference);
		public virtual Vala.CCodeIdentifier get_value_taker_function (Vala.DataType type_reference);
		public virtual bool method_has_wrapper (Vala.Method method);
		public virtual Vala.CCodeFragment register_dbus_info (Vala.ObjectTypeSymbol bindable);
		public virtual void visit_addressof_expression (Vala.AddressofExpression expr);
		public virtual void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		public virtual void visit_assignment (Vala.Assignment a);
		public virtual void visit_base_access (Vala.BaseAccess expr);
		public virtual void visit_binary_expression (Vala.BinaryExpression expr);
		public virtual void visit_block (Vala.Block b);
		public virtual void visit_boolean_literal (Vala.BooleanLiteral expr);
		public virtual void visit_break_statement (Vala.BreakStatement stmt);
		public virtual void visit_cast_expression (Vala.CastExpression expr);
		public virtual void visit_catch_clause (Vala.CatchClause clause);
		public virtual void visit_character_literal (Vala.CharacterLiteral expr);
		public virtual void visit_class (Vala.Class cl);
		public virtual void visit_constant (Vala.Constant c);
		public virtual void visit_constructor (Vala.Constructor c);
		public virtual void visit_continue_statement (Vala.ContinueStatement stmt);
		public virtual void visit_creation_method (Vala.CreationMethod m);
		public virtual void visit_declaration_statement (Vala.DeclarationStatement stmt);
		public virtual void visit_delegate (Vala.Delegate d);
		public virtual void visit_delete_statement (Vala.DeleteStatement stmt);
		public virtual void visit_destructor (Vala.Destructor d);
		public virtual void visit_element_access (Vala.ElementAccess expr);
		public virtual void visit_empty_statement (Vala.EmptyStatement stmt);
		public virtual void visit_end_full_expression (Vala.Expression expr);
		public virtual void visit_enum (Vala.Enum en);
		public virtual void visit_error_domain (Vala.ErrorDomain edomain);
		public virtual void visit_expression (Vala.Expression expr);
		public virtual void visit_expression_statement (Vala.ExpressionStatement stmt);
		public virtual void visit_field (Vala.Field f);
		public virtual void visit_foreach_statement (Vala.ForeachStatement stmt);
		public virtual void visit_formal_parameter (Vala.FormalParameter p);
		public virtual void visit_if_statement (Vala.IfStatement stmt);
		public virtual void visit_initializer_list (Vala.InitializerList list);
		public virtual void visit_integer_literal (Vala.IntegerLiteral expr);
		public virtual void visit_interface (Vala.Interface iface);
		public virtual void visit_lambda_expression (Vala.LambdaExpression l);
		public virtual void visit_list_literal (Vala.ListLiteral expr);
		public virtual void visit_local_variable (Vala.LocalVariable local);
		public virtual void visit_lock_statement (Vala.LockStatement stmt);
		public virtual void visit_loop (Vala.Loop stmt);
		public virtual void visit_map_literal (Vala.MapLiteral expr);
		public virtual void visit_member (Vala.Member m);
		public virtual void visit_member_access (Vala.MemberAccess expr);
		public virtual void visit_method (Vala.Method m);
		public virtual void visit_method_call (Vala.MethodCall expr);
		public virtual void visit_named_argument (Vala.NamedArgument expr);
		public virtual void visit_null_literal (Vala.NullLiteral expr);
		public virtual void visit_object_creation_expression (Vala.ObjectCreationExpression expr);
		public virtual void visit_pointer_indirection (Vala.PointerIndirection expr);
		public virtual void visit_postfix_expression (Vala.PostfixExpression expr);
		public virtual void visit_property (Vala.Property prop);
		public virtual void visit_property_accessor (Vala.PropertyAccessor acc);
		public virtual void visit_real_literal (Vala.RealLiteral expr);
		public virtual void visit_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public virtual void visit_regex_literal (Vala.RegexLiteral re);
		public virtual void visit_return_statement (Vala.ReturnStatement stmt);
		public virtual void visit_set_literal (Vala.SetLiteral expr);
		public virtual void visit_signal (Vala.Signal sig);
		public virtual void visit_sizeof_expression (Vala.SizeofExpression expr);
		public virtual void visit_slice_expression (Vala.SliceExpression expr);
		public virtual void visit_source_file (Vala.SourceFile source_file);
		public virtual void visit_string_literal (Vala.StringLiteral expr);
		public virtual void visit_struct (Vala.Struct st);
		public virtual void visit_switch_label (Vala.SwitchLabel label);
		public virtual void visit_switch_section (Vala.SwitchSection section);
		public virtual void visit_switch_statement (Vala.SwitchStatement stmt);
		public virtual void visit_throw_statement (Vala.ThrowStatement stmt);
		public virtual void visit_try_statement (Vala.TryStatement stmt);
		public virtual void visit_tuple (Vala.Tuple expr);
		public virtual void visit_type_check (Vala.TypeCheck expr);
		public virtual void visit_typeof_expression (Vala.TypeofExpression expr);
		public virtual void visit_unary_expression (Vala.UnaryExpression expr);
		public virtual void visit_unlock_statement (Vala.UnlockStatement stmt);
		public virtual void visit_yield_statement (Vala.YieldStatement stmt);
		public Vala.CCodeGenerator codegen { get; set; }
		public Vala.CCodeModule head { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeStructModule : Vala.CCodeBaseModule {
		public CCodeStructModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void generate_struct_declaration (Vala.Struct st, Vala.CCodeDeclarationSpace decl_space);
		public override void visit_struct (Vala.Struct st);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CType : Vala.DataType {
		public CType (string ctype_name);
		public override Vala.DataType copy ();
		public override string? get_cname ();
		public string ctype_name { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class ClassRegisterFunction : Vala.TypeRegisterFunction {
		public ClassRegisterFunction (Vala.Class cl, Vala.CodeContext context);
		public override Vala.SymbolAccessibility get_accessibility ();
		public override string get_base_finalize_func_name ();
		public override string get_base_init_func_name ();
		public override string get_class_finalize_func_name ();
		public override string get_class_init_func_name ();
		public override string? get_gtype_value_table_collect_value_function_name ();
		public override string? get_gtype_value_table_copy_function_name ();
		public override string? get_gtype_value_table_free_function_name ();
		public override string? get_gtype_value_table_init_function_name ();
		public override string? get_gtype_value_table_lcopy_value_function_name ();
		public override string? get_gtype_value_table_peek_pointer_function_name ();
		public override string get_instance_init_func_name ();
		public override string get_instance_struct_size ();
		public override string get_parent_type_name ();
		public override Vala.TypeSymbol get_type_declaration ();
		public override string get_type_flags ();
		public override Vala.CCodeFragment get_type_interface_init_declaration ();
		public override Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
		public override string get_type_struct_name ();
		public Vala.Class class_reference { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DBusClientModule : Vala.DBusModule {
		public DBusClientModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override Vala.TypeRegisterFunction create_interface_register_function (Vala.Interface iface);
		public bool dbus_use_ptr_array (Vala.ArrayType array_type);
		public override void generate_dynamic_method_wrapper (Vala.DynamicMethod method);
		public override Vala.CCodeExpression get_dbus_g_type (Vala.DataType data_type);
		public Vala.CCodeConstant get_dbus_timeout (Vala.Symbol symbol);
		public override string get_dynamic_property_getter_cname (Vala.DynamicProperty prop);
		public override string get_dynamic_property_setter_cname (Vala.DynamicProperty prop);
		public override string get_dynamic_signal_connect_wrapper_name (Vala.DynamicSignal sig);
		public override string get_dynamic_signal_disconnect_wrapper_name (Vala.DynamicSignal sig);
		public override void visit_cast_expression (Vala.CastExpression expr);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DBusInterfaceRegisterFunction : Vala.InterfaceRegisterFunction {
		public DBusInterfaceRegisterFunction (Vala.Interface iface, Vala.CodeContext context);
		public override Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DBusModule : Vala.GAsyncModule {
		public DBusModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override bool generate_enum_declaration (Vala.Enum en, Vala.CCodeDeclarationSpace decl_space);
		public Vala.CCodeFunction generate_enum_from_string_function (Vala.Enum en);
		public Vala.CCodeFunction generate_enum_from_string_function_declaration (Vala.Enum en);
		public Vala.CCodeFunction generate_enum_to_string_function (Vala.Enum en);
		public Vala.CCodeFunction generate_enum_to_string_function_declaration (Vala.Enum en);
		public static string? get_dbus_name (Vala.TypeSymbol symbol);
		public static string get_dbus_name_for_member (Vala.Symbol symbol);
		public static string? get_type_signature (Vala.DataType datatype);
		public Vala.CCodeExpression? read_expression (Vala.CCodeFragment fragment, Vala.DataType type, Vala.CCodeExpression iter_expr, Vala.CCodeExpression? expr);
		public override void visit_enum (Vala.Enum en);
		public void write_expression (Vala.CCodeFragment fragment, Vala.DataType type, Vala.CCodeExpression iter_expr, Vala.CCodeExpression expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DBusServerModule : Vala.DBusClientModule {
		public DBusServerModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public static string dbus_result_name (Vala.Method m);
		public static bool is_dbus_visible (Vala.CodeNode node);
		public override Vala.CCodeFragment register_dbus_info (Vala.ObjectTypeSymbol sym);
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class EnumRegisterFunction : Vala.TypeRegisterFunction {
		public EnumRegisterFunction (Vala.Enum en, Vala.CodeContext context);
		public override Vala.SymbolAccessibility get_accessibility ();
		public override Vala.TypeSymbol get_type_declaration ();
		public override Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
		public Vala.Enum enum_reference { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GAsyncModule : Vala.GSignalModule {
		public GAsyncModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void generate_cparameters (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.CCodeFunction func, Vala.CCodeFunctionDeclarator? vdeclarator = null, Vala.Map<int,Vala.CCodeExpression>? carg_map = null, Vala.CCodeFunctionCall? vcall = null, int direction = 3);
		public override void generate_method_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space);
		public override void generate_virtual_method_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.CCodeStruct type_struct);
		public override Vala.CCodeStatement return_with_exception (Vala.CCodeExpression error_expr);
		public override void visit_method (Vala.Method m);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_yield_statement (Vala.YieldStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GErrorModule : Vala.CCodeDelegateModule {
		public GErrorModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void add_simple_check (Vala.CodeNode node, Vala.CCodeFragment cfrag, bool always_fails = false);
		public override void append_local_free (Vala.Symbol sym, Vala.CCodeFragment cfrag, bool stop_at_loop = false);
		public override void generate_error_domain_declaration (Vala.ErrorDomain edomain, Vala.CCodeDeclarationSpace decl_space);
		public virtual Vala.CCodeStatement return_with_exception (Vala.CCodeExpression error_expr);
		public override void visit_catch_clause (Vala.CatchClause clause);
		public override void visit_error_domain (Vala.ErrorDomain edomain);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GIRWriter : Vala.CodeVisitor {
		public GIRWriter ();
		public override void visit_class (Vala.Class cl);
		public override void visit_constant (Vala.Constant c);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_delegate (Vala.Delegate cb);
		public override void visit_enum (Vala.Enum en);
		public override void visit_enum_value (Vala.EnumValue ev);
		public override void visit_error_code (Vala.ErrorCode ecode);
		public override void visit_error_domain (Vala.ErrorDomain edomain);
		public override void visit_field (Vala.Field f);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method (Vala.Method m);
		public override void visit_namespace (Vala.Namespace ns);
		public override void visit_property (Vala.Property prop);
		public override void visit_signal (Vala.Signal sig);
		public override void visit_struct (Vala.Struct st);
		public void write_file (Vala.CodeContext context, string directory, string gir_namespace, string gir_version, string package);
		public void write_includes ();
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GObjectModule : Vala.GTypeModule {
		public GObjectModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void generate_class_init (Vala.Class cl, Vala.CCodeBlock init_block);
		public override Vala.CCodeExpression get_construct_property_assignment (Vala.CCodeConstant canonical_cconstant, Vala.DataType property_type, Vala.CCodeExpression value);
		public override string get_dynamic_property_getter_cname (Vala.DynamicProperty prop);
		public override string get_dynamic_property_setter_cname (Vala.DynamicProperty prop);
		public override string get_dynamic_signal_cname (Vala.DynamicSignal node);
		public override string get_dynamic_signal_connect_after_wrapper_name (Vala.DynamicSignal sig);
		public override string get_dynamic_signal_connect_wrapper_name (Vala.DynamicSignal sig);
		public override bool is_gobject_property (Vala.Property prop);
		public override void visit_class (Vala.Class cl);
		public override void visit_constructor (Vala.Constructor c);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_property (Vala.Property prop);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GSignalModule : Vala.GObjectModule {
		public GSignalModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public override void generate_marshaller (Vala.List<Vala.FormalParameter> @params, Vala.DataType return_type, bool dbus = false);
		public virtual Vala.CCodeExpression get_dbus_g_type (Vala.DataType data_type);
		public override string get_marshaller_function (Vala.List<Vala.FormalParameter> @params, Vala.DataType return_type, string? prefix = null, bool dbus = false);
		public override Vala.CCodeFunctionCall get_signal_creation (Vala.Signal sig, Vala.TypeSymbol type);
		public override void visit_assignment (Vala.Assignment assignment);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_member_access (Vala.MemberAccess expr);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_signal (Vala.Signal sig);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GTypeModule : Vala.GErrorModule {
		public GTypeModule (Vala.CCodeGenerator codegen, Vala.CCodeModule? next);
		public virtual Vala.TypeRegisterFunction create_interface_register_function (Vala.Interface iface);
		public override void generate_class_declaration (Vala.Class cl, Vala.CCodeDeclarationSpace decl_space);
		public virtual void generate_class_init (Vala.Class cl, Vala.CCodeBlock init_block);
		public override void generate_class_struct_declaration (Vala.Class cl, Vala.CCodeDeclarationSpace decl_space);
		public override void generate_interface_declaration (Vala.Interface iface, Vala.CCodeDeclarationSpace decl_space);
		public override void generate_parameter (Vala.FormalParameter param, Vala.CCodeDeclarationSpace decl_space, Vala.Map<int,Vala.CCodeFormalParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public virtual void generate_virtual_method_declaration (Vala.Method m, Vala.CCodeDeclarationSpace decl_space, Vala.CCodeStruct type_struct);
		public override Vala.CCodeFunctionCall get_param_spec (Vala.Property prop);
		public override void visit_class (Vala.Class cl);
		public override void visit_enum (Vala.Enum en);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_property (Vala.Property prop);
		public override void visit_struct (Vala.Struct st);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class InterfaceRegisterFunction : Vala.TypeRegisterFunction {
		public InterfaceRegisterFunction (Vala.Interface iface, Vala.CodeContext context);
		public override Vala.SymbolAccessibility get_accessibility ();
		public override string get_base_finalize_func_name ();
		public override string get_base_init_func_name ();
		public override string get_class_finalize_func_name ();
		public override string get_class_init_func_name ();
		public override string get_instance_init_func_name ();
		public override string get_instance_struct_size ();
		public override string get_parent_type_name ();
		public override Vala.TypeSymbol get_type_declaration ();
		public override Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
		public override string get_type_struct_name ();
		public Vala.Interface interface_reference { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class StructRegisterFunction : Vala.TypeRegisterFunction {
		public StructRegisterFunction (Vala.Struct st, Vala.CodeContext context);
		public override Vala.SymbolAccessibility get_accessibility ();
		public override Vala.TypeSymbol get_type_declaration ();
		public override Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
		public Vala.Struct struct_reference { get; set; }
	}
	[CCode (ref_function = "vala_typeregister_function_ref", unref_function = "vala_typeregister_function_unref", cheader_filename = "valacodegen.h")]
	public abstract class TypeRegisterFunction {
		public TypeRegisterFunction ();
		public abstract Vala.SymbolAccessibility get_accessibility ();
		public virtual string get_base_finalize_func_name ();
		public virtual string get_base_init_func_name ();
		public virtual string get_class_finalize_func_name ();
		public virtual string get_class_init_func_name ();
		public Vala.CCodeFragment get_declaration ();
		public Vala.CCodeFragment get_definition ();
		public virtual string? get_gtype_value_table_collect_value_function_name ();
		public virtual string? get_gtype_value_table_copy_function_name ();
		public virtual string? get_gtype_value_table_free_function_name ();
		public virtual string? get_gtype_value_table_init_function_name ();
		public virtual string? get_gtype_value_table_lcopy_value_function_name ();
		public virtual string? get_gtype_value_table_peek_pointer_function_name ();
		public virtual string get_instance_init_func_name ();
		public virtual string get_instance_struct_size ();
		public virtual string get_parent_type_name ();
		public Vala.CCodeFragment get_source_declaration ();
		public abstract Vala.TypeSymbol get_type_declaration ();
		public virtual string get_type_flags ();
		public virtual Vala.CCodeFragment get_type_interface_init_declaration ();
		public abstract Vala.CCodeFragment get_type_interface_init_statements (bool plugin);
		public virtual string get_type_struct_name ();
		public void init_from_type (bool plugin);
		public Vala.CodeContext context { get; set; }
	}
}
