From bbae83871d0d70a357ca00b744d680a8792e3566 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 12 Jul 2021 16:56:50 -0600 Subject: [PATCH] wrap conditional compilation hscript parsing in the try-catch --- kiss/src/kiss/Macros.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kiss/src/kiss/Macros.hx b/kiss/src/kiss/Macros.hx index d4981b94..9e07afa5 100644 --- a/kiss/src/kiss/Macros.hx +++ b/kiss/src/kiss/Macros.hx @@ -188,11 +188,11 @@ class Macros { var parser = new Parser(); var conditionInterp = new KissInterp(true); var conditionStr = Reader.toString(conditionExp.def); - var conditionHScript = parser.parseString(Prelude.convertToHScript(conditionStr)); for (flag => value in Context.getDefines()) { conditionInterp.variables.set(flag, value); } try { + var conditionHScript = parser.parseString(Prelude.convertToHScript(conditionStr)); return if (Prelude.truthy(conditionInterp.execute(conditionHScript))) { thenExp; } else { @@ -231,7 +231,6 @@ class Macros { var parser = new Parser(); var caseInterp = new KissInterp(); var caseStr = Reader.toString(caseExp.def); - var caseHScript = parser.parseString(Prelude.convertToHScript(caseStr)); for (matchBodySymbol in matchBodySymbols) { caseInterp.variables.set(Prelude.symbolNameValue(matchBodySymbol), matchBodies.shift()); } @@ -239,6 +238,7 @@ class Macros { caseInterp.variables.set(flag, value); } try { + var caseHScript = parser.parseString(Prelude.convertToHScript(caseStr)); return caseInterp.execute(caseHScript); } catch (e) { throw CompileError.fromExp(caseExp, '#case evaluation threw error $e');