Skip to content

Commit

Permalink
Remove support for $(...) form of quasi-quotes, use #ast{...} instead.
Browse files Browse the repository at this point in the history
  • Loading branch information
kevina authored and brson committed Feb 5, 2012
1 parent 91b6dc5 commit 1d855eb
Show file tree
Hide file tree
Showing 10 changed files with 5 additions and 29 deletions.
1 change: 0 additions & 1 deletion src/comp/syntax/ast.rs
Expand Up @@ -293,7 +293,6 @@ enum mac_ {
mac_embed_block(blk),
mac_ellipsis,
// the span is used by the quoter/anti-quoter ...
mac_qq(span /* span of expr */, @expr), // quasi-quote
mac_aq(span /* span of quote */, @expr), // anti-quote
mac_var(uint)
}
Expand Down
9 changes: 1 addition & 8 deletions src/comp/syntax/ext/expand.rs
Expand Up @@ -5,7 +5,7 @@ import option::{none, some};
import std::map::hashmap;
import vec;

import syntax::ast::{crate, expr_, expr_mac, mac_invoc, mac_qq};
import syntax::ast::{crate, expr_, expr_mac, mac_invoc};
import syntax::fold::*;
import syntax::ext::base::*;
import syntax::ext::qquote::{expand_qquote,qq_helper};
Expand Down Expand Up @@ -46,13 +46,6 @@ fn expand_expr(exts: hashmap<str, syntax_extension>, cx: ext_ctxt,
}
}
}
mac_qq(sp, exp) {
let r = expand_qquote(cx, sp, none, exp);
// need to keep going, resuls may contain embedded qquote or
// macro that need expanding
let r2 = fld.fold_expr(r);
(r2.node, s)
}
_ { cx.span_bug(mac.span, "naked syntactic bit") }
}
}
Expand Down
10 changes: 3 additions & 7 deletions src/comp/syntax/ext/qquote.rs
Expand Up @@ -3,7 +3,7 @@ import driver::session;
import option::{none, some};

import syntax::ast::{crate, expr_, mac_invoc,
mac_qq, mac_aq, mac_var};
mac_aq, mac_var};
import syntax::fold::*;
import syntax::visit::*;
import syntax::ext::base::*;
Expand Down Expand Up @@ -156,7 +156,7 @@ fn expand_ast(ecx: ext_ctxt, _sp: span,
let node = parse_from_source_str
(f, fname, some(ss), str,
ecx.session().opts.cfg, ecx.session().parse_sess);
ret expand_qquote(ecx, node.span(), some(*str), node);
ret expand_qquote(ecx, node.span(), *str, node);
}

ret alt what {
Expand Down Expand Up @@ -185,13 +185,9 @@ fn parse_item(p: parser) -> @ast::item {
}

fn expand_qquote<N: qq_helper>
(ecx: ext_ctxt, sp: span, maybe_str: option::t<str>, node: N)
(ecx: ext_ctxt, sp: span, str: str, node: N)
-> @ast::expr
{
let str = alt(maybe_str) {
some(s) {s}
none {codemap::span_to_snippet(sp, ecx.session().parse_sess.cm)}
};
let qcx = gather_anti_quotes(sp.lo, node);
let cx = qcx;
let prev = 0u;
Expand Down
1 change: 0 additions & 1 deletion src/comp/syntax/ext/simplext.rs
Expand Up @@ -587,7 +587,6 @@ fn p_t_s_r_mac(cx: ext_ctxt, mac: ast::mac, s: selector, b: binders) {
none { no_des(cx, blk.span, "under `#{}`"); }
}
}
ast::mac_qq(_,_) { no_des(cx, mac.span, "quasiquotes"); }
ast::mac_aq(_,_) { no_des(cx, mac.span, "antiquotes"); }
ast::mac_var(_) { no_des(cx, mac.span, "antiquote variables"); }
}
Expand Down
1 change: 0 additions & 1 deletion src/comp/syntax/fold.rs
Expand Up @@ -144,7 +144,6 @@ fn fold_mac_(m: mac, fld: ast_fold) -> mac {
mac_embed_type(ty) { mac_embed_type(fld.fold_ty(ty)) }
mac_embed_block(blk) { mac_embed_block(fld.fold_block(blk)) }
mac_ellipsis { mac_ellipsis }
mac_qq(_,_) { /* fixme */ m.node }
mac_aq(_,_) { /* fixme */ m.node }
mac_var(_) { /* fixme */ m.node }
},
Expand Down
1 change: 0 additions & 1 deletion src/comp/syntax/parse/lexer.rs
Expand Up @@ -349,7 +349,6 @@ fn next_token_inner(rdr: reader) -> token::token {
'#' {
rdr.bump();
if rdr.curr == '<' { rdr.bump(); ret token::POUND_LT; }
if rdr.curr == '(' { rdr.bump(); ret token::POUND_LPAREN; }
if rdr.curr == '{' { rdr.bump(); ret token::POUND_LBRACE; }
ret token::POUND;
}
Expand Down
6 changes: 0 additions & 6 deletions src/comp/syntax/parse/parser.rs
Expand Up @@ -880,12 +880,6 @@ fn parse_bottom_expr(p: parser) -> pexpr {
} else if p.token == token::ELLIPSIS {
p.bump();
ret pexpr(mk_mac_expr(p, lo, p.span.hi, ast::mac_ellipsis));
} else if p.token == token::POUND_LPAREN {
p.bump();
let e = parse_expr(p);
expect(p, token::RPAREN);
ret pexpr(mk_mac_expr(p, lo, p.span.hi,
ast::mac_qq(e.span, e)));
} else if eat_word(p, "bind") {
let e = parse_expr_res(p, RESTRICT_NO_CALL_EXPRS);
fn parse_expr_opt(p: parser) -> option<@ast::expr> {
Expand Down
2 changes: 0 additions & 2 deletions src/comp/syntax/parse/token.rs
Expand Up @@ -53,7 +53,6 @@ enum token {
LBRACE,
RBRACE,
POUND,
POUND_LPAREN,
POUND_LBRACE,
POUND_LT,

Expand Down Expand Up @@ -128,7 +127,6 @@ fn to_str(r: reader, t: token) -> str {
LBRACE { ret "{"; }
RBRACE { ret "}"; }
POUND { ret "#"; }
POUND_LPAREN { ret "#("; }
POUND_LBRACE { ret "#{"; }
POUND_LT { ret "#<"; }

Expand Down
1 change: 0 additions & 1 deletion src/comp/syntax/visit.rs
Expand Up @@ -300,7 +300,6 @@ fn visit_mac<E>(m: mac, e: E, v: vt<E>) {
ast::mac_embed_type(ty) { v.visit_ty(ty, e, v); }
ast::mac_embed_block(blk) { v.visit_block(blk, e, v); }
ast::mac_ellipsis { }
ast::mac_qq(_, e) { /* FIXME: maybe visit */ }
ast::mac_aq(_, e) { /* FIXME: maybe visit */ }
ast::mac_var(_) { }
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-pass/qquote.rs
Expand Up @@ -53,7 +53,7 @@ fn main() {
let expr3 = #ast{2 - $(abc) + 7};
check_pp(expr3, pprust::print_expr, "2 - 23 + 7");

let expr4 = #ast{2 - $(#(3)) + 9};
let expr4 = #ast{2 - $(#ast{3}) + 9};
check_pp(expr4, pprust::print_expr, "2 - 3 + 9");

let ty = #ast(ty){int};
Expand Down

0 comments on commit 1d855eb

Please sign in to comment.