diff options
| author | Paul Stansifer <paul.stansifer@gmail.com> | 2011-07-27 17:36:37 -0700 |
|---|---|---|
| committer | Paul Stansifer <paul.stansifer@gmail.com> | 2011-07-28 12:12:08 -0700 |
| commit | 86f337484eeabb5e74060d3549974b3bd85e7f3b (patch) | |
| tree | 0685f587648b05ad133da83132d40fb85411437e /src/comp/syntax/parse | |
| parent | 3d7016ae9575a36fd96ec264274bbe0c660a7758 (diff) | |
| download | rust-86f337484eeabb5e74060d3549974b3bd85e7f3b.tar.gz rust-86f337484eeabb5e74060d3549974b3bd85e7f3b.zip | |
Change macro syntax to accept a single expr, not a sequence of exprs.
Diffstat (limited to 'src/comp/syntax/parse')
| -rw-r--r-- | src/comp/syntax/parse/parser.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs index 79728fade13..e24a5127074 100644 --- a/src/comp/syntax/parse/parser.rs +++ b/src/comp/syntax/parse/parser.rs @@ -1021,11 +1021,18 @@ fn parse_syntax_ext_naked(p: &parser, lo: uint) -> @ast::expr { if ivec::len(pth.node.idents) == 0u { p.fatal("expected a syntax expander name"); } - let es = + //temporary for a backwards-compatible cycle: + let es = if p.peek() == token::LPAREN { parse_seq(token::LPAREN, token::RPAREN, some(token::COMMA), - parse_expr, p); + parse_expr, p) + } else { + parse_seq(token::LBRACKET, token::RBRACKET, some(token::COMMA), + parse_expr, p) + }; let hi = es.span.hi; - ret mk_mac_expr(p, lo, hi, ast::mac_invoc(pth, es.node, none)); + let e = mk_expr(p, es.span.lo, hi, + ast::expr_vec(es.node, ast::imm, ast::sk_rc)); + ret mk_mac_expr(p, lo, hi, ast::mac_invoc(pth, e, none)); } fn parse_self_method(p: &parser) -> @ast::expr { |
