diff --git a/src_v2/org/org_builder_api.nim b/src_v2/org/org_builder_api.nim index b4b7810..18bebac 100644 --- a/src_v2/org/org_builder_api.nim +++ b/src_v2/org/org_builder_api.nim @@ -1,5 +1,6 @@ import std/[ collections/sequtils, + strformat, sugar, ] import fp/[ @@ -50,6 +51,22 @@ func initOrgBuilder*(content: string): OrgBuilderResult = 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): # # (seq[ParserToken], OrgBuilderT) -> OrgBuilderT = # # return proc(xs: seq[ParserToken], builder: OrgBuilderT): OrgBuilderT = diff --git a/src_v2/org/org_builder_paragraph.nim b/src_v2/org/org_builder_paragraph.nim index 7690b80..6a312bd 100644 --- a/src_v2/org/org_builder_paragraph.nim +++ b/src_v2/org/org_builder_paragraph.nim @@ -123,5 +123,5 @@ when isMainModule: block testParsers: let test = initOrgBuilder("""- List item 1. List item -random stuff""").flatMap((builder: OrgBuilder) => builder.buildParagraph(paragraphBuilders)) - echo test.isOk() +- random stuff""").flatMap((builder: OrgBuilder) => builder.buildParagraph(paragraphBuilders)) + echo test diff --git a/src_v2/parser/builder_api.nim b/src_v2/parser/builder_api.nim index f97aaa6..9b80494 100644 --- a/src_v2/parser/builder_api.nim +++ b/src_v2/parser/builder_api.nim @@ -83,6 +83,12 @@ proc tryTokenize*[T]( ), )) +# -- Stringifiers + +func pprint[T](x: Builder): string = + &"""Builder() + """ + when isMainModule: type TestStringBuilderT* = string type TestStringBuilder* = Builder[TestStringBuilderT]