Skip to content
Snippets Groups Projects
Select Git revision
  • 801391e13f30ce47e80e561aff0cdb77605667a9
  • master default protected
2 results

rtic_bare7.rs

Blame
  • Forked from Per Lindgren / e7020e_2021
    Source project has a limited visibility.
    ast.rs 495 B
    // AST
    
    use nom_locate::LocatedSpan;
    
    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 {
        Num(i32),
        Par(Box<Expr>),
        // Identifier
        // Function application
        BinOp(Op, Box<Expr>, Box<Expr>),
        UnaryOp(Op, Box<Expr>),
    }
    
    type SpanExpr<'a> = (Span<'a>, Expr);