diff --git a/src/basic.rs b/src/basic.rs index 7f9e9ce..647d280 100644 --- a/src/basic.rs +++ b/src/basic.rs @@ -96,6 +96,13 @@ impl Program { } } +impl From<&str> for Program { + fn from(value: &str) -> Self { + let (_, program) = read_program(value).unwrap(); + program + } +} + impl Iterator for Program { type Item = Node; diff --git a/src/main.rs b/src/main.rs index b8c875a..4b2bd1f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,6 @@ mod basic; fn main() { let file = fs::read_to_string("./inputs/simple_program.bas").unwrap(); - let (_, mut program) = basic::read_program(&file).unwrap(); + let mut program = basic::Program::from(file.as_str()); program.execute(); }