diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/eval.rs (renamed from src/num.rs) | 6 | ||||
| -rw-r--r-- | src/main.rs | 2 | ||||
| -rw-r--r-- | src/parser.rs | 18 |
3 files changed, 12 insertions, 14 deletions
@@ -1,7 +1,5 @@ -use num_bigint::BigInt; -use num_traits::cast::ToPrimitive; -use num_traits::pow::Pow; -use num_traits::{FromPrimitive, Signed}; +use num::pow::Pow; +use num::{BigInt, FromPrimitive, Signed, ToPrimitive}; use std::fmt::{Display, Formatter}; pub enum Num { diff --git a/src/main.rs b/src/main.rs index e505ee6..08c1ded 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ +mod eval; mod lexer; -mod num; mod parser; use gdk4::{Key, ModifierType}; diff --git a/src/parser.rs b/src/parser.rs index 01f0e1b..b391202 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1,7 +1,7 @@ +use crate::eval; +use crate::eval::Num; use crate::lexer::Lexer; -use crate::num; -use crate::num::Num; -use num_bigint::BigInt; +use num::BigInt; use std::str::FromStr; enum ParseError { @@ -70,17 +70,17 @@ impl<'a> Parser<'a> { return Err(ParseError::Consumed); }; if negative { - return Ok(num::float(-f)); + return Ok(eval::float(-f)); } - return Ok(num::float(f)); + return Ok(eval::float(f)); } let Ok(i) = BigInt::from_str(t) else { return Err(ParseError::Consumed); }; if negative { - return Ok(num::int(-i)); + return Ok(eval::int(-i)); } - Ok(num::int(i)) + Ok(eval::int(i)) } fn paren_expr(&mut self) -> Result<Num, ParseError> { @@ -96,10 +96,10 @@ impl<'a> Parser<'a> { fn parse_const(&mut self) -> Result<Num, ParseError> { if self.symbol("e") { - return Ok(num::float(std::f64::consts::E)); + return Ok(eval::float(std::f64::consts::E)); } if self.symbol("pi") { - return Ok(num::float(std::f64::consts::PI)); + return Ok(eval::float(std::f64::consts::PI)); } Err(ParseError::Empty) } |
