diff options
| author | Graydon Hoare <[email protected]> | 2011-02-14 16:33:25 -0800 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-02-14 16:33:25 -0800 |
| commit | 890d027b653edd1722b186a5723944e622736313 (patch) | |
| tree | 15195e4e0025ec7da3c3d96d7924f1f2009b14d1 /src/comp/front | |
| parent | Expand expr_rec to take its optional trailing 'with' parameter. (diff) | |
| download | rust-890d027b653edd1722b186a5723944e622736313.tar.xz rust-890d027b653edd1722b186a5723944e622736313.zip | |
Add parse support for expr_ext.
Diffstat (limited to 'src/comp/front')
| -rw-r--r-- | src/comp/front/ast.rs | 1 | ||||
| -rw-r--r-- | src/comp/front/parser.rs | 11 |
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; |