aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2024-05-28 18:12:02 -0700
committerRose Hogenson <rosehogenson@posteo.net>2024-05-28 18:14:21 -0700
commit2df47cf5e375c73917ebcd6690cd16199d57af83 (patch)
tree6b5206f512e7b0a5ce7ee8d4c3b76a51919e7a32 /src
parent8c0ddfb990057c5ae8d6d15ab0e0ec3f83b07ee4 (diff)
downloadqc-2df47cf5e375c73917ebcd6690cd16199d57af83.tar.zst
Use num crate.
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)
}