aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/eval.rs (renamed from src/num.rs)6
-rw-r--r--src/main.rs2
-rw-r--r--src/parser.rs18
3 files changed, 12 insertions, 14 deletions
diff --git a/src/num.rs b/src/eval.rs
index 10dfea2..d3b5ddc 100644
--- a/src/num.rs
+++ b/src/eval.rs
@@ -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)
}