diff options
author | Nadrieril | 2019-02-27 19:27:28 +0100 |
---|---|---|
committer | Nadrieril | 2019-02-27 19:27:28 +0100 |
commit | 8cd386521267bf95ae00b7068cda9422305eec29 (patch) | |
tree | 1032ac5e68e14ef0833358f645670d6858468fec /src/parser.rs | |
parent | d8b88c1a5da7218011fca2bccc525907aa439335 (diff) |
Fix mixed up parsing of integers/naturals
Diffstat (limited to '')
-rw-r--r-- | src/parser.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/parser.rs b/src/parser.rs index 2e252b1..8416d9b 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -13,15 +13,15 @@ pub fn parse_expr(s: &str) -> Result<BoxExpr, ParseError> { #[test] fn test_parse() { use crate::core::Expr::*; - println!("test {:?}", parse_expr("+3 + +5 * +10")); + println!("test {:?}", parse_expr("3 + 5 * 10")); assert!(parse_expr("22").is_ok()); assert!(parse_expr("(22)").is_ok()); - assert_eq!(parse_expr("+3 + +5 * +10").ok(), + assert_eq!(parse_expr("3 + 5 * 10").ok(), Some(Box::new(NaturalPlus(Box::new(NaturalLit(3)), Box::new(NaturalTimes(Box::new(NaturalLit(5)), Box::new(NaturalLit(10)))))))); // The original parser is apparently right-associative - assert_eq!(parse_expr("+2 * +3 * +4").ok(), + assert_eq!(parse_expr("2 * 3 * 4").ok(), Some(Box::new(NaturalTimes(Box::new(NaturalLit(2)), Box::new(NaturalTimes(Box::new(NaturalLit(3)), Box::new(NaturalLit(4)))))))); |