aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-08-20 15:57:59 -0700
committerGraydon Hoare <[email protected]>2010-08-20 15:57:59 -0700
commitc0e173e19a3a7a69cda13e5c39da96c39fa09d73 (patch)
tree6130cacc8cf4f3101ba5c3d83ac56c0ae017fc1a /src
parentRedo _uint.to_str to work with chars and only one tmp str, built left-to-right. (diff)
downloadrust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.tar.xz
rust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.zip
Stringify op tokens.
Diffstat (limited to 'src')
-rw-r--r--src/comp/fe/token.rs31
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"; }