aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;