erg/compiler/erg_compiler/main.rs
Shunsuke Shibayama f9d91aa38e Organize crates
2022-08-13 06:38:12 +09:00

28 lines
678 B
Rust

extern crate erg_common;
extern crate erg_compiler;
extern crate erg_parser;
use std::process;
use erg_common::deserialize::Deserializer;
use erg_common::config::{ErgConfig};
use erg_common::traits::Runnable;
use erg_compiler::Compiler;
use erg_parser::lex::LexerRunner;
use erg_parser::ParserRunner;
fn main() {
let cfg = ErgConfig::parse();
match cfg.mode {
"lex" => { LexerRunner::run(cfg); }
"parse" => { ParserRunner::run(cfg); }
"compile" | "exec" => { Compiler::run(cfg); }
"read" => { Deserializer::run(cfg); }
other => {
println!("invalid mode: {other}");
process::exit(1);
}
}
}