diff --git a/src/parser.rs b/src/parser.rs index c95f737..ae56776 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -168,13 +168,14 @@ impl<'j, T: Read> Parser<'j, T> { } // The rest - c => { + _ => { // 4.7.2 command directives if self.general_directive() { return Ok(()); } + let c = 'P'; match c { // ACDNPY 'P' => { @@ -226,7 +227,8 @@ impl<'j, T: Read> Parser<'j, T> { // bcde 'i' => match directive { "include" => { - self.include_directive(argument.unwrap()); + let own_argument = argument.unwrap().to_owned(); + self.include_directive(&own_argument); return true; } "import" => { @@ -365,11 +367,7 @@ impl<'j, T: Read> Parser<'j, T> { // let base = filename.file_name(); // read file. - //read_into_journal(source, journal); - // parse_file(filename.to_str().unwrap(), self.journal); - todo!("read file"); - // The problem is again having a mutable reference and immutable ones. - // Try using Nom for parsing instead. + parse_file(filename.to_str().unwrap(), self.journal); } } diff --git a/src/reader.rs b/src/reader.rs index 7a989fe..1023695 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -65,7 +65,7 @@ impl Iterator for DirectiveIter { mod tests { use std::io::Cursor; - use crate::{reader::create_str_reader, directives::DirectiveType}; + use crate::reader::create_str_reader; #[test] fn basic_test() {