Module Language (.ml)

module Language: sig .. end

module Literal: sig .. end
type fd_redirection = {
   take : int t;
   redirect_to : [ `Fd of int t | `Path of string t ];
}
type '_ t = 
| Exec : string t list -> unit t
| Raw_cmd : string -> 'a t
| Bool_operator : bool t * [ `And | `Or ] * bool t -> bool t
| String_operator : string t * [ `Eq | `Neq ] * string t -> bool t
| Not : bool t -> bool t
| Returns : {
expr : 'a0 t;
value : int;
}
-> bool t
| No_op : unit t
| If : bool t * unit t * unit t -> unit t
| Seq : unit t list -> unit t
| Literal : 'a1 Literal.t -> 'a1 t
| Output_as_string : unit t -> string t
| Redirect_output : unit t * fd_redirection list -> unit t
| Write_output : {
expr : unit t;
stdout : string t option;
stderr : string t option;
return_value : string t option;
}
-> unit t
| Feed : string t * unit t -> unit t
| Pipe : unit t list -> unit t
| While : {
condition : bool t;
body : unit t;
}
-> unit t
| Fail : unit t
| Int_to_string : int t -> string t
| String_to_int : string t -> int t
| Bool_to_string : bool t -> string t
| String_to_bool : string t -> bool t
| List_to_string : 'a2 list t * ('a2 t -> string t) -> string t
| String_to_list : string t * (string t -> 'a3 t) -> 'a3 list t
| List : 'a4 t list -> 'a4 list t
| String_concat : string list t -> string t
| List_append : ('a5 list t * 'a5 list t) -> 'a5 list t
| List_iter : 'a6 list t * ((unit -> 'a6 t) -> unit t) -> unit t
| Int_bin_op : int t * [ `Div | `Minus | `Mod | `Mult | `Plus ] * int t -> int t
| Int_bin_comparison : int t * [ `Eq | `Ge | `Gt | `Le | `Lt | `Ne ] * int t -> bool t
| Getenv : string t -> string t
| Setenv : string t * string t -> unit t
| With_signal : {
signal_name : string;
catch : unit t;
run : unit t -> unit t;
}
-> unit t
module Construct: sig .. end
type output_parameters = {
   statement_separator : string;
   die_command : (string -> string) option;
}
val to_shell : 'a. output_parameters -> 'a t -> string
val with_trap : statement_separator:string ->
exit_with:int -> (die:(string -> string) -> string) -> string
val compile : statement_separator:string -> ?no_trap:bool -> 'a t -> string
val to_one_liner : ?no_trap:bool -> 'a t -> string
val to_many_lines : ?no_trap:bool -> 'a t -> string