aboutsummaryrefslogtreecommitdiff
path: root/core/control_flow.nom
diff options
context:
space:
mode:
Diffstat (limited to 'core/control_flow.nom')
-rw-r--r--core/control_flow.nom8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/control_flow.nom b/core/control_flow.nom
index b51ecdf..d3d18ac 100644
--- a/core/control_flow.nom
+++ b/core/control_flow.nom
@@ -261,7 +261,9 @@ immediately
%fallthroughs <- []
%is_first <- (yes)
%seen_else <- (no)
- for %func_call in %body.value
+ %branches <-
+ %body.value if (%body.type = "Block") else [%body]
+ for %func_call in %branches
assume (%func_call.type is "Action") or barf ".."
Invalid format for 'when' statement. Only '*' blocks are allowed.
%tokens <- %func_call.value
@@ -308,7 +310,9 @@ immediately
%fallthroughs <- []
%is_first <- (yes)
%seen_else <- (no)
- for %func_call in %body.value
+ %branches <-
+ %body.value if (%body.type = "Block") else [%body]
+ for %func_call in %branches
assume (%func_call.type is "Action") or barf ".."
Invalid format for 'when' statement. Only '*' blocks are allowed.
%tokens <- %func_call.value