From c471c828940b9c1ef1572143717b3e45150a45b9 Mon Sep 17 00:00:00 2001 From: Yehowshua Immanuel Date: Sat, 21 May 2022 15:22:05 -0400 Subject: [PATCH] This is starting to go somewhere and needs a re-factor --- src/main.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index a869248..324bffa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -105,15 +105,27 @@ impl<'a> VCD_Parser<'a> { // "$timescale" => {*state = VCD_Parser_State::TIMESCALE_ENTER; Ok(())}, _ => Err(format!("unsure what to do with {word:?}"))}}, - VCD_Parser_State::Date(Date_Parser_State) => { - let res = self.parse_date(word); Ok(()) - } + VCD_Parser_State::Date(_) => self.parse_date(word), _ => Err(format!("parser in bad state : {state:?}"))} } pub fn parse_date(&mut self, word : &str) -> Result<(), String> { - let mut state = &mut self.date_parser_state; - Ok(()) + let mut state = &mut self.vcd_parser_state; + match state { + VCD_Parser_State::Date(Date_Parser_State::Weekday) => + { + self.date_buffer.Weekday = word.to_string(); + *state = VCD_Parser_State::Date(Date_Parser_State::Month); + Ok(()) + } + VCD_Parser_State::Date(Date_Parser_State::Month) => + { + self.date_buffer.Month = word.to_string(); + *state = VCD_Parser_State::Date(Date_Parser_State::Day); + Ok(()) + } + _ => Err(format!("unsure what to do with {state:?}")), + } } } @@ -159,4 +171,4 @@ fn main() -> std::io::Result<()> { yield_word_and_apply(file, |word| {word_count += 1}); dbg!(word_count); Ok(()) -} +} \ No newline at end of file