diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-04-22 16:58:04 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-04-22 17:24:49 -0700 |
| commit | 512927573e08aba67832146a6097c8f6142f4fd4 (patch) | |
| tree | 86f92f103367b8b47c0675c6313a0abd9c7a7ce4 /src/librustsyntax/parse/parser.rs | |
| parent | 7321c1717128d8904f1c7862fb782250fdba6d92 (diff) | |
| download | rust-512927573e08aba67832146a6097c8f6142f4fd4.tar.gz rust-512927573e08aba67832146a6097c8f6142f4fd4.zip | |
syntax: Replace token::DOLLAR_PAREN, DOLLAR_NUM with just DOLLAR
Figure the rest out in the parser
Diffstat (limited to 'src/librustsyntax/parse/parser.rs')
| -rw-r--r-- | src/librustsyntax/parse/parser.rs | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/librustsyntax/parse/parser.rs b/src/librustsyntax/parse/parser.rs index 44d71fb3657..d4160e89bca 100644 --- a/src/librustsyntax/parse/parser.rs +++ b/src/librustsyntax/parse/parser.rs @@ -327,7 +327,7 @@ fn parse_region(p: parser) -> ast::region { fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { let lo = p.span.lo; - alt have_dollar(p) { + alt maybe_parse_dollar_mac(p) { some(e) { ret @{id: p.get_id(), node: ast::ty_mac(spanned(lo, p.span.hi, e)), @@ -440,19 +440,27 @@ fn parse_fn_block_arg(p: parser) -> ast::arg { ret {mode: m, ty: t, ident: i, id: p.get_id()}; } -fn have_dollar(p: parser) -> option<ast::mac_> { +fn maybe_parse_dollar_mac(p: parser) -> option<ast::mac_> { alt p.token { - token::DOLLAR_NUM(num) { - p.bump(); - some(ast::mac_var(num)) - } - token::DOLLAR_LPAREN { + token::DOLLAR { let lo = p.span.lo; p.bump(); - let e = parse_expr(p); - expect(p, token::RPAREN); - let hi = p.last_span.hi; - some(ast::mac_aq(ast_util::mk_sp(lo,hi), e)) + alt p.token { + token::LIT_INT(num, ast::ty_i) { + p.bump(); + some(ast::mac_var(num as uint)) + } + token::LPAREN { + p.bump(); + let e = parse_expr(p); + expect(p, token::RPAREN); + let hi = p.last_span.hi; + some(ast::mac_aq(ast_util::mk_sp(lo,hi), e)) + } + _ { + p.fatal("expected `(` or integer literal"); + } + } } _ {none} } @@ -623,7 +631,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { let mut ex: ast::expr_; - alt have_dollar(p) { + alt maybe_parse_dollar_mac(p) { some(x) {ret pexpr(mk_mac_expr(p, lo, p.span.hi, x));} _ {} } |
