Skip to content
Snippets Groups Projects
ast2lic.mli 1.03 KiB
Newer Older
(* Time-stamp: <modified the 12/02/2013 (at 18:06) by Erwan Jahier> *)


(** Translate Ast to lic. 

    Basically, it 

    - calls [EvalConst.f] wherever it is necessary, i.e., for items
    that are required to be static, such as arrays sizes, or array
    indexes.  
    - recursively calls itself for translating sub-terms
    - checks the arguments and the parameters are compatible (i.e., that they unify)
*)

val of_type  : IdSolver.t -> AstCore.type_exp  -> Lic.type_
val of_clock : IdSolver.t -> AstCore.var_info -> Lic.id_clock

(**
   A [node_exp] is a name plus a list of static arguments.

   The goal of [node] is to 
   - compute the effective type of static arguments
   - check they are compatible with the node signature 
   check the type of the static arguments (
*)
val of_node : IdSolver.t -> AstCore.node_exp Lxm.srcflagged -> 
val of_eq : IdSolver.t -> AstCore.eq_info Lxm.srcflagged -> 
  Lic.eq_info Lxm.srcflagged

val of_assertion : IdSolver.t -> AstCore.val_exp Lxm.srcflagged -> 
  Lic.val_exp Lxm.srcflagged