}
}
+ public bool add_symbol_declaration (CCodeDeclarationSpace decl_space, Symbol sym, string name) {
+ if (decl_space.add_declaration (name)) {
+ return true;
+ }
+ if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
+ // add appropriate include file
+ foreach (string header_filename in sym.get_cheader_filenames ()) {
+ decl_space.add_include (header_filename, !sym.external_package);
+ }
+ // declaration complete
+ return true;
+ } else {
+ // require declaration
+ return false;
+ }
+ }
+
public CCodeIdentifier get_value_setter_function (DataType type_reference) {
var array_type = type_reference as ArrayType;
if (type_reference.data_type != null) {
}
public virtual bool generate_enum_declaration (Enum en, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
return false;
}
}
public void generate_constant_declaration (Constant c, CCodeDeclarationSpace decl_space, bool definition = false) {
- if (decl_space.add_symbol_declaration (c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
return;
}
}
public void generate_field_declaration (Field f, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
return;
}
}
public void generate_property_accessor_declaration (PropertyAccessor acc, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (acc, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc, acc.get_cname ())) {
return;
}
}
public virtual void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
return false;
}
- public bool add_symbol_declaration (Symbol sym, string name) {
- if (add_declaration (name)) {
- return true;
- }
- if (sym.external_package || (!is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
- // add appropriate include file
- foreach (string header_filename in sym.get_cheader_filenames ()) {
- add_include (header_filename, !sym.external_package);
- }
- // declaration complete
- return true;
- } else {
- // require declaration
- return false;
- }
- }
-
public void add_include (string filename, bool local = false) {
if (!(filename in includes)) {
include_directives.append (new CCodeIncludeDirective (filename, local));
*/
public class Vala.CCodeDelegateModule : CCodeArrayModule {
public override void generate_delegate_declaration (Delegate d, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
return;
}
if (m.is_async_callback) {
return;
}
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
public class Vala.CCodeStructModule : CCodeBaseModule {
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
return;
}
string lower_cname = iface.get_lower_case_cprefix () + "dbus_proxy";
- if (decl_space.add_symbol_declaration (iface, lower_cname + "_new")) {
+ if (add_symbol_declaration (decl_space, iface, lower_cname + "_new")) {
return;
}
}
}
+ public bool add_symbol_declaration (CCodeDeclarationSpace decl_space, Symbol sym, string name) {
+ if (decl_space.add_declaration (name)) {
+ return true;
+ }
+ if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
+ // add appropriate include file
+ foreach (string header_filename in sym.get_cheader_filenames ()) {
+ decl_space.add_include (header_filename, !sym.external_package);
+ }
+ // declaration complete
+ return true;
+ } else {
+ // require declaration
+ return false;
+ }
+ }
+
public override void visit_source_file (SourceFile source_file) {
if (csource_filename == null) {
csource_filename = source_file.get_csource_filename ();
}
public void generate_enum_declaration (Enum en, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
return;
}
}
public void generate_constant_declaration (Constant c, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
return;
}
}
public void generate_field_declaration (Field f, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
return;
}
}
public virtual void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
*/
public class Vala.DovaDelegateModule : DovaValueModule {
public override void generate_delegate_declaration (Delegate d, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
return;
}
public class Vala.DovaObjectModule : DovaArrayModule {
public override void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
void generate_class_private_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname () + "Private")) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname () + "Private")) {
return;
}
}
public void declare_set_value_copy_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_copy")) {
+ if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_copy")) {
return;
}
decl_space.add_type_member_declaration (create_set_value_copy_function (true));
}
public void declare_set_value_equals_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_equals")) {
+ if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_equals")) {
return;
}
decl_space.add_type_member_declaration (create_set_value_equals_function (true));
}
public void declare_set_value_hash_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_hash")) {
+ if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_hash")) {
return;
}
decl_space.add_type_member_declaration (create_set_value_hash_function (true));
}
public void declare_set_value_to_any_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_to_any")) {
+ if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_to_any")) {
return;
}
decl_space.add_type_member_declaration (create_set_value_to_any_function (true));
}
public void declare_set_value_from_any_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_from_any")) {
+ if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_from_any")) {
return;
}
decl_space.add_type_member_declaration (create_set_value_from_any_function (true));
}
public override void generate_property_accessor_declaration (PropertyAccessor acc, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (acc.prop, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc.prop, acc.get_cname ())) {
return;
}
}
public override void generate_interface_declaration (Interface iface, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
return;
}
}
public override void generate_method_declaration (Method m, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
public class Vala.DovaStructModule : DovaBaseModule {
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
return;
}
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
base.generate_struct_declaration (st, decl_space);
- if (decl_space.add_symbol_declaration (st, st.get_copy_function ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_copy_function ())) {
return;
}
public override void generate_method_declaration (Method m, CCodeDeclarationSpace decl_space) {
if (m.coroutine) {
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
string get_type_name = "%sproxy_get_type".printf (iface.get_lower_case_cprefix ());
- if (decl_space.add_symbol_declaration (iface, get_type_name)) {
+ if (add_symbol_declaration (decl_space, iface, get_type_name)) {
return;
}
string register_object_name = "%sregister_object".printf (sym.get_lower_case_cprefix ());
- if (decl_space.add_symbol_declaration (sym, register_object_name)) {
+ if (add_symbol_declaration (decl_space, sym, register_object_name)) {
return;
}
private bool is_in_catch = false;
public override void generate_error_domain_declaration (ErrorDomain edomain, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (edomain, edomain.get_cname ())) {
+ if (add_symbol_declaration (decl_space, edomain, edomain.get_cname ())) {
return;
}
}
public override void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
public override void generate_class_struct_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, "struct _" + cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, "struct _" + cl.get_cname ())) {
return;
}
}
public override void generate_interface_declaration (Interface iface, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
return;
}