diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs index 9e5c878..3e9e975 100644 --- a/maud_macros/src/parse.rs +++ b/maud_macros/src/parse.rs @@ -45,6 +45,9 @@ pub enum Escape { } pub fn parse(cx: &mut ExtCtxt, mut args: &[TokenTree]) -> Option<Vec<Markup>> { + macro_rules! semi { + () => (TtToken(_, token::Semi)) + } macro_rules! 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![]; loop { match match args { + [semi!(), ..] => { + args.shift(1); + continue + }, [minus!(), ref tt @ literal!(), ..] => { args.shift(2); parse_literal(cx, tt, true)