(* print.mli, Caml Light version 0.73 *) (*** valeurs a l'execution ***) type val = ECST of string (* Erreur a l'execution *) | BCST of bool (* Valeur booleenne *) | NCST of int ;; (* Valeur entiere *) (* impression des valeurs a l'execution *) value echo_val : val -> 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);; (* impression d'une expression *) value print_expr : expr -> unit ;; (* impression d'une liste d'expressions *) value print_expr_list : expr list -> unit ;; (*** pile a l'execution ***) (* parametre effectif par valeur *) type parval = VALUE of val | NDYN of expr | NSTAT of expr*environment (* impression d'un parametre effectif par valeur *) and parameter_binding == (string * parval) (* 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;; value print_parval : parval -> unit ;; (* impression d'une liaison de parametre *) value print_parameter_binding : parameter_binding -> unit ;; (* impression d'une liste de liaisons de parametres *) value print_bindings : bindings -> unit ;; (* impression d'une activation de fonction *) value print_activation : activation -> unit ;; (* impression d'un environnement *) value print_environnement : environment -> unit ;; (* impression d'une paire (expression, environnement) *) value print_expr_env : expr * environment -> unit ;; (* impression d'une paire (environnement, valeur) *) value print_reseval : environment * val -> unit ;;