Add execution to VM via file, starting to iron out bugs
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
25
src/main.rs
25
src/main.rs
@@ -4,18 +4,21 @@ mod common;
|
||||
//mod syn;
|
||||
mod vm;
|
||||
|
||||
use std::{
|
||||
convert::TryFrom,
|
||||
io::{self, Read},
|
||||
process,
|
||||
};
|
||||
use std::{convert::TryFrom, env, fs, io, process};
|
||||
|
||||
type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
|
||||
|
||||
fn get_input_string() -> io::Result<String> {
|
||||
let mut buffer = String::new();
|
||||
io::stdin().read_to_string(&mut buffer)?;
|
||||
Ok(buffer)
|
||||
let args: Vec<String> = env::args().collect();
|
||||
if args.len() <= 1 {
|
||||
println!(
|
||||
"usage: {} file.asm",
|
||||
args.get(0).map(String::as_str).unwrap_or("rasp")
|
||||
);
|
||||
process::exit(1);
|
||||
} else {
|
||||
fs::read_to_string(&args[1])
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
@@ -29,6 +32,10 @@ fn main() -> Result<()> {
|
||||
}
|
||||
};
|
||||
let obj = vm::obj::obj::Object::try_from(&ast)?;
|
||||
println!("{:#?}", obj);
|
||||
//println!("{:#?}", obj);
|
||||
let mut vm = vm::vm::Vm::new();
|
||||
vm.load_object(obj, 1024 * 1024 * 64)?; // 64mb
|
||||
let status = vm.run()?;
|
||||
println!("status: {}", status);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user