Var decl with repeat
This commit is contained in:
@@ -44,8 +44,9 @@ pub struct MatchItem(pub Vec<Pattern>, pub Expression);
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
pub struct VarDecl {
|
||||
pub name: Pattern,
|
||||
pub type_: Option<TypeExpr>,
|
||||
pub name: Pattern,
|
||||
pub tuple_names: Vec<Pattern>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
|
||||
@@ -226,8 +226,8 @@ attributes = {
|
||||
// DECLARATION HELPERS
|
||||
// ======================================================
|
||||
var_decl = {
|
||||
("let" ~ pattern)
|
||||
| type_expr ~ (!tuple_pattern ~ pattern)
|
||||
("let" ~ pattern ~ ("," ~ pattern)*)
|
||||
| type_expr ~ (!tuple_pattern ~ pattern ~ ("," ~ pattern)*)
|
||||
}
|
||||
|
||||
field = {
|
||||
|
||||
@@ -56,6 +56,7 @@ impl<'a> TryFrom<pest::iterators::Pair<'a, Rule>> for VarDecl {
|
||||
.map(TypeExpr::try_from)
|
||||
.transpose()?,
|
||||
name: Pattern::try_from(inner.next().unwrap())?,
|
||||
tuple_names: collect_recovered(inner)?,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user