Use helper function
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user