Add implementation test
This commit is contained in:
@@ -324,7 +324,7 @@ when isMainModule:
|
|||||||
# parse
|
# parse
|
||||||
assert testAbc1Parser.flatMap(following(@[ch('a'), str("bc"), digit])).tokensToString() == "abc1"
|
assert testAbc1Parser.flatMap(following(@[ch('a'), str("bc"), digit])).tokensToString() == "abc1"
|
||||||
|
|
||||||
block parsingHelpers:
|
block testParsingHelpers:
|
||||||
let testParenParser = initParserResult("(123)")
|
let testParenParser = initParserResult("(123)")
|
||||||
let testQuoteParser = initParserResult("\"123\"")
|
let testQuoteParser = initParserResult("\"123\"")
|
||||||
|
|
||||||
@@ -338,8 +338,18 @@ when isMainModule:
|
|||||||
assert testParenParser.flatMap(anyBetween(ch('('), ch(')'))).tokensToString() == "123"
|
assert testParenParser.flatMap(anyBetween(ch('('), ch(')'))).tokensToString() == "123"
|
||||||
assert testQuoteParser.flatMap(anyBetweenPair(testQuote)).tokensToString() == "123"
|
assert testQuoteParser.flatMap(anyBetweenPair(testQuote)).tokensToString() == "123"
|
||||||
|
|
||||||
block parsingAliases:
|
block testParsingAliases:
|
||||||
assert initParserResult("").flatMap(newlineOrEol).isOk() == true
|
assert initParserResult("").flatMap(newlineOrEol).isOk() == true
|
||||||
assert initParserResult("abc ").flatMap(str("abc") + newlineOrEol).error().expected == newlineEolExpectedErr
|
assert initParserResult("abc ").flatMap(str("abc") + newlineOrEol).error().expected == newlineEolExpectedErr
|
||||||
assert initParserResult("").flatMap(whitespaceOrEol).isOk() == true
|
assert initParserResult("").flatMap(whitespaceOrEol).isOk() == true
|
||||||
assert initParserResult("abc ").flatMap(str("abc") + whitespaceOrEol + whitespaceOrEol).tokensToString() == "abc "
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user