Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'lemu/src/main.rs')
| -rw-r--r-- | lemu/src/main.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lemu/src/main.rs b/lemu/src/main.rs new file mode 100644 index 0000000..36eb84f --- /dev/null +++ b/lemu/src/main.rs @@ -0,0 +1,34 @@ +use std::{ + io::{self, Stdout}, + process::ExitCode, +}; + +use lemu::{Executor, Output}; + +fn main() -> ExitCode { + let mut args = std::env::args(); + args.next().unwrap(); // path to executable + for file in args { + let f = std::fs::read_to_string(&file).unwrap(); + let mut lex: Executor<Stdout> = match Executor::with_output(io::stdout()) + .large_display() + .program(&f) + { + Ok(x) => x, + Err(e) => { + eprint!("{}", e.diagnose(&f)); + return ExitCode::FAILURE; + } + }; + println!("{lex}"); + let now = std::time::Instant::now(); + lex.run(); + dbg!(now.elapsed()); + dbg!(lex.instructions_ran); + let Output { displays, .. } = lex.output(); + for ((d, _), i) in displays.iter().zip(1..=displays.len()) { + d.save(format!("image{i}.png")); + } + } + ExitCode::SUCCESS +} |