summary refs log tree commit diff
path: root/src/libsyntax/ext/base.rs
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2015-01-01 16:37:47 -0800
committerKeegan McAllister <kmcallister@mozilla.com>2015-01-05 18:21:13 -0800
commit0816255c80ee3f2a8870ee5e4379e3739d8ed72e (patch)
tree32b71b7a4d5f22d8b7ec66a64373acd08e258d5e /src/libsyntax/ext/base.rs
parent60be2f52d2434dfbf2df7728454d572d76f58bf8 (diff)
downloadrust-0816255c80ee3f2a8870ee5e4379e3739d8ed72e.tar.gz
rust-0816255c80ee3f2a8870ee5e4379e3739d8ed72e.zip
Move #[macro_reexport] to extern crate
Diffstat (limited to 'src/libsyntax/ext/base.rs')
-rw-r--r--src/libsyntax/ext/base.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index 9a06745967f..815159e94c8 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -16,6 +16,7 @@ use codemap;
 use codemap::{CodeMap, Span, ExpnId, ExpnInfo, NO_EXPANSION};
 use ext;
 use ext::expand;
+use ext::tt::macro_rules;
 use parse;
 use parse::parser;
 use parse::token;
@@ -568,6 +569,15 @@ impl<'a> ExtCtxt<'a> {
             }
         }
     }
+
+    pub fn insert_macro(&mut self, def: ast::MacroDef) {
+        if def.export {
+            self.exported_macros.push(def.clone());
+        }
+        let ext = macro_rules::compile(self, &def);
+        self.syntax_env.insert(def.ident.name, ext);
+    }
+
     /// Emit `msg` attached to `sp`, and stop compilation immediately.
     ///
     /// `span_err` should be strongly preferred where-ever possible: