Parse semicolons

This commit is contained in:
Chris Wong 2014-12-21 16:47:40 +13:00
parent f8a8e89a30
commit d8a2aedbd7

View file

@ -45,6 +45,9 @@ pub enum Escape {
} }
pub fn parse(cx: &mut ExtCtxt, mut args: &[TokenTree]) -> Option<Vec<Markup>> { pub fn parse(cx: &mut ExtCtxt, mut args: &[TokenTree]) -> Option<Vec<Markup>> {
macro_rules! semi {
() => (TtToken(_, token::Semi))
}
macro_rules! minus { macro_rules! minus {
() => (TtToken(_, token::BinOp(token::Minus))) () => (TtToken(_, token::BinOp(token::Minus)))
} }
@ -55,6 +58,10 @@ pub fn parse(cx: &mut ExtCtxt, mut args: &[TokenTree]) -> Option<Vec<Markup>> {
let mut result = vec![]; let mut result = vec![];
loop { loop {
match match args { match match args {
[semi!(), ..] => {
args.shift(1);
continue
},
[minus!(), ref tt @ literal!(), ..] => { [minus!(), ref tt @ literal!(), ..] => {
args.shift(2); args.shift(2);
parse_literal(cx, tt, true) parse_literal(cx, tt, true)