From ea4794ccdc9d0d8709ba22e43494e392b48be768 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 27 Jul 2017 13:05:23 +0200 Subject: Resolve #4: mandatory initial values for basic locals --- Sil/Parse.icl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Sil/Parse.icl') diff --git a/Sil/Parse.icl b/Sil/Parse.icl index 4d4b5eb..d5c97ef 100644 --- a/Sil/Parse.icl +++ b/Sil/Parse.icl @@ -137,9 +137,14 @@ codeblock = many initialisation >>= \is -> initialisation :: Parser Token [Initialisation] initialisation = type >>= \t -> - seplist TComma name >>= \ns -> + seplist TComma init >>= \nvs -> item TSemicolon $> - [{init_type=t, init_name=n} \\ n <- ns] + [{init_type=t, init_name=n, init_value=v} \\ (n,v) <- nvs] +where + init = + name >>= \n -> + optional (item TAssign *> expression) >>= \v -> + pure (n,v) statement :: Parser Token Statement statement = declaration -- cgit v1.2.3