ruby-tools 0.0.0

Ruby language tools for Rusty Ruby
Documentation
//! IRB (Interactive Ruby) 工具
//! 提供交互式 Ruby 解释器功能

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, // EOF
            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...");
}