Added an infinite loop parser and tests.
diff --git a/src/expr.rs b/src/expr.rs
index 04395d3..8214ef7 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -361,7 +361,8 @@
// TODO: ForLoop
// TODO: Loop
// TODO: ForLoop
- // TODO: Loop
+ |
+ expr_loop
// TODO: Match
// TODO: Closure
|
@@ -549,6 +550,21 @@
))
));
+ named!(expr_loop -> Expr, do_parse!(
+ id: option!(
+ terminated!(
+ preceded!(
+ punct!("'"),
+ ident),
+ punct!(":"))) >>
+ punct!("loop") >>
+ loop_block: block >>
+ (Expr::Loop(
+ Box::new(loop_block),
+ id,
+ ))
+ ));
+
named!(expr_block -> Expr, map!(block, |b| Expr::Block(Box::new(b))));
named!(block -> Block, do_parse!(