about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2011-06-13 15:48:55 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-06-16 11:47:54 -0700
commite8d2d27a8866e9d0790905aee190828601d8784e (patch)
treebb34cda72e7ccea68cc991f0428f155e553fa12d /src/comp
parent32895ad99013b088b7dee51d173e177536103673 (diff)
downloadrust-e8d2d27a8866e9d0790905aee190828601d8784e.tar.gz
rust-e8d2d27a8866e9d0790905aee190828601d8784e.zip
Add "<->" to the token definition and the lexer.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/front/lexer.rs8
-rw-r--r--src/comp/front/token.rs2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs
index 7f013f7c614..89b7d76e08b 100644
--- a/src/comp/front/lexer.rs
+++ b/src/comp/front/lexer.rs
@@ -389,8 +389,14 @@ fn next_token(&reader rdr) -> token::token {
             alt (rdr.curr()) {
                 case ('=') { rdr.bump(); ret token::LE; }
                 case ('<') { ret binop(rdr, token::LSL); }
-                case ('-') { rdr.bump(); ret token::LARROW; }
                 case ('|') { rdr.bump(); ret token::SEND; }
+                case ('-') {
+                    rdr.bump();
+                    alt (rdr.curr()) {
+                        case ('>') { rdr.bump(); ret token::DARROW; }
+                        case (_) { ret token::LARROW; }
+                    }
+                }
                 case (_) { ret token::LT; }
             }
         }
diff --git a/src/comp/front/token.rs b/src/comp/front/token.rs
index 30329e1ffd3..57a75b1e40d 100644
--- a/src/comp/front/token.rs
+++ b/src/comp/front/token.rs
@@ -52,6 +52,7 @@ tag token {
     SEND;
     RECV;
     LARROW;
+    DARROW;
     LPAREN;
     RPAREN;
     LBRACKET;
@@ -124,6 +125,7 @@ fn to_str(lexer::reader r, token t) -> str {
         case (SEND) { ret "<|"; }
         case (RECV) { ret "<|"; }
         case (LARROW) { ret "<-"; }
+        case (DARROW) { ret "<->"; }
         case (LPAREN) { ret "("; }
         case (RPAREN) { ret ")"; }
         case (LBRACKET) { ret "["; }