Files
rasp/src/main.rs

35 lines
834 B
Rust
Raw Normal View History

#![allow(dead_code)]
mod common;
mod vm;
use std::{env, fs, io, process};
type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
fn get_input_string() -> io::Result<String> {
let args: Vec<String> = env::args().collect();
if args.len() <= 1 {
println!(
"usage: {} file.asm",
args.get(0).map(String::as_str).unwrap_or("rasp")
);
process::exit(1);
} else {
fs::read_to_string(&args[1])
}
}
fn main() -> Result<()> {
use vm::obj::syn::{lexer, parser};
let text = get_input_string()?;
let lexerdef = lexer::lexerdef();
let lexer = lexerdef.lexer(&text);
let (res, errors) = parser::parse(&lexer);
for err in errors {
println!("{}", err.pp(&lexer, &parser::token_epp));
}
println!("{:?}", res);
Ok(())
}