From 4e821308af654706b8bda5f3d00dce7a933d9942 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 25 Apr 2018 17:43:48 -0700 Subject: Overhauling parsing of Blocks (can no longer contain only one statement) --- core/control_flow.nom | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'core/control_flow.nom') 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 -- cgit v1.2.3