Module Frenetic_netkat.LexBuffer

A custom lexbuffer that automatically keeps track of the source location. This module is a thin wrapper arounds sedlexing's default buffer, which does not provide this functionality.

type t = {
buf : Sedlexing.lexbuf;
mutable pos : Lexing.position;
mutable pos_mark : Lexing.position;
mutable last_char : int option;
mutable last_char_mark : int option;
}

the lex buffer type

val of_sedlex : ?⁠file:string ‑> ?⁠pos:Lexing.position ‑> Sedlexing.lexbuf ‑> t
val of_ascii_string : ?⁠pos:Lexing.position ‑> string ‑> t
val of_ascii_file : Base.string ‑> t
val mark : t ‑> int ‑> unit

The next four functions are used by sedlex internally. See https://www.lexifi.com/sedlex/libdoc/Sedlexing.html.

val backtrack : t ‑> int
val start : t ‑> unit
val next_loc : t ‑> Lexing.position

location of next character

val cr : int
val next : t ‑> int

next character

val raw : t ‑> int array
val ascii : ?⁠skip:int ‑> ?⁠drop:int ‑> t ‑> string