Skip to content

Commit 2ef2bda

Browse files
committed
Move brace/if/for/while/do/alt/spawn exprs into bottom_expr rule.
1 parent 4eef7b6 commit 2ef2bda

File tree

1 file changed

+19
-23
lines changed

1 file changed

+19
-23
lines changed

src/comp/front/parser.rs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,24 @@ fn parse_bottom_expr(&parser p) -> @ast::expr {
771771
hi = p.get_hi_pos();
772772
expect(p, token::RPAREN);
773773
ret @spanned(lo, hi, e.node);
774+
775+
} else if (p.peek() == token::LBRACE) {
776+
auto blk = parse_block(p);
777+
ret @spanned(blk.span.lo, blk.span.hi,
778+
ast::expr_block(blk, p.get_ann()));
779+
} else if (eat_word(p, "if")) {
780+
ret parse_if_expr(p);
781+
} else if (eat_word(p, "for")) {
782+
ret parse_for_expr(p);
783+
} else if (eat_word(p, "while")) {
784+
ret parse_while_expr(p);
785+
} else if (eat_word(p, "do")) {
786+
ret parse_do_while_expr(p);
787+
} else if (eat_word(p, "alt")) {
788+
ret parse_alt_expr(p);
789+
} else if (eat_word(p, "spawn")) {
790+
ret parse_spawn_expr(p);
791+
774792
} else if (eat_word(p, "tup")) {
775793
fn parse_elt(&parser p) -> ast::elt {
776794
auto m = parse_mutability(p);
@@ -1415,33 +1433,11 @@ fn parse_expr(&parser p) -> @ast::expr {
14151433
fn parse_expr_res(&parser p, restriction r) -> @ast::expr {
14161434
auto old = p.get_restriction();
14171435
p.restrict(r);
1418-
auto e = parse_expr_inner(p);
1436+
auto e = parse_assign_expr(p);
14191437
p.restrict(old);
14201438
ret e;
14211439
}
14221440

1423-
fn parse_expr_inner(&parser p) -> @ast::expr {
1424-
if (p.peek() == token::LBRACE) {
1425-
auto blk = parse_block(p);
1426-
ret @spanned(blk.span.lo, blk.span.hi,
1427-
ast::expr_block(blk, p.get_ann()));
1428-
} else if (eat_word(p, "if")) {
1429-
ret parse_if_expr(p);
1430-
} else if (eat_word(p, "for")) {
1431-
ret parse_for_expr(p);
1432-
} else if (eat_word(p, "while")) {
1433-
ret parse_while_expr(p);
1434-
} else if (eat_word(p, "do")) {
1435-
ret parse_do_while_expr(p);
1436-
} else if (eat_word(p, "alt")) {
1437-
ret parse_alt_expr(p);
1438-
} else if (eat_word(p, "spawn")) {
1439-
ret parse_spawn_expr(p);
1440-
} else {
1441-
ret parse_assign_expr(p);
1442-
}
1443-
}
1444-
14451441
fn parse_initializer(&parser p) -> option::t[ast::initializer] {
14461442
alt (p.peek()) {
14471443
case (token::EQ) {

0 commit comments

Comments
 (0)