Files
rlox/src/main.rs

38 lines
840 B
Rust

use std::env;
//use std::io::Write;
use std::process;
mod rlox_interpreter;
mod scanner;
mod token;
mod token_type;
use crate::rlox_interpreter::RLoxInterpreter;
// Exit codes from #include <sysexits.h>
const EX_OK: i32 = 0;
//const EX_DATAERR: i32 = 65;
const EX_USAGE : i32 = 66;
fn main() {
let args: Vec<String> = env::args().collect();
let exit_code = match args.len() {
1 => { RLoxInterpreter::new().run_prompt() } ,
2 => { RLoxInterpreter::new().run_file(&args[1]) },
_ => {
println!("Usage : rlox [script]");
EX_USAGE
}
};
process::exit(exit_code);
}
// Implémentations de référence :
// https://github.com/munificent/craftinginterpreters/wiki/Lox-implementations#rust
// Pause :
// http://www.craftinginterpreters.com/scanning.html#lexical-errors