Merge If and Special variants
This commit is contained in:
parent
ac934bae4e
commit
254ac54103
3 changed files with 12 additions and 8 deletions
maud_macros/src
|
@ -21,10 +21,9 @@ pub enum Markup {
|
|||
Let {
|
||||
tokens: TokenStream,
|
||||
},
|
||||
If {
|
||||
Special {
|
||||
segments: Vec<Special>,
|
||||
},
|
||||
Special(Special),
|
||||
Match {
|
||||
head: TokenStream,
|
||||
arms: Vec<Special>,
|
||||
|
|
|
@ -51,12 +51,11 @@ impl Generator {
|
|||
Markup::Splice { expr } => build.push_tokens(self.splice(expr)),
|
||||
Markup::Element { name, attrs, body } => self.element(name, attrs, body, build),
|
||||
Markup::Let { tokens } => build.push_tokens(tokens),
|
||||
Markup::If { segments } => {
|
||||
Markup::Special { segments } => {
|
||||
for segment in segments {
|
||||
build.push_tokens(self.special(segment));
|
||||
}
|
||||
},
|
||||
Markup::Special(special) => build.push_tokens(self.special(special)),
|
||||
Markup::Match { head, arms, arms_span } => {
|
||||
build.push_tokens({
|
||||
let body = arms
|
||||
|
@ -178,7 +177,9 @@ fn desugar_classes_or_ids(
|
|||
span: toggler.cond_span,
|
||||
};
|
||||
let head = desugar_toggler(toggler);
|
||||
markups.push(Markup::Special(Special { head, body }));
|
||||
markups.push(Markup::Special {
|
||||
segments: vec![Special { head, body }],
|
||||
});
|
||||
}
|
||||
Some(Attribute {
|
||||
name: TokenStream::from(TokenTree::Ident(Ident::new(attr_name, Span::call_site()))),
|
||||
|
|
|
@ -122,7 +122,7 @@ impl Parser {
|
|||
"if" => {
|
||||
let mut segments = Vec::new();
|
||||
self.if_expr(vec![keyword], &mut segments)?;
|
||||
ast::Markup::If { segments }
|
||||
ast::Markup::Special { segments }
|
||||
},
|
||||
"while" => self.while_expr(keyword)?,
|
||||
"for" => self.for_expr(keyword)?,
|
||||
|
@ -242,7 +242,9 @@ impl Parser {
|
|||
None => return self.error("unexpected end of @while expression"),
|
||||
}
|
||||
};
|
||||
Ok(ast::Markup::Special(ast::Special { head: head.into_iter().collect(), body }))
|
||||
Ok(ast::Markup::Special {
|
||||
segments: vec![ast::Special { head: head.into_iter().collect(), body }],
|
||||
})
|
||||
}
|
||||
|
||||
/// Parses a `@for` expression.
|
||||
|
@ -269,7 +271,9 @@ impl Parser {
|
|||
None => return self.error("unexpected end of @for expression"),
|
||||
}
|
||||
};
|
||||
Ok(ast::Markup::Special(ast::Special { head: head.into_iter().collect(), body }))
|
||||
Ok(ast::Markup::Special {
|
||||
segments: vec![ast::Special { head: head.into_iter().collect(), body }],
|
||||
})
|
||||
}
|
||||
|
||||
/// Parses a `@match` expression.
|
||||
|
|
Loading…
Add table
Reference in a new issue