Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'lemu/src/main.rs')
-rw-r--r--lemu/src/main.rs34
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
+}