crates.io badge docs.rs badge

lovm2

lovm2 is a library for building your own programming language in the blink of an eye. It offers you easy to use constructs to generate bytecode for its virtual machine.

Features

Examples

Add this line to your Cargo.toml:

lovm2 = "0.5.0"

Resources

Projects

Generating Bytecode

use lovm2::prelude::*;

let mut module = LV2ModuleBuilder::new();

// declare the variables our code will use
let n = &lv2_var!(n);
// a module needs a code object called `main`
// if you want to make it runnable
let main_hir = module.entry();
// set the local variable n to 10
main_hir.assign(n, 10);
// `print` is a builtin function
main_hir.step(LV2Call::new("print").arg(n).arg("Hello World"));

// creates a `Module` from the `ModuleBuilder`
let module = module.build().unwrap();
println!("{}", module);

// load the module and run it
let mut vm = lovm2::create_vm_with_std();
vm.add_main_module(module).expect("load error");
vm.run().expect("run error");

Internal Source Code References

Customer Reviews

This Thing Fast - Sonic

And I thought I was simpleā€¦ - Pythagorean Theorem