diff options
| author | Paul Stansifer <paul.stansifer@gmail.com> | 2011-06-29 18:07:04 -0700 |
|---|---|---|
| committer | Paul Stansifer <paul.stansifer@gmail.com> | 2011-07-11 18:52:10 -0700 |
| commit | 80cf4ecd3bfe602004145e57cf7fdfb067b76ce1 (patch) | |
| tree | 7fe2ceabdf59e39be101924ee18d6afdefcd00b5 /src/comp/syntax/parse/token.rs | |
| parent | fd24fd5e318c5bfbe0cba49f0b49edd3c112f451 (diff) | |
| download | rust-80cf4ecd3bfe602004145e57cf7fdfb067b76ce1.tar.gz rust-80cf4ecd3bfe602004145e57cf7fdfb067b76ce1.zip | |
Add nodes for embedding types and blocks in expressions for macros.
Diffstat (limited to 'src/comp/syntax/parse/token.rs')
| -rw-r--r-- | src/comp/syntax/parse/token.rs | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/comp/syntax/parse/token.rs b/src/comp/syntax/parse/token.rs index 2ce5d9e6cb4..6ba8c6ce525 100644 --- a/src/comp/syntax/parse/token.rs +++ b/src/comp/syntax/parse/token.rs @@ -60,6 +60,8 @@ tag token { LBRACE; RBRACE; POUND; + POUND_LBRACE; + POUND_LT; /* Literals */ LIT_INT(int); @@ -110,11 +112,8 @@ fn to_str(lexer::reader r, token t) -> str { case (ANDAND) { ret "&&"; } case (BINOP(?op)) { ret binop_to_str(op); } case (BINOPEQ(?op)) { ret binop_to_str(op) + "="; } - case ( /* Structural symbols */ - AT) { - ret "@"; - } + case (AT) { ret "@"; } case (DOT) { ret "."; } case (COMMA) { ret ","; } case (SEMI) { ret ";"; } @@ -133,11 +132,10 @@ fn to_str(lexer::reader r, token t) -> str { case (LBRACE) { ret "{"; } case (RBRACE) { ret "}"; } case (POUND) { ret "#"; } - case ( + case (POUND_LBRACE) { ret "#{"; } + case (POUND_LT) { ret "#<"; } /* Literals */ - LIT_INT(?i)) { - ret int::to_str(i, 10u); - } + case (LIT_INT(?i)) { ret int::to_str(i, 10u); } case (LIT_UINT(?u)) { ret uint::to_str(u, 10u); } case (LIT_MACH_INT(?tm, ?i)) { ret int::to_str(i, 10u) + "_" + ty_mach_to_str(tm); @@ -147,25 +145,19 @@ fn to_str(lexer::reader r, token t) -> str { ty_mach_to_str(tm); } case (LIT_FLOAT(?s)) { ret interner::get[str](*r.get_interner(), s); } - case (LIT_STR(?s)) { - // FIXME: escape. - + case (LIT_STR(?s)) { // FIXME: escape. ret "\"" + interner::get[str](*r.get_interner(), s) + "\""; } case (LIT_CHAR(?c)) { // FIXME: escape. - auto tmp = "'"; str::push_char(tmp, c); str::push_byte(tmp, '\'' as u8); ret tmp; } case (LIT_BOOL(?b)) { if (b) { ret "true"; } else { ret "false"; } } - case ( /* Name components */ - IDENT(?s, _)) { - ret interner::get[str](*r.get_interner(), s); - } + case (IDENT(?s, _)) { ret interner::get[str](*r.get_interner(), s); } case (IDX(?i)) { ret "_" + int::to_str(i, 10u); } case (UNDERSCORE) { ret "_"; } case (BRACEQUOTE(_)) { ret "<bracequote>"; } |
