Added an infinite loop parser and tests.
diff --git a/tests/test_expr.rs b/tests/test_expr.rs
index 75bee8a..0459da7 100644
--- a/tests/test_expr.rs
+++ b/tests/test_expr.rs
@@ -13,3 +13,31 @@
assert_eq!(expected, parse_expr(raw).unwrap());
}
+
+#[test]
+fn test_unnamed_loop() {
+ let block = match parse_expr("{ ( 1, 3, 8 ) }").unwrap() {
+ Expr::Block(b) => b,
+ _ => panic!("Could not run test_unnamed_loop: error in block parse."),
+ };
+
+ let raw = "loop {(1, 3, 8 )}";
+
+ let expected = Expr::Loop(block, None);
+
+ assert_eq!(expected, parse_expr(raw).unwrap());
+}
+
+#[test]
+fn test_named_loop() {
+ let block = match parse_expr("{ ( 1, 5, 9, 11) }").unwrap() {
+ Expr::Block(b) => b,
+ _ => panic!("Could not run named_loop: error in block parse."),
+ };
+
+ let raw = "' test : loop{(1, 5, 9, 11)}";
+
+ let expected = Expr::Loop(block, Some("test".into()));
+
+ assert_eq!(expected, parse_expr(raw).unwrap());
+}