sig
val log : Dtools.Log.t
type t = Lang_types.t
type value = { mutable t : Lang.t; value : Lang.in_value; }
and full_env =
(string * ((int * Lang_types.constraints) list * Lang.value)) list
and in_value =
Unit
| Bool of bool
| Int of int
| String of string
| Float of float
| Source of Source.source
| Request of Request.t
| Encoder of Encoder.format
| List of Lang.value list
| Product of Lang.value * Lang.value
| Ref of Lang.value Pervasives.ref
| Fun of (string * string * Lang.value option) list * Lang.full_env *
Lang.full_env * Lang_values.term
| FFI of (string * string * Lang.value option) list * Lang.full_env *
(Lang.full_env -> Lang.t -> Lang.value)
type env = (string * Lang.value) list
val print_value : Lang.value -> string
val iter_sources : (Source.source -> unit) -> Lang.value -> unit
val apply : Lang.value -> Lang.env -> t:Lang.t -> Lang.value
type proto = (string * Lang.t * Lang.value option * string option) list
type doc_flag = Hidden | Deprecated | Experimental
val add_builtin :
category:string ->
descr:string ->
?flags:Lang.doc_flag list ->
string ->
Lang.proto -> Lang.t -> (Lang.env -> Lang.t -> Lang.value) -> unit
val add_builtin_base :
category:string ->
descr:string ->
?flags:Lang.doc_flag list -> string -> Lang.in_value -> Lang.t -> unit
type category =
Input
| Output
| Conversions
| TrackProcessing
| SoundProcessing
| VideoProcessing
| MIDIProcessing
| Visualization
| SoundSynthesis
| Liquidsoap
val string_of_category : Lang.category -> string
val string_of_flag : Lang.doc_flag -> string
type lang_kind_format = Fixed of int | Variable of int | Any_fixed of int
type lang_kind_formats =
Unconstrained of Lang.t
| Constrained of
(Lang.lang_kind_format, Lang.lang_kind_format, Lang.lang_kind_format)
Frame.fields
val any_fixed : Lang.lang_kind_formats
val any_fixed_with :
?audio:int -> ?video:int -> ?midi:int -> unit -> Lang.lang_kind_formats
val empty : Lang.lang_kind_formats
val audio_any : Lang.lang_kind_formats
val audio_mono : Lang.lang_kind_formats
val audio_stereo : Lang.lang_kind_formats
val audio_n : int -> Lang.lang_kind_formats
val audio_variable : Lang.lang_kind_formats
val video_only : Lang.lang_kind_formats
val video_n : int -> Lang.lang_kind_formats
val midi_n : int -> Lang.lang_kind_formats
val midi_only : Lang.lang_kind_formats
val audio_video_any : Lang.lang_kind_formats
val kind_type_of_kind_format :
fresh:int -> Lang.lang_kind_formats -> Lang.t
val add_operator :
category:Lang.category ->
descr:string ->
?flags:Lang.doc_flag list ->
?active:bool ->
string ->
Lang.proto ->
kind:Lang.lang_kind_formats ->
(Lang.env -> Frame.content_kind -> Source.source) -> unit
val to_unit : Lang.value -> unit
val to_bool : Lang.value -> bool
val to_string : Lang.value -> string
val to_string_getter : Lang.value -> unit -> string
val to_float : Lang.value -> float
val to_float_getter : Lang.value -> unit -> float
val to_source : Lang.value -> Source.source
val to_format : Lang.value -> Encoder.format
val to_request : Lang.value -> Request.t
val to_int : Lang.value -> int
val to_list : Lang.value -> Lang.value list
val to_product : Lang.value -> Lang.value * Lang.value
val to_metadata : Lang.value -> Frame.metadata
val to_string_list : Lang.value -> string list
val to_int_list : Lang.value -> int list
val to_source_list : Lang.value -> Source.source list
val to_fun :
t:Lang.t -> Lang.value -> (string * Lang.value) list -> Lang.value
val assoc : 'a -> int -> ('a * 'b) list -> 'b
val int_t : Lang.t
val unit_t : Lang.t
val float_t : Lang.t
val bool_t : Lang.t
val string_t : Lang.t
val product_t : Lang.t -> Lang.t -> Lang.t
val of_product_t : Lang.t -> Lang.t * Lang.t
val list_t : Lang.t -> Lang.t
val of_list_t : Lang.t -> Lang.t
val zero_t : Lang.t
val variable_t : Lang.t
val succ_t : Lang.t -> Lang.t
val add_t : int -> Lang.t -> Lang.t
val type_of_int : int -> Lang.t
val request_t : Lang.t -> Lang.t
val of_request_t : Lang.t -> Lang.t
val source_t : Lang.t -> Lang.t
val of_source_t : Lang.t -> Lang.t
val format_t : Lang.t -> Lang.t
val frame_kind_t : audio:Lang.t -> video:Lang.t -> midi:Lang.t -> Lang.t
val of_frame_kind_t : Lang.t -> (Lang.t, Lang.t, Lang.t) Frame.fields
val frame_kind_of_kind_type : Lang.t -> Frame.content_kind
val kind_type_of_frame_kind : Frame.content_kind -> Lang.t
val fun_t : (bool * string * Lang.t) list -> Lang.t -> Lang.t
val univ_t : ?constraints:Lang_types.constraints -> int -> Lang.t
val metadata_t : Lang.t
val string_getter_t : int -> Lang.t
val float_getter_t : int -> Lang.t
val unit : Lang.value
val int : int -> Lang.value
val bool : bool -> Lang.value
val float : float -> Lang.value
val string : string -> Lang.value
val list : t:Lang.t -> Lang.value list -> Lang.value
val source : Source.source -> Lang.value
val request : Request.t -> Lang.value
val product : Lang.value -> Lang.value -> Lang.value
val val_fun :
(string * string * Lang.t * Lang.value option) list ->
ret_t:Lang.t -> (Lang.env -> Lang.t -> Lang.value) -> Lang.value
val val_cst_fun :
(string * Lang.t * Lang.value option) list -> Lang.value -> Lang.value
val metadata : Frame.metadata -> Lang.value
exception Invalid_value of Lang.value * string
exception Clock_conflict of (Lang_types.pos option * string * string)
exception Clock_loop of (Lang_types.pos option * string * string)
val load_libs : ?parse_only:bool -> unit -> unit
val from_in_channel :
?parse_only:bool -> lib:bool -> Pervasives.in_channel -> unit
val from_file : ?parse_only:bool -> lib:bool -> string -> unit
val from_string : ?parse_only:bool -> lib:bool -> string -> unit
val interactive : unit -> unit
val eval : string -> Lang.value option
end