diff options
| author | Mel <einebeere@gmail.com> | 2021-10-23 22:01:52 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2021-10-23 22:01:52 +0200 |
| commit | 8a6eb35a900081967db16d313ab7ed470de6570f (patch) | |
| tree | d58dd702d8a742c7554545bc4e291480649e3663 /src/parse/ast/statement.rs | |
| parent | da14afd74e1659af6ce4553360ac5dd0ce933db8 (diff) | |
| download | rabbithole-8a6eb35a900081967db16d313ab7ed470de6570f.tar.zst rabbithole-8a6eb35a900081967db16d313ab7ed470de6570f.zip | |
Loop expressions and concrete walker errors.
Diffstat (limited to 'src/parse/ast/statement.rs')
| -rw-r--r-- | src/parse/ast/statement.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/parse/ast/statement.rs b/src/parse/ast/statement.rs index b0e626d..99ee0e0 100644 --- a/src/parse/ast/statement.rs +++ b/src/parse/ast/statement.rs @@ -6,6 +6,8 @@ use super::expression::Expression; pub enum Statement { Expression(Expression), Print(Expression), + Break(Option<Expression>), + Continue, Return(Expression), } @@ -32,6 +34,17 @@ impl Statement { writeln!(f, "{}Return:", pad)?; expression.nested_fmt(f, depth + 1)?; } + Statement::Break(expression) => { + if let Some(returned_on_break) = expression { + writeln!(f, "{}Break:", pad)?; + returned_on_break.nested_fmt(f, depth + 1)?; + } else { + writeln!(f, "{}Break", pad)?; + } + } + Statement::Continue => { + writeln!(f, "{}Continue", pad)?; + } } Ok(()) |
