about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-07-05 17:33:39 -0700
committerPaul Stansifer <paul.stansifer@gmail.com>2012-07-05 18:09:31 -0700
commita8112f3b348645f6f487aaa1ae0918b719045f1b (patch)
treeba0e8358bfc4e18eadeb0b13d6164f20ff102681 /src/libsyntax/parse/parser.rs
parent7f9b1fbe350ee16008f16f13254420da3679f60d (diff)
downloadrust-a8112f3b348645f6f487aaa1ae0918b719045f1b.tar.gz
rust-a8112f3b348645f6f487aaa1ae0918b719045f1b.zip
Allow soft failure of the macro parser.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index ae3cbc141c2..8bac3e0d751 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -1210,7 +1210,7 @@ class parser {
 
     /* temporary */
     fn parse_tt_mac_demo() -> @expr {
-
+        import ext::tt::earley_parser::{parse,success,failure};
         let name_idx = @mut 0u;
         let ms = self.parse_seq(token::LBRACE, token::RBRACE,
                                 common::seq_sep_none(),
@@ -1225,8 +1225,10 @@ class parser {
                                            self.reader.interner(), none, tts)
                 as reader;
 
-            let matches = ext::tt::earley_parser::parse
-                (self.sess, self.cfg, rdr, ms);
+            let matches = alt parse(self.sess, self.cfg, rdr, ms) {
+                  success(m) { m }
+                  failure(sp, msg) { self.span_fatal(sp,msg); }
+                };
 
             let transcriber = ext::tt::transcribe::new_tt_reader
                 (self.reader.span_diag(), self.reader.interner(),