Use helper function

This commit is contained in:
Florian Schroedl
2022-01-20 17:00:00 +01:00
parent bec0742e51
commit 51f4f3d35f

View File

@@ -9,17 +9,20 @@ import ../utils/fp
import ../parser/parser_internals import ../parser/parser_internals
import ../parser/parser_types import ../parser/parser_types
let parseBetweenDelimiter* = proc(delimiterParser: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} = let parseBetweenDelimiter* = proc(start: (Parser -> ParserResult), stop: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} =
ignore(delimiterParser) + ignore(start) +
anyUntil(delimiterParser + whitespace) + anyUntil(stop + whitespace) +
ignore(delimiterParser) ignore(start)
let boldParser* = parseBetweenDelimiter(ch('*')) let parseBetweenIdenticalDelimiter* = proc(delimiterParser: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} =
let italicParser* = parseBetweenDelimiter(ch('/')) parseBetweenDelimiter(delimiterParser, delimiterParser)
let underlineParser* = parseBetweenDelimiter(ch('_'))
let verbatimParser* = parseBetweenDelimiter(ch('=')) let boldParser* = parseBetweenIdenticalDelimiter(ch('*'))
let codeParser* = parseBetweenDelimiter(ch('~')) let italicParser* = parseBetweenIdenticalDelimiter(ch('/'))
let strikeThroughParser* = parseBetweenDelimiter(ch('+')) let underlineParser* = parseBetweenIdenticalDelimiter(ch('_'))
let verbatimParser* = parseBetweenIdenticalDelimiter(ch('='))
let codeParser* = parseBetweenIdenticalDelimiter(ch('~'))
let strikeThroughParser* = parseBetweenIdenticalDelimiter(ch('+'))
type OrgBuilderT* = OrgElement type OrgBuilderT* = OrgElement
type OrgBuilder* = Builder[OrgBuilderT] type OrgBuilder* = Builder[OrgBuilderT]