purrchance/src/bin/purrchance.rs

26 lines
558 B
Rust

use purrchance::*;
use purrchance::parser::*;
use std::env;
use std::fs::read_to_string;
use std::process::exit;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
eprintln!("too few arguments!");
exit(1);
}
let raw_grammar = read_to_string(&args[1]).unwrap();
let grammar = load_grammar(&raw_grammar);
if args.len() < 3 {
eprintln!("{:?}", grammar);
exit(0);
}
let sym = Symbol::NonTerminal(args[2].clone());
println!("{}", sym.eval(&grammar).unwrap());
}