From b00f3074d4b4d68b3233a7f062ea13384fdccf2c Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 9 May 2011 14:17:28 -0700 Subject: Remove boxes from token.t. --- src/comp/front/token.rs | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'src/comp/front/token.rs') diff --git a/src/comp/front/token.rs b/src/comp/front/token.rs index f0b6c4be..4c2891f3 100644 --- a/src/comp/front/token.rs +++ b/src/comp/front/token.rs @@ -5,6 +5,8 @@ import std.Int; import std.UInt; import std.Str; +type str_num = uint; + tag binop { PLUS; MINUS; @@ -127,14 +129,14 @@ tag token { LIT_INT(int); LIT_UINT(uint); LIT_MACH_INT(ty_mach, int); - LIT_FLOAT(str); - LIT_MACH_FLOAT(ty_mach, str); - LIT_STR(str); + LIT_FLOAT(str_num); + LIT_MACH_FLOAT(ty_mach, str_num); + LIT_STR(str_num); LIT_CHAR(char); LIT_BOOL(bool); /* Name components */ - IDENT(str); + IDENT(str_num); IDX(int); UNDERSCORE; @@ -168,7 +170,7 @@ tag token { PORT; TASK; - BRACEQUOTE(str); + BRACEQUOTE(str_num); EOF; } @@ -188,7 +190,7 @@ fn binop_to_str(binop o) -> str { } } -fn to_str(token t) -> str { +fn to_str(lexer.reader r, token t) -> str { alt (t) { case (EQ) { ret "="; } @@ -301,10 +303,14 @@ fn to_str(token t) -> str { ret Int.to_str(i, 10u) + "_" + ty_mach_to_str(tm); } - case (LIT_FLOAT(?s)) { ret s; } + case (LIT_MACH_FLOAT(?tm, ?s)) { + ret r.get_str(s) + "_" + ty_mach_to_str(tm); + } + + case (LIT_FLOAT(?s)) { ret r.get_str(s); } case (LIT_STR(?s)) { // FIXME: escape. - ret "\"" + s + "\""; + ret "\"" + r.get_str(s) + "\""; } case (LIT_CHAR(?c)) { // FIXME: escape. @@ -319,7 +325,11 @@ fn to_str(token t) -> str { } /* Name components */ - case (IDENT(?s)) { auto si = "ident:"; si += s; ret si; } + case (IDENT(?s)) { + auto si = "ident:"; + si += r.get_str(s); + ret si; + } case (IDX(?i)) { ret "_" + Int.to_str(i, 10u); } case (UNDERSCORE) { ret "_"; } @@ -360,7 +370,6 @@ fn to_str(token t) -> str { } - // Local Variables: // fill-column: 78; // indent-tabs-mode: nil -- cgit v1.2.3