From 5ea35918bf5c83c123b8894f3dafb42b9d72f36b Mon Sep 17 00:00:00 2001 From: metagn Date: Sat, 4 Apr 2026 11:38:39 +0300 Subject: [PATCH] use load buffer from flue --- rot.nimble | 2 +- src/rot/parser.nim | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/rot.nimble b/rot.nimble index 0a9a8db..628e812 100644 --- a/rot.nimble +++ b/rot.nimble @@ -10,7 +10,7 @@ srcDir = "src" # Dependencies requires "nim >= 1.0.0" -requires "https://github.com/metagn/hemodyne" +requires "https://github.com/holo-nim/flue" task docs, "build docs for all modules": exec "nim r tasks/build_docs.nim" diff --git a/src/rot/parser.nim b/src/rot/parser.nim index 94854a6..0b6c800 100644 --- a/src/rot/parser.nim +++ b/src/rot/parser.nim @@ -1,4 +1,4 @@ -import ./data, std/strutils, hemodyne/syncvein +import ./data, std/strutils, flue/load_buffer type SpecialCharacterStrategy* = enum @@ -19,7 +19,7 @@ type RotParser* = object options*: RotOptions done*: bool - vein*: Vein + buffer*: LoadBuffer pos*, previousPos: int filename*: string line*, column*: int @@ -52,25 +52,25 @@ proc resetParser*(parser: var RotParser) = parser.currentLineIndent = 0 proc initRotParser*(str: sink string = "", options = defaultRotOptions()): RotParser = - result = RotParser(vein: initVein(str), options: options) + result = RotParser(buffer: initLoadBuffer(str), options: options) resetParser(result) proc initRotParser*(loader: proc(): string, options = defaultRotOptions()): RotParser = - result = RotParser(vein: initVein(loader), options: options) + result = RotParser(buffer: initLoadBuffer(loader), options: options) resetParser(result) proc loadBufferOne(parser: var RotParser) = - let remove = parser.vein.loadBufferOne() + let remove = parser.buffer.loadOnce() parser.pos -= remove parser.previousPos -= remove proc peekCharOrZero*(parser: var RotParser): char = - if parser.pos < parser.vein.buffer.len: - result = parser.vein.buffer[parser.pos] + if parser.pos < parser.buffer.data.len: + result = parser.buffer.data[parser.pos] else: parser.loadBufferOne() - if parser.pos < parser.vein.buffer.len: - result = parser.vein.buffer[parser.pos] + if parser.pos < parser.buffer.data.len: + result = parser.buffer.data[parser.pos] else: result = '\0' @@ -87,12 +87,12 @@ proc nextChar*(parser: var RotParser): bool = parser.previousPos = parser.pos parser.previousCol = parser.column let c = - if parser.pos < parser.vein.buffer.len: - parser.vein.buffer[parser.pos] + if parser.pos < parser.buffer.data.len: + parser.buffer.data[parser.pos] else: parser.loadBufferOne() - if parser.pos < parser.vein.buffer.len: - parser.vein.buffer[parser.pos] + if parser.pos < parser.buffer.data.len: + parser.buffer.data[parser.pos] else: parser.done = true return false @@ -116,7 +116,7 @@ proc nextChar*(parser: var RotParser): bool = #let saved = # if parser.peekStart >= 0: parser.peekStart # else: parser.previousPos - parser.vein.setFreeBefore(parser.previousPos) + parser.buffer.freeBefore = parser.previousPos result = true iterator rawChars*(parser: var RotParser, skipFirst: static bool = true): char = @@ -693,12 +693,12 @@ proc termStartKind*(start: char, options = defaultRotOptions()): TermStartKind = result = UnquotedSymbol proc peekTermStart*(parser: var RotParser): TermStartKind = - if parser.pos < parser.vein.buffer.len: - result = termStartKind(parser.vein.buffer[parser.pos], parser.options) + if parser.pos < parser.buffer.data.len: + result = termStartKind(parser.buffer.data[parser.pos], parser.options) else: parser.loadBufferOne() - if parser.pos < parser.vein.buffer.len: - result = termStartKind(parser.vein.buffer[parser.pos], parser.options) + if parser.pos < parser.buffer.data.len: + result = termStartKind(parser.buffer.data[parser.pos], parser.options) else: result = Invalid # eof