use std::path::PathBuf; use clap::{ Parser, Subcommand }; const VERSION: &str = env!("CARGO_PKG_VERSION"); /// Hades compiler. #[derive(Parser, Debug)] #[clap( version = VERSION, long_about = None)] pub struct Args { #[clap(subcommand)] pub options: Options, } #[derive(Subcommand, Debug)] pub enum Options { #[clap(about = "Compile an input file.")] 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, /// Log process. #[clap(short, long)] log: bool, /// Output file path. #[clap(short, long, parse(from_os_str))] output: Option, }, }