36 lines
778 B
Rust
36 lines
778 B
Rust
use clap::{Parser, Subcommand};
|
|
use std::path::PathBuf;
|
|
|
|
#[derive(Parser)]
|
|
#[command(name = "prometeuc")]
|
|
#[command(about = "Prometeu Compiler", long_about = None)]
|
|
pub struct Cli {
|
|
#[command(subcommand)]
|
|
pub command: Commands,
|
|
}
|
|
|
|
#[derive(Subcommand)]
|
|
pub enum Commands {
|
|
/// Builds a Prometeu project
|
|
Build {
|
|
/// Project directory
|
|
project_dir: PathBuf,
|
|
|
|
/// Entry file
|
|
#[arg(short, long)]
|
|
entry: Option<PathBuf>,
|
|
|
|
/// Output PBC file
|
|
#[arg(short, long)]
|
|
out: Option<PathBuf>,
|
|
|
|
/// Emit disassembly file
|
|
#[arg(long, default_value_t = true)]
|
|
emit_disasm: bool,
|
|
|
|
/// Emit symbols file
|
|
#[arg(long, default_value_t = true)]
|
|
emit_symbols: bool,
|
|
},
|
|
}
|