diff options
| author | Paul Stansifer <paul.stansifer@gmail.com> | 2012-07-17 11:22:11 -0700 |
|---|---|---|
| committer | Paul Stansifer <paul.stansifer@gmail.com> | 2012-07-30 18:04:19 -0700 |
| commit | e040ab8423b7ae74eeb2ee5d9b1f1da5256f59fd (patch) | |
| tree | 68f9087d3330940d1b4ed468b13f282da2645119 /src/libsyntax/parse | |
| parent | a7125971c652393af33fbc7121edfd4ecb7307eb (diff) | |
| download | rust-e040ab8423b7ae74eeb2ee5d9b1f1da5256f59fd.tar.gz rust-e040ab8423b7ae74eeb2ee5d9b1f1da5256f59fd.zip | |
Impl-ize interner.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 19 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 18 |
3 files changed, 15 insertions, 27 deletions
diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index 94e12e16185..f70a1fae59d 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -1,4 +1,4 @@ -import util::interner::{interner,intern}; +import util::interner::interner; import diagnostic::span_handler; import codemap::span; import ext::tt::transcribe::{tt_reader, new_tt_reader, dup_tt_reader, @@ -217,7 +217,7 @@ fn consume_any_line_comment(rdr: string_reader) bump(rdr); } ret some({ - tok: token::DOC_COMMENT(intern(*rdr.interner, @acc)), + tok: token::DOC_COMMENT(rdr.interner.intern(@acc)), sp: ast_util::mk_sp(start_chpos, rdr.chpos) }); } else { @@ -262,7 +262,7 @@ fn consume_block_comment(rdr: string_reader) bump(rdr); bump(rdr); ret some({ - tok: token::DOC_COMMENT(intern(*rdr.interner, @acc)), + tok: token::DOC_COMMENT(rdr.interner.intern(@acc)), sp: ast_util::mk_sp(start_chpos, rdr.chpos) }); } @@ -395,13 +395,11 @@ fn scan_number(c: char, rdr: string_reader) -> token::token { if c == '3' && n == '2' { bump(rdr); bump(rdr); - ret token::LIT_FLOAT(intern(*rdr.interner, @num_str), - ast::ty_f32); + ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f32); } else if c == '6' && n == '4' { bump(rdr); bump(rdr); - ret token::LIT_FLOAT(intern(*rdr.interner, @num_str), - ast::ty_f64); + ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f64); /* FIXME (#2252): if this is out of range for either a 32-bit or 64-bit float, it won't be noticed till the back-end. */ @@ -410,8 +408,7 @@ fn scan_number(c: char, rdr: string_reader) -> token::token { } } if is_float { - ret token::LIT_FLOAT(intern(*rdr.interner, @num_str), - ast::ty_f); + ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f); } else { if str::len(num_str) == 0u { rdr.fatal(~"no valid digits found for number"); @@ -459,7 +456,7 @@ fn next_token_inner(rdr: string_reader) -> token::token { let is_mod_name = c == ':' && nextch(rdr) == ':'; // FIXME: perform NFKC normalization here. (Issue #2253) - ret token::IDENT(intern(*rdr.interner, @accum_str), is_mod_name); + ret token::IDENT(rdr.interner.intern(@accum_str), is_mod_name); } if is_dec_digit(c) { ret scan_number(c, rdr); @@ -623,7 +620,7 @@ fn next_token_inner(rdr: string_reader) -> token::token { } } bump(rdr); - ret token::LIT_STR(intern(*rdr.interner, @accum_str)); + ret token::LIT_STR(rdr.interner.intern(@accum_str)); } '-' { if nextch(rdr) == '>' { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 888bb256852..ac130024546 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -224,7 +224,7 @@ class parser { self.sess.span_diagnostic.span_warn(copy self.span, m) } pure fn get_str(i: token::str_num) -> @~str { - interner::get(*self.reader.interner(), i) + (*self.reader.interner()).get(i) } fn get_id() -> node_id { next_node_id(self.sess) } @@ -2121,8 +2121,7 @@ class parser { } if self.eat_keyword(~"of") { - let for_atom = interner::intern(*self.reader.interner(), - @~"for"); + let for_atom = (*self.reader.interner()).intern(@~"for"); traits = self.parse_trait_ref_list (token::IDENT(for_atom, false)); if traits.len() >= 1 && option::is_none(ident_old) { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index b6672936be6..eecb6cf405f 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -165,24 +165,16 @@ fn to_str(in: interner<@~str>, t: token) -> ~str { LIT_INT_UNSUFFIXED(i) { int::to_str(i as int, 10u) } - LIT_FLOAT(s, t) { - *interner::get(in, s) + - ast_util::float_ty_to_str(t) - } - LIT_STR(s) { - ~"\"" - + str::escape_default(*interner::get(in, s)) - + ~"\"" - } + LIT_FLOAT(s, t) { *in.get(s) + ast_util::float_ty_to_str(t) } + LIT_STR(s) { ~"\"" + str::escape_default( *in.get(s)) + ~"\"" } /* Name components */ - IDENT(s, _) { - *interner::get(in, s) - } + IDENT(s, _) { *in.get(s) } + UNDERSCORE { ~"_" } /* Other */ - DOC_COMMENT(s) { *interner::get(in, s) } + DOC_COMMENT(s) { *in.get(s) } EOF { ~"<eof>" } INTERPOLATED(nt) { ~"an interpolated " + |
