feat: usable?

This commit is contained in:
2025-05-05 11:31:46 +08:00
parent eea4a4ce9f
commit b9dcc83c39
24 changed files with 688 additions and 244 deletions

34
src/bin/repl.rs Normal file
View File

@@ -0,0 +1,34 @@
use rustyline::error::ReadlineError;
use rustyline::{DefaultEditor, Result};
use nixjit::*;
fn main() -> Result<()> {
let mut rl = DefaultEditor::new()?;
loop {
let readline = rl.readline(">> ");
match readline {
Ok(expr) => {
if expr.trim().is_empty() {
continue;
}
let prog = compile(expr.as_str()).unwrap();
println!("{}", run(prog).unwrap());
rl.add_history_entry(expr.as_str())?;
}
Err(ReadlineError::Interrupted) => {
println!("CTRL-C");
break;
}
Err(ReadlineError::Eof) => {
println!("CTRL-D");
break;
}
Err(err) => {
println!("Error: {:?}", err);
break;
}
}
}
Ok(())
}