Got continous parsing working
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import std/[
|
import std/[
|
||||||
collections/sequtils,
|
collections/sequtils,
|
||||||
|
strformat,
|
||||||
sugar,
|
sugar,
|
||||||
]
|
]
|
||||||
import fp/[
|
import fp/[
|
||||||
@@ -50,6 +51,22 @@ func initOrgBuilder*(content: string): OrgBuilderResult =
|
|||||||
tree: newSeq[OrgBuilderT](),
|
tree: newSeq[OrgBuilderT](),
|
||||||
)))
|
)))
|
||||||
|
|
||||||
|
func pprint*(x: OrgBuilder): string =
|
||||||
|
&"""OrgBuilder(
|
||||||
|
parser: {x.parser}
|
||||||
|
tree: {x.tree}
|
||||||
|
)"""
|
||||||
|
|
||||||
|
func `$`*(x: OrgBuilder): string = pprint(x)
|
||||||
|
|
||||||
|
func pprint*(x: OrgBuilderError): string =
|
||||||
|
&"""OrgBuilderError(
|
||||||
|
parser: {x.parser}
|
||||||
|
tree: {x.tree}
|
||||||
|
)"""
|
||||||
|
|
||||||
|
func `$`*(x: OrgBuilderError): string = pprint(x)
|
||||||
|
|
||||||
# # proc orgBuilderConcat*(typeInfo: OrgBuilderT, concatFn: (ParserToken, OrgBuilderT) -> OrgBuilderT):
|
# # proc orgBuilderConcat*(typeInfo: OrgBuilderT, concatFn: (ParserToken, OrgBuilderT) -> OrgBuilderT):
|
||||||
# # (seq[ParserToken], OrgBuilderT) -> OrgBuilderT =
|
# # (seq[ParserToken], OrgBuilderT) -> OrgBuilderT =
|
||||||
# # return proc(xs: seq[ParserToken], builder: OrgBuilderT): OrgBuilderT =
|
# # return proc(xs: seq[ParserToken], builder: OrgBuilderT): OrgBuilderT =
|
||||||
|
|||||||
@@ -123,5 +123,5 @@ when isMainModule:
|
|||||||
block testParsers:
|
block testParsers:
|
||||||
let test = initOrgBuilder("""- List item
|
let test = initOrgBuilder("""- List item
|
||||||
1. List item
|
1. List item
|
||||||
random stuff""").flatMap((builder: OrgBuilder) => builder.buildParagraph(paragraphBuilders))
|
- random stuff""").flatMap((builder: OrgBuilder) => builder.buildParagraph(paragraphBuilders))
|
||||||
echo test.isOk()
|
echo test
|
||||||
|
|||||||
@@ -83,6 +83,12 @@ proc tryTokenize*[T](
|
|||||||
),
|
),
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# -- Stringifiers
|
||||||
|
|
||||||
|
func pprint[T](x: Builder): string =
|
||||||
|
&"""Builder()
|
||||||
|
"""
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
type TestStringBuilderT* = string
|
type TestStringBuilderT* = string
|
||||||
type TestStringBuilder* = Builder[TestStringBuilderT]
|
type TestStringBuilder* = Builder[TestStringBuilderT]
|
||||||
|
|||||||
Reference in New Issue
Block a user