use crate::ast::Node; use crate::error::CreateExecutionEngineError; use crate::parser; use failure; use failure::Error; use inkwell; use inkwell::builder::Builder; use inkwell::context::Context; use inkwell::execution_engine::JitFunction; use inkwell::OptimizationLevel; type SumFunc = unsafe extern "C" fn() -> i32; pub fn compile_string(source: &str) -> Result<i32, Error> { let ast = parser::parse