Replace # -> @ and remove from else

This commit is contained in:
Wim Looman 2016-02-02 16:08:03 +01:00
parent 831df66cdb
commit bd0b135a0d
2 changed files with 17 additions and 17 deletions
maud_macros

View file

@ -23,8 +23,8 @@ macro_rules! parse_error {
($self_:expr, $sp:expr, $msg:expr) => (error!($self_.render.cx, $sp, $msg))
}
macro_rules! pound {
() => (TokenTree::Token(_, Token::Pound))
macro_rules! at {
() => (TokenTree::Token(_, Token::At))
}
macro_rules! dot {
() => (TokenTree::Token(_, Token::Dot))
@ -156,17 +156,17 @@ impl<'cx, 'i> Parser<'cx, 'i> {
try!(self.literal(tt, false))
},
// If
[pound!(), keyword!(sp, k), ..] if k.is_keyword(Keyword::If) => {
[at!(), keyword!(sp, k), ..] if k.is_keyword(Keyword::If) => {
self.shift(2);
try!(self.if_expr(sp));
},
// For
[pound!(), keyword!(sp, k), ..] if k.is_keyword(Keyword::For) => {
[at!(), keyword!(sp, k), ..] if k.is_keyword(Keyword::For) => {
self.shift(2);
try!(self.for_expr(sp));
},
// Call
[pound!(), ident!(sp, name), ..] if name.name.as_str() == "call" => {
[at!(), ident!(sp, name), ..] if name.name.as_str() == "call" => {
self.shift(2);
let func = try!(self.splice(sp));
self.render.emit_call(func);
@ -235,8 +235,8 @@ impl<'cx, 'i> Parser<'cx, 'i> {
}}
// Parse the (optional) else
let else_body = match self.input {
[pound!(), keyword!(_, k), ..] if k.is_keyword(Keyword::Else) => {
self.shift(2);
[keyword!(_, k), ..] if k.is_keyword(Keyword::Else) => {
self.shift(1);
match self.input {
[keyword!(sp, k), ..] if k.is_keyword(Keyword::If) => {
self.shift(1);

View file

@ -205,13 +205,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();
@ -224,9 +224,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();
@ -239,7 +239,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();
@ -288,9 +288,9 @@ fn call() {
panic!("oh noes")
};
html!(s, {
#call ducks
#call (|w: &mut fmt::Write| write!(w, "Geese"))
#call swans(true)
@call ducks
@call (|w: &mut fmt::Write| write!(w, "Geese"))
@call swans(true)
}).unwrap();
assert_eq!(s, "DucksGeeseSwans");
}