From f31cab2f82f272b90f59e87df3c6dc93e75ae7f8 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sun, 25 Apr 2021 03:07:13 -0600 Subject: [PATCH] (loop) macro --- src/kiss/SpecialForms.hx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/kiss/SpecialForms.hx b/src/kiss/SpecialForms.hx index 1b9a330..dbd96f1 100644 --- a/src/kiss/SpecialForms.hx +++ b/src/kiss/SpecialForms.hx @@ -221,6 +221,11 @@ class SpecialForms { EArrayDecl([forExpr("for", wholeExp, args, k)]).withMacroPosOf(wholeExp); }; + map["loop"] = (wholeExp:ReaderExp, args:Array, k:KissState) -> { + wholeExp.checkNumArgs(1, null, '(loop [body...])'); + EWhile(macro true, k.convert(wholeExp.expBuilder().begin(args)), true).withMacroPosOf(wholeExp); + }; + map["return"] = (wholeExp:ReaderExp, args:Array, k:KissState) -> { wholeExp.checkNumArgs(0, 1, '(return [?value])'); var returnExpr = if (args.length == 1) k.convert(args[0]) else null;