feat: stash
This commit is contained in:
@@ -1,7 +1,21 @@
|
||||
use rustyline::error::ReadlineError;
|
||||
use rustyline::{DefaultEditor, Result};
|
||||
|
||||
use nixjit::*;
|
||||
use nixjit::compile::compile;
|
||||
use nixjit::ir::downgrade;
|
||||
use nixjit::vm::run;
|
||||
|
||||
macro_rules! unwrap {
|
||||
($e:expr) => {
|
||||
match $e {
|
||||
Ok(ok) => ok,
|
||||
Err(err) => {
|
||||
println!("{err}");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut rl = DefaultEditor::new()?;
|
||||
@@ -12,8 +26,11 @@ fn main() -> Result<()> {
|
||||
if expr.trim().is_empty() {
|
||||
continue;
|
||||
}
|
||||
let prog = compile(expr.as_str()).unwrap();
|
||||
println!("{}", run(prog).unwrap());
|
||||
let downgraded = unwrap!(downgrade(
|
||||
rnix::Root::parse(expr.as_str()).tree().expr().unwrap()
|
||||
));
|
||||
let prog = compile(downgraded);
|
||||
println!("{}", unwrap!(run(prog)));
|
||||
rl.add_history_entry(expr.as_str())?;
|
||||
}
|
||||
Err(ReadlineError::Interrupted) => {
|
||||
Reference in New Issue
Block a user