23 lines
653 B
Rust
23 lines
653 B
Rust
use std::io::{stdin, stdout, BufRead, Write};
|
|
|
|
use mul::parser::ExpressionParser;
|
|
|
|
fn main() {
|
|
let mut stdin = stdin().lock();
|
|
let mut stdout = stdout().lock();
|
|
let parser = ExpressionParser::new();
|
|
loop {
|
|
let mut line = String::new();
|
|
print!("> ");
|
|
stdout.flush().unwrap();
|
|
stdin
|
|
.read_line(&mut line)
|
|
.expect("Failed to read from stdin");
|
|
match parser.parse(line.as_str()) {
|
|
Ok(parsed) => println!("{parsed:?}"),
|
|
Err(lalrpop_util::ParseError::UnrecognizedEOF { .. }) => break,
|
|
Err(e) => println!("Parse error: {e}"),
|
|
}
|
|
}
|
|
}
|