mte/unikernel/duniverse/dune_/vendor/opam-file-format/opamParser.mli

110 lines
4.1 KiB
OCaml
Raw Normal View History

2025-11-11 02:07:51 +01:00
(**************************************************************************)
(* *)
(* Copyright 2016-2020 OCamlPro *)
(* *)
(* All rights reserved. This file is distributed under the terms of the *)
(* GNU Lesser General Public License version 2.1, with the special *)
(* exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** opam format parser *)
open OpamParserTypes
(** [OpamParser] transitional module with full position types *)
module FullPos : sig
open OpamParserTypes.FullPos
(** {2 Raw OpamBaseParser entry points } *)
(**
Providing a custom [lexbuf] argument allows you, for example, to set the
initial lexing position. For the first argument, you may use the
{!OpamLexer.token} lexing function:
{[
let lexbuf = Lexing.from_string input in
lexbuf.Lexing.lex_curr_p <- current_position;
OpamParser.value OpamLexer.token lexbuf
]}
*)
val main:
(Lexing.lexbuf -> OpamBaseParser.token) ->
Lexing.lexbuf -> file_name -> opamfile
(** Principal parser: given a lexbuf and the filename it was read from, returns
an {!OpamParserTypes.FullPos.opamfile} record parsed from it. *)
val value:
(Lexing.lexbuf -> OpamBaseParser.token) ->
Lexing.lexbuf -> value
(** Lower-level function just returning a single
{!OpamParserTypes.FullPos.value} from a given lexer. *)
(** {2 File parsers } *)
val string: string -> file_name -> opamfile
(** Parse the content of a file already read to a string. Note that for
CRLF-detection to work on Windows, it is necessary to read the original file
using binary mode on Windows! *)
val channel: in_channel -> file_name -> opamfile
(** Parse the content of a file from an already-opened channel. Note that for
CRLF-detection to work on Windows, it is necessary for the channel to be
in binary mode! *)
val file: file_name -> opamfile
(** Parse the content of a file. The file is opened in binary mode, so
CRLF-detection works on all platforms. *)
(** {2 [value] parsers } *)
val value_from_string: string -> file_name -> value
(** Parse the first value in the given string. [file_name] is used for lexer
positions. *)
val value_from_channel: in_channel -> file_name -> value
(** Parse the first value from the given channel. [file_name] is used for
lexer positions. *)
val value_from_file: file_name -> value
(** Parse the first value from the given file. *)
(** {2 Conversion functions, from full position to simple position (legacy)} *)
val to_value: value -> OpamParserTypes.value
val to_section: opamfile_section -> OpamParserTypes.opamfile_section
val to_item: opamfile_item -> OpamParserTypes.opamfile_item
val to_opamfile: opamfile -> OpamParserTypes.opamfile
end
val main:
(Lexing.lexbuf -> OpamBaseParser.token) ->
Lexing.lexbuf -> file_name -> opamfile
[@@ocaml.deprecated "Use OpamParser.FullPos.main instead."]
val value:
(Lexing.lexbuf -> OpamBaseParser.token) ->
Lexing.lexbuf -> value
[@@ocaml.deprecated "Use OpamParser.FullPos.value instead."]
val string: string -> file_name -> opamfile
[@@ocaml.deprecated "Use OpamParser.FullPos.string instead."]
val channel: in_channel -> file_name -> opamfile
[@@ocaml.deprecated "Use OpamParser.FullPos.channel instead."]
val file: file_name -> opamfile
[@@ocaml.deprecated "Use OpamParser.FullPos.file instead."]
val value_from_string: string -> file_name -> value
[@@ocaml.deprecated "Use OpamParser.FullPos.value_from_string instead."]
val value_from_channel: in_channel -> file_name -> value
[@@ocaml.deprecated "Use OpamParser.FullPos.value_from_channel instead."]
val value_from_file: file_name -> value
[@@ocaml.deprecated "Use OpamParser.FullPos.value_from_file instead."]