pseudocode 0.1.8

AP CSP Pseudocode interpreter (rough cut)
Documentation
use ::pseudocode::eval;
use std::fs::File;
use std::env;
use std::io::prelude::*;

fn main() -> std::io::Result<()> {

    let args: Vec<String> = env::args().collect();
    if let Some(filename) = args.get(1) {
        let mut file = File::open(filename)?;
        let mut prog = String::new();
        file.read_to_string(&mut prog)?;
        println!("{}", prog);
        println!("--------------------------");
        match eval(&prog) {
            Ok(output) => println!("{}", output),
            Err(e) => println!("Error: {}", e),
        }
    }
    Ok(())
}