From 6d47d2abdee023f46b35b95e26e418ab9d67d39c Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 22 Oct 2010 15:37:42 -0700 Subject: Implement check-exprs, un-xfail 5 rustc tests. --- src/comp/front/ast.rs | 1 + src/comp/front/parser.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'src/comp/front') diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs index 2135a97d..0d042d0d 100644 --- a/src/comp/front/ast.rs +++ b/src/comp/front/ast.rs @@ -67,6 +67,7 @@ tag stmt_ { stmt_decl(@decl); stmt_ret(option[@expr]); stmt_log(@expr); + stmt_check_expr(@expr); stmt_expr(@expr); } diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 96158f1b..42ffc4c6 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -690,6 +690,22 @@ io fn parse_stmt(parser p) -> @ast.stmt { ret @spanned(lo, hi, ast.stmt_log(e)); } + case (token.CHECK) { + p.bump(); + alt (p.peek()) { + case (token.LPAREN) { + auto e = parse_expr(p); + auto hi = p.get_span(); + expect(p, token.SEMI); + ret @spanned(lo, hi, ast.stmt_check_expr(e)); + } + case (_) { + p.get_session().unimpl("constraint-check stmt"); + } + } + } + + case (token.LET) { auto decl = parse_let(p); auto hi = p.get_span(); -- cgit v1.2.3