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:

toml lovm2 = "0.4.8"

Projects

Generating Bytecode

``` rust use lovm2::prelude::*;

let mut module = ModuleBuilder::new();

// 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 mainhir.step(Assign::local(&lv2var!(n), 10));

// print is a builtin function. the lv2_var! macro // ensures that the given identifier is not confused // with a string. mainhir.step(Call::new("print").arg(lv2var!(n)).arg("Hello World")); // ... this is equivalent to the developer-friendly version: mainhir.step(lv2call!(print, n, "Hello World"));

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

// load the module and run it let mut vm = createvmwithstd(); vm.addmain_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