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)?;
|
let child_answer = evaluate_node(child_node)?;
|
||||||
Ok(Answer::new(child_answer.value, unit.clone()))
|
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 => {
|
Token::Paren => {
|
||||||
let child_node = children.get(0).expect("Paren has no child[0]");
|
let child_node = children.get(0).expect("Paren has no child[0]");
|
||||||
return evaluate_node(child_node)
|
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