diff --git a/flake.nix b/flake.nix index f815c9e..27fc7c2 100644 --- a/flake.nix +++ b/flake.nix @@ -23,7 +23,6 @@ cargo rustc rustfmt - bacon ; inherit (pkgsFor.${system}.rustPackages) diff --git a/src/main.rs b/src/main.rs index 67fffcc..4bfbcd3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use std::io; -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug)] enum Symbol { Number, @@ -44,27 +44,38 @@ fn get_user_input() -> io::Result { Ok(buffer) } -#[test] -fn try_tokenizing() { - let tokenized_input = tokenize("1 + 1").unwrap(); - let result = vec![Symbol::Number, Symbol::Add, Symbol::Number]; - assert!(tokenized_input == result, "1 + 1 not working"); -} - fn tokenize(input: &str) -> Result, ParseError> { let mut tokens: Vec = vec![]; for (i, c) in input.chars().enumerate() { match c { - ' ' => continue, - '(' => tokens.push(Symbol::LeftBracket), - ')' => tokens.push(Symbol::RightBracket), - '+' => tokens.push(Symbol::Add), - '-' => tokens.push(Symbol::Sub), - '*' => tokens.push(Symbol::Mul), - '/' => tokens.push(Symbol::Div), - '0'..='9' => tokens.push(Symbol::Number), - '\n' => break, + ' ' => { + continue; + } + '(' => { + tokens.push(Symbol::LeftBracket); + } + ')' => { + tokens.push(Symbol::RightBracket); + } + '+' => { + tokens.push(Symbol::Add); + } + '-' => { + tokens.push(Symbol::Sub); + } + '*' => { + tokens.push(Symbol::Mul); + } + '/' => { + tokens.push(Symbol::Div); + } + '0'..='9' => { + tokens.push(Symbol::Number); + } + '\n' => { + break; + } _ => return Err(ParseError::WrongTokenError { pos: i }), } }