use std::{cell::RefCell, rc::Rc};
use super::types::*;
#[derive(Debug, PartialEq, Clone)]
pub struct AlpacaFunction {
pub name: &'static str,
pub ty: AlpacaBasicType,
pub body: Vec<Rc<RefCell<AlpacaBasicBlock>>>,
}
#[derive(Debug, PartialEq, Clone)]
pub struct AlpacaBasicBlock {
pub name: &'static str,
pub insts: Vec<AlpacaInst>,
}
#[derive(Debug, PartialEq, Clone)]
pub enum AlpacaInst {
Store(AlpacaStorageType, AlpacaBasicType, AlpacaValue),
Branch(&'static str),
Return(AlpacaBasicType, AlpacaValue),
}