Library
Module
Module type
Parameter
Class
Class type
A module providing efficient input buffers with preprocessing.
val init_pos : pos
position at the beginning of a buffer
read buf pos
returns the character at position pos
in the buffer buf
, together with the new buffer and position.
sub b i len
returns len
characters from position pos
. If the end of buffer is reached, the string is filed with eof '\255'
type context = Utf8.context
from_file fn
returns a buffer constructed using the file fn
. if utf8
is Utf8.UTF8
(Utf8.ASCII
is the default), positions are reported according to utf8
. read
is still reading bytes.
from_channel ~filename ch
returns a buffer constructed using the channel ch
. The optional filename
is only used as a reference to the channel in error messages.
from_string ~filename str
returns a buffer constructed using the string str
. The optional filename
is only used as a reference to the channel in error messages.
from_fun finalise utf8 name get data
returns a buffer constructed from the object data
using the get
function. The get function is used to obtain one line of input from data
. The finalise
function is applied to data
when the end of file is reached. The name
string is used to reference the origin of the data in error messages. Position are reported according to utf8
.
Exception that can be raised by a preprocessor in case of error. The first string references the name of the buffer (e.g. the name of the corresponding file) and the second string contains the message.
module type Preprocessor = sig ... end
Specification of a preprocessor.
module WithPP (PP : Preprocessor) : sig ... end
Functor for building buffers with a preprocessor.
val is_empty : buffer -> int -> bool
is_empty buf
test whether the buffer buf
is empty.
val line_num : buffer -> int
line_num buf
returns the current line number of buf
.
val line_offset : buffer -> int
line_beginning buf
returns the offset of the current line in the buffer buf
.
normalize buf pos
ensures that pos
is less than the length of the current line in str
.
val filename : buffer -> string
filename buf
returns the file name associated to the buf
.
val buffer_uid : buffer -> int
buffer_uid buf
returns a unique identifier for buf
.
buffer_before b1 i1 b2 i2
returns true if the position b1, i1
is before b2, i2
. Gives meaningless result if b1
and b2
do not refer to the same file.
module Tbl : sig ... end
Table to associate value to positions in input buffers. The complexity of access in the table is O(ln(N)) where N is the number of tables.