aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-02-14 16:33:25 -0800
committerGraydon Hoare <[email protected]>2011-02-14 16:33:25 -0800
commit890d027b653edd1722b186a5723944e622736313 (patch)
tree15195e4e0025ec7da3c3d96d7924f1f2009b14d1 /src
parentExpand expr_rec to take its optional trailing 'with' parameter. (diff)
downloadrust-890d027b653edd1722b186a5723944e622736313.tar.xz
rust-890d027b653edd1722b186a5723944e622736313.zip
Add parse support for expr_ext.
Diffstat (limited to 'src')
-rw-r--r--src/comp/front/ast.rs1
-rw-r--r--src/comp/front/parser.rs11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs
index 3aec3226..820bbbfa 100644
--- a/src/comp/front/ast.rs
+++ b/src/comp/front/ast.rs
@@ -164,6 +164,7 @@ tag expr_ {
expr_field(@expr, ident, ann);
expr_index(@expr, @expr, ann);
expr_path(path, option.t[def], ann);
+ expr_ext(vec[@expr], option.t[@expr], ann);
}
type lit = spanned[lit_];
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs
index 2f037dfb..e5ea673a 100644
--- a/src/comp/front/parser.rs
+++ b/src/comp/front/parser.rs
@@ -586,6 +586,17 @@ impure fn parse_bottom_expr(parser p) -> @ast.expr {
ex = ast.expr_bind(e, es.node, ast.ann_none);
}
+ case (token.POUND) {
+ p.bump();
+ auto pf = parse_expr;
+ auto es = parse_seq[@ast.expr](token.LPAREN,
+ token.RPAREN,
+ some(token.COMMA),
+ pf, p);
+ hi = es.span;
+ ex = ast.expr_ext(es.node, none[@ast.expr], ast.ann_none);
+ }
+
case (_) {
auto lit = parse_lit(p);
hi = lit.span;