alpaca_ir 0.0.1

AlpacaIR is a intermediate represenation meant to make making compilers easier.
Documentation
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),
}