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

View file

@ -205,13 +205,13 @@ mod control {
for (number, &name) in (1..4).zip(["one", "two", "three"].iter()) { for (number, &name) in (1..4).zip(["one", "two", "three"].iter()) {
let mut s = String::new(); let mut s = String::new();
html!(s, { html!(s, {
#if number == 1 { @if number == 1 {
"one" "one"
} #else if number == 2 { } else if number == 2 {
"two" "two"
} #else if number == 3 { } else if number == 3 {
"three" "three"
} #else { } else {
"oh noes" "oh noes"
} }
}).unwrap(); }).unwrap();
@ -224,9 +224,9 @@ mod control {
for &(input, output) in [(Some("yay"), "yay"), (None, "oh noes")].iter() { for &(input, output) in [(Some("yay"), "yay"), (None, "oh noes")].iter() {
let mut s = String::new(); let mut s = String::new();
html!(s, { html!(s, {
#if let Some(value) = input { @if let Some(value) = input {
^value ^value
} #else { } else {
"oh noes" "oh noes"
} }
}).unwrap(); }).unwrap();
@ -239,7 +239,7 @@ mod control {
let ponies = ["Apple Bloom", "Scootaloo", "Sweetie Belle"]; let ponies = ["Apple Bloom", "Scootaloo", "Sweetie Belle"];
let mut s = String::new(); let mut s = String::new();
html!(s, { html!(s, {
ul #for pony in &ponies { ul @for pony in &ponies {
li ^pony li ^pony
} }
}).unwrap(); }).unwrap();
@ -288,9 +288,9 @@ fn call() {
panic!("oh noes") panic!("oh noes")
}; };
html!(s, { html!(s, {
#call ducks @call ducks
#call (|w: &mut fmt::Write| write!(w, "Geese")) @call (|w: &mut fmt::Write| write!(w, "Geese"))
#call swans(true) @call swans(true)
}).unwrap(); }).unwrap();
assert_eq!(s, "DucksGeeseSwans"); assert_eq!(s, "DucksGeeseSwans");
} }