From 79108fd28de193ae18cbd65555f142cbc881334b Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 12 Jul 2021 13:42:08 -0600 Subject: [PATCH] cond use expBuilder() --- src/kiss/Macros.hx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/kiss/Macros.hx b/src/kiss/Macros.hx index 6826012..815fdc1 100644 --- a/src/kiss/Macros.hx +++ b/src/kiss/Macros.hx @@ -739,21 +739,21 @@ class Macros { } } - // TODO use expBuilder() // cond expands telescopically into a nested if expression static function cond(wholeExp:ReaderExp, exps:Array, k:KissState) { wholeExp.checkNumArgs(1, null, "(cond [cases...])"); + var b = wholeExp.expBuilder(); return switch (exps[0].def) { case CallExp(condition, body): - CallExp(Symbol("if").withPosOf(wholeExp), [ + b.call(b.symbol("if"), [ condition, - CallExp(Symbol("begin").withPosOf(wholeExp), body).withPosOf(wholeExp), + b.begin(body), if (exps.length > 1) { - cond(CallExp(Symbol("cond").withPosOf(wholeExp), exps.slice(1)).withPosOf(wholeExp), exps.slice(1), k); + cond(b.call(b.symbol("cond"), exps.slice(1)), exps.slice(1), k); } else { - Symbol("null").withPosOf(wholeExp); + b.symbol("null"); } - ]).withPosOf(wholeExp); + ]); default: throw CompileError.fromExp(exps[0], 'top-level expression of (cond... ) must be a call list starting with a condition expression'); };