Skip to content

Commit 0e87f9e

Browse files
committed
syntax: Eliminate token's dependency on lexer
1 parent 932aa89 commit 0e87f9e

File tree

3 files changed

+21
-17
lines changed

3 files changed

+21
-17
lines changed

src/librustsyntax/parse/comments.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ fn gather_comments_and_literals(cm: codemap::codemap,
187187
literals += [{lit: s, pos: tok.chpos}];
188188
log(debug, "tok lit: " + s);
189189
} else {
190-
log(debug, "tok: " + token::to_str(rdr, tok.tok));
190+
log(debug, "tok: " + token::to_str(*rdr.interner, tok.tok));
191191
}
192192
first_read = false;
193193
}

src/librustsyntax/parse/parser.rs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,23 +155,27 @@ fn bad_expr_word_table() -> hashmap<str, ()> {
155155
words
156156
}
157157

158+
fn token_to_str(reader: reader, token: token::token) -> str {
159+
token::to_str(*reader.interner, token)
160+
}
161+
158162
fn unexpected_last(p: parser, t: token::token) -> ! {
159163
p.span_fatal(p.last_span,
160-
"unexpected token: '" + token::to_str(p.reader, t) + "'");
164+
"unexpected token: '" + token_to_str(p.reader, t) + "'");
161165
}
162166

163167
fn unexpected(p: parser) -> ! {
164-
p.fatal("unexpected token: '" + token::to_str(p.reader, p.token) + "'");
168+
p.fatal("unexpected token: '" + token_to_str(p.reader, p.token) + "'");
165169
}
166170

167171
fn expect(p: parser, t: token::token) {
168172
if p.token == t {
169173
p.bump();
170174
} else {
171175
let mut s: str = "expecting '";
172-
s += token::to_str(p.reader, t);
176+
s += token_to_str(p.reader, t);
173177
s += "' but found '";
174-
s += token::to_str(p.reader, p.token);
178+
s += token_to_str(p.reader, p.token);
175179
p.fatal(s + "'");
176180
}
177181
}
@@ -185,9 +189,9 @@ fn expect_gt(p: parser) {
185189
p.swap(token::BINOP(token::LSR), p.span.lo + 1u, p.span.hi);
186190
} else {
187191
let mut s: str = "expecting ";
188-
s += token::to_str(p.reader, token::GT);
192+
s += token_to_str(p.reader, token::GT);
189193
s += ", found ";
190-
s += token::to_str(p.reader, p.token);
194+
s += token_to_str(p.reader, p.token);
191195
p.fatal(s);
192196
}
193197
}
@@ -200,7 +204,7 @@ fn parse_ident(p: parser) -> ast::ident {
200204
alt p.token {
201205
token::IDENT(i, _) { p.bump(); ret p.get_str(i); }
202206
_ { p.fatal("expecting ident, found "
203-
+ token::to_str(p.reader, p.token)); }
207+
+ token_to_str(p.reader, p.token)); }
204208
}
205209
}
206210

@@ -242,7 +246,7 @@ fn eat_word(p: parser, word: str) -> bool {
242246
fn expect_word(p: parser, word: str) {
243247
if !eat_word(p, word) {
244248
p.fatal("expecting " + word + ", found " +
245-
token::to_str(p.reader, p.token));
249+
token_to_str(p.reader, p.token));
246250
}
247251
}
248252

@@ -1626,7 +1630,7 @@ fn parse_pat(p: parser) -> @ast::pat {
16261630
p.bump();
16271631
if p.token != token::RBRACE {
16281632
p.fatal("expecting }, found " +
1629-
token::to_str(p.reader, p.token));
1633+
token_to_str(p.reader, p.token));
16301634
}
16311635
etc = true;
16321636
break;
@@ -1926,7 +1930,7 @@ fn parse_block_tail_(p: parser, lo: uint, s: ast::blk_check_mode,
19261930
t {
19271931
if stmt_ends_with_semi(*stmt) {
19281932
p.fatal("expected ';' or '}' after expression but \
1929-
found '" + token::to_str(p.reader, t) +
1933+
found '" + token_to_str(p.reader, t) +
19301934
"'");
19311935
}
19321936
stmts += [stmt];
@@ -2251,7 +2255,7 @@ fn parse_mod_items(p: parser, term: token::token,
22512255
some(i) { items += [i]; }
22522256
_ {
22532257
p.fatal("expected item but found '" +
2254-
token::to_str(p.reader, p.token) + "'");
2258+
token_to_str(p.reader, p.token) + "'");
22552259
}
22562260
}
22572261
#debug["parse_mod_items: attrs=%?", attrs];

src/librustsyntax/parse/token.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import util::interner;
3-
import lexer::reader;
3+
import util::interner::interner;
44

55
type str_num = uint;
66

@@ -90,7 +90,7 @@ fn binop_to_str(o: binop) -> str {
9090
}
9191
}
9292
93-
fn to_str(r: reader, t: token) -> str {
93+
fn to_str(in: interner<str>, t: token) -> str {
9494
alt t {
9595
EQ { ret "="; }
9696
LT { ret "<"; }
@@ -149,17 +149,17 @@ fn to_str(r: reader, t: token) -> str {
149149
ret uint::to_str(u as uint, 10u) + ast_util::uint_ty_to_str(t);
150150
}
151151
LIT_FLOAT(s, t) {
152-
ret interner::get::<str>(*r.interner, s) +
152+
ret interner::get::<str>(in, s) +
153153
ast_util::float_ty_to_str(t);
154154
}
155155
LIT_STR(s) { // FIXME: escape.
156-
ret "\"" + interner::get::<str>(*r.interner, s) + "\"";
156+
ret "\"" + interner::get::<str>(in, s) + "\"";
157157
}
158158
LIT_BOOL(b) { if b { ret "true"; } else { ret "false"; } }
159159

160160
/* Name components */
161161
IDENT(s, _) {
162-
ret interner::get::<str>(*r.interner, s);
162+
ret interner::get::<str>(in, s);
163163
}
164164
IDX(i) { ret "_" + int::to_str(i, 10u); }
165165
UNDERSCORE { ret "_"; }

0 commit comments

Comments
 (0)