diff --git a/schala-repl/src/lib.rs b/schala-repl/src/lib.rs index 241fbb8..0d39f78 100644 --- a/schala-repl/src/lib.rs +++ b/schala-repl/src/lib.rs @@ -64,9 +64,12 @@ pub fn repl_main(generators: Vec) { } let mut options = EvalOptions::default(); - if let Some(_) = option_matches.opt_str("debug") { - /* TODO - put some debug handling code here */ - } + let debug_passes = if let Some(opts) = option_matches.opt_str("debug") { + let output: Vec = opts.split_terminator(",").map(|s| s.to_string()).collect(); + output + } else { + vec![] + }; let language_names: Vec = languages.iter().map(|lang| {lang.get_language_name()}).collect(); let initial_index: usize = @@ -86,12 +89,12 @@ pub fn repl_main(generators: Vec) { } [_, ref filename, _..] => { - run_noninteractive(filename, languages, options); + run_noninteractive(filename, languages, options, debug_passes); } }; } -fn run_noninteractive(filename: &str, languages: Vec>, options: EvalOptions) { +fn run_noninteractive(filename: &str, languages: Vec>, mut options: EvalOptions, debug_passes: Vec) { let path = Path::new(filename); let ext = path.extension().and_then(|e| e.to_str()).unwrap_or_else(|| { println!("Source file lacks extension"); @@ -108,6 +111,12 @@ fn run_noninteractive(filename: &str, languages: Vec { /*