type cram_value = {
language : [ `Bash | `Sh ];
non_det : Mdx__.Label.non_det option;
}
type ocaml_value = {
env : Mdx__.Ocaml_env.t;
non_det : Mdx__.Label.non_det option;
errors : [ `Ellipsis | `Output of string ] list;
}
type toplevel_value = {
env : Mdx__.Ocaml_env.t;
non_det : Mdx__.Label.non_det option;
}
type include_ocaml_file = {
part_included : string option;
}
type include_other_file = {
}
type section = int * string
type t = {
loc : Location.t;
section : section option;
dir : string option;
labels : Mdx__.Label.t list;
legacy_labels : bool;
contents : string list;
skip : bool;
version_enabled : bool;
os_type_enabled : bool;
set_variables : (string * string) list;
unset_variables : string list;
delim : string option;
value : value;
}
val mk :
loc:Location.t ->
section:section option ->
labels:Mdx__.Label.t list ->
legacy_labels:bool ->
header:Header.t option ->
delim:string option ->
contents:string list ->
errors:[ `Ellipsis | `Output of string ] list ->
(t, [ `Msg of string ]) result
val mk_include :
loc:Location.t ->
section:section option ->
labels:Mdx__.Label.t list ->
(t, [ `Msg of string ]) result
val pp_contents : ?syntax:Mdx__.Syntax.t -> t Fmt.t
val pp : ?syntax:Mdx__.Syntax.t -> t Fmt.t
val non_det : t -> Mdx__.Label.non_det option
val directory : t -> string option
val file : t -> string option
val set_variables : t -> (string * string) list
val unset_variables : t -> string list
val is_active : ?section:string -> t -> bool
val ends_by_semi_semi : string list -> bool