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

namespace Vala {
	[CCode (cheader_filename = "valagee.h")]
	public class ArrayList<G> : Vala.List<G> {
		public ArrayList (GLib.EqualFunc equal_func = GLib.direct_equal);
		public override bool add (G item);
		public override void clear ();
		public override bool contains (G item);
		public override G @get (int index);
		public override GLib.Type get_element_type ();
		public override int index_of (G item);
		public override void insert (int index, G item);
		public override Vala.Iterator<G> iterator ();
		public override bool remove (G item);
		public override void remove_at (int index);
		public override void @set (int index, G item);
		public GLib.EqualFunc equal_func { set; }
		public override int size { get; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public abstract class Collection<G> : Vala.Iterable<G> {
		public Collection ();
		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 class HashMap<K,V> : 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 override void clear ();
		public override bool contains (K key);
		public override V @get (K key);
		public override Vala.Set<K> get_keys ();
		public override Vala.Collection<V> get_values ();
		public override Vala.MapIterator<K,V> map_iterator ();
		public override bool remove (K key);
		public override void @set (K key, V value);
		public GLib.EqualFunc key_equal_func { set; }
		public GLib.HashFunc key_hash_func { set; }
		public override int size { get; }
		public GLib.EqualFunc value_equal_func { set; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public class HashSet<G> : Vala.Set<G> {
		public HashSet (GLib.HashFunc hash_func = GLib.direct_hash, GLib.EqualFunc equal_func = GLib.direct_equal);
		public override bool add (G key);
		public override void clear ();
		public override bool contains (G key);
		public override GLib.Type get_element_type ();
		public override Vala.Iterator<G> iterator ();
		public override bool remove (G key);
		public GLib.EqualFunc equal_func { set; }
		public GLib.HashFunc hash_func { set; }
		public override int size { get; }
	}
	[CCode (cheader_filename = "valagee.h")]
	public abstract class Iterable<G> {
		public Iterable ();
		public abstract GLib.Type get_element_type ();
		public abstract Vala.Iterator<G> iterator ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public abstract class Iterator<G> {
		public Iterator ();
		public abstract G @get ();
		public abstract bool next ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public abstract class List<G> : Vala.Collection<G> {
		public List ();
		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 abstract class Map<K,V> {
		public Map ();
		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 Vala.MapIterator<K,V> map_iterator ();
		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 abstract class MapIterator<K,V> {
		public MapIterator ();
		public abstract K get_key ();
		public abstract V get_value ();
		public abstract bool next ();
	}
	[CCode (cheader_filename = "valagee.h")]
	public abstract class Set<G> : Vala.Collection<G> {
		public Set ();
	}
}
/* ccode.vapi generated by valac, do not modify. */

namespace Vala {
	[CCode (cheader_filename = "valaccode.h")]
	public class CCodeAssignment : Vala.CCodeExpression {
		public CCodeAssignment (Vala.CCodeExpression l, Vala.CCodeExpression r, Vala.CCodeAssignmentOperator op = 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 bool deprecated { get; set; }
		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 bool deprecated { get; set; }
		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 CCodeFile {
		public CCodeFile ();
		public void add_comment (Vala.CCodeComment comment);
		public void add_constant_declaration (Vala.CCodeNode node);
		public bool add_declaration (string name);
		public void add_function (Vala.CCodeFunction func);
		public void add_function_declaration (Vala.CCodeFunction func);
		public void add_include (string filename, bool local = false);
		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 void add_type_member_definition (Vala.CCodeNode node);
		public Vala.List<string> get_symbols ();
		public bool store (string filename, string? source_filename, bool write_version, bool line_directives, string? begin_decls = null, string? end_decls = null);
		public bool is_header { 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 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_assignment (Vala.CCodeExpression left, Vala.CCodeExpression right);
		public void add_break ();
		public void add_case (Vala.CCodeExpression expression);
		public void add_continue ();
		public void add_declaration (string type_name, Vala.CCodeDeclarator declarator, Vala.CCodeModifiers modifiers = 0);
		public void add_default ();
		public void add_else ();
		public void add_expression (Vala.CCodeExpression expression);
		public void add_goto (string target);
		public void add_label (string label);
		public void add_parameter (Vala.CCodeParameter param);
		public void add_return (Vala.CCodeExpression? expression = null);
		public void add_statement (Vala.CCodeNode stmt);
		public void close ();
		public Vala.CCodeFunction copy ();
		public void else_if (Vala.CCodeExpression condition);
		public void insert_parameter (int position, Vala.CCodeParameter param);
		public void open_block ();
		public void open_for (Vala.CCodeExpression? initializer, Vala.CCodeExpression condition, Vala.CCodeExpression? iterator);
		public void open_if (Vala.CCodeExpression condition);
		public void open_switch (Vala.CCodeExpression expression);
		public void open_while (Vala.CCodeExpression condition);
		public override void write (Vala.CCodeWriter writer);
		public string attributes { get; set; }
		public Vala.CCodeBlock block { get; set; }
		public Vala.CCodeLineDirective current_line { get; set; }
		public bool is_declaration { 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.CCodeParameter 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 (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 CCodeParameter : Vala.CCodeNode {
		public CCodeParameter (string n, string type);
		public CCodeParameter.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 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 bool deprecated { get; set; }
		public bool is_empty { get; }
		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 bool deprecated { 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 (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 (cheader_filename = "valaccode.h")]
	public enum CCodeAssignmentOperator {
		SIMPLE,
		BITWISE_OR,
		BITWISE_AND,
		BITWISE_XOR,
		ADD,
		SUB,
		MUL,
		DIV,
		PERCENT,
		SHIFT_LEFT,
		SHIFT_RIGHT
	}
	[CCode (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 (cheader_filename = "valaccode.h")]
	[Flags]
	public enum CCodeModifiers {
		NONE,
		STATIC,
		REGISTER,
		EXTERN,
		INLINE,
		VOLATILE,
		DEPRECATED,
		THREAD_LOCAL
	}
	[CCode (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. */

namespace Vala {
	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 (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_regex_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
			public Vala.Genie.TokenType read_template_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
			public Vala.Genie.TokenType read_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
			public void seek (Vala.SourceLocation location);
			public int indent_spaces { get; set; }
			public Vala.SourceFile source_file { get; private set; }
		}
		[CCode (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,
			CLOSE_REGEX_LITERAL,
			CLOSE_TEMPLATE,
			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,
			OPEN_REGEX_LITERAL,
			OPEN_TEMPLATE,
			OVERRIDE,
			OWNED,
			PARAMS,
			PASS,
			PERCENT,
			PLUS,
			PRINT,
			PRIVATE,
			PROP,
			PROTECTED,
			PUBLIC,
			RAISE,
			RAISES,
			REAL_LITERAL,
			READONLY,
			REF,
			REGEX_LITERAL,
			REQUIRES,
			RETURN,
			SEMICOLON,
			SET,
			SIZEOF,
			STAR,
			STATIC,
			STRING_LITERAL,
			STRUCT,
			SUPER,
			TEMPLATE_STRING_LITERAL,
			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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		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 Vala.Symbol? get_member (string member_name);
		public override bool is_accessible (Vala.Symbol sym);
		public override bool is_array ();
		public override bool is_disposable ();
		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 = 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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,string> args;
		public Attribute (string name, Vala.SourceReference? source_reference = null);
		public void add_argument (string key, string value);
		public bool get_bool (string name, bool default_value = false);
		public double get_double (string name, double default_value = 0);
		public int get_integer (string name, int default_value = 0);
		public string? get_string (string name);
		public bool has_argument (string name);
		public string name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class AttributeCache {
		public AttributeCache ();
	}
	[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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override bool is_pure ();
		public override string to_string ();
	}
	[CCode (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; private 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public string get_operator_string ();
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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_constant (Vala.Constant constant);
		public void add_local_variable (Vala.LocalVariable local);
		public void add_statement (Vala.Statement stmt);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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);
		public override void emit (Vala.CodeGenerator codegen);
	}
	[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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> collection);
		public override bool is_constant ();
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 override void add_class (Vala.Class cl);
		public override void add_constant (Vala.Constant c);
		public override void add_constructor (Vala.Constructor c);
		public override void add_delegate (Vala.Delegate d);
		public override void add_destructor (Vala.Destructor d);
		public override void add_enum (Vala.Enum en);
		public override void add_field (Vala.Field f);
		public override void add_method (Vala.Method m);
		public override void add_property (Vala.Property prop);
		public override void add_signal (Vala.Signal sig);
		public override void add_struct (Vala.Struct st);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.DataType> get_base_types ();
		public Vala.List<Vala.Class> get_classes ();
		public Vala.List<Vala.Constant> get_constants ();
		public Vala.List<Vala.Delegate> get_delegates ();
		public Vala.List<Vala.Enum> get_enums ();
		public Vala.List<Vala.Field> get_fields ();
		public override Vala.List<Vala.Method> get_methods ();
		public override Vala.List<Vala.Property> get_properties ();
		public override Vala.List<Vala.Signal> get_signals ();
		public Vala.List<Vala.Struct> get_structs ();
		public bool is_fundamental ();
		public override bool is_reference_type ();
		public override bool is_subtype_of (Vala.TypeSymbol t);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Class base_class { get; set; }
		public Vala.Constructor class_constructor { get; set; }
		public Vala.Destructor? class_destructor { get; set; }
		public Vala.Constructor constructor { get; set; }
		public Vala.Method default_construction_method { get; set; }
		public Vala.Destructor? destructor { get; set; }
		public bool has_class_private_fields { get; private 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 Vala.Constructor static_constructor { get; set; }
		public Vala.Destructor? static_destructor { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class ClassType : Vala.ReferenceType {
		public ClassType (Vala.Class class_symbol);
		public override Vala.DataType copy ();
		public Vala.Class class_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class CodeContext {
		public string[] gir_directories;
		public string[] metadata_directories;
		public string[] vapi_directories;
		public CodeContext ();
		public void accept (Vala.CodeVisitor visitor);
		public void add_c_source_file (string file);
		public void add_define (string define);
		public bool add_external_package (string pkg);
		public void add_package (string pkg);
		public bool add_packages_from_file (string filename);
		public void add_source_file (Vala.SourceFile file);
		public bool add_source_filename (string filename, bool is_source = false, bool cmdline = false);
		public void check ();
		public static Vala.CodeContext @get ();
		public Vala.List<string> get_c_source_files ();
		public string? get_gir_path (string gir);
		public string? get_metadata_path (string gir_filename);
		public Vala.List<string> get_packages ();
		public Vala.List<Vala.SourceFile> get_source_files ();
		public string? get_vapi_path (string pkg);
		public bool has_package (string pkg);
		public bool is_defined (string define);
		public static void pop ();
		public static void push (Vala.CodeContext context);
		public static string realpath (string name);
		public bool require_glib_version (int major, int minor);
		public void write_dependencies (string filename);
		public Vala.SemanticAnalyzer analyzer { get; private set; }
		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 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 Vala.FlowAnalyzer flow_analyzer { get; private 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 bool nostdpkg { 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.SymbolResolver resolver { get; private set; }
		public Vala.Namespace root { get; }
		public bool run_output { get; set; }
		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 abstract class CodeGenerator : Vala.CodeVisitor {
		public CodeGenerator ();
		public abstract Vala.LocalVariable create_local (Vala.DataType type);
		public virtual void emit (Vala.CodeContext context);
		public abstract Vala.TargetValue load_field (Vala.Field field, Vala.TargetValue? instance);
		public abstract Vala.TargetValue load_local (Vala.LocalVariable local);
		public abstract Vala.TargetValue load_parameter (Vala.Parameter param);
		public abstract void store_field (Vala.Field field, Vala.TargetValue? instance, Vala.TargetValue value);
		public abstract void store_local (Vala.LocalVariable local, Vala.TargetValue value, bool initializer);
		public abstract void store_parameter (Vala.Parameter param, Vala.TargetValue value);
	}
	[CCode (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.CodeContext context);
		public virtual void emit (Vala.CodeGenerator codegen);
		public Vala.Attribute? get_attribute (string name);
		public bool get_attribute_bool (string attribute, string argument, bool default_value = false);
		public Vala.AttributeCache? get_attribute_cache (int index);
		public static int get_attribute_cache_index ();
		public double get_attribute_double (string attribute, string argument, double default_value = 0);
		public int get_attribute_integer (string attribute, string argument, int default_value = 0);
		public string? get_attribute_string (string attribute, string argument);
		public virtual void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public Vala.List<Vala.DataType> get_error_types ();
		public static string get_temp_name ();
		public virtual void get_used_variables (Vala.Collection<Vala.Variable> collection);
		public bool has_attribute_argument (string attribute, string argument);
		public void remove_attribute_argument (string attribute, string argument);
		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 void set_attribute (string name, bool value, Vala.SourceReference? source_reference = null);
		public void set_attribute_bool (string attribute, string argument, bool value, Vala.SourceReference? source_reference = null);
		public void set_attribute_cache (int index, Vala.AttributeCache cache);
		public void set_attribute_double (string attribute, string argument, double value, Vala.SourceReference? source_reference = null);
		public void set_attribute_integer (string attribute, string argument, int value, Vala.SourceReference? source_reference = null);
		public void set_attribute_string (string attribute, string argument, string? value, Vala.SourceReference? source_reference = null);
		public virtual string to_string ();
		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 (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.Parameter 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_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 (Vala.CodeWriterType type = CodeWriterType.EXTERNAL);
		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_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_using_directive (Vala.UsingDirective ns);
		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 (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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		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.Symbol, Vala.Lockable {
		public Constant (string name, Vala.DataType? type_reference, Vala.Expression? value, 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.CodeContext context);
		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 type_reference { get; set; }
		public Vala.Expression? value { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Constructor : Vala.Subroutine {
		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.CodeContext context);
		public Vala.MemberBinding binding { get; set; }
		public override bool has_result { get; }
		public Vala.Parameter 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);
		public override void emit (Vala.CodeGenerator codegen);
	}
	[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.CodeContext context);
		public bool chain_up { get; set; }
		public string class_name { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class DataType : Vala.CodeNode {
		public DataType ();
		public override void accept (Vala.CodeVisitor visitor);
		public override void accept_children (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 Vala.Symbol? get_member (string member_name);
		public virtual Vala.List<Vala.Parameter>? get_parameters ();
		public virtual Vala.Symbol? get_pointer_member (string member_name);
		public virtual Vala.DataType? get_return_type ();
		public Vala.List<Vala.DataType> get_type_arguments ();
		public bool has_type_arguments ();
		public virtual bool is_accessible (Vala.Symbol sym);
		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 bool is_weak ();
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.Parameter param);
		public void add_type_parameter (Vala.TypeParameter p);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.Parameter> get_parameters ();
		public string get_prototype_string (string name);
		public override int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
		public override bool is_reference_type ();
		public bool matches_method (Vala.Method m, Vala.DataType dt);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public bool has_target { 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.CodeContext context);
		public override Vala.DataType copy ();
		public override Vala.List<Vala.Parameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_accessible (Vala.Symbol sym);
		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; }
		public bool is_called_once { 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public Vala.Expression expression { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Destructor : Vala.Subroutine {
		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.CodeContext context);
		public Vala.MemberBinding binding { get; set; }
		public override bool has_result { get; }
		public Vala.Parameter 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.CodeContext context);
		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.CodeContext context);
		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.CodeContext context);
		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.CodeContext context);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public Vala.List<Vala.Expression> get_indices ();
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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);
		public override void emit (Vala.CodeGenerator codegen);
	}
	[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 override void add_constant (Vala.Constant c);
		public override void add_method (Vala.Method m);
		public void add_value (Vala.EnumValue value);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.Constant> get_constants ();
		public Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.EnumValue> get_values ();
		public override bool is_reference_type ();
		public void remove_all_values ();
		public bool is_flags { get; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class EnumValue : Vala.Constant {
		public EnumValue (string name, Vala.Expression? value, 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.CodeContext context);
	}
	[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);
		public Vala.Method get_to_string_method ();
	}
	[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.CodeContext context);
		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 override void add_method (Vala.Method m);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.ErrorCode> get_codes ();
		public Vala.List<Vala.Method> get_methods ();
		public override bool is_reference_type ();
	}
	[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.CodeContext context);
		public override bool compatible (Vala.DataType target_type);
		public override Vala.DataType copy ();
		public override bool equals (Vala.DataType type2);
		public override Vala.Symbol? get_member (string member_name);
		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 Expression ();
		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.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.TargetValue? target_value { 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 override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.Variable, Vala.Lockable {
		public Field (string name, Vala.DataType variable_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.CodeContext context);
		public string? get_ctype ();
		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_ctype (string ctype);
		public Vala.MemberBinding binding { get; set; }
		public bool is_volatile { 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_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_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_signal (Vala.Signal sig);
		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.CodeContext context);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> 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; private set; }
		public string variable_name { 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 Vala.Symbol? get_member (string member_name);
		public override string to_qualified_string (Vala.Scope? scope = null);
	}
	[CCode (cheader_filename = "vala.h")]
	public class GirComment : Vala.Comment {
		public GirComment (string? comment, Vala.SourceReference _source_reference);
		public Vala.Comment? get_content_for_parameter (string name);
		public Vala.MapIterator<string,Vala.Comment> parameter_iterator ();
		public Vala.Comment? return_content { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class GirParser : Vala.CodeVisitor {
		public GirParser ();
		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 (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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public Vala.List<Vala.Expression> get_initializers ();
		public override bool is_constant ();
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 override void add_class (Vala.Class cl);
		public override void add_constant (Vala.Constant c);
		public override void add_delegate (Vala.Delegate d);
		public override void add_enum (Vala.Enum en);
		public override void add_field (Vala.Field f);
		public override void add_method (Vala.Method m);
		public void add_prerequisite (Vala.DataType type);
		public override void add_property (Vala.Property prop);
		public override void add_signal (Vala.Signal sig);
		public override void add_struct (Vala.Struct st);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.Class> get_classes ();
		public Vala.List<Vala.Constant> get_constants ();
		public Vala.List<Vala.Delegate> get_delegates ();
		public Vala.List<Vala.Enum> get_enums ();
		public Vala.List<Vala.Field> get_fields ();
		public override Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.DataType> get_prerequisites ();
		public override Vala.List<Vala.Property> get_properties ();
		public override Vala.List<Vala.Signal> get_signals ();
		public Vala.List<Vala.Struct> get_structs ();
		public override bool is_reference_type ();
		public override bool is_subtype_of (Vala.TypeSymbol t);
		public void prepend_prerequisite (Vala.DataType type);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
	}
	[CCode (cheader_filename = "vala.h")]
	public class InterfaceType : Vala.ReferenceType {
		public InterfaceType (Vala.Interface interface_symbol);
		public override Vala.DataType copy ();
		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 (Vala.Parameter param);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public Vala.List<Vala.Parameter> get_parameters ();
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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; private 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.Variable {
		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.CodeContext context);
		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 bool is_result { get; set; }
		public bool no_init { 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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; private set; }
		public Vala.DataType map_value_type { get; private set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class MarkupReader : GLib.Object {
		public MarkupReader (string filename);
		public string? get_attribute (string attr);
		public Vala.Map<string,string> get_attributes ();
		public Vala.MarkupTokenType read_token (out Vala.SourceLocation token_begin, out Vala.SourceLocation token_end);
		public string content { get; private set; }
		public string filename { get; private set; }
		public string name { get; private 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.CodeContext context);
		public void check_lvalue_access ();
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public Vala.List<Vala.DataType> get_type_arguments ();
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.Subroutine {
		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.Parameter 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.CodeContext context);
		public void clear_parameters ();
		public bool compatible (Vala.Method base_method, out string? invalid_match);
		public Vala.List<Vala.Parameter> get_async_begin_parameters ();
		public Vala.List<Vala.Parameter> get_async_end_parameters ();
		public Vala.Method get_callback_method ();
		public void get_captured_variables (Vala.Collection<Vala.LocalVariable> variables);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public Vala.List<Vala.Parameter> get_parameters ();
		public Vala.List<Vala.Expression> get_postconditions ();
		public Vala.List<Vala.Expression> get_preconditions ();
		public int get_required_arguments ();
		public int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Method base_interface_method { get; }
		public Vala.Method base_method { get; }
		public Vala.MemberBinding binding { get; set; }
		public bool closure { get; set; }
		public bool coroutine { get; set; }
		public bool entry_point { get; private set; }
		public bool has_construct_function { get; set; }
		public override bool has_result { get; }
		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 overrides { get; set; }
		public bool printf_format { 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 Vala.Signal signal_reference { get; set; }
		public Vala.Parameter this_parameter { get; set; }
		public int yield_count { 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public Vala.List<Vala.Expression> get_argument_list ();
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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 Vala.Expression call { get; set; }
		public bool is_assert { get; private 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 Vala.Symbol? get_member (string member_name);
		public override Vala.List<Vala.Parameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_invokable ();
		public string to_prototype_string (bool with_type_parameters = false);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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 override void add_class (Vala.Class cl);
		public void add_comment (Vala.Comment comment);
		public override void add_constant (Vala.Constant constant);
		public override void add_delegate (Vala.Delegate d);
		public override void add_enum (Vala.Enum en);
		public override void add_error_domain (Vala.ErrorDomain edomain);
		public override void add_field (Vala.Field f);
		public override void add_interface (Vala.Interface iface);
		public override void add_method (Vala.Method m);
		public override void add_namespace (Vala.Namespace ns);
		public override void add_struct (Vala.Struct st);
		public void add_using_directive (Vala.UsingDirective ns);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.Class> get_classes ();
		public Vala.List<Vala.Comment> get_comments ();
		public Vala.List<Vala.Constant> get_constants ();
		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 Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.Namespace> get_namespaces ();
		public Vala.List<Vala.Struct> get_structs ();
		public void remove_struct (Vala.Struct st);
	}
	[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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public Vala.List<Vala.Expression> get_argument_list ();
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public Vala.List<Vala.MemberInitializer> get_object_initializer ();
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.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.CodeContext context);
		public override Vala.DataType copy ();
		public override Vala.List<Vala.Parameter>? 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 Parameter : Vala.Variable {
		public Parameter (string name, Vala.DataType? variable_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.CodeContext context);
		public Vala.Parameter copy ();
		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 Parameter.with_ellipsis (Vala.SourceReference? source_reference = null);
		public bool captured { get; set; }
		public Vala.ParameterDirection direction { get; set; }
		public bool ellipsis { get; set; }
		public bool params_array { get; set; }
	}
	[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 (cheader_filename = "vala.h")]
	public class PhiFunction {
		public PhiFunction (Vala.Variable variable, int num_of_ops);
		public Vala.List<Vala.Variable?> operands { get; private set; }
		public Vala.Variable original_variable { get; private 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		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 Vala.Symbol? get_member (string member_name);
		public override Vala.Symbol? get_pointer_member (string member_name);
		public override bool is_accessible (Vala.Symbol sym);
		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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> collection);
		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.Symbol, 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.CodeContext context);
		public bool compatible (Vala.Property base_property, out string? invalid_match);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Property base_interface_property { get; }
		public Vala.Property base_property { get; }
		public Vala.MemberBinding binding { get; set; }
		public Vala.Field field { get; set; }
		public Vala.PropertyAccessor? get_accessor { get; set; }
		public Vala.Expression initializer { get; set; }
		public bool interface_only { get; set; }
		public bool is_abstract { get; set; }
		public bool is_virtual { get; set; }
		public bool overrides { get; set; }
		public Vala.DataType? property_type { get; set; }
		public Vala.PropertyAccessor? set_accessor { get; set; }
		public Vala.Parameter this_parameter { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class PropertyAccessor : Vala.Subroutine {
		public PropertyAccessor (bool readable, bool writable, bool construction, Vala.DataType? value_type, Vala.Block? body, 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.CodeContext context);
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public bool automatic_body { get; set; }
		public bool construction { get; set; }
		public override bool has_result { get; }
		public Vala.Property prop { get; }
		public bool readable { get; set; }
		public Vala.Parameter 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 {
		protected int errors;
		protected int warnings;
		public Report ();
		public virtual void depr (Vala.SourceReference? source, string message);
		public static void deprecated (Vala.SourceReference? source, string message);
		public virtual void err (Vala.SourceReference? source, string message);
		public static void error (Vala.SourceReference? source, string message);
		public static void experimental (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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> collection);
		public override void replace_expression (Vala.Expression old_node, Vala.Expression new_node);
		public Vala.Expression? return_expression { get; set; }
	}
	[CCode (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; private set; }
	}
	[CCode (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 error_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.ObjectType gvariant_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.Parameter> @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_destructor ();
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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; private set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Signal : Vala.Symbol, 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.Parameter param);
		public override bool check (Vala.CodeContext context);
		public Vala.Delegate get_delegate (Vala.DataType sender_type, Vala.CodeNode node_reference);
		public Vala.List<Vala.Parameter> get_parameters ();
		public override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public Vala.Block body { get; set; }
		public Vala.Method default_handler { get; private set; }
		public bool is_virtual { get; set; }
		public Vala.DataType return_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.Parameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_accessible (Vala.Symbol sym);
		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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override bool is_constant ();
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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; private set; }
		public Vala.Expression stop { get; private set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class SourceFile {
		public SourceFile (Vala.CodeContext context, Vala.SourceFileType type, string filename, string? content = null, bool cmdline = false);
		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.CodeContext context);
		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 Vala.SourceFileType file_type { get; set; }
		public string filename { get; set; }
		public bool from_commandline { get; set; }
		public string gir_namespace { get; set; }
		public string gir_version { get; set; }
		public string? relative_filename { set; }
		public bool used { get; set; }
	}
	[CCode (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; private 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 override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public string? eval ();
		public override bool is_non_null ();
		public override bool is_pure ();
		public override string to_string ();
		public bool translate { get; set; }
		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 override void add_constant (Vala.Constant c);
		public override void add_field (Vala.Field f);
		public override void add_method (Vala.Method m);
		public override void add_property (Vala.Property prop);
		public void add_type_parameter (Vala.TypeParameter p);
		public override bool check (Vala.CodeContext context);
		public Vala.List<Vala.Constant> get_constants ();
		public Vala.List<Vala.Field> get_fields ();
		public Vala.List<Vala.Method> get_methods ();
		public Vala.List<Vala.Property> get_properties ();
		public int get_rank ();
		public override int get_type_parameter_index (string name);
		public Vala.List<Vala.TypeParameter> get_type_parameters ();
		public bool is_boolean_type ();
		public bool is_decimal_floating_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 override void replace_type (Vala.DataType old_type, Vala.DataType new_type);
		public void set_rank (int rank);
		public void set_simple_type (bool simple_type);
		public Vala.Struct? base_struct { get; }
		public Vala.DataType? base_type { get; set; }
		public Vala.Method default_construction_method { 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.Parameter>? get_parameters ();
		public override Vala.DataType? get_return_type ();
		public override bool is_invokable ();
	}
	[CCode (cheader_filename = "vala.h")]
	public abstract class Subroutine : Vala.Symbol {
		protected Subroutine (string? name, Vala.SourceReference? source_reference, Vala.Comment? comment = null);
		public Vala.Block body { get; set; }
		public Vala.BasicBlock entry_block { get; set; }
		public Vala.BasicBlock exit_block { get; set; }
		public abstract bool has_result { get; }
		public Vala.LocalVariable result_var { get; set; }
		public Vala.BasicBlock return_block { get; set; }
	}
	[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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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, Vala.Comment? comment = null);
		public virtual void add_class (Vala.Class cl);
		public virtual void add_constant (Vala.Constant constant);
		public virtual void add_constructor (Vala.Constructor c);
		public virtual void add_delegate (Vala.Delegate d);
		public virtual void add_destructor (Vala.Destructor d);
		public virtual void add_enum (Vala.Enum en);
		public virtual void add_error_domain (Vala.ErrorDomain edomain);
		public virtual void add_field (Vala.Field f);
		public virtual void add_interface (Vala.Interface iface);
		public virtual void add_method (Vala.Method m);
		public virtual void add_namespace (Vala.Namespace ns);
		public virtual void add_property (Vala.Property prop);
		public virtual void add_signal (Vala.Signal sig);
		public virtual void add_struct (Vala.Struct st);
		public static string camel_case_to_lower_case (string camel_case);
		public bool check_deprecated (Vala.SourceReference? source_ref = null);
		public bool check_experimental (Vala.SourceReference? source_ref = null);
		public string get_full_name ();
		public Vala.Symbol? get_hidden_member ();
		public Vala.Scope? get_top_accessible_scope (bool is_internal = false);
		public bool is_accessible (Vala.Symbol sym);
		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 Vala.Comment? comment { get; set; }
		public bool deprecated { get; set; }
		public string? deprecated_since { owned get; set; }
		public bool experimental { get; set; }
		public bool external { get; set; }
		public bool external_package { get; }
		public bool from_commandline { get; }
		public bool hides { get; set; }
		public string? name { get; set; }
		public Vala.Scope owner { get; set; }
		public Vala.Symbol? parent_symbol { get; }
		public string? replacement { owned get; set; }
		public Vala.Scope scope { get; }
		public Vala.SourceFileType source_type { 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_addressof_expression (Vala.AddressofExpression expr);
		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_cast_expression (Vala.CastExpression expr);
		public override void visit_catch_clause (Vala.CatchClause clause);
		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_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.Parameter 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_list_literal (Vala.ListLiteral lit);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_loop (Vala.Loop stmt);
		public override void visit_map_literal (Vala.MapLiteral lit);
		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_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_reference_transfer_expression (Vala.ReferenceTransferExpression expr);
		public override void visit_return_statement (Vala.ReturnStatement stmt);
		public override void visit_set_literal (Vala.SetLiteral lit);
		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_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_tuple (Vala.Tuple tuple);
		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_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 abstract class TargetValue {
		protected TargetValue (Vala.DataType? value_type);
		public Vala.DataType? actual_value_type { get; set; }
		public Vala.DataType? value_type { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Template : Vala.Expression {
		public Template (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.CodeContext context);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 virtual int get_type_parameter_index (string name);
		public virtual bool is_reference_type ();
		public virtual bool is_subtype_of (Vala.TypeSymbol t);
	}
	[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 void accept_children (Vala.CodeVisitor visitor);
		public override bool check (Vala.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		public override void get_defined_variables (Vala.Collection<Vala.Variable> collection);
		public override void get_used_variables (Vala.Collection<Vala.Variable> 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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 override bool is_disposable ();
		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.CodeContext context);
		public override bool is_disposable ();
		public Vala.TypeSymbol type_symbol { get; set; }
	}
	[CCode (cheader_filename = "vala.h")]
	public class Variable : Vala.Symbol {
		public Variable (Vala.DataType? variable_type, string? name, Vala.Expression? initializer = null, Vala.SourceReference? source_reference = null, Vala.Comment? comment = null);
		public Vala.Expression? initializer { get; set; }
		public bool single_assignment { get; set; }
		public Vala.DataType? variable_type { 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 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.CodeContext context);
		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.CodeContext context);
		public override void emit (Vala.CodeGenerator codegen);
		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 (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 (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 (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 (cheader_filename = "vala.h")]
	public enum CodeWriterType {
		EXTERNAL,
		INTERNAL,
		FAST,
		DUMP
	}
	[CCode (cheader_filename = "vala.h")]
	public enum MarkupTokenType {
		NONE,
		START_ELEMENT,
		END_ELEMENT,
		TEXT,
		EOF;
		public unowned string to_string ();
	}
	[CCode (cheader_filename = "vala.h")]
	public enum MemberBinding {
		INSTANCE,
		CLASS,
		STATIC
	}
	[CCode (cheader_filename = "vala.h")]
	public enum ParameterDirection {
		IN,
		OUT,
		REF
	}
	[CCode (cheader_filename = "vala.h")]
	public enum Profile {
		POSIX,
		GOBJECT,
		DOVA
	}
	[CCode (cheader_filename = "vala.h")]
	public enum SourceFileType {
		NONE,
		SOURCE,
		PACKAGE,
		FAST
	}
	[CCode (cheader_filename = "vala.h")]
	public enum SymbolAccessibility {
		PRIVATE,
		INTERNAL,
		PROTECTED,
		PUBLIC
	}
	[CCode (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,
		SEALED,
		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 (cheader_filename = "vala.h")]
	public enum UnaryOperator {
		NONE,
		PLUS,
		MINUS,
		LOGICAL_NEGATION,
		BITWISE_COMPLEMENT,
		INCREMENT,
		DECREMENT,
		REF,
		OUT
	}
	[CCode (cheader_filename = "vala.h")]
	public errordomain ParseError {
		FAILED,
		SYNTAX
	}
}
/* codegen.vapi generated by valac, do not modify. */

namespace Vala {
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeArrayModule : Vala.CCodeMethodCallModule {
		public CCodeArrayModule ();
		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 Vala.TargetValue? copy_value (Vala.TargetValue value, Vala.CodeNode node);
		public override Vala.CCodeExpression destroy_value (Vala.TargetValue value, bool is_macro_definition = false);
		public override Vala.CCodeParameter generate_parameter (Vala.Parameter param, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> 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_length_cvalue (Vala.TargetValue value, int dim = -1);
		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 string get_parameter_array_length_cname (Vala.Parameter param, int dim);
		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 ();
		public override void store_field (Vala.Field field, Vala.TargetValue? instance, Vala.TargetValue value);
		public override void store_local (Vala.LocalVariable local, Vala.TargetValue value, bool initializer);
		public override void store_parameter (Vala.Parameter param, Vala.TargetValue value);
		public override void store_value (Vala.TargetValue lvalue, Vala.TargetValue value);
		public override void visit_assignment (Vala.Assignment assignment);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeAttribute : Vala.AttributeCache {
		public CCodeAttribute (Vala.CodeNode node);
		public bool array_length { get; private set; }
		public string? array_length_expr { get; private set; }
		public string? array_length_name { get; private set; }
		public string? array_length_type { get; private set; }
		public bool array_null_terminated { get; private set; }
		public string const_name { get; }
		public string copy_function { get; }
		public string default_value { get; }
		public bool delegate_target { get; private set; }
		public string delegate_target_name { get; }
		public string destroy_function { get; }
		public string finish_name { get; }
		public string finish_real_name { get; }
		public string finish_vfunc_name { get; }
		public string free_function { get; }
		public bool free_function_address_of { get; }
		public string get_value_function { get; }
		public string header_filenames { get; }
		public string lower_case_prefix { get; }
		public string lower_case_suffix { get; }
		public string marshaller_type_name { get; }
		public string name { get; }
		public string param_spec_function { get; }
		public double pos { get; }
		public string prefix { get; }
		public string real_name { get; }
		public string ref_function { get; }
		public bool ref_function_void { get; }
		public string ref_sink_function { get; }
		public bool ref_sink_function_void { get; }
		public string sentinel { get; private set; }
		public string set_value_function { get; }
		public string take_value_function { get; }
		public string type_id { get; }
		public string type_name { get; }
		public string unref_function { get; }
		public string vfunc_name { get; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class CCodeBaseModule : Vala.CodeGenerator {
		public class EmitContext {
			public Vala.CCodeFunction ccode;
			public Vala.ArrayList<Vala.CCodeFunction> ccode_stack;
			public Vala.Map<Vala.LocalVariable,int> closure_variable_clash_map;
			public Vala.Map<string,int> closure_variable_count_map;
			public Vala.CatchClause current_catch;
			public bool current_method_inner_error;
			public bool current_method_return;
			public Vala.Symbol? current_symbol;
			public Vala.TryStatement current_try;
			public int next_temp_var_id;
			public Vala.ArrayList<Vala.Symbol> symbol_stack;
			public Vala.ArrayList<Vala.TargetValue> temp_ref_values;
			public Vala.Map<string,string> variable_name_map;
			public EmitContext (Vala.Symbol? symbol = null);
			public void pop_symbol ();
			public void push_symbol (Vala.Symbol symbol);
		}
		public Vala.CCodeBaseModule.EmitContext base_finalize_context;
		public Vala.CCodeBaseModule.EmitContext base_init_context;
		public Vala.DataType bool_type;
		public static int ccode_attribute_cache_index;
		public Vala.CCodeFile cfile;
		public Vala.DataType char_type;
		public Vala.CCodeBaseModule.EmitContext class_finalize_context;
		public Vala.CCodeBaseModule.EmitContext class_init_context;
		public Vala.CCodeStruct closure_struct;
		public Vala.CCodeLineDirective? current_line;
		public Vala.TypeSymbol dbus_proxy_type;
		public Vala.DataType double_type;
		public Vala.CCodeBaseModule.EmitContext emit_context;
		public Vala.DataType float_type;
		public Vala.TypeSymbol garray_type;
		public Vala.TypeSymbol gbytearray_type;
		public Vala.DataType gdestroynotify_type;
		public Vala.ErrorType gerror_type;
		public Vala.Class glist_type;
		public Vala.Class gnode_type;
		public Vala.TypeSymbol gobject_type;
		public Vala.TypeSymbol gptrarray_type;
		public Vala.DataType gquark_type;
		public Vala.Class gqueue_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.Class gvariant_type;
		public Vala.CCodeFile header_file;
		public bool in_plugin;
		public Vala.CCodeBaseModule.EmitContext instance_finalize_context;
		public Vala.CCodeBaseModule.EmitContext instance_init_context;
		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.CCodeFile internal_header_file;
		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 Vala.CCodeStruct param_spec_struct;
		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 Vala.Symbol root_symbol;
		public Vala.DataType short_type;
		public Vala.DataType string_type;
		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.DataType void_type;
		public Vala.Set<string> wrappers;
		public CCodeBaseModule ();
		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, Vala.List<Vala.TypeParameter>? type_parameters = null);
		public virtual void add_simple_check (Vala.CodeNode node, bool always_fails = false);
		public bool add_symbol_declaration (Vala.CCodeFile decl_space, Vala.Symbol sym, string name);
		public bool add_wrapper (string wrapper_name);
		public void append_array_length (Vala.Expression expr, Vala.CCodeExpression size);
		public void append_local_free (Vala.Symbol sym, bool stop_at_loop = false, Vala.CodeNode? stop_at = null);
		protected virtual void append_scope_free (Vala.Symbol sym, Vala.CodeNode? stop_at = null);
		public virtual string? append_struct_array_free (Vala.Struct st);
		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 virtual Vala.TargetValue? copy_value (Vala.TargetValue value, Vala.CodeNode node);
		public override Vala.LocalVariable create_local (Vala.DataType type);
		public void create_postcondition_statement (Vala.Expression postcondition);
		public Vala.TargetValue create_temp_value (Vala.DataType type, bool init, Vala.CodeNode node_reference, bool? value_owned = null);
		public virtual void 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 virtual Vala.CCodeExpression? deserialize_expression (Vala.DataType type, Vala.CCodeExpression variant_expr, Vala.CCodeExpression? expr, Vala.CCodeExpression? error_expr = null, out bool may_fail = null);
		public Vala.CCodeExpression destroy_field (Vala.Field field, Vala.TargetValue? instance);
		public Vala.CCodeExpression destroy_local (Vala.LocalVariable local);
		public Vala.CCodeExpression destroy_parameter (Vala.Parameter param);
		public virtual Vala.CCodeExpression destroy_value (Vala.TargetValue value, bool is_macro_definition = false);
		public override void emit (Vala.CodeContext context);
		public void emit_temp_var (Vala.LocalVariable local);
		public virtual void generate_class_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public virtual void generate_class_struct_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public void generate_constant_declaration (Vala.Constant c, Vala.CCodeFile decl_space, bool definition = false);
		public virtual void generate_cparameters (Vala.Method m, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> 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.CCodeFile decl_space);
		protected string generate_dup_func_wrapper (Vala.DataType type);
		public virtual void generate_dynamic_method_wrapper (Vala.DynamicMethod method);
		public virtual bool generate_enum_declaration (Vala.Enum en, Vala.CCodeFile decl_space);
		public virtual void generate_error_domain_declaration (Vala.ErrorDomain edomain, Vala.CCodeFile decl_space);
		public void generate_field_declaration (Vala.Field f, Vala.CCodeFile decl_space);
		protected string generate_free_func_wrapper (Vala.DataType type);
		protected string generate_free_function_address_of_wrapper (Vala.DataType type);
		public Vala.CCodeFunctionCall generate_instance_cast (Vala.CCodeExpression expr, Vala.TypeSymbol type);
		public virtual void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public virtual void generate_method_declaration (Vala.Method m, Vala.CCodeFile decl_space);
		public void generate_property_accessor_declaration (Vala.PropertyAccessor acc, Vala.CCodeFile decl_space);
		public virtual string generate_ready_function (Vala.Method m);
		public virtual void generate_struct_declaration (Vala.Struct st, Vala.CCodeFile decl_space);
		public void generate_type_declaration (Vala.DataType type, Vala.CCodeFile decl_space);
		public Vala.CCodeExpression get_array_length_cexpr (Vala.TargetValue value);
		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_length_cvalue (Vala.TargetValue value, int dim = -1);
		public Vala.List<Vala.CCodeExpression>? get_array_lengths (Vala.Expression expr);
		public bool get_array_null_terminated (Vala.TargetValue value);
		public virtual string get_array_size_cname (string array_cname);
		public Vala.CCodeExpression? get_array_size_cvalue (Vala.TargetValue value);
		public int get_block_id (Vala.Block b);
		public static bool get_ccode_array_length (Vala.CodeNode node);
		public static string? get_ccode_array_length_expr (Vala.CodeNode node);
		public static string? get_ccode_array_length_name (Vala.CodeNode node);
		public static double get_ccode_array_length_pos (Vala.CodeNode node);
		public static string? get_ccode_array_length_type (Vala.CodeNode node);
		public static bool get_ccode_array_null_terminated (Vala.CodeNode node);
		public static Vala.CCodeAttribute get_ccode_attribute (Vala.CodeNode node);
		public static string get_ccode_blurb (Vala.Property prop);
		public static string get_ccode_const_name (Vala.CodeNode node);
		public static string get_ccode_copy_function (Vala.TypeSymbol sym);
		public static string get_ccode_declarator_suffix (Vala.DataType type);
		public static string get_ccode_default_value (Vala.TypeSymbol sym);
		public static bool get_ccode_delegate_target (Vala.CodeNode node);
		public static string get_ccode_delegate_target_name (Vala.Variable variable);
		public static double get_ccode_delegate_target_pos (Vala.CodeNode node);
		public static string get_ccode_destroy_function (Vala.TypeSymbol sym);
		public static double get_ccode_destroy_notify_pos (Vala.CodeNode node);
		public static string? get_ccode_dup_function (Vala.TypeSymbol sym);
		public static string get_ccode_finish_name (Vala.Method m);
		public static string get_ccode_finish_real_name (Vala.Method m);
		public static string get_ccode_finish_vfunc_name (Vala.Method m);
		public static string get_ccode_free_function (Vala.TypeSymbol sym);
		public static bool get_ccode_free_function_address_of (Vala.Class cl);
		public static double get_ccode_generic_type_pos (Vala.Method m);
		public static string get_ccode_get_value_function (Vala.CodeNode sym);
		public static bool get_ccode_has_copy_function (Vala.Struct st);
		public static bool get_ccode_has_destroy_function (Vala.Struct st);
		public static bool get_ccode_has_generic_type_parameter (Vala.Method m);
		public static bool get_ccode_has_new_function (Vala.Method m);
		public static bool get_ccode_has_type_id (Vala.TypeSymbol sym);
		public static string get_ccode_header_filenames (Vala.Symbol sym);
		public static double get_ccode_instance_pos (Vala.CodeNode node);
		public static bool get_ccode_is_gboxed (Vala.TypeSymbol sym);
		public static string get_ccode_lower_case_name (Vala.CodeNode node, string? infix = null);
		public static string get_ccode_lower_case_prefix (Vala.Symbol sym);
		public static string get_ccode_lower_case_suffix (Vala.Symbol sym);
		public static string get_ccode_marshaller_type_name (Vala.CodeNode node);
		public static string get_ccode_name (Vala.CodeNode node);
		public static string get_ccode_nick (Vala.Property prop);
		public static bool get_ccode_no_accessor_method (Vala.Property p);
		public static bool get_ccode_notify (Vala.Property prop);
		public static string get_ccode_param_spec_function (Vala.CodeNode sym);
		public static double get_ccode_pos (Vala.Parameter param);
		public static string get_ccode_prefix (Vala.Symbol sym);
		public static string get_ccode_real_name (Vala.Symbol sym);
		public static string get_ccode_ref_function (Vala.TypeSymbol sym);
		public static bool get_ccode_ref_function_void (Vala.Class cl);
		public static string get_ccode_ref_sink_function (Vala.ObjectTypeSymbol sym);
		public static bool get_ccode_ref_sink_function_void (Vala.Class cl);
		public static string get_ccode_sentinel (Vala.Method m);
		public static string get_ccode_set_value_function (Vala.CodeNode sym);
		public static bool get_ccode_simple_generics (Vala.Method m);
		public static string get_ccode_take_value_function (Vala.CodeNode sym);
		public static string? get_ccode_type (Vala.CodeNode node);
		public static string get_ccode_type_check_function (Vala.TypeSymbol sym);
		public static string get_ccode_type_id (Vala.CodeNode node);
		public static string get_ccode_type_name (Vala.Interface iface);
		public static string get_ccode_unref_function (Vala.ObjectTypeSymbol sym);
		public static string get_ccode_upper_case_name (Vala.Symbol sym, string? infix = null);
		public static string get_ccode_vfunc_name (Vala.Method m);
		public Vala.CCodeExpression? get_ccodenode (Vala.Expression node);
		public string? get_ctype (Vala.TargetValue value);
		public Vala.CCodeExpression? get_cvalue (Vala.Expression expr);
		public Vala.CCodeExpression? get_cvalue_ (Vala.TargetValue value);
		public static Vala.DataType get_data_type_for_symbol (Vala.TypeSymbol sym);
		public Vala.CCodeExpression? get_delegate_target (Vala.Expression expr);
		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 Vala.CCodeExpression get_delegate_target_cvalue (Vala.TargetValue value);
		public Vala.CCodeExpression? get_delegate_target_destroy_notify (Vala.Expression expr);
		public virtual string get_delegate_target_destroy_notify_cname (string delegate_cname);
		public virtual Vala.CCodeExpression get_delegate_target_destroy_notify_cvalue (Vala.TargetValue value);
		public Vala.CCodeExpression? get_destroy0_func_expression (Vala.DataType type, bool is_chainup = false);
		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 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 static Vala.CCodeConstant get_enum_value_canonical_cconstant (Vala.EnumValue ev);
		public abstract Vala.TargetValue get_field_cvalue (Vala.Field field, Vala.TargetValue? instance);
		public virtual Vala.CCodeExpression get_implicit_cast_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.CodeNode? node);
		public Vala.CCodeExpression get_local_cexpression (Vala.LocalVariable local);
		public string get_local_cname (Vala.LocalVariable local);
		public abstract Vala.TargetValue get_local_cvalue (Vala.LocalVariable local);
		public bool get_lvalue (Vala.TargetValue value);
		public bool get_non_null (Vala.TargetValue value);
		public int get_param_pos (double param_pos, bool ellipsis = false);
		public virtual Vala.CCodeFunctionCall get_param_spec (Vala.Property prop);
		public virtual string get_parameter_array_length_cname (Vala.Parameter param, int dim);
		public abstract Vala.TargetValue get_parameter_cvalue (Vala.Parameter param);
		public Vala.CCodeConstant get_property_canonical_cconstant (Vala.Property prop);
		public Vala.CCodeExpression get_result_cexpression (string cname = "result");
		public Vala.CCodeConstant get_signal_canonical_constant (Vala.Signal sig, string? detail = null);
		public virtual Vala.CCodeFunctionCall get_signal_creation (Vala.Signal sig, Vala.TypeSymbol type);
		public bool get_signal_has_emitter (Vala.Signal sig);
		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 Vala.CCodeExpression get_type_id_expression (Vala.DataType type, bool is_chainup = false);
		public Vala.CCodeIdentifier get_value_setter_function (Vala.DataType type_reference);
		public 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.Parameter? param, Vala.Expression arg, Vala.CCodeExpression? cexpr);
		public bool is_constant_ccode_expression (Vala.CCodeExpression cexpr);
		public virtual bool is_gobject_property (Vala.Property prop);
		public bool is_in_constructor ();
		public bool is_in_coroutine ();
		public bool is_in_destructor ();
		public bool is_lvalue_access_allowed (Vala.DataType type);
		public bool is_pure_ccode_expression (Vala.CCodeExpression cexpr);
		public static bool is_reference_counting (Vala.TypeSymbol sym);
		public bool is_simple_struct_creation (Vala.Variable variable, Vala.Expression expr);
		public Vala.TargetValue load_temp_value (Vala.TargetValue lvalue);
		public abstract Vala.TargetValue load_this_parameter (Vala.TypeSymbol sym);
		public abstract Vala.TargetValue load_variable (Vala.Variable variable, Vala.TargetValue value);
		public virtual bool method_has_wrapper (Vala.Method method);
		public unowned Vala.Block? next_closure_block (Vala.Symbol sym);
		public bool no_implicit_copy (Vala.DataType type);
		public void pop_context ();
		public void pop_function ();
		public void pop_line ();
		public void push_context (Vala.CCodeBaseModule.EmitContext emit_context);
		public void push_function (Vala.CCodeFunction func);
		public void push_line (Vala.SourceReference? source_reference);
		public virtual void register_dbus_info (Vala.CCodeBlock block, Vala.ObjectTypeSymbol bindable);
		public bool requires_copy (Vala.DataType type);
		public bool requires_destroy (Vala.DataType type);
		public void return_default_value (Vala.DataType return_type);
		public void return_out_parameter (Vala.Parameter param);
		public virtual Vala.CCodeExpression? serialize_expression (Vala.DataType type, Vala.CCodeExpression expr);
		public void set_array_size_cvalue (Vala.TargetValue value, Vala.CCodeExpression? cvalue);
		public void set_cvalue (Vala.Expression expr, Vala.CCodeExpression? cvalue);
		public void set_delegate_target (Vala.Expression expr, Vala.CCodeExpression? delegate_target);
		public void set_delegate_target_destroy_notify (Vala.Expression expr, Vala.CCodeExpression? destroy_notify);
		public void store_property (Vala.Property prop, Vala.Expression? instance, Vala.TargetValue value);
		public Vala.TargetValue store_temp_value (Vala.TargetValue initializer, Vala.CodeNode node_reference, bool? value_owned = null);
		public abstract void store_value (Vala.TargetValue lvalue, Vala.TargetValue value);
		public Vala.TargetValue transform_value (Vala.TargetValue value, Vala.DataType? target_type, Vala.CodeNode node);
		public Vala.CCodeExpression? try_cast_value_to_type (Vala.CCodeExpression ccodeexpr, Vala.DataType from, Vala.DataType to, Vala.Expression? expr = null);
		public Vala.TargetValue? try_cast_variant_to_type (Vala.TargetValue value, Vala.DataType to, Vala.CodeNode? node = null);
		public 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_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.Parameter 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 lambda);
		public override void visit_local_variable (Vala.LocalVariable local);
		public override void visit_lock_statement (Vala.LockStatement stmt);
		public void visit_member (Vala.Symbol 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.CCodeFunction ccode { get; }
		public Vala.CodeContext context { get; set; }
		public Vala.CatchClause current_catch { get; set; }
		public Vala.Class? current_class { get; }
		public Vala.Block? current_closure_block { get; }
		public Vala.Constructor? current_constructor { get; }
		public Vala.Destructor? current_destructor { get; }
		public Vala.Method? current_method { get; }
		public bool current_method_inner_error { get; set; }
		public bool current_method_return { get; set; }
		public Vala.PropertyAccessor? current_property_accessor { get; }
		public Vala.DataType? current_return_type { get; }
		public Vala.Symbol current_symbol { get; }
		public Vala.TryStatement current_try { get; set; }
		public Vala.TypeSymbol? current_type_symbol { get; }
		public bool in_creation_method { get; }
		public int next_temp_var_id { get; set; }
		public Vala.ArrayList<Vala.TargetValue> temp_ref_values { get; }
		public Vala.Map<string,string> variable_name_map { get; }
	}
	[CCode (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 abstract class CCodeControlFlowModule : Vala.CCodeMethodModule {
		public CCodeControlFlowModule ();
		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_statement (Vala.SwitchStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeDelegateModule : Vala.CCodeArrayModule {
		public CCodeDelegateModule ();
		public override void generate_delegate_declaration (Vala.Delegate d, Vala.CCodeFile decl_space);
		public override Vala.CCodeParameter generate_parameter (Vala.Parameter param, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> 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 Vala.CCodeExpression get_delegate_target_cvalue (Vala.TargetValue value);
		public override string get_delegate_target_destroy_notify_cname (string delegate_cname);
		public override Vala.CCodeExpression get_delegate_target_destroy_notify_cvalue (Vala.TargetValue value);
		public override Vala.CCodeExpression get_implicit_cast_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.CodeNode? node);
		public override void visit_delegate (Vala.Delegate d);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class CCodeMemberAccessModule : Vala.CCodeControlFlowModule {
		public CCodeMemberAccessModule ();
		public override Vala.TargetValue get_field_cvalue (Vala.Field field, Vala.TargetValue? instance);
		public override Vala.TargetValue get_local_cvalue (Vala.LocalVariable local);
		public override Vala.TargetValue get_parameter_cvalue (Vala.Parameter param);
		public override Vala.TargetValue load_field (Vala.Field field, Vala.TargetValue? instance);
		public override Vala.TargetValue load_local (Vala.LocalVariable local);
		public override Vala.TargetValue load_parameter (Vala.Parameter param);
		public override Vala.TargetValue load_this_parameter (Vala.TypeSymbol sym);
		public override Vala.TargetValue load_variable (Vala.Variable variable, Vala.TargetValue value);
		public override void visit_member_access (Vala.MemberAccess expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class CCodeMethodCallModule : Vala.CCodeAssignmentModule {
		public CCodeMethodCallModule ();
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class CCodeMethodModule : Vala.CCodeStructModule {
		public CCodeMethodModule ();
		public void complete_async ();
		public override void generate_cparameters (Vala.Method m, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> 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.CCodeFile decl_space);
		public virtual void generate_method_result_declaration (Vala.Method m, Vala.CCodeFile decl_space, Vala.CCodeFunction cfunc, Vala.Map<int,Vala.CCodeParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public virtual Vala.CCodeParameter generate_parameter (Vala.Parameter param, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public void generate_vfunc (Vala.Method m, Vala.DataType return_type, Vala.Map<int,Vala.CCodeParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression> carg_map, string suffix = "", int direction = 3);
		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 (cheader_filename = "valacodegen.h")]
	public abstract class CCodeStructModule : Vala.CCodeBaseModule {
		public CCodeStructModule ();
		public override void generate_struct_declaration (Vala.Struct st, Vala.CCodeFile 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 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 void get_type_interface_init_statements (Vala.CCodeBlock block, bool plugin);
		public override string get_type_struct_name ();
		public Vala.Class class_reference { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaArrayModule : Vala.DovaMethodCallModule {
		public DovaArrayModule ();
		public override void visit_array_creation_expression (Vala.ArrayCreationExpression expr);
		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 DovaAssignmentModule : Vala.DovaMemberAccessModule {
		public DovaAssignmentModule ();
		public override void store_field (Vala.Field field, Vala.TargetValue? instance, Vala.TargetValue value);
		public override void store_local (Vala.LocalVariable local, Vala.TargetValue value, bool initializer);
		public override void store_parameter (Vala.Parameter param, Vala.TargetValue value);
		public virtual void store_variable (Vala.Variable variable, Vala.TargetValue lvalue, Vala.TargetValue value, bool initializer);
		public override void visit_assignment (Vala.Assignment assignment);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class DovaBaseModule : Vala.CodeGenerator {
		public class EmitContext {
			public Vala.CCodeFunction ccode;
			public Vala.ArrayList<Vala.CCodeFunction> ccode_stack;
			public Vala.Symbol? current_symbol;
			public Vala.TryStatement current_try;
			public int next_temp_var_id;
			public Vala.ArrayList<Vala.Symbol> symbol_stack;
			public Vala.ArrayList<Vala.LocalVariable> temp_ref_vars;
			public Vala.Map<string,string> variable_name_map;
			public EmitContext (Vala.Symbol? symbol = null);
			public void pop_symbol ();
			public void push_symbol (Vala.Symbol symbol);
		}
		public Vala.Struct array_struct;
		public Vala.DataType bool_type;
		public Vala.CCodeFile cfile;
		public Vala.DataType char_type;
		public Vala.Class delegate_class;
		public Vala.DovaBaseModule.EmitContext emit_context;
		public Vala.Class error_class;
		public Vala.CCodeFile header_file;
		public Vala.DataType int_type;
		public int next_wrapper_id;
		public Vala.Class object_class;
		public Vala.Symbol root_symbol;
		public Vala.List<Vala.Field> static_fields;
		public Vala.Class string_class;
		public Vala.DataType string_type;
		public Vala.Class type_class;
		public Vala.DataType uint_type;
		public Vala.Class value_class;
		public Vala.DataType void_type;
		public DovaBaseModule ();
		public bool add_generated_external_symbol (Vala.Symbol external_symbol);
		public void add_generic_type_arguments (Vala.CCodeFunctionCall ccall, Vala.List<Vala.DataType> type_args, Vala.CodeNode expr, bool is_chainup = false);
		public virtual void add_simple_check (Vala.CodeNode node, bool always_fails = false);
		public bool add_symbol_declaration (Vala.CCodeFile decl_space, Vala.Symbol sym, string name);
		public virtual void append_local_free (Vala.Symbol sym, bool stop_at_loop = false, Vala.CodeNode? stop_at = null);
		public override Vala.LocalVariable create_local (Vala.DataType type);
		public Vala.CCodeExpression? default_value_for_type (Vala.DataType type, bool initializer_expression);
		public Vala.CCodeExpression destroy_value (Vala.TargetValue value);
		public override void emit (Vala.CodeContext context);
		public void emit_temp_var (Vala.LocalVariable local);
		public virtual void generate_class_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public void generate_constant_declaration (Vala.Constant c, Vala.CCodeFile decl_space);
		public virtual void generate_cparameters (Vala.Method m, Vala.CCodeFile decl_space, Vala.CCodeFunction func, Vala.CCodeFunctionDeclarator? vdeclarator = null, Vala.CCodeFunctionCall? vcall = null);
		public virtual void generate_delegate_declaration (Vala.Delegate d, Vala.CCodeFile decl_space);
		public void generate_enum_declaration (Vala.Enum en, Vala.CCodeFile decl_space);
		public void generate_field_declaration (Vala.Field f, Vala.CCodeFile decl_space);
		public Vala.CCodeExpression generate_instance_cast (Vala.CCodeExpression expr, Vala.TypeSymbol type);
		public virtual void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public virtual void generate_method_declaration (Vala.Method m, Vala.CCodeFile decl_space);
		public virtual void generate_property_accessor_declaration (Vala.PropertyAccessor acc, Vala.CCodeFile decl_space);
		public virtual void generate_struct_declaration (Vala.Struct st, Vala.CCodeFile decl_space);
		public void generate_type_declaration (Vala.DataType type, Vala.CCodeFile decl_space);
		public int get_block_id (Vala.Block b);
		public string get_ccode_const_name (Vala.CodeNode node);
		public string get_ccode_copy_function (Vala.TypeSymbol node);
		public string get_ccode_declarator_suffix (Vala.DataType type);
		public string get_ccode_default_value (Vala.TypeSymbol node);
		public string get_ccode_dup_function (Vala.TypeSymbol node);
		public string get_ccode_free_function (Vala.TypeSymbol node);
		public double get_ccode_instance_pos (Vala.CodeNode node);
		public string get_ccode_lower_case_name (Vala.CodeNode node, string? infix = null);
		public string get_ccode_lower_case_prefix (Vala.Symbol node);
		public string get_ccode_name (Vala.CodeNode node);
		public string get_ccode_real_name (Vala.Method node);
		public string get_ccode_ref_function (Vala.TypeSymbol node);
		public bool get_ccode_ref_function_void (Vala.Class node);
		public string get_ccode_sentinel (Vala.Method m);
		public string get_ccode_unref_function (Vala.ObjectTypeSymbol node);
		public string get_ccode_upper_case_name (Vala.Symbol node, string? infix = null);
		public string get_ccode_vfunc_name (Vala.Method node);
		public Vala.CCodeExpression? get_ccodenode (Vala.Expression node);
		public virtual string? get_custom_creturn_type (Vala.Method m);
		public Vala.CCodeExpression? get_cvalue (Vala.Expression expr);
		public Vala.CCodeExpression? get_cvalue_ (Vala.TargetValue value);
		public static Vala.DataType get_data_type_for_symbol (Vala.TypeSymbol sym);
		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 virtual Vala.CCodeExpression? get_ref_cexpression (Vala.DataType expression_type, Vala.CCodeExpression cexpr, Vala.Expression? expr, Vala.CodeNode node);
		public Vala.LocalVariable get_temp_variable (Vala.DataType type, bool value_owned = true, Vala.CodeNode? node_reference = null);
		public Vala.DataType? get_this_type ();
		public Vala.CCodeExpression get_type_id_expression (Vala.DataType type, bool is_chainup = false);
		public Vala.CCodeExpression get_type_private_from_type (Vala.ObjectTypeSymbol type_symbol, Vala.CCodeExpression type_expression);
		public Vala.CCodeExpression get_unref_expression (Vala.CCodeExpression cvar, Vala.DataType type, Vala.Expression? expr = null);
		public Vala.CCodeExpression get_variable_cexpression (string name);
		public string get_variable_cname (string name);
		public Vala.CCodeExpression? handle_struct_argument (Vala.Parameter param, Vala.Expression arg, Vala.CCodeExpression? cexpr);
		public bool is_constant_ccode_expression (Vala.CCodeExpression cexpr);
		public bool is_pure_ccode_expression (Vala.CCodeExpression cexpr);
		public bool is_reference_counting (Vala.TypeSymbol node);
		public virtual bool method_has_wrapper (Vala.Method method);
		public unowned Vala.Block? next_closure_block (Vala.Symbol sym);
		public void pop_context ();
		public void pop_function ();
		public void push_context (Vala.DovaBaseModule.EmitContext emit_context);
		public void push_function (Vala.CCodeFunction func);
		public bool requires_copy (Vala.DataType type);
		public bool requires_destroy (Vala.DataType type);
		public void set_cvalue (Vala.Expression expr, Vala.CCodeExpression? cvalue);
		public void store_property (Vala.Property prop, Vala.Expression? instance, Vala.TargetValue value);
		public Vala.CCodeExpression transform_expression (Vala.CCodeExpression source_cexpr, Vala.DataType? expression_type, Vala.DataType? target_type, Vala.Expression? expr = null);
		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_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_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.Parameter 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_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_real_literal (Vala.RealLiteral expr);
		public override void visit_reference_transfer_expression (Vala.ReferenceTransferExpression 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 Vala.CCodeFunction ccode { get; }
		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.Symbol current_symbol { get; }
		public Vala.TryStatement current_try { get; set; }
		public Vala.TypeSymbol? current_type_symbol { get; }
		public bool in_creation_method { get; }
		public int next_temp_var_id { get; set; }
		public Vala.ArrayList<Vala.LocalVariable> temp_ref_vars { get; }
		public Vala.Map<string,string> variable_name_map { get; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class DovaControlFlowModule : Vala.DovaMethodModule {
		public DovaControlFlowModule ();
		public override void visit_break_statement (Vala.BreakStatement stmt);
		public override void visit_continue_statement (Vala.ContinueStatement 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_statement (Vala.SwitchStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaDelegateModule : Vala.DovaValueModule {
		public DovaDelegateModule ();
		public override void generate_delegate_declaration (Vala.Delegate d, Vala.CCodeFile decl_space);
		public override void visit_delegate (Vala.Delegate d);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaErrorModule : Vala.DovaDelegateModule {
		public DovaErrorModule ();
		public override void add_simple_check (Vala.CodeNode node, bool always_fails = false);
		public override void append_local_free (Vala.Symbol sym, bool stop_at_loop = false, Vala.CodeNode? stop_at = null);
		public void return_with_exception ();
		public override void visit_catch_clause (Vala.CatchClause clause);
		public override void visit_throw_statement (Vala.ThrowStatement stmt);
		public override void visit_try_statement (Vala.TryStatement stmt);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class DovaMemberAccessModule : Vala.DovaControlFlowModule {
		public DovaMemberAccessModule ();
		public Vala.TargetValue get_field_cvalue (Vala.Field f, Vala.TargetValue? instance);
		public Vala.TargetValue get_local_cvalue (Vala.LocalVariable local);
		public Vala.TargetValue get_parameter_cvalue (Vala.Parameter p);
		public override Vala.TargetValue load_field (Vala.Field field, Vala.TargetValue? instance);
		public override Vala.TargetValue load_local (Vala.LocalVariable local);
		public override Vala.TargetValue load_parameter (Vala.Parameter param);
		public override void visit_member_access (Vala.MemberAccess expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaMethodCallModule : Vala.DovaAssignmentModule {
		public DovaMethodCallModule ();
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class DovaMethodModule : Vala.DovaStructModule {
		public DovaMethodModule ();
		public override string? get_custom_creturn_type (Vala.Method m);
		public override bool method_has_wrapper (Vala.Method method);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaObjectModule : Vala.DovaArrayModule {
		public DovaObjectModule ();
		public void declare_set_value_copy_function (Vala.CCodeFile decl_space);
		public void declare_set_value_equals_function (Vala.CCodeFile decl_space);
		public void declare_set_value_from_any_function (Vala.CCodeFile decl_space);
		public void declare_set_value_hash_function (Vala.CCodeFile decl_space);
		public void declare_set_value_to_any_function (Vala.CCodeFile decl_space);
		public override void generate_class_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public override void generate_cparameters (Vala.Method m, Vala.CCodeFile decl_space, Vala.CCodeFunction func, Vala.CCodeFunctionDeclarator? vdeclarator = null, Vala.CCodeFunctionCall? vcall = null);
		public override void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public override void generate_method_declaration (Vala.Method m, Vala.CCodeFile decl_space);
		public override void generate_property_accessor_declaration (Vala.PropertyAccessor acc, Vala.CCodeFile decl_space);
		public Vala.CCodeBlock generate_type_get_function (Vala.TypeSymbol cl, Vala.Class? base_class);
		public override string? get_custom_creturn_type (Vala.Method m);
		public override bool method_has_wrapper (Vala.Method method);
		public override void visit_class (Vala.Class cl);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_element_access (Vala.ElementAccess expr);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method (Vala.Method m);
		public override void visit_property_accessor (Vala.PropertyAccessor acc);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public abstract class DovaStructModule : Vala.DovaBaseModule {
		public DovaStructModule ();
		public override void generate_struct_declaration (Vala.Struct st, Vala.CCodeFile decl_space);
		public override void visit_struct (Vala.Struct st);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaValue : Vala.TargetValue {
		public Vala.CCodeExpression cvalue;
		public DovaValue (Vala.DataType? value_type = null, Vala.CCodeExpression? cvalue = null);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class DovaValueModule : Vala.DovaObjectModule {
		public DovaValueModule ();
		public override void generate_struct_declaration (Vala.Struct st, Vala.CCodeFile decl_space);
		public override void store_variable (Vala.Variable variable, Vala.TargetValue lvalue, Vala.TargetValue value, bool initializer);
		public override void visit_assignment (Vala.Assignment assignment);
		public override void visit_binary_expression (Vala.BinaryExpression expr);
		public override void visit_creation_method (Vala.CreationMethod m);
		public override void visit_list_literal (Vala.ListLiteral expr);
		public override void visit_map_literal (Vala.MapLiteral expr);
		public override void visit_method_call (Vala.MethodCall expr);
		public override void visit_set_literal (Vala.SetLiteral expr);
		public override void visit_struct (Vala.Struct st);
		public override void visit_tuple (Vala.Tuple tuple);
	}
	[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 Vala.Enum enum_reference { get; set; }
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GAsyncModule : Vala.GSignalModule {
		public GAsyncModule ();
		public string generate_async_callback_wrapper ();
		public override void generate_cparameters (Vala.Method m, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> 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.CCodeFile decl_space);
		public override string generate_ready_function (Vala.Method m);
		public override void generate_virtual_method_declaration (Vala.Method m, Vala.CCodeFile decl_space, Vala.CCodeStruct type_struct);
		public override void 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 GDBusClientModule : Vala.GDBusModule {
		public GDBusClientModule ();
		public override void generate_dynamic_method_wrapper (Vala.DynamicMethod method);
		public override void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public Vala.CCodeConstant get_dbus_timeout (Vala.Symbol symbol);
		public override void register_dbus_info (Vala.CCodeBlock block, Vala.ObjectTypeSymbol sym);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GDBusModule : Vala.GVariantModule {
		public GDBusModule ();
		public bool dbus_method_uses_file_descriptor (Vala.Method method);
		public static string? get_dbus_name (Vala.TypeSymbol symbol);
		public static string get_dbus_name_for_member (Vala.Symbol symbol);
		public static bool is_dbus_no_reply (Vala.Method m);
		public void receive_dbus_value (Vala.DataType type, Vala.CCodeExpression message_expr, Vala.CCodeExpression iter_expr, Vala.CCodeExpression target_expr, Vala.Symbol? sym, Vala.CCodeExpression? error_expr = null, out bool may_fail = null);
		public void send_dbus_value (Vala.DataType type, Vala.CCodeExpression builder_expr, Vala.CCodeExpression expr, Vala.Symbol? sym);
		public override void visit_error_domain (Vala.ErrorDomain edomain);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GDBusServerModule : Vala.GDBusClientModule {
		public GDBusServerModule ();
		public static string dbus_result_name (Vala.Method m);
		public override void generate_class_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public override void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public static bool is_dbus_visible (Vala.CodeNode node);
		public override void register_dbus_info (Vala.CCodeBlock block, Vala.ObjectTypeSymbol sym);
		public override void visit_class (Vala.Class cl);
		public override void visit_interface (Vala.Interface iface);
		public override void visit_method_call (Vala.MethodCall expr);
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GErrorModule : Vala.CCodeDelegateModule {
		public GErrorModule ();
		public override void add_simple_check (Vala.CodeNode node, bool always_fails = false);
		protected override void append_scope_free (Vala.Symbol sym, Vala.CodeNode? stop_at = null);
		public override void generate_error_domain_declaration (Vala.ErrorDomain edomain, Vala.CCodeFile decl_space);
		public virtual void 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 ();
		protected virtual string? get_class_comment (Vala.Class c);
		protected virtual string? get_constant_comment (Vala.Constant c);
		protected virtual string? get_delegate_comment (Vala.Delegate cb);
		protected virtual string? get_delegate_return_comment (Vala.Delegate cb);
		protected virtual string? get_enum_comment (Vala.Enum en);
		protected virtual string? get_enum_value_comment (Vala.EnumValue ev);
		protected virtual string? get_error_code_comment (Vala.ErrorCode ecode);
		protected virtual string? get_error_domain_comment (Vala.ErrorDomain edomain);
		protected virtual string? get_field_comment (Vala.Field f);
		protected virtual string? get_interface_comment (Vala.Interface iface);
		protected virtual string? get_method_comment (Vala.Method m);
		protected virtual string? get_method_return_comment (Vala.Method m);
		protected virtual string? get_parameter_comment (Vala.Parameter param);
		protected virtual string? get_property_comment (Vala.Property prop);
		protected virtual string? get_signal_comment (Vala.Signal sig);
		protected virtual string? get_signal_return_comment (Vala.Signal sig);
		protected virtual string? get_struct_comment (Vala.Struct st);
		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 GLibValue : Vala.TargetValue {
		public Vala.CCodeExpression? array_length_cexpr;
		public Vala.List<Vala.CCodeExpression> array_length_cvalues;
		public bool array_null_terminated;
		public Vala.CCodeExpression? array_size_cvalue;
		public string? ctype;
		public Vala.CCodeExpression cvalue;
		public Vala.CCodeExpression? delegate_target_cvalue;
		public Vala.CCodeExpression? delegate_target_destroy_notify_cvalue;
		public bool lvalue;
		public bool non_null;
		public GLibValue (Vala.DataType? value_type = null, Vala.CCodeExpression? cvalue = null, bool lvalue = false);
		public void append_array_length_cvalue (Vala.CCodeExpression length_cvalue);
		public Vala.GLibValue copy ();
	}
	[CCode (cheader_filename = "valacodegen.h")]
	public class GObjectModule : Vala.GTypeModule {
		public GObjectModule ();
		public override void generate_class_init (Vala.Class cl);
		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 ();
		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 ();
		public override void create_type_check_statement (Vala.CodeNode method_node, Vala.DataType ret_type, Vala.TypeSymbol t, bool non_null, string var_name);
		public override void generate_class_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public virtual void generate_class_init (Vala.Class cl);
		public override void generate_class_struct_declaration (Vala.Class cl, Vala.CCodeFile decl_space);
		public override void generate_interface_declaration (Vala.Interface iface, Vala.CCodeFile decl_space);
		public override Vala.CCodeParameter generate_parameter (Vala.Parameter param, Vala.CCodeFile decl_space, Vala.Map<int,Vala.CCodeParameter> cparam_map, Vala.Map<int,Vala.CCodeExpression>? carg_map);
		public virtual void generate_virtual_method_declaration (Vala.Method m, Vala.CCodeFile 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 GVariantModule : Vala.GAsyncModule {
		public GVariantModule ();
		public override Vala.CCodeExpression? deserialize_expression (Vala.DataType type, Vala.CCodeExpression variant_expr, Vala.CCodeExpression? expr, Vala.CCodeExpression? error_expr = null, out bool may_fail = null);
		public override bool generate_enum_declaration (Vala.Enum en, Vala.CCodeFile 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_signature (Vala.Symbol symbol);
		public static string? get_type_signature (Vala.DataType datatype, Vala.Symbol? symbol = null);
		public void read_expression (Vala.DataType type, Vala.CCodeExpression iter_expr, Vala.CCodeExpression target_expr, Vala.Symbol? sym, Vala.CCodeExpression? error_expr = null, out bool may_fail = null);
		public override Vala.CCodeExpression? serialize_expression (Vala.DataType type, Vala.CCodeExpression expr);
		public override void visit_enum (Vala.Enum en);
		public void write_expression (Vala.DataType type, Vala.CCodeExpression builder_expr, Vala.CCodeExpression expr, Vala.Symbol? sym);
	}
	[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 void get_type_interface_init_statements (Vala.CCodeBlock block, 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 Vala.Struct struct_reference { get; set; }
	}
	[CCode (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 virtual void get_type_interface_init_statements (Vala.CCodeBlock block, bool plugin);
		public virtual string get_type_struct_name ();
		public void init_from_type (bool plugin, bool declaration_only);
		public Vala.CodeContext context { get; set; }
	}
}
