commit dc4efa3aa6dedf9121791366c02b6b6941a53612
parent 6bebbac9cd22d3f16fce0cc27ba89cc74490eb0c
Author: Yash <nerdstep710@gmail.com>
Date: Wed, 3 Feb 2021 15:48:11 -0600
Implement program class
Diffstat:
2 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/inp.txt b/inp.txt
@@ -1 +1 @@
-Test file
+Test file
diff --git a/src/main.rs b/src/main.rs
@@ -1,5 +1,37 @@
use std::fs;
use std::env;
+use std::fmt;
+
+struct Program {
+ data: Vec<String>,
+ pc: u32
+}
+
+impl Program {
+ fn from_string(program: String) -> Program {
+ let mut op_list: Vec<String> = Vec::new();
+
+ for opcode in program.split(" ").collect::<Vec<&str>>() {
+ let mut new_op = opcode.to_owned();
+ new_op = new_op.replace("\n", "");
+
+ if new_op.len() != 0 {
+ op_list.push(new_op.to_owned());
+ }
+ }
+ return Program{ data: op_list, pc: 0 };
+ }
+
+ fn run(&self) {
+ println!("{}", self);
+ }
+}
+
+impl fmt::Display for Program {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ write!(f, "Program ({:?})", self.data)
+ }
+}
fn main() {
@@ -9,7 +41,8 @@ fn main() {
}
let filename = &args[1];
-
+
let contents = fs::read_to_string(filename).expect("Something went wrong reading the file");
- println!("{}", contents);
+ let prog = Program::from_string(contents);
+ prog.run();
}