Allow multiline input in the REPL example
This commit is contained in:
parent
2cddfecfb2
commit
4a980de0ed
|
@ -16,14 +16,24 @@ fn main() {
|
|||
stdout.flush().unwrap();
|
||||
|
||||
let mut line = String::new();
|
||||
stdin.read_line(&mut line).unwrap();
|
||||
|
||||
match lua.eval::<LuaMultiValue>(&line) {
|
||||
Ok(values) => {
|
||||
println!("{}", values.iter().map(|value| format!("{:?}", value)).collect::<Vec<_>>().join("\t"));
|
||||
}
|
||||
Err(e) => {
|
||||
writeln!(stderr(), "error: {}", e).unwrap();
|
||||
loop {
|
||||
stdin.read_line(&mut line).unwrap();
|
||||
|
||||
match lua.eval::<LuaMultiValue>(&line) {
|
||||
Ok(values) => {
|
||||
println!("{}", values.iter().map(|value| format!("{:?}", value)).collect::<Vec<_>>().join("\t"));
|
||||
break;
|
||||
}
|
||||
Err(LuaError(LuaErrorKind::IncompleteStatement(_), _)) => {
|
||||
// continue reading input and append it to `line`
|
||||
write!(stdout, ">> ").unwrap();
|
||||
stdout.flush().unwrap();
|
||||
}
|
||||
Err(e) => {
|
||||
writeln!(stderr(), "error: {}", e).unwrap();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue