diff options
| author | Paul Stansifer <paul.stansifer@gmail.com> | 2012-06-04 18:18:47 -0700 |
|---|---|---|
| committer | Paul Stansifer <paul.stansifer@gmail.com> | 2012-06-15 12:41:41 -0700 |
| commit | 85ded92736290073b6c591c2607ee3d829cb2874 (patch) | |
| tree | ce43cefc84f02a514e6e6c40c0b59168cfe76481 /src/libsyntax/parse.rs | |
| parent | d619e8995f70556d58e57a699ba726c17f9e48ad (diff) | |
| download | rust-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.rs | 10 |
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) +} |
