cardinal-codegen 0.1.1

A code generator written in Rust.
Documentation
extern crate cardinal_codegen;

use cardinal_codegen::entities::{AbiType, Type};
use cardinal_codegen::function::{Function, FunctionSignature};
use cardinal_codegen::instbuilder::InstBuilder;

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    pub fn test_function() {
        let sig = FunctionSignature::new();

        let mut func = Function::new("main".into(), sig);

        let v = func.declare_var("my_var".into(), AbiType("int".into(), Type::Plain));
        
        let block0;
        {
            let block = func.create_block();
            block0 = func.use_block(block);
        }

        {
            let tmp0 = block0.iconst_int(21);
            let tmp1 = block0.iconst_int(21);
            let tmp2 = block0.iadd(tmp0, tmp1);

            let tmp3 = block0.iuse(v.named());
            block0.set(tmp3, tmp2);
        }
    }

}