From b7c0ead7d2dcc5345e80ab45fc16b64ba3c7c7a9 Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Thu, 20 Jan 2022 17:00:00 +0100 Subject: [PATCH] Add org builder initializer --- src/org/org_builder.nim | 8 ++++++-- src/parser/parser_types.nim | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/org/org_builder.nim b/src/org/org_builder.nim index 7b749bc..a507c19 100644 --- a/src/org/org_builder.nim +++ b/src/org/org_builder.nim @@ -1,5 +1,5 @@ import std/sugar -import std/collections/sequtils +import results import ./org_types import ../parser/parser_types @@ -7,7 +7,11 @@ type OrgBuilderT* = OrgElement type OrgBuilder* = Builder[OrgBuilderT] type OrgBuilderResult* = BuilderResult[OrgBuilderT] -func makeOrgBuilderToken*(kind: orgElementKind): string -> OrgBuilderT = +func initOrgBuilder*(content: string): OrgBuilderResult = + return OrgBuilderResult.ok(OrgBuilder(( + parser: initParser(content), + tree: newSeq[OrgBuilderT](), + ))) func textTokenizer*(kind: orgElementKind): seq[ParserToken] -> seq[OrgBuilderT] = return func(tokens: seq[ParserToken]): seq[OrgBuilderT] = diff --git a/src/parser/parser_types.nim b/src/parser/parser_types.nim index d63d2e7..14e57d1 100644 --- a/src/parser/parser_types.nim +++ b/src/parser/parser_types.nim @@ -51,7 +51,7 @@ type func initParserToken*(x: char): ParserToken = ParserToken(kind: parserTokenChar, charValue: x) func initParserToken*(x: string): ParserToken = ParserToken(kind: parserTokenString, stringValue: x) -proc initParser*(str: string): Parser = +func initParser*(str: string): Parser = Parser( state: ParserState( stream: str,