[valadoc] driver/0.11.0: Add support for attributes
- From: Florian Brosch <flobrosch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [valadoc] driver/0.11.0: Add support for attributes
- Date: Fri, 12 Aug 2011 22:41:21 +0000 (UTC)
commit 935820dbb5b80a81e66f432ec5199516bc98e998
Author: Florian Brosch <flo brosch gmail com>
Date: Sat Aug 13 00:05:57 2011 +0200
driver/0.11.0: Add support for attributes
src/driver/0.11.0/treebuilder.vala | 63 ++++++++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
---
diff --git a/src/driver/0.11.0/treebuilder.vala b/src/driver/0.11.0/treebuilder.vala
index be41633..93c5f3c 100644
--- a/src/driver/0.11.0/treebuilder.vala
+++ b/src/driver/0.11.0/treebuilder.vala
@@ -184,6 +184,55 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
// Translation helpers:
//
+ private void process_attributes (Api.Symbol parent, GLib.List<Vala.Attribute> lst) {
+ // attributes wihtout arguments:
+ string[] attributes = {
+ "ReturnsModifiedPointer",
+ "DestroysInstance",
+ "NoAccessorMethod",
+ "NoArrayLength",
+ "Experimental",
+ "Diagnostics",
+ "PrintfFormat",
+ "PointerType",
+ "ScanfFormat",
+ "ThreadLocal",
+ "SimpleType",
+ "HasEmitter",
+ "ModuleInit",
+ "NoWrapper",
+ "Immutable",
+ "ErrorBase",
+ "NoReturn",
+ "NoThrow",
+ "Assert",
+ "Flags"
+ };
+
+ string? tmp = "";
+
+ foreach (Vala.Attribute att in lst) {
+ if (att.name == "CCode" && (tmp = att.args.get ("has_target")) != null && tmp == "false") {
+ Attribute new_attribute = new Attribute (parent, parent.get_source_file (), att.name, att);
+ new_attribute.add_boolean ("has_target", false, att);
+ parent.add_attribute (new_attribute);
+ } else if (att.name == "Deprecated") {
+ Attribute new_attribute = new Attribute (parent, parent.get_source_file (), att.name, att);
+ parent.add_attribute (new_attribute);
+ if ((tmp = att.args.get ("since")) != null) {
+ new_attribute.add_string ("since", tmp, att);
+ }
+
+ if ((tmp = att.args.get ("replacement")) != null) {
+ new_attribute.add_string ("replacement", tmp, att);
+ }
+ } else if (att.name in attributes) {
+ Attribute new_attribute = new Attribute (parent, parent.get_source_file (), att.name, att);
+ parent.add_attribute (new_attribute);
+ }
+ }
+ }
+
private SourceComment? create_comment (Vala.Comment? comment) {
if (comment != null) {
Vala.SourceReference pos = comment.source_reference;
@@ -737,6 +786,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
}
}
+ process_attributes (node, element.attributes);
process_children (node, element);
// save GLib.Error
@@ -767,6 +817,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
}
}
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -790,6 +841,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
node.base_type = create_type_reference (basetype, node, node);
}
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -806,6 +858,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -833,6 +886,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
node.setter = new PropertyAccessor (node, file, element.name, get_access_modifier(element), accessor.get_cname(), get_property_accessor_type (accessor), get_property_ownership (accessor), accessor);
}
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -849,6 +903,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -865,6 +920,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -881,6 +937,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -897,6 +954,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -912,6 +970,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -927,6 +986,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -943,6 +1003,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -958,6 +1019,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
@@ -973,6 +1035,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
symbol_map.set (element, node);
parent.add_child (node);
+ process_attributes (node, element.attributes);
process_children (node, element);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]