sig
type pos =
Pre_sexp.Annotated.pos = {
line : int;
col : int;
offset : int;
}
type range =
Pre_sexp.Annotated.range = {
start_pos : Sexp_intf.S.Annotated.pos;
end_pos : Sexp_intf.S.Annotated.pos;
}
type t =
Pre_sexp.Annotated.t =
Atom of Sexp_intf.S.Annotated.range * Type.t
| List of Sexp_intf.S.Annotated.range * Sexp_intf.S.Annotated.t list *
Type.t
type 'a conv = [ `Error of exn * Sexp_intf.S.Annotated.t | `Result of 'a ]
exception Conv_exn of string * exn
type stack =
Pre_sexp.Annotated.stack = {
mutable positions : Sexp_intf.S.Annotated.pos list;
mutable stack : Sexp_intf.S.Annotated.t list list;
}
val get_sexp : Sexp_intf.S.Annotated.t -> Type.t
val get_range : Sexp_intf.S.Annotated.t -> Sexp_intf.S.Annotated.range
val find_sexp :
Sexp_intf.S.Annotated.t -> Type.t -> Sexp_intf.S.Annotated.t option
val parse :
?parse_pos:Sexp_intf.S.Parse_pos.t ->
?len:int ->
string -> (string, Sexp_intf.S.Annotated.t) Sexp_intf.S.parse_result
val parse_bigstring :
?parse_pos:Sexp_intf.S.Parse_pos.t ->
?len:int ->
Sexp_intf.S.bigstring ->
(Sexp_intf.S.bigstring, Sexp_intf.S.Annotated.t) Sexp_intf.S.parse_result
val input_sexp :
?parse_pos:Sexp_intf.S.Parse_pos.t ->
Pervasives.in_channel -> Sexp_intf.S.Annotated.t
val input_sexps :
?parse_pos:Sexp_intf.S.Parse_pos.t ->
?buf:string -> Pervasives.in_channel -> Sexp_intf.S.Annotated.t list
val input_rev_sexps :
?parse_pos:Sexp_intf.S.Parse_pos.t ->
?buf:string -> Pervasives.in_channel -> Sexp_intf.S.Annotated.t list
val load_sexp :
?strict:bool -> ?buf:string -> string -> Sexp_intf.S.Annotated.t
val load_sexps : ?buf:string -> string -> Sexp_intf.S.Annotated.t list
val load_rev_sexps : ?buf:string -> string -> Sexp_intf.S.Annotated.t list
val of_string : string -> Sexp_intf.S.Annotated.t
val of_bigstring : Sexp_intf.S.bigstring -> Sexp_intf.S.Annotated.t
val conv :
(Type.t -> 'a) ->
Sexp_intf.S.Annotated.t -> 'a Sexp_intf.S.Annotated.conv
val get_conv_exn : file:string -> exc:exn -> Sexp_intf.S.Annotated.t -> exn
end