about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-07-31 16:38:41 -0700
committerBrian Anderson <banderson@mozilla.com>2012-07-31 17:22:30 -0700
commit7b2026bf218c416c653faf8bb8cca770d0bb2c0d (patch)
tree9c09c3d7d1b1dcc2d12d11061bf5755727d83128 /src/libsyntax/parse
parent7d18369804f23cd04d10f33e420fbcdc8ea76ecf (diff)
downloadrust-7b2026bf218c416c653faf8bb8cca770d0bb2c0d.tar.gz
rust-7b2026bf218c416c653faf8bb8cca770d0bb2c0d.zip
Introduce 'return', 'match' and 'module' as synonyms
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs28
-rw-r--r--src/libsyntax/parse/token.rs4
2 files changed, 23 insertions, 9 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 46a9f062645..28ad7173be8 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -789,7 +789,7 @@ class parser {
             ret pexpr(self.parse_while_expr());
         } else if self.eat_keyword(~"loop") {
             ret pexpr(self.parse_loop_expr());
-        } else if self.eat_keyword(~"alt") {
+        } else if self.eat_keyword(~"alt") || self.eat_keyword(~"match") {
             ret pexpr(self.parse_alt_expr());
         } else if self.eat_keyword(~"fn") {
             let proto = self.parse_fn_ty_proto();
@@ -838,7 +838,7 @@ class parser {
             let e = self.parse_expr();
             ex = expr_assert(e);
             hi = e.span.hi;
-        } else if self.eat_keyword(~"ret") {
+        } else if self.eat_keyword(~"ret") || self.eat_keyword(~"return") {
             if can_begin_expr(self.token) {
                 let e = self.parse_expr();
                 hi = e.span.hi;
@@ -2569,7 +2569,11 @@ class parser {
     }
 
     fn parse_item_foreign_mod() -> item_info {
-        self.expect_keyword(~"mod");
+        if self.is_keyword(~"mod") {
+            self.expect_keyword(~"mod");
+        } else {
+            self.expect_keyword(~"module");
+        }
         let id = self.parse_ident();
         self.expect(token::LBRACE);
         let more_attrs = self.parse_inner_attrs_and_next();
@@ -2714,7 +2718,7 @@ class parser {
             } else {
                 self.parse_item_foreign_mod()
             }
-        } else if self.eat_keyword(~"mod") {
+        } else if self.eat_keyword(~"mod") || self.eat_keyword(~"module") {
             self.parse_item_mod()
         } else if self.eat_keyword(~"type") {
             self.parse_item_type()
@@ -2919,8 +2923,14 @@ class parser {
         let expect_mod = vec::len(outer_attrs) > 0u;
 
         let lo = self.span.lo;
-        if expect_mod || self.is_keyword(~"mod") {
-            self.expect_keyword(~"mod");
+        if expect_mod || self.is_keyword(~"mod") ||
+            self.is_keyword(~"module") {
+
+            if self.is_keyword(~"mod") {
+                self.expect_keyword(~"mod");
+            } else {
+                self.expect_keyword(~"module");
+            }
             let id = self.parse_ident();
             alt self.token {
               // mod x = "foo.rs";
@@ -2958,7 +2968,11 @@ class parser {
         // accept seeing the terminator next, so if we do see it then fail the
         // same way parse_crate_directive would
         if vec::len(first_outer_attr) > 0u && self.token == term {
-            self.expect_keyword(~"mod");
+            if self.is_keyword(~"mod") {
+                self.expect_keyword(~"mod");
+            } else {
+                self.expect_keyword(~"module");
+            }
         }
 
         let mut cdirs: ~[@crate_directive] = ~[];
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index 50eaa4d0632..e4386ab140f 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -327,11 +327,11 @@ fn restricted_keyword_table() -> hashmap<~str, ()> {
         ~"fail", ~"false", ~"fn", ~"for",
         ~"if", ~"iface", ~"impl", ~"import",
         ~"let", ~"log", ~"loop",
-        ~"mod", ~"mut",
+        ~"match", ~"mod", ~"module", ~"mut",
         ~"new",
         ~"owned",
         ~"pure",
-        ~"ret",
+        ~"ret", ~"return",
         ~"struct",
         ~"true", ~"trait", ~"type",
         ~"unchecked", ~"unsafe",