1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
use crate::diag::location::SourceLoc;

use crate::syntax::decl::ConcreteDecl;
use crate::syntax::expr::ConcreteExpr;

pub enum ConcreteStmt<'a> {
    CompoundStmt(ConcreteCompoundStmt<'a>),
    ExprStmt(ConcreteExpr<'a>, SourceLoc),
    DeclStmt(ConcreteDecl<'a>, SourceLoc)
}

pub struct ConcreteCompoundStmt<'a> {
    pub stmts: Vec<ConcreteStmt<'a>>,

    pub left_brace_loc: SourceLoc,
    pub right_brace_loc: SourceLoc
}