ripex 0.2.0

Multi-language structural parsing and fact extraction.
Documentation
use super::expr::Expr;
use crate::span::Span;

#[derive(Debug, Clone)]
pub struct MatchCase {
    pub pattern: Box<Pattern>,
    pub guard: Option<Box<Expr>>,
    pub body: Vec<super::stmt::Stmt>,
    pub span: Span,
}

#[derive(Debug, Clone)]
pub enum Pattern {
    Wildcard(Span),
    Value(String, Span),
    Literal(Box<Expr>, Span),
    Capture(String, Span),
    Sequence(Vec<Pattern>, Span),
    Mapping(Vec<(Pattern, Pattern)>, Option<Box<Pattern>>, Span),
    Class(String, Vec<Pattern>, Vec<(String, Pattern)>, Span),
    Or(Vec<Pattern>, Span),
    As(Box<Pattern>, String, Span),
    Guard(Box<Pattern>, Box<Expr>, Span),
    Group(Box<Pattern>, Span),
}