summary refs log tree commit diff
path: root/src/libsyntax/ext/tt
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-07-12 17:59:59 -0700
committerPaul Stansifer <paul.stansifer@gmail.com>2012-07-26 09:52:21 -0700
commit7f5fbd4f9d2f9f60240d80a103d00595328042cd (patch)
treecf83cd174f626026d37dae6a0f2f4ebed9f7e2f4 /src/libsyntax/ext/tt
parent60d682b57759a4fd3b6f666963e40ba457c2e4fc (diff)
downloadrust-7f5fbd4f9d2f9f60240d80a103d00595328042cd.tar.gz
rust-7f5fbd4f9d2f9f60240d80a103d00595328042cd.zip
Allow old-style syntax extensions to be called with new syntax.
Diffstat (limited to 'src/libsyntax/ext/tt')
-rw-r--r--src/libsyntax/ext/tt/earley_parser.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/tt/earley_parser.rs b/src/libsyntax/ext/tt/earley_parser.rs
index 4a710e7d04f..54e5a1b5867 100644
--- a/src/libsyntax/ext/tt/earley_parser.rs
+++ b/src/libsyntax/ext/tt/earley_parser.rs
@@ -110,6 +110,16 @@ enum parse_result {
     failure(codemap::span, ~str)
 }
 
+fn parse_or_else(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader,
+                 ms: ~[matcher]) -> hashmap<ident, @arb_depth> {
+    alt parse(sess, cfg, rdr, ms) {
+      success(m) { m }
+      failure(sp, str) {
+        sess.span_diagnostic.span_fatal(sp, str);
+      }
+    }
+}
+
 fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
     -> parse_result {
     let mut cur_eis = ~[];