summaryrefslogtreecommitdiff
path: root/stream.sig
diff options
context:
space:
mode:
Diffstat (limited to 'stream.sig')
-rw-r--r--stream.sig36
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