Pattern parsing seems working.

This commit is contained in:
2025-10-23 09:26:15 -07:00
parent 9ea6868938
commit 7bd242a641
3 changed files with 360 additions and 15 deletions

View File

@@ -139,7 +139,33 @@ pub struct MatchExpr {
}
#[derive(Debug)]
pub struct MatchCase {}
pub struct MatchCase {
pub pattern: Pattern,
pub consequent: Expression,
}
#[derive(Debug)]
pub enum Pattern {
Constant(ConstantValue),
Variable(Name),
EnumerationValue(EnumerationPattern),
Structure(StructurePattern),
}
#[derive(Debug)]
pub struct EnumerationPattern {
pub location: Location,
pub type_name: Name,
pub variant_name: Name,
pub argument: Option<Box<Pattern>>,
}
#[derive(Debug)]
pub struct StructurePattern {
pub location: Location,
pub type_name: Name,
pub fields: Vec<(Name, Option<Pattern>)>,
}
#[derive(Debug)]
pub enum CallKind {