2022-02-11 04:38:04 -06:00
|
|
|
use std::path::PathBuf;
|
|
|
|
use clap::{ Parser, Subcommand };
|
|
|
|
|
|
|
|
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
|
|
|
|
2022-03-06 10:51:03 -06:00
|
|
|
/// Hades compiler.
|
2022-02-11 04:38:04 -06:00
|
|
|
#[derive(Parser, Debug)]
|
|
|
|
#[clap(
|
|
|
|
version = VERSION,
|
|
|
|
long_about = None)]
|
|
|
|
pub struct Args {
|
|
|
|
#[clap(subcommand)]
|
|
|
|
pub options: Options,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Subcommand, Debug)]
|
|
|
|
pub enum Options {
|
2022-02-11 05:16:13 -06:00
|
|
|
#[clap(about = "Compile an input file.")]
|
2022-02-11 04:38:04 -06:00
|
|
|
Compile {
|
|
|
|
/// The input file to compile.
|
|
|
|
#[clap(parse(from_os_str))]
|
|
|
|
input: PathBuf,
|
|
|
|
/// Print parsed AST and exit (for debugging).
|
|
|
|
#[clap(short, long)]
|
|
|
|
ast: bool,
|
2022-03-07 03:48:36 -06:00
|
|
|
/// Log process.
|
|
|
|
#[clap(short, long)]
|
|
|
|
log: bool,
|
|
|
|
/// Output file path.
|
|
|
|
#[clap(short, long, parse(from_os_str))]
|
|
|
|
output: Option<PathBuf>,
|
2022-02-11 04:38:04 -06:00
|
|
|
},
|
|
|
|
}
|