From ec5b3371fc7dac24f6a55fb5d614a0c97aca3232 Mon Sep 17 00:00:00 2001 From: Kasper Date: Wed, 25 Dec 2019 23:56:43 +0100 Subject: [PATCH] Evaluation of negative numbers --- src/evaluator.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/evaluator.rs b/src/evaluator.rs index 544b545..b33ce96 100644 --- a/src/evaluator.rs +++ b/src/evaluator.rs @@ -117,6 +117,11 @@ fn evaluate_node(ast_node: &AstNode) -> Result { let child_answer = evaluate_node(child_node)?; Ok(Answer::new(child_answer.value, unit.clone())) }, + Token::Negative => { + let child_node = children.get(0).expect("Negative has no child[0]"); + let child_answer = evaluate_node(child_node)?; + Ok(Answer::new(-child_answer.value, child_answer.unit)) + }, Token::Paren => { let child_node = children.get(0).expect("Paren has no child[0]"); return evaluate_node(child_node) @@ -248,8 +253,5 @@ fn evaluate_node(ast_node: &AstNode) -> Result { } } }, - _ => { - Err(format!("Unexpected ast node {:?}", token)) - }, } }