diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 8a4a17c..9b237e2 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -41,14 +41,14 @@ fn expect_token(maybe_token: &Option) -> Result<&Token> { } } -pub fn parse(mut lexer: lexer::Lexer) -> Result { +pub fn parse(lexer: lexer::Lexer) -> Result { let mut tbox = TokenBox { lexer, cur_token: None, regress: false }; s_proc(&mut tbox) } pub fn s_proc(tbox: &mut TokenBox) -> Result { println!("Proc S"); - let mut result = a_proc(tbox)?; + let result = a_proc(tbox)?; match tbox.read_token()? { None => Ok(result), Some(token) => Err(ParserErrors::UnexpectedTokenError(token.clone(), String::from("S"))), @@ -57,12 +57,12 @@ pub fn s_proc(tbox: &mut TokenBox) -> Result { fn a_proc(tbox: &mut TokenBox) -> Result { println!("Proc A"); - let mut result = m_proc(tbox)?; + let result = m_proc(tbox)?; match &tbox.read_token()? { Some(Token::OP(_, OpType::ADD)) => Ok(result + a_proc(tbox)?), Some(Token::OP(_, OpType::SUB)) => Ok(result - a_proc(tbox)?), None => Ok(result), - Some(token) => { + Some(_) => { tbox.regress(); Ok(result) } @@ -71,12 +71,12 @@ fn a_proc(tbox: &mut TokenBox) -> Result { fn m_proc(tbox: &mut TokenBox) -> Result { println!("Proc M"); - let mut result = g_proc(tbox)?; + let result = g_proc(tbox)?; match &tbox.read_token()? { Some(Token::OP(_, OpType::MUL)) => Ok(result * m_proc(tbox)?), Some(Token::OP(_, OpType::DIV)) => Ok(result / m_proc(tbox)?), None => Ok(result), - Some(token) => { + Some(_) => { tbox.regress(); Ok(result) } @@ -85,11 +85,11 @@ fn m_proc(tbox: &mut TokenBox) -> Result { fn g_proc(tbox: &mut TokenBox) -> Result { println!("Proc G"); - let mut result = p_proc(tbox)?; + let result = p_proc(tbox)?; match tbox.read_token()? { Some(Token::OP(_, OpType::POW)) => Ok(result.powf(g_proc(tbox)?)), None => Ok(result), - Some(token) => { + Some(_) => { tbox.regress(); Ok(result) } @@ -123,6 +123,7 @@ mod test { Ok(()) } + //noinspection ALL #[test] fn skript_formula_1() -> Result<()> { let res = parse(lexer::Lexer::new("2+5/3*2"))?;