Evaluation of pi, e
This commit is contained in:
parent
c0277f610b
commit
77e359e182
@ -2,8 +2,8 @@ use decimal::d128;
|
|||||||
use crate::Token;
|
use crate::Token;
|
||||||
use crate::units::Unit;
|
use crate::units::Unit;
|
||||||
use crate::parser::AstNode;
|
use crate::parser::AstNode;
|
||||||
#[allow(unused_imports)]
|
use crate::Operator::{Caret, Divide, Minus, Modulo, Multiply, Plus};
|
||||||
use crate::Operator::{Caret, Divide, LeftParen, Minus, Modulo, Multiply, Plus, RightParen};
|
use crate::Constant::{Pi, E};
|
||||||
use crate::UnaryOperator::{Percent, Factorial};
|
use crate::UnaryOperator::{Percent, Factorial};
|
||||||
use crate::TextOperator::{To, Of};
|
use crate::TextOperator::{To, Of};
|
||||||
|
|
||||||
@ -42,6 +42,16 @@ fn evaluate_node(ast_node: &AstNode) -> Result<Answer, String> {
|
|||||||
Token::Number(number) => {
|
Token::Number(number) => {
|
||||||
Ok(Answer::new(number.clone(), Unit::NoUnit))
|
Ok(Answer::new(number.clone(), Unit::NoUnit))
|
||||||
},
|
},
|
||||||
|
Token::Constant(constant) => {
|
||||||
|
match constant {
|
||||||
|
Pi => {
|
||||||
|
Ok(Answer::new(d128!(3.141592653589793238462643383279503), Unit::NoUnit))
|
||||||
|
},
|
||||||
|
E => {
|
||||||
|
Ok(Answer::new(d128!(2.718281828459045235360287471352662), Unit::NoUnit))
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
Token::Unit(unit) => {
|
Token::Unit(unit) => {
|
||||||
let child_node = children.get(0).expect("Unit has no child[0]");
|
let child_node = children.get(0).expect("Unit has no child[0]");
|
||||||
let child_answer = evaluate_node(child_node)?;
|
let child_answer = evaluate_node(child_node)?;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user