diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-07-31 16:38:41 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-07-31 17:22:30 -0700 |
| commit | 7b2026bf218c416c653faf8bb8cca770d0bb2c0d (patch) | |
| tree | 9c09c3d7d1b1dcc2d12d11061bf5755727d83128 /src/libsyntax/parse | |
| parent | 7d18369804f23cd04d10f33e420fbcdc8ea76ecf (diff) | |
| download | rust-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.rs | 28 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 4 |
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", |
