1
|
open Lustre_types
|
2
|
open Utils
|
3
|
|
4
|
(* This module is used to load lusic files when open(ing) modules in
|
5
|
lustre/lusi sources *)
|
6
|
|
7
|
(* Load the provided program, either an actual program or a header lusi files:
|
8
|
- reject program that define imported node
|
9
|
- reject header that define lustre node
|
10
|
- inject #include lus file into the program
|
11
|
- loads #open lusic files
|
12
|
- record the node name and check that they are uniquely defined
|
13
|
- build the type/clock env from the imported nodes
|
14
|
|
15
|
Returns an extended prog along with dependencies of #open and a type/clock base env.
|
16
|
*)
|
17
|
val load: is_header:bool -> program_t -> program_t * dep_t list * ( Typing.type_expr Env.t * Clocks.clock_expr Env.t)
|
18
|
|
19
|
(* Returns an updated env with the type/clock declaration of the program *)
|
20
|
val get_envs_from_top_decls: program_t -> Typing.type_expr Env.t * Clocks.clock_expr Env.t
|
21
|
|