From 8dfdd603b022ab9775cda08b9c2350d43667ff0f Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Sun, 26 Nov 2023 10:29:55 +1300 Subject: Exit with status 1 on assembly error This will break unix pipelines in order to prevent any emulator down the pipeline from attempting to run a malassembled program. --- src/main.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index c7d3590..8d6e186 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,11 +12,17 @@ fn main() { }; let (bytecode, tokens) = assemble(&source_code); + let mut is_error = false; for token in &tokens { - token.print_error(&source_code); } + if token.print_error(&source_code) { is_error = true }; + } eprintln!("Assembled program in {} bytes.", bytecode.len()); let bytecode_len = bytecode.len(); + if is_error { + std::process::exit(1) + } + // Write bytecode to standard output let mut stdout = std::io::stdout().lock(); match stdout.write(&bytecode) { -- cgit v1.2.3-70-g09d2