about summary refs log tree commit diff
path: root/src/comp/front
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-06-30 16:53:13 -0700
committerBrian Anderson <banderson@mozilla.com>2011-07-01 10:45:29 -0700
commit26ce1e1035b88e5397539a08d83f134de7eb9cf4 (patch)
tree414e03efc98cbd457f8a824ac102e1af09350ab4 /src/comp/front
parent5fb9cad38d68408907b0e1a9a40f871c91a7186e (diff)
downloadrust-26ce1e1035b88e5397539a08d83f134de7eb9cf4.tar.gz
rust-26ce1e1035b88e5397539a08d83f134de7eb9cf4.zip
Add some helper functions to front::attr
Diffstat (limited to 'src/comp/front')
-rw-r--r--src/comp/front/attr.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/comp/front/attr.rs b/src/comp/front/attr.rs
index 4fe0b814165..af9bbf31a1f 100644
--- a/src/comp/front/attr.rs
+++ b/src/comp/front/attr.rs
@@ -3,6 +3,7 @@
 import std::vec;
 import std::option;
 import front::ast;
+import util::common;
 
 export attr_metas;
 export find_linkage_metas;
@@ -12,6 +13,9 @@ export contains;
 export sort_meta_items;
 export remove_meta_items_by_name;
 export get_attr_name;
+export mk_name_value_item;
+export mk_link_item;
+export mk_word_item;
 
 // From a list of crate attributes get only the meta_items that impact crate
 // linkage
@@ -159,6 +163,22 @@ fn remove_meta_items_by_name(&vec[@ast::meta_item] items,
     ret vec::filter_map(filter, items);
 }
 
+fn span[T](&T item) -> common::spanned[T] {
+    ret rec(node=item, span=rec(lo=0u, hi=0u));
+}
+
+fn mk_name_value_item(ast::ident name, str value) -> @ast::meta_item {
+    ret @span(ast::meta_name_value(name, value));
+}
+
+fn mk_list_item(ast::ident name, &vec[@ast::meta_item] items) -> @ast::meta_item {
+    ret @span(ast::meta_list(name, items));
+}
+
+fn mk_word_item(ast::ident name) -> @ast::meta_item {
+    ret @span(ast::meta_word(name));
+}
+
 //
 // Local Variables:
 // mode: rust