summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2014-07-28 17:32:51 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2014-07-29 16:01:36 -0700
commite841a88b9298b0d1fef93192d8e163b44645fc73 (patch)
tree9ae56039fa607f96398be46cd12ce141b8065f31 /src/libsyntax/ext
parent1200ad0f06fc1ecc9a5ccf320e704c95786dbfe3 (diff)
downloadrust-e841a88b9298b0d1fef93192d8e163b44645fc73.tar.gz
rust-e841a88b9298b0d1fef93192d8e163b44645fc73.zip
syntax: add support for quoting arms
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/base.rs3
-rw-r--r--src/libsyntax/ext/quote.rs8
2 files changed, 11 insertions, 0 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index a66d6839ab0..d00406e07b7 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -382,6 +382,9 @@ fn initial_syntax_expander_table() -> SyntaxEnv {
     syntax_expanders.insert(intern("quote_pat"),
                        builtin_normal_expander(
                             ext::quote::expand_quote_pat));
+    syntax_expanders.insert(intern("quote_arm"),
+                       builtin_normal_expander(
+                            ext::quote::expand_quote_arm));
     syntax_expanders.insert(intern("quote_stmt"),
                        builtin_normal_expander(
                             ext::quote::expand_quote_stmt));
diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs
index 8f236cebcf4..dcfb0198127 100644
--- a/src/libsyntax/ext/quote.rs
+++ b/src/libsyntax/ext/quote.rs
@@ -349,6 +349,14 @@ pub fn expand_quote_pat(cx: &mut ExtCtxt,
     base::MacExpr::new(expanded)
 }
 
+pub fn expand_quote_arm(cx: &mut ExtCtxt,
+                        sp: Span,
+                        tts: &[ast::TokenTree])
+                        -> Box<base::MacResult> {
+    let expanded = expand_parse_call(cx, sp, "parse_arm", vec!(), tts);
+    base::MacExpr::new(expanded)
+}
+
 pub fn expand_quote_ty(cx: &mut ExtCtxt,
                        sp: Span,
                        tts: &[ast::TokenTree])