diff --git a/examples/rhai_runner.rs b/examples/rhai_runner.rs index 1b6730a2..cb69e804 100644 --- a/examples/rhai_runner.rs +++ b/examples/rhai_runner.rs @@ -25,8 +25,8 @@ fn main() { if let Ok(mut f) = File::open(fname.clone()) { let mut contents = String::new(); + if let Ok(_) = f.read_to_string(&mut contents) { - match engine.eval(contents) { Ok(_) => (), Err(e) => {println!("Error: {:?}", e)} diff --git a/src/engine.rs b/src/engine.rs index 9e02fae1..ec5b114e 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -695,7 +695,7 @@ fn test_number_literal() { } #[test] -fn test_addition() { +fn test_ops() { let mut engine = Engine::new(); if let Ok(result) = engine.eval("60 + 5".to_string()).unwrap().downcast::() { @@ -704,6 +704,13 @@ fn test_addition() { else { assert!(false); } + + if let Ok(result) = engine.eval("(1 + 2) * (6 - 4) / 2".to_string()).unwrap().downcast::() { + assert_eq!(*result, 3); + } + else { + assert!(false); + } } #[test] diff --git a/src/parser.rs b/src/parser.rs index 272ae8fa..2252f11a 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -341,6 +341,7 @@ fn get_precedence(token: &Token) -> i32 { Token::NotEqualTo => 15, Token::Plus => 20, Token::Minus => 20, + Token::Divide => 40, Token::Multiply => 40, _ => -1 }