hlvm 0.7.1

The HLVM library / tools
Documentation
extern crate hlvm_runtime;
use hlvm_runtime::literals::*;
use hlvm_runtime::value::Value;

use hlvm::function::Fun;

#[allow(dead_code, unused_variables)]
fn main() {
    fn hello_world(v: Value) -> Value {
        println!("hello foreign functions!");
        none()
    }
    
    
    let square = Fun::new()
        .get_parameter("a")
        .load("a")
        .load("a").mul();

    // let mut main = Fun::new()
    //     .add_fun(Fun::new().print()).store("print")
    //     .add_fun(Fun::new().println()).store("println")
    //     .add_fun(Fun::new().add()).store("add")
    //     .add_fun(Fun::new().sub()).store("sub")
    //     .add_fun(Fun::new().mul()).store("mul")
    //     .add_fun(Fun::new().div()).store("div")
    //     .add_fun(Fun::new().less()).store("less")
    //     .add_fun(Fun::new().greater()).store("greater")
    //     .add_fun(Fun::new().eq()).store("eq")
    //     .add_fun(Fun::new().eq().not()).store("noteq")
    //     .add_fun(Fun::new().not()).store("not")
        
    //     .add_data(string("16 squared is ")).print()
    //     .add_data(num("16"))
    //     .call(square.clone())
    //     .println()

    //     .add_data(string("8 squared is ")).print()
    //     .add_data(num("8"))
    //     .call(square.clone()).println()

    //    	.add_data(none())
	// .add_foreign_fun(hello_world)
    //     .call_foreign_function()

    //     .add_data(string("the best language is ")).print()
        
    //     .add_data(string("python"))
    //     .add_data(string("rust"))
    //     .add_fun(
    //         Fun::new()
    //             .get_parameter("a")
    //             .call(
    //                 Fun::new()
    //                     .get_parameter("b")
    //                     .load("a")
    //             )
    //     ).store("true")
    //     .load("true").call_from_stack()
    //     .println();
    // main.run();


}