Skip to content
Snippets Groups Projects
lazyCompiler.mli 663 B
(** Time-stamp: <modified the 23/01/2009 (at 09:23) by Erwan Jahier> *)

(** nb: compiling = type checking + constant evaluation *)


(** A lazy compiler is an internal structure that contains tables
    storing compiled entities (types, const, node). At the beginning
    (on creation), it only contains empty tables. But then, one when
    ask for a type, a const, or a node, the tables are filled in.
*)
type t

(* Create a lazy compiler. *)
val create : SyntaxTab.t -> t


(** Compiles one node *)
val compile_node : t -> Ident.idref -> LicPrg.t

exception Recursion_error of Ident.long * string list

(* compile all items *)
val compile_all : t -> LicPrg.t