use ruby_tools::RustyRubyFrontend;
use std::io::{self, BufRead, Write};
fn main() {
println!("irb - Interactive Ruby");
println!("Type 'exit' to exit.");
println!();
let frontend = RustyRubyFrontend::new();
let mut input = String::new();
let stdin = io::stdin();
let mut stdout = io::stdout();
loop {
print!("irb>");
stdout.flush().unwrap();
match stdin.lock().read_line(&mut input) {
Ok(0) => break, Ok(_) => {
let trimmed_input = input.trim();
if trimmed_input == "exit" {
break;
}
if !trimmed_input.is_empty() {
match frontend.parse(trimmed_input) {
Ok(ast) => {
println!("Parsed successfully: {:?}", ast);
}
Err(e) => {
println!("Error: {:?}", e);
}
}
}
input.clear();
}
Err(e) => {
println!("Error reading input: {:?}", e);
break;
}
}
}
println!("Exiting irb...");
}