summary refs log tree commit diff
path: root/src/libsyntax/parse.rs
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-06-04 18:18:47 -0700
committerPaul Stansifer <paul.stansifer@gmail.com>2012-06-15 12:41:41 -0700
commit85ded92736290073b6c591c2607ee3d829cb2874 (patch)
treece43cefc84f02a514e6e6c40c0b59168cfe76481 /src/libsyntax/parse.rs
parentd619e8995f70556d58e57a699ba726c17f9e48ad (diff)
downloadrust-85ded92736290073b6c591c2607ee3d829cb2874.tar.gz
rust-85ded92736290073b6c591c2607ee3d829cb2874.zip
Make it possible to make tt_reader-based parsers.
Diffstat (limited to 'src/libsyntax/parse.rs')
-rw-r--r--src/libsyntax/parse.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libsyntax/parse.rs b/src/libsyntax/parse.rs
index c08ad9927ad..29cbb9db839 100644
--- a/src/libsyntax/parse.rs
+++ b/src/libsyntax/parse.rs
@@ -18,7 +18,8 @@ import attr::parser_attr;
 import common::parser_common;
 import ast::node_id;
 import util::interner;
-import lexer::{string_reader_as_reader, reader, string_reader};
+import lexer::{string_reader_as_reader, tt_reader_as_reader,
+               reader, string_reader, tt_reader};
 
 type parse_sess = @{
     cm: codemap::codemap,
@@ -178,3 +179,10 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, +path: str,
     let (p, _) = new_parser_etc_from_file(sess, cfg, path, ftype);
     ret p;
 }
+
+fn new_parser_from_tt(sess: parse_sess, cfg: ast::crate_cfg,
+                      itr: @interner::interner<@str>, tt: ast::token_tree)
+    -> parser {
+    let trdr = lexer::new_tt_reader(sess.span_diagnostic, itr, tt);
+    ret parser(sess, cfg, trdr as reader, parser::SOURCE_FILE)
+}