(* print.mli, Objective Caml version 3.08.1 *) (*** valeurs a l'execution ***) type value = ECST of string (* Erreur a l'execution *) | BCST of bool (* Valeur booleenne *) | NCST of int ;; (* Valeur entiere *) (* impression des valeurs a l'execution *) val echo_val : value -> unit;; (* expression *) type expr = CST of string | VAR of string | ADD of expr * expr | SUB of expr * expr | MULT of expr * expr | DIV of expr * expr | LESS of expr * expr | EQUAL of expr * expr | NOT of expr | AND of expr * expr | IF of expr * (expr * expr) | CALL of string * (expr list) | EXPRSEQ of expr * expr | OUTPUT of expr | INPUT | RANDOM of expr (* impression d'une expression *) val print_expr : expr -> unit ;; (* liste d'expressions *) type expr_list = expr list ;; (* impression d'une liste d'expressions *) val print_expr_list : expr_list -> unit ;; (*** pile a l'execution ***) (* parametre effectif par valeur *) type parval = VALUE of value | LAZYSTAT of ((expr * environment) * value option ref) (* par necessite statique *) | LAZYDYN of (expr * value option ref) (* par necessite dynamique *) (* liaison de parametre : paire (nom du parametre formel, *) (* valeur du parametre effectif) *) and parameter_binding = (string * parval) (* liaison de parametres : liste de paires (nom du parametre *) (* formel, valeur du parametre effectif) *) and bindings = parameter_binding list (* activation (de fonction) = paire (nom de fonction appelee, *) (* liaison de parametres) *) and activation = string * bindings (* environnement : liste d'activations *) and environment = activation list ;; (* impression d'un parametre effectif par valeur *) val print_parval : parval -> unit ;; (* impression d'une liaison de parametre *) val print_parameter_binding : parameter_binding -> unit ;; (* impression d'une liste de liaisons de parametres *) val print_bindings : bindings -> unit ;; (* impression d'une activation de fonction *) val print_activation : activation -> unit ;; (* impression d'un environnement *) val print_environnement : environment -> unit ;; (* impression d'une paire (expression, environnement) *) val print_expr_env : expr * environment -> unit ;; (* impression d'une paire (environnement, valeur) *) val print_reseval : environment * value -> unit ;;