feat: usable?
This commit is contained in:
34
src/bin/repl.rs
Normal file
34
src/bin/repl.rs
Normal 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(())
|
||||
}
|
||||
Reference in New Issue
Block a user