From da74a7f9ca774cd8addcb00a361bb230facc3b31 Mon Sep 17 00:00:00 2001 From: Kevin Atkinson Date: Wed, 1 Feb 2012 00:20:31 -0700 Subject: Make macro arg optional in syntax, again untested. --- src/comp/syntax/parse/parser.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/comp/syntax/parse') diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs index ae00c9fbce7..291f820df18 100644 --- a/src/comp/syntax/parse/parser.rs +++ b/src/comp/syntax/parse/parser.rs @@ -985,14 +985,20 @@ fn parse_syntax_ext_naked(p: parser, lo: uint) -> @ast::expr { let pth = parse_path(p); //temporary for a backwards-compatible cycle: let sep = seq_sep(token::COMMA); - let es = - if p.token == token::LPAREN { - parse_seq(token::LPAREN, token::RPAREN, sep, parse_expr, p) - } else { - parse_seq(token::LBRACKET, token::RBRACKET, sep, parse_expr, p) - }; - let hi = es.span.hi; - let e = mk_expr(p, es.span.lo, hi, ast::expr_vec(es.node, ast::imm)); + let e = none; + if (p.token == token::LPAREN || p.token == token::LBRACKET) { + let es = + if p.token == token::LPAREN { + parse_seq(token::LPAREN, token::RPAREN, + sep, parse_expr, p) + } else { + parse_seq(token::LBRACKET, token::RBRACKET, + sep, parse_expr, p) + }; + let hi = es.span.hi; + e = some(mk_expr(p, es.span.lo, hi, + ast::expr_vec(es.node, ast::imm))); + } let b = none; if p.token == token::LBRACE { p.bump(); -- cgit 1.4.1-3-g733a5