Convert rustc::syntax::token to istrs. Issue #855

This commit is contained in:
Brian Anderson 2011-08-27 00:19:30 -07:00
parent 58dedcd090
commit 26516dc8d2
3 changed files with 79 additions and 75 deletions

View File

@ -750,7 +750,7 @@ fn gather_comments_and_literals(cm: &codemap::codemap, path: &istr,
if is_lit(tok.tok) {
literals += [{lit: rdr.get_str_from(tok.bpos), pos: tok.chpos}];
}
log "tok: " + token::to_str(rdr, tok.tok);
log ~"tok: " + token::to_str(rdr, tok.tok);
first_read = false;
}
ret {cmnts: comments, lits: literals};

View File

@ -191,7 +191,7 @@ fn bad_expr_word_table() -> hashmap<istr, ()> {
fn unexpected(p: &parser, t: token::token) -> ! {
let s: str = "unexpected token: ";
s += token::to_str(p.get_reader(), t);
s += istr::to_estr(token::to_str(p.get_reader(), t));
p.fatal(s);
}
@ -200,9 +200,9 @@ fn expect(p: &parser, t: token::token) {
p.bump();
} else {
let s: str = "expecting ";
s += token::to_str(p.get_reader(), t);
s += istr::to_estr(token::to_str(p.get_reader(), t));
s += ", found ";
s += token::to_str(p.get_reader(), p.peek());
s += istr::to_estr(token::to_str(p.get_reader(), p.peek()));
p.fatal(s);
}
}
@ -216,9 +216,9 @@ fn expect_gt(p: &parser) {
p.swap(token::BINOP(token::LSR), p.get_lo_pos() + 1u, p.get_hi_pos());
} else {
let s: str = "expecting ";
s += token::to_str(p.get_reader(), token::GT);
s += istr::to_estr(token::to_str(p.get_reader(), token::GT));
s += ", found ";
s += token::to_str(p.get_reader(), p.peek());
s += istr::to_estr(token::to_str(p.get_reader(), p.peek()));
p.fatal(s);
}
}
@ -268,7 +268,7 @@ fn eat_word(p: &parser, word: &str) -> bool {
fn expect_word(p: &parser, word: &str) {
if !eat_word(p, word) {
p.fatal("expecting " + word + ", found " +
token::to_str(p.get_reader(), p.peek()));
istr::to_estr(token::to_str(p.get_reader(), p.peek())));
}
}
@ -1450,7 +1450,8 @@ fn parse_pat(p: &parser) -> @ast::pat {
p.bump();
if p.peek() != token::RBRACE {
p.fatal("expecting }, found " +
token::to_str(p.get_reader(), p.peek()));
istr::to_estr(
token::to_str(p.get_reader(), p.peek())));
}
etc = true;
break;
@ -1705,7 +1706,8 @@ fn parse_block_tail(p: &parser, lo: uint, s: ast::check_mode) -> ast::blk {
if stmt_ends_with_semi(*stmt) {
p.fatal("expected ';' or '}' after " +
"expression but found " +
token::to_str(p.get_reader(), t));
istr::to_estr(
token::to_str(p.get_reader(), t)));
}
stmts += [stmt];
}
@ -1923,7 +1925,8 @@ fn parse_mod_items(p: &parser, term: token::token,
some(i) { items += [i]; }
_ {
p.fatal("expected item but found " +
token::to_str(p.get_reader(), p.peek()));
istr::to_estr(
token::to_str(p.get_reader(), p.peek())));
}
}
}
@ -2119,7 +2122,8 @@ fn parse_item_tag(p: &parser, attrs: &[ast::attribute]) -> @ast::item {
token::RBRACE. {/* empty */ }
_ {
p.fatal("expected name of variant or '}' but found " +
token::to_str(p.get_reader(), tok));
istr::to_estr(
token::to_str(p.get_reader(), tok)));
}
}
}

View File

@ -85,103 +85,103 @@ tag token {
EOF;
}
fn binop_to_str(o: binop) -> str {
fn binop_to_str(o: binop) -> istr {
alt o {
PLUS. { ret "+"; }
MINUS. { ret "-"; }
STAR. { ret "*"; }
SLASH. { ret "/"; }
PERCENT. { ret "%"; }
CARET. { ret "^"; }
AND. { ret "&"; }
OR. { ret "|"; }
LSL. { ret "<<"; }
LSR. { ret ">>"; }
ASR. { ret ">>>"; }
PLUS. { ret ~"+"; }
MINUS. { ret ~"-"; }
STAR. { ret ~"*"; }
SLASH. { ret ~"/"; }
PERCENT. { ret ~"%"; }
CARET. { ret ~"^"; }
AND. { ret ~"&"; }
OR. { ret ~"|"; }
LSL. { ret ~"<<"; }
LSR. { ret ~">>"; }
ASR. { ret ~">>>"; }
}
}
fn to_str(r: lexer::reader, t: token) -> str {
fn to_str(r: lexer::reader, t: token) -> istr {
alt t {
EQ. { ret "="; }
LT. { ret "<"; }
LE. { ret "<="; }
EQEQ. { ret "=="; }
NE. { ret "!="; }
GE. { ret ">="; }
GT. { ret ">"; }
NOT. { ret "!"; }
TILDE. { ret "~"; }
OROR. { ret "||"; }
ANDAND. { ret "&&"; }
EQ. { ret ~"="; }
LT. { ret ~"<"; }
LE. { ret ~"<="; }
EQEQ. { ret ~"=="; }
NE. { ret ~"!="; }
GE. { ret ~">="; }
GT. { ret ~">"; }
NOT. { ret ~"!"; }
TILDE. { ret ~"~"; }
OROR. { ret ~"||"; }
ANDAND. { ret ~"&&"; }
BINOP(op) { ret binop_to_str(op); }
BINOPEQ(op) { ret binop_to_str(op) + "="; }
BINOPEQ(op) { ret binop_to_str(op) + ~"="; }
/* Structural symbols */
AT. {
ret "@";
ret ~"@";
}
DOT. { ret "."; }
ELLIPSIS. { ret "..."; }
COMMA. { ret ","; }
SEMI. { ret ";"; }
COLON. { ret ":"; }
MOD_SEP. { ret "::"; }
QUES. { ret "?"; }
RARROW. { ret "->"; }
LARROW. { ret "<-"; }
DARROW. { ret "<->"; }
LPAREN. { ret "("; }
RPAREN. { ret ")"; }
LBRACKET. { ret "["; }
RBRACKET. { ret "]"; }
LBRACE. { ret "{"; }
RBRACE. { ret "}"; }
POUND. { ret "#"; }
POUND_LBRACE. { ret "#{"; }
POUND_LT. { ret "#<"; }
DOT. { ret ~"."; }
ELLIPSIS. { ret ~"..."; }
COMMA. { ret ~","; }
SEMI. { ret ~";"; }
COLON. { ret ~":"; }
MOD_SEP. { ret ~"::"; }
QUES. { ret ~"?"; }
RARROW. { ret ~"->"; }
LARROW. { ret ~"<-"; }
DARROW. { ret ~"<->"; }
LPAREN. { ret ~"("; }
RPAREN. { ret ~")"; }
LBRACKET. { ret ~"["; }
RBRACKET. { ret ~"]"; }
LBRACE. { ret ~"{"; }
RBRACE. { ret ~"}"; }
POUND. { ret ~"#"; }
POUND_LBRACE. { ret ~"#{"; }
POUND_LT. { ret ~"#<"; }
/* Literals */
LIT_INT(i) {
ret istr::to_estr(int::to_str(i, 10u));
ret int::to_str(i, 10u);
}
LIT_UINT(u) { ret istr::to_estr(uint::to_str(u, 10u)); }
LIT_UINT(u) { ret uint::to_str(u, 10u); }
LIT_MACH_INT(tm, i) {
ret istr::to_estr(int::to_str(i, 10u)) + "_" + ty_mach_to_str(tm);
ret int::to_str(i, 10u) + ~"_" + istr::from_estr(ty_mach_to_str(tm));
}
LIT_MACH_FLOAT(tm, s) {
ret istr::to_estr(interner::get::<istr>(
*r.get_interner(), s) + ~"_") +
ty_mach_to_str(tm);
ret interner::get::<istr>(
*r.get_interner(), s) + ~"_" +
istr::from_estr(ty_mach_to_str(tm));
}
LIT_FLOAT(s) {
ret istr::to_estr(interner::get::<istr>(*r.get_interner(), s));
ret interner::get::<istr>(*r.get_interner(), s);
}
LIT_STR(s) { // FIXME: escape.
ret "\"" +
istr::to_estr(interner::get::<istr>(*r.get_interner(), s))
+ "\"";
ret ~"\"" +
interner::get::<istr>(*r.get_interner(), s)
+ ~"\"";
}
LIT_CHAR(c) {
// FIXME: escape.
let tmp = "'";
str::push_char(tmp, c);
str::push_byte(tmp, '\'' as u8);
let tmp = ~"'";
istr::push_char(tmp, c);
istr::push_byte(tmp, '\'' as u8);
ret tmp;
}
LIT_BOOL(b) { if b { ret "true"; } else { ret "false"; } }
LIT_BOOL(b) { if b { ret ~"true"; } else { ret ~"false"; } }
/* Name components */
IDENT(s, _) {
ret istr::to_estr(interner::get::<istr>(*r.get_interner(), s));
ret interner::get::<istr>(*r.get_interner(), s);
}
IDX(i) { ret istr::to_estr(~"_" + int::to_str(i, 10u)); }
UNDERSCORE. { ret "_"; }
BRACEQUOTE(_) { ret "<bracequote>"; }
EOF. { ret "<eof>"; }
IDX(i) { ret ~"_" + int::to_str(i, 10u); }
UNDERSCORE. { ret ~"_"; }
BRACEQUOTE(_) { ret ~"<bracequote>"; }
EOF. { ret ~"<eof>"; }
}
}