From 5c3446eeb27ef97462c1788c6ca7a09642a2b2fb Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Thu, 20 Jan 2022 17:00:00 +0100 Subject: [PATCH] Add delimiter parser --- src/org/org_text_delimiter.nim | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/org/org_text_delimiter.nim diff --git a/src/org/org_text_delimiter.nim b/src/org/org_text_delimiter.nim new file mode 100644 index 0000000..0a8ed09 --- /dev/null +++ b/src/org/org_text_delimiter.nim @@ -0,0 +1,14 @@ +import std/sugar +import results +import fusion/matching +import ../utils/fp +import ../parser/parser_internals +import ../parser/parser_types + +let parseBetweenDelimiter* = proc(delimiterParser: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} = + ignore(delimiterParser) + anyUntil(delimiterParser + whitespace) + ignore(delimiterParser) + +let boldParser* = parseBetweenDelimiter(ch('*')) + +echo initParser("""*foo bar ** +""").boldParser()