diff options
| author | Graydon Hoare <[email protected]> | 2010-08-20 15:57:59 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-08-20 15:57:59 -0700 |
| commit | c0e173e19a3a7a69cda13e5c39da96c39fa09d73 (patch) | |
| tree | 6130cacc8cf4f3101ba5c3d83ac56c0ae017fc1a /src/comp/fe/token.rs | |
| parent | Redo _uint.to_str to work with chars and only one tmp str, built left-to-right. (diff) | |
| download | rust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.tar.xz rust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.zip | |
Stringify op tokens.
Diffstat (limited to 'src/comp/fe/token.rs')
| -rw-r--r-- | src/comp/fe/token.rs | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/comp/fe/token.rs b/src/comp/fe/token.rs index 8896b6f7..5e8171bc 100644 --- a/src/comp/fe/token.rs +++ b/src/comp/fe/token.rs @@ -152,10 +152,37 @@ type token = tag BRACEQUOTE(str), EOF()); +fn op_to_str(op o) -> str { + alt (o) { + case (PLUS()) { ret "+"; } + case (MINUS()) { ret "-"; } + case (STAR()) { ret "*"; } + case (SLASH()) { ret "/"; } + case (PERCENT()) { ret "%"; } + case (EQ()) { ret "="; } + case (LT()) { ret "<"; } + case (LE()) { ret "<="; } + case (EQEQ()) { ret "=="; } + case (NE()) { ret "!="; } + case (GE()) { ret ">="; } + case (GT()) { ret ">"; } + case (NOT()) { ret "!"; } + case (TILDE()) { ret "~"; } + case (CARET()) { ret "^"; } + case (AND()) { ret "&"; } + case (ANDAND()) { ret "&&"; } + case (OR()) { ret "|"; } + case (OROR()) { ret "||"; } + case (LSL()) { ret "<<"; } + case (LSR()) { ret ">>"; } + case (ASR()) { ret ">>>"; } + } +} + fn to_str(token t) -> str { alt (t) { - case (OP(_)) { ret "<op>"; } - case (OPEQ(_)) { ret "<op>="; } + case (OP(op)) { ret op_to_str(op); } + case (OPEQ(op)) { ret op_to_str(op) + "="; } case (AS()) { ret "as"; } case (WITH()) { ret "with"; } |