diff --git a/src/nodes/eval.rs b/src/nodes/eval.rs index 27d6907..ea06c2b 100644 --- a/src/nodes/eval.rs +++ b/src/nodes/eval.rs @@ -52,6 +52,8 @@ fn collapse_toplevel(nodes: &mut Vec, mut end: usize) -> Result<(), Error> Node::Number(n) => match variant { Function::Sqrt => n.sqrt_mut(), + Function::Ln => n.ln_mut(), + Function::Sine => n.sin_mut(), Function::ArcSine => n.asin_mut(), Function::Cosine => n.cos_mut(), diff --git a/src/nodes/mod.rs b/src/nodes/mod.rs index d8e05d9..dbc5461 100644 --- a/src/nodes/mod.rs +++ b/src/nodes/mod.rs @@ -76,6 +76,8 @@ pub enum Operator { pub enum Function { Sqrt, + Ln, + Sine, ArcSine, Cosine, diff --git a/src/nodes/parse.rs b/src/nodes/parse.rs index 4a20221..50d0f13 100644 --- a/src/nodes/parse.rs +++ b/src/nodes/parse.rs @@ -37,6 +37,8 @@ impl FromStr for Function { match s { "sqrt" => Ok(Self::Sqrt), + "ln" => Ok(Self::Ln), + "sin" => Ok(Self::Sine), "asin" => Ok(Self::ArcSine), "cos" => Ok(Self::Cosine),