mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
add labels on CCParse.parse_ functions
This commit is contained in:
parent
523097f158
commit
49c2e6fba2
2 changed files with 21 additions and 16 deletions
|
|
@ -357,30 +357,30 @@ let fix_memo f =
|
|||
in
|
||||
p
|
||||
|
||||
let parse_exn ~input p = p input
|
||||
let parse_exn ~input ~p = p input
|
||||
|
||||
let parse ~input p =
|
||||
try `Ok (parse_exn ~input p)
|
||||
let parse ~input ~p =
|
||||
try `Ok (parse_exn ~input ~p)
|
||||
with ParseError (lnum, cnum, msg) ->
|
||||
`Error (Printf.sprintf "at line %d, column %d: error, %s" lnum cnum (msg ()))
|
||||
|
||||
let parse_string s p = parse ~input:(input_of_string s) p
|
||||
let parse_string_exn s p = parse_exn ~input:(input_of_string s) p
|
||||
let parse_string s ~p = parse ~input:(input_of_string s) ~p
|
||||
let parse_string_exn s ~p = parse_exn ~input:(input_of_string s) ~p
|
||||
|
||||
let parse_file_exn ?size ~file p =
|
||||
let parse_file_exn ?size ~file ~p =
|
||||
let ic = open_in file in
|
||||
let input = input_of_chan ?size ic in
|
||||
try
|
||||
let res = parse_exn ~input p in
|
||||
let res = parse_exn ~input ~p in
|
||||
close_in ic;
|
||||
res
|
||||
with e ->
|
||||
close_in ic;
|
||||
raise e
|
||||
|
||||
let parse_file ?size ~file p =
|
||||
let parse_file ?size ~file ~p =
|
||||
try
|
||||
`Ok (parse_file_exn ?size ~file p)
|
||||
`Ok (parse_file_exn ?size ~file ~p)
|
||||
with
|
||||
| ParseError (lnum, cnum, msg) ->
|
||||
`Error (Printf.sprintf "at line %d, column %d: error, %s" lnum cnum (msg ()))
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
(**
|
||||
{1 Very Simple Parser Combinators}
|
||||
|
||||
{b status} still a bit unstable, the type {!'a t} might still change.
|
||||
|
||||
Examples:
|
||||
|
||||
{6 parse recursive structures}
|
||||
|
|
@ -238,28 +240,31 @@ val fix_memo : ('a t -> 'a t) -> 'a t
|
|||
(** Same as {!fix}, but the fixpoint is memoized.
|
||||
@since 0.13 *)
|
||||
|
||||
(** {2 Parse} *)
|
||||
(** {2 Parse}
|
||||
|
||||
val parse : input:input -> 'a t -> 'a or_error
|
||||
Those functions have a label [~p] on the parser, since NEXT_RELEASE.
|
||||
*)
|
||||
|
||||
val parse : input:input -> p:'a t -> 'a or_error
|
||||
(** [parse ~input p] applies [p] on the input, and returns [`Ok x] if
|
||||
[p] succeeds with [x], or [`Error s] otherwise *)
|
||||
|
||||
val parse_exn : input:input -> 'a t -> 'a
|
||||
val parse_exn : input:input -> p:'a t -> 'a
|
||||
(** @raise ParseError if it fails *)
|
||||
|
||||
val parse_string : string -> 'a t -> 'a or_error
|
||||
val parse_string : string -> p:'a t -> 'a or_error
|
||||
(** Specialization of {!parse} for string inputs *)
|
||||
|
||||
val parse_string_exn : string -> 'a t -> 'a
|
||||
val parse_string_exn : string -> p:'a t -> 'a
|
||||
(** @raise ParseError if it fails *)
|
||||
|
||||
val parse_file : ?size:int -> file:string -> 'a t -> 'a or_error
|
||||
val parse_file : ?size:int -> file:string -> p:'a t -> 'a or_error
|
||||
(** [parse_file ~file p] parses [file] with [p] by opening the file
|
||||
and using {!input_of_chan}.
|
||||
@param size size of chunks read from file
|
||||
@since 0.13 *)
|
||||
|
||||
val parse_file_exn : ?size:int -> file:string -> 'a t -> 'a
|
||||
val parse_file_exn : ?size:int -> file:string -> p:'a t -> 'a
|
||||
(** Unsafe version of {!parse_file}
|
||||
@since 0.13 *)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue