Skip to content
Snippets Groups Projects
Select Git revision
  • fdf160ecbd96bf488856873c1858fc09188899a0
  • master default protected
  • rtic6
3 results

rtt_timing.rs

Blame
  • Forked from Per Lindgren / rtic_f4xx_nucleo
    Source project has a limited visibility.
    ast.rs 543 B
    // AST
    
    use nom_locate::LocatedSpan;
    
    pub type Span<'a> = LocatedSpan<&'a str>;
    
    #[derive(Debug, Clone, Copy, PartialEq)]
    pub enum Op {
        Eq,
        Neq,
        And,
        Or,
        Add,
        Sub,
        Mul,
        Div,
        Pow,
        Not,
    }
    
    type SpanOp<'a> = (Span<'a>, Op);
    
    #[derive(Debug, Clone, PartialEq)]
    pub enum Expr<'a> {
        Num(i32),
        Par(Box<SpanExpr<'a>>),
        // Identifier
        // Function application
        BinOp(Op, Box<SpanExpr<'a>>, Box<SpanExpr<'a>>),
        UnaryOp(Op, Box<SpanExpr<'a>>),
    }
    
    pub type SpanExpr<'a> = (Span<'a>, Expr<'a>);