2011-08-03 13:46:32 -05:00
|
|
|
import base::*;
|
|
|
|
|
2012-02-01 00:50:12 -06:00
|
|
|
fn expand_syntax_ext(cx: ext_ctxt, sp: codemap::span, arg: ast::mac_arg,
|
2012-01-31 21:30:26 -06:00
|
|
|
_body: ast::mac_body) -> @ast::expr {
|
2012-02-01 01:20:31 -06:00
|
|
|
let arg = get_mac_arg(cx,sp,arg);
|
2011-08-19 17:16:48 -05:00
|
|
|
let args: [@ast::expr] =
|
|
|
|
alt arg.node {
|
|
|
|
ast::expr_vec(elts, _) { elts }
|
|
|
|
_ {
|
2011-09-02 17:34:58 -05:00
|
|
|
cx.span_fatal(sp, "#concat_idents requires a vector argument .")
|
2011-08-19 17:16:48 -05:00
|
|
|
}
|
|
|
|
};
|
2012-03-15 08:47:03 -05:00
|
|
|
let mut res: ast::ident = "";
|
2012-04-06 13:01:43 -05:00
|
|
|
for args.each {|e|
|
2011-09-02 17:34:58 -05:00
|
|
|
res += expr_to_ident(cx, e, "expected an ident");
|
2011-08-03 13:46:32 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
ret @{id: cx.next_id(),
|
2012-04-23 06:04:46 -05:00
|
|
|
node: ast::expr_path(@{span: sp, global: false, idents: [res],
|
2012-04-24 17:52:52 -05:00
|
|
|
rp: none, types: []}),
|
2011-08-03 13:46:32 -05:00
|
|
|
span: sp};
|
2011-08-04 18:20:09 -05:00
|
|
|
}
|