diff options
author | Vladimir Azarov <avm@intermediate-node.net> | 2025-03-24 21:51:16 +0100 |
---|---|---|
committer | Vladimir Azarov <avm@intermediate-node.net> | 2025-03-24 21:51:16 +0100 |
commit | 87217fe5ba58f5199d30586b5d9bec104dece445 (patch) | |
tree | 00a43d11ebdfbb65750e80758ce1925e4c6a1a3e /stream.sig | |
parent | e40727b58e357f123256557af50666aa42c2caa4 (diff) |
Partition into structures
Diffstat (limited to 'stream.sig')
-rw-r--r-- | stream.sig | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/stream.sig b/stream.sig new file mode 100644 index 0000000..98cfb65 --- /dev/null +++ b/stream.sig @@ -0,0 +1,36 @@ +signature STREAM = sig + type fileId = int + type fileOffset = int + type pos = fileId * fileOffset + type convPos = string * int * int option + + type filesInfo = (fileId * string * string) list + + exception EndOfStream + exception EndOfFile + + exception LineWithoutNl + + type t + + val extractFilesInfo: t -> filesInfo + + val pos2str: convPos -> string + val printPos: (fileId * string * string) list -> pos -> unit + + val getchar: t -> char * t + val ungetc: t -> t + val readline: t -> string * t + + val getOffset: t -> fileOffset + val getPos: t -> pos + val getPosAfterCharRead: t -> pos + val getPposFromPos: pos -> t -> convPos + + val getSubstr: fileOffset -> fileOffset -> t -> string + val isFirstOnLine: pos -> t -> bool + + val advanceToNewFile: t -> t + + val streamInit: string -> t +end |