From 0a3812c83d7a907fb0187d807caa6a68db0ed87f Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Fri, 26 Aug 2022 18:45:49 +0200 Subject: [PATCH] Add implementation test --- src_v2/parser/parser_internals.nim | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src_v2/parser/parser_internals.nim b/src_v2/parser/parser_internals.nim index 2028fdf..44ee84d 100644 --- a/src_v2/parser/parser_internals.nim +++ b/src_v2/parser/parser_internals.nim @@ -324,7 +324,7 @@ when isMainModule: # parse assert testAbc1Parser.flatMap(following(@[ch('a'), str("bc"), digit])).tokensToString() == "abc1" - block parsingHelpers: + block testParsingHelpers: let testParenParser = initParserResult("(123)") let testQuoteParser = initParserResult("\"123\"") @@ -338,8 +338,18 @@ when isMainModule: assert testParenParser.flatMap(anyBetween(ch('('), ch(')'))).tokensToString() == "123" assert testQuoteParser.flatMap(anyBetweenPair(testQuote)).tokensToString() == "123" - block parsingAliases: + block testParsingAliases: assert initParserResult("").flatMap(newlineOrEol).isOk() == true assert initParserResult("abc ").flatMap(str("abc") + newlineOrEol).error().expected == newlineEolExpectedErr assert initParserResult("").flatMap(whitespaceOrEol).isOk() == true assert initParserResult("abc ").flatMap(str("abc") + whitespaceOrEol + whitespaceOrEol).tokensToString() == "abc " + + block testImplementations: + let testSentenceStr = "This is a sentence\n\nFollowing another sentence." + let testSentenceParser = initParserResult(testSentenceStr) + + let testSentence1 = anyUntil(newline) + newline + newlineOrEol + + manyUntil(choice(@[letter, whitespace]), ch('.')) + ch('.') + + newlineOrEol + + assert testSentenceParser.flatMap(testSentence1).tokensToString() == testSentenceStr