about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-08-20 15:57:59 -0700
committerGraydon Hoare <graydon@mozilla.com>2010-08-20 15:57:59 -0700
commitc0e173e19a3a7a69cda13e5c39da96c39fa09d73 (patch)
tree6130cacc8cf4f3101ba5c3d83ac56c0ae017fc1a /src/comp
parenta2bd79a6acc9fc9f1dba6e718c9d9eda7791a277 (diff)
downloadrust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.tar.gz
rust-c0e173e19a3a7a69cda13e5c39da96c39fa09d73.zip
Stringify op tokens.
Diffstat (limited to 'src/comp')
-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 8896b6f7767..5e8171bccc0 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"; }