about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-11-03 10:29:48 -0700
committerGraydon Hoare <graydon@mozilla.com>2010-11-03 10:29:48 -0700
commitdc299c9a19cd8e643258f07a485eaeecb3e900b9 (patch)
tree4062a7c079e90f1d43ad73dbf805b86259b4e683 /src/comp
parent1e22a55ff25612753665a76eb3b83628379334a0 (diff)
downloadrust-dc299c9a19cd8e643258f07a485eaeecb3e900b9.tar.gz
rust-dc299c9a19cd8e643258f07a485eaeecb3e900b9.zip
Teach rustc lexer about changes to stratum, opacity and effect keywords.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/front/lexer.rs6
-rw-r--r--src/comp/front/token.rs20
2 files changed, 21 insertions, 5 deletions
diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs
index fbeee8cbcfe..d2f308e3238 100644
--- a/src/comp/front/lexer.rs
+++ b/src/comp/front/lexer.rs
@@ -117,8 +117,12 @@ fn new_reader(stdio_reader rdr, str filename) -> reader
     keywords.insert("claim", token.CLAIM);
     keywords.insert("prove", token.PROVE);
 
-    keywords.insert("io", token.IO);
+    keywords.insert("abs", token.ABS);
+
     keywords.insert("state", token.STATE);
+    keywords.insert("gc", token.GC);
+
+    keywords.insert("impure", token.IMPURE);
     keywords.insert("unsafe", token.UNSAFE);
 
     keywords.insert("native", token.NATIVE);
diff --git a/src/comp/front/token.rs b/src/comp/front/token.rs
index b9b2fa07fa4..84869aacabc 100644
--- a/src/comp/front/token.rs
+++ b/src/comp/front/token.rs
@@ -89,9 +89,15 @@ tag token {
     CLAIM;
     PROVE;
 
-    /* Effect keywords */
-    IO;
+    /* Opacity keywords */
+    ABS;
+
+    /* Stratum keywords */
     STATE;
+    GC;
+
+    /* Effect keywords */
+    IMPURE;
     UNSAFE;
 
     /* Type qualifiers */
@@ -249,9 +255,15 @@ fn to_str(token t) -> str {
         case (CLAIM) { ret "claim"; }
         case (PROVE) { ret "prove"; }
 
-        /* Effect keywords */
-        case (IO) { ret "io"; }
+        /* Opacity keywords */
+        case (ABS) { ret "abs"; }
+
+        /* Stratum keywords */
         case (STATE) { ret "state"; }
+        case (GC) { ret "gc"; }
+
+        /* Effect keywords */
+        case (IMPURE) { ret "impure"; }
         case (UNSAFE) { ret "unsafe"; }
 
         /* Type qualifiers */