about summary refs log tree commit diff
path: root/src/boot
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2011-05-02 11:23:07 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-05-02 12:16:29 -0700
commitaa25f22f197682de3b18fc4c8ba068d1feda220f (patch)
tree6d01f8fbb5680964fd9c53564c96aa58cb75d3d1 /src/boot
parent870435caf55fe167862865bfe4196230ab7c1c6b (diff)
Use different syntax for checks that matter to typestate
This giant commit changes the syntax of Rust to use "assert" for
"check" expressions that didn't mean anything to the typestate
system, and continue using "check" for checks that are used as
part of typestate checking.

Most of the changes are just replacing "check" with "assert" in test
cases and rustc.
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/fe/item.ml8
-rw-r--r--src/boot/fe/lexer.mll1
-rw-r--r--src/boot/fe/token.ml2
3 files changed, 11 insertions, 0 deletions
diff --git a/src/boot/fe/item.ml b/src/boot/fe/item.ml
index 6b232e7eba7..70e59be3039 100644
--- a/src/boot/fe/item.ml
+++ b/src/boot/fe/item.ml
@@ -199,6 +199,14 @@ and parse_stmts_including_none (ps:pstate) : Ast.stmt array =
           bump ps;
           expect ps SEMI;
           [| span ps apos (lexpos ps) Ast.STMT_cont |]
+      | ASSERT ->
+          bump ps;
+          let (stmts, expr) =
+             ctxt "stmts: check value" parse_expr ps
+          in
+              expect ps SEMI;
+              spans ps stmts apos (Ast.STMT_check_expr expr)
+(* leaving check as it is; adding assert as a synonym for the "old" check *)
       | CHECK ->
           bump ps;
           begin
diff --git a/src/boot/fe/lexer.mll b/src/boot/fe/lexer.mll
index b375b874b89..a65acba1a6f 100644
--- a/src/boot/fe/lexer.mll
+++ b/src/boot/fe/lexer.mll
@@ -92,6 +92,7 @@
 
                 ("type", TYPE);
                 ("check", CHECK);
+                ("assert", ASSERT); 
                 ("claim", CLAIM);
                 ("prove", PROVE);
 
diff --git a/src/boot/fe/token.ml b/src/boot/fe/token.ml
index 0b157983984..27cb399b551 100644
--- a/src/boot/fe/token.ml
+++ b/src/boot/fe/token.ml
@@ -77,6 +77,7 @@ type token =
   (* Type and type-state keywords *)
   | TYPE
   | CHECK
+  | ASSERT
   | CLAIM
   | PROVE
 
@@ -237,6 +238,7 @@ let rec string_of_tok t =
     (* Type and type-state keywords *)
     | TYPE       -> "type"
     | CHECK      -> "check"
+    | ASSERT     -> "assert"
     | CLAIM      -> "claim"
     | PROVE      -> "prove"