From 3de8722f63477ba6c8ecae3ae24f457df303b1dd Mon Sep 17 00:00:00 2001 From: Osama Ahmad Date: Thu, 2 Nov 2023 07:18:26 +0200 Subject: [PATCH] Error when no source files are input --- src/main.rs | 10 ++++++++-- src/{ => utils}/compilation.rs | 0 src/utils/mod.rs | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) rename src/{ => utils}/compilation.rs (100%) diff --git a/src/main.rs b/src/main.rs index 84e245e..9e02f66 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,10 @@ mod code_generation; -mod compilation; mod lexical_analysis; mod syntax_analysis; mod utils; use clap::Parser; +use crate::utils::compilation; #[derive(Parser, Debug)] #[clap(about, long_about = None)] @@ -34,11 +34,17 @@ fn main() { + args.exe_filename.is_some() as usize; if exclusive_args_count > 1 { - panic!("Cannot specify more than one option from [-l, -c, -s, -o] at one time"); + eprintln!("Error: cannot specify more than one option from [-l, -c, -s, -o] at one time"); + return; } else if exclusive_args_count == 0 { args.exe_filename = Some("a.out".to_string()); } + if args.input_source_files.is_empty() { + eprintln!("Error: at least one source file has to be provided"); + return; + } + let compilation = compilation::Compilation::new(); for filename in &args.input_source_files { let source = std::fs::read_to_string(&filename).unwrap(); diff --git a/src/compilation.rs b/src/utils/compilation.rs similarity index 100% rename from src/compilation.rs rename to src/utils/compilation.rs diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 681d26e..e7224c1 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1 +1,2 @@ pub mod test_utils; +pub mod compilation;