Evaluation of negative numbers
This commit is contained in:
parent
f38e63c5a7
commit
ec5b3371fc
@ -117,6 +117,11 @@ fn evaluate_node(ast_node: &AstNode) -> Result<Answer, String> {
|
||||
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<Answer, String> {
|
||||
}
|
||||
}
|
||||
},
|
||||
_ => {
|
||||
Err(format!("Unexpected ast node {:?}", token))
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user