From 37835b3b24638eae1203c73d7f11ec634cf92fbf Mon Sep 17 00:00:00 2001 From: Chris Wong <lambda.fairy@gmail.com> Date: Sat, 12 Sep 2015 13:53:14 +1200 Subject: [PATCH] Rename `$if` and `$for` to `#if` and `#for` `#if` and `#for` aren't splices. They are a different concept, so should have different syntax as well. --- maud_macros/src/parse.rs | 17 ++++++++++------- maud_macros/tests/tests.rs | 14 +++++++------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs index ac5034e..4676466 100644 --- a/maud_macros/src/parse.rs +++ b/maud_macros/src/parse.rs @@ -13,6 +13,9 @@ use super::render::{Escape, Renderer}; macro_rules! dollar { () => (TtToken(_, token::Dollar)) } +macro_rules! pound { + () => (TtToken(_, token::Pound)) +} macro_rules! dot { () => (TtToken(_, token::Dot)) } @@ -125,12 +128,12 @@ impl<'cx, 'i> Parser<'cx, 'i> { self.literal(tt, false); }, // If - [dollar!(), ident!(sp, name), ..] if name.name == "if" => { + [pound!(), ident!(sp, name), ..] if name.name == "if" => { self.shift(2); self.if_expr(sp); }, // For - [dollar!(), ident!(sp, name), ..] if name.name == "for" => { + [pound!(), ident!(sp, name), ..] if name.name == "for" => { self.shift(2); self.for_expr(sp); }, @@ -201,11 +204,11 @@ impl<'cx, 'i> Parser<'cx, 'i> { self.shift(1); if_cond.push(tt.clone()); }, - [] => self.render.cx.span_fatal(sp, "expected body for this $if"), + [] => self.render.cx.span_fatal(sp, "expected body for this #if"), }} // Parse the (optional) else let else_body = match self.input { - [dollar!(), ident!(else_), ..] if else_.name == "else" => { + [pound!(), ident!(else_), ..] if else_.name == "else" => { self.shift(2); match self.input { [ident!(sp, if_), ..] if if_.name == "if" => { @@ -225,7 +228,7 @@ impl<'cx, 'i> Parser<'cx, 'i> { self.shift(1); Some(self.block(sp, &d.tts)) }, - _ => self.render.cx.span_fatal(sp, "expected body for this $else"), + _ => self.render.cx.span_fatal(sp, "expected body for this #else"), } }, _ => None, @@ -244,7 +247,7 @@ impl<'cx, 'i> Parser<'cx, 'i> { self.shift(1); pattern.push(tt.clone()); }, - _ => self.render.cx.span_fatal(sp, "invalid $for"), + _ => self.render.cx.span_fatal(sp, "invalid #for"), }} let pattern = self.with_rust_parser(pattern, RustParser::parse_pat); let mut iterable = vec![]; @@ -259,7 +262,7 @@ impl<'cx, 'i> Parser<'cx, 'i> { self.shift(1); iterable.push(tt.clone()); }, - _ => self.render.cx.span_fatal(sp, "invalid $for"), + _ => self.render.cx.span_fatal(sp, "invalid #for"), }} let iterable = self.with_rust_parser(iterable, RustParser::parse_expr); self.render.emit_for(pattern, iterable, body); diff --git a/maud_macros/tests/tests.rs b/maud_macros/tests/tests.rs index 6568bc8..b6e8e79 100644 --- a/maud_macros/tests/tests.rs +++ b/maud_macros/tests/tests.rs @@ -202,13 +202,13 @@ mod control { for (number, &name) in (1..4).zip(["one", "two", "three"].iter()) { let mut s = String::new(); html!(s, { - $if number == 1 { + #if number == 1 { "one" - } $else if number == 2 { + } #else if number == 2 { "two" - } $else if number == 3 { + } #else if number == 3 { "three" - } $else { + } #else { "oh noes" } }).unwrap(); @@ -221,9 +221,9 @@ mod control { for &(input, output) in [(Some("yay"), "yay"), (None, "oh noes")].iter() { let mut s = String::new(); html!(s, { - $if let Some(value) = input { + #if let Some(value) = input { $value - } $else { + } #else { "oh noes" } }).unwrap(); @@ -236,7 +236,7 @@ mod control { let ponies = ["Apple Bloom", "Scootaloo", "Sweetie Belle"]; let mut s = String::new(); html!(s, { - ul $for pony in &ponies { + ul #for pony in &ponies { li $pony } }).unwrap();