Use helper function
This commit is contained in:
@@ -9,17 +9,20 @@ 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 parseBetweenDelimiter* = proc(start: (Parser -> ParserResult), stop: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} =
|
||||
ignore(start) +
|
||||
anyUntil(stop + whitespace) +
|
||||
ignore(start)
|
||||
|
||||
let boldParser* = parseBetweenDelimiter(ch('*'))
|
||||
let italicParser* = parseBetweenDelimiter(ch('/'))
|
||||
let underlineParser* = parseBetweenDelimiter(ch('_'))
|
||||
let verbatimParser* = parseBetweenDelimiter(ch('='))
|
||||
let codeParser* = parseBetweenDelimiter(ch('~'))
|
||||
let strikeThroughParser* = parseBetweenDelimiter(ch('+'))
|
||||
let parseBetweenIdenticalDelimiter* = proc(delimiterParser: (Parser -> ParserResult)): (Parser -> ParserResult) {.closure.} =
|
||||
parseBetweenDelimiter(delimiterParser, delimiterParser)
|
||||
|
||||
let boldParser* = parseBetweenIdenticalDelimiter(ch('*'))
|
||||
let italicParser* = parseBetweenIdenticalDelimiter(ch('/'))
|
||||
let underlineParser* = parseBetweenIdenticalDelimiter(ch('_'))
|
||||
let verbatimParser* = parseBetweenIdenticalDelimiter(ch('='))
|
||||
let codeParser* = parseBetweenIdenticalDelimiter(ch('~'))
|
||||
let strikeThroughParser* = parseBetweenIdenticalDelimiter(ch('+'))
|
||||
|
||||
type OrgBuilderT* = OrgElement
|
||||
type OrgBuilder* = Builder[OrgBuilderT]
|
||||
|
||||
Reference in New Issue
Block a user