Rewrote parser

This commit is contained in:
2023-03-27 21:22:29 -07:00
parent 0bfeea09ed
commit 1996693008
8 changed files with 401 additions and 380 deletions

View File

@ -140,12 +140,10 @@ fn main() -> Result<(), std::io::Error> {
#[cfg(debug_assertions)]
RawTerminal::suspend_raw_mode(&stdout)?;
let g = evaluate::evaluate(g).unwrap();
let n = g.eval();
#[cfg(debug_assertions)]
RawTerminal::activate_raw_mode(&stdout)?;
if let Token::Number(_, v) = n {
if let Token::Number(_, v) = g {
write!(
stdout, "\r\n {}{}={} {v}{}\r\n\n",
style::Bold,
@ -204,9 +202,6 @@ fn main() -> Result<(), std::io::Error> {
#[cfg(test)]
mod tests {
// Many of these have been borrowed from insect.
@ -293,6 +288,14 @@ mod tests {
bad_expr("3+2)");
}
#[test]
fn implicit_multiply() {
good_expr(15f64, "5(3)");
good_expr(15f64, "(5)3");
good_expr(15f64, "(5)(3)");
bad_expr("5 2");
}
#[test]
fn operators() {
good_expr(125f64, "5^3");
@ -329,8 +332,6 @@ mod tests {
good_expr(15f64, "( 5 ) ( 3 )");
good_expr(15f64, "( ( 5 ) * ( 3 ) )");
good_expr(15f64, "( 5 * 3 )");
good_expr(15f64, "5(3)");
good_expr(15f64, "(5)3");
//good_expr(15f64, "5(+3)");
//good_expr(15f64, "+5*3");