From aee1c3b7ef4e119baed28cc39fd5c225ee551c35 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 28 Oct 2021 15:12:04 -0400 Subject: [PATCH] fix { reader macro comment error --- kiss/src/kiss/Reader.hx | 18 ++++++++++-------- kiss/src/test/cases/ReaderMacroTestCase.kiss | 6 +++++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/kiss/src/kiss/Reader.hx b/kiss/src/kiss/Reader.hx index 357ce901..4768e029 100644 --- a/kiss/src/kiss/Reader.hx +++ b/kiss/src/kiss/Reader.hx @@ -77,14 +77,16 @@ class Reader { // Lets you construct key-value pairs for map literals or for-loops readTable["=>"] = (stream:Stream, k) -> KeyValueExp(assertRead(stream, k), assertRead(stream, k)); - readTable[")"] = (stream:Stream, k) -> { - stream.putBackString(")"); - throw new UnmatchedBracketSignal(")", stream.position()); - }; - readTable["]"] = (stream:Stream, k) -> { - stream.putBackString("]"); - throw new UnmatchedBracketSignal("]", stream.position()); - }; + function unmatchedBracket(b:String) { + readTable[b] = (stream:Stream, k) -> { + stream.putBackString(b); + throw new UnmatchedBracketSignal(b, stream.position()); + }; + } + + unmatchedBracket(")"); + unmatchedBracket("]"); + unmatchedBracket("}"); readTable["`"] = (stream:Stream, k) -> Quasiquote(assertRead(stream, k)); readTable[","] = (stream:Stream, k) -> Unquote(assertRead(stream, k)); diff --git a/kiss/src/test/cases/ReaderMacroTestCase.kiss b/kiss/src/test/cases/ReaderMacroTestCase.kiss index e9b9368f..46765481 100644 --- a/kiss/src/test/cases/ReaderMacroTestCase.kiss +++ b/kiss/src/test/cases/ReaderMacroTestCase.kiss @@ -30,7 +30,11 @@ rassert fluffers (Assert.pass)) -(function _testCommentAtBlockEnd [] +(function _testCommentAtBlockOrArrayEnd [] + [ + (+ 1 2) + // Comment + ] { (+ 1 2) // Comment