diff options
| author | Brian Anderson <[email protected]> | 2011-03-06 16:17:12 -0500 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-03-14 16:41:46 -0700 |
| commit | 292dac644f3f8a84db9f97bf1978f9e9c56e7881 (patch) | |
| tree | 7b5a0d6cb2a338dd52c2fd3473f6338bd42ff5e1 /src/comp/front | |
| parent | Parse port and chan types, constructors, send statements (diff) | |
| download | rust-292dac644f3f8a84db9f97bf1978f9e9c56e7881.tar.xz rust-292dac644f3f8a84db9f97bf1978f9e9c56e7881.zip | |
Parse receive expressions
Diffstat (limited to 'src/comp/front')
| -rw-r--r-- | src/comp/front/ast.rs | 1 | ||||
| -rw-r--r-- | src/comp/front/parser.rs | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs index 694ff448..edc9c4a2 100644 --- a/src/comp/front/ast.rs +++ b/src/comp/front/ast.rs @@ -245,6 +245,7 @@ tag expr_ { expr_port(ann); expr_chan(@expr, ann); expr_send(@expr /* TODO: @expr|is_lval */, @expr, ann); + expr_recv(@expr /* TODO: @expr|is_lval */, @expr, ann); } type lit = spanned[lit_]; diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 1f7d4686..64f954b8 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -1119,6 +1119,12 @@ impure fn parse_assign_expr(parser p) -> @ast.expr { ret @spanned(lo, rhs.span, ast.expr_send(lhs, rhs, ast.ann_none)); } + case (token.LARROW) { + p.bump(); + auto rhs = parse_expr(p); + ret @spanned(lo, rhs.span, + ast.expr_send(lhs, rhs, ast.ann_none)); + } case (_) { /* fall through */ } } ret lhs; |