Clean up structure
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
import std/sugar
|
||||
import std/collections/sequtils
|
||||
import ./org_types
|
||||
import ../parser/parser_types
|
||||
|
||||
type OrgBuilderT* = seq[OrgElement]
|
||||
type StringBuilder* = Builder[OrgBuilderT]
|
||||
type OrgBuilderT* = OrgElement
|
||||
type OrgBuilder* = Builder[OrgBuilderT]
|
||||
type OrgBuilderResult* = BuilderResult[OrgBuilderT]
|
||||
|
||||
proc concat*(typeInfo: OrgBuilderT): (seq[ParserToken], seq[OrgBuilderT]) -> seq[OrgBuilderT] =
|
||||
return proc(xs: seq[ParserToken], ys: seq[OrgBuilderT]): seq[OrgBuilderT] =
|
||||
return ys & xs.foldl(a & b.tokenStringValue() & seperator, typeInfo)
|
||||
func makeOrgBuilderToken*(kind: orgElementKind): string -> OrgBuilderT =
|
||||
return func(content: string): OrgBuilderT =
|
||||
return OrgBuilderT(
|
||||
kind: orgRawText,
|
||||
content: content,
|
||||
)
|
||||
|
||||
proc initStringBuilder*(str: string): StringBuilderResult =
|
||||
StringBuilderResult
|
||||
.ok(StringBuilder((
|
||||
parser: initParser(str),
|
||||
tree: newSeq[OrgBuilderT](),
|
||||
)))
|
||||
proc mergeOrgToken*(orgTokenFn: string -> OrgBuilderT): (seq[ParserToken], seq[OrgBuilderT]) -> seq[OrgBuilderT] =
|
||||
return proc(parserTokens: seq[ParserToken], builderTokens: seq[OrgBuilderT]): seq[OrgBuilderT] =
|
||||
return builderTokens & parserTokens.foldl(a & b.tokenStringValue(), "").orgTokenFn()
|
||||
|
||||
Reference in New Issue
Block a user