diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2023-08-04 22:52:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-04 22:52:31 +0200 |
commit | 873eaa3f65f9ef96f3dc4430e8938d273f04f8e9 (patch) | |
tree | 970fc3adcd21f510dd24147732e86227dcf99293 | |
parent | db435a4a797adbbd4dd42edf89267902c0b2e34f (diff) | |
download | Nim-873eaa3f65f9ef96f3dc4430e8938d273f04f8e9.tar.gz |
compiler/llstream: modern code for llstream (#22385)
-rw-r--r-- | compiler/llstream.nim | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/compiler/llstream.nim b/compiler/llstream.nim index 004d990fa..bad28eb12 100644 --- a/compiler/llstream.nim +++ b/compiler/llstream.nim @@ -40,33 +40,22 @@ type PLLStream* = ref TLLStream -proc llStreamOpen*(data: string): PLLStream = - new(result) - result.s = data - result.kind = llsString +proc llStreamOpen*(data: sink string): PLLStream = + PLLStream(kind: llsString, s: data) proc llStreamOpen*(f: File): PLLStream = - new(result) - result.f = f - result.kind = llsFile + PLLStream(kind: llsFile, f: f) proc llStreamOpen*(filename: AbsoluteFile, mode: FileMode): PLLStream = - new(result) - result.kind = llsFile + result = PLLStream(kind: llsFile) if not open(result.f, filename.string, mode): result = nil proc llStreamOpen*(): PLLStream = - new(result) - result.kind = llsNone + PLLStream(kind: llsNone) proc llReadFromStdin(s: PLLStream, buf: pointer, bufLen: int): int proc llStreamOpenStdIn*(r: TLLRepl = llReadFromStdin, onPrompt: OnPrompt = nil): PLLStream = - new(result) - result.kind = llsStdIn - result.s = "" - result.lineOffset = -1 - result.repl = r - result.onPrompt = onPrompt + PLLStream(kind: llsStdIn, s: "", lineOffset: -1, repl: r, onPrompt: onPrompt) proc llStreamClose*(s: PLLStream) = case s.kind |