Revision d1baac41
Added by Xavier Thirioux over 10 years ago
src/modules.ml | ||
---|---|---|
127 | 127 |
raise (Error (loc, Unknown_library basename)) |
128 | 128 |
end |
129 | 129 |
|
130 |
let rec load_header imported header = |
|
130 |
let rec load_header_rec imported header =
|
|
131 | 131 |
List.fold_left (fun imp decl -> |
132 | 132 |
match decl.top_decl_desc with |
133 | 133 |
| Node nd -> assert false |
... | ... | |
138 | 138 |
let basename = name_dependency (local, dep) in |
139 | 139 |
if ISet.mem basename imported then imp else |
140 | 140 |
let lusic = import_dependency decl.top_decl_loc (local, dep) |
141 |
in load_header (ISet.add basename imported) lusic.Lusic.contents |
|
141 |
in load_header_rec (ISet.add basename imported) lusic.Lusic.contents
|
|
142 | 142 |
) imported header |
143 | 143 |
|
144 |
let rec load_program imported program = |
|
144 |
let load_header imported header = |
|
145 |
try |
|
146 |
load_header_rec imported header |
|
147 |
with |
|
148 |
Corelang.Error (loc, err) as exc -> ( |
|
149 |
Format.eprintf "Import error: %a%a@." |
|
150 |
Corelang.pp_error err |
|
151 |
Location.pp_loc loc; |
|
152 |
raise exc |
|
153 |
);; |
|
154 |
|
|
155 |
let rec load_program_rec imported program = |
|
145 | 156 |
List.fold_left (fun imp decl -> |
146 | 157 |
match decl.top_decl_desc with |
147 | 158 |
| Node nd -> (add_node nd.node_id decl; imp) |
... | ... | |
152 | 163 |
let basename = name_dependency (local, dep) in |
153 | 164 |
if ISet.mem basename imported then imp else |
154 | 165 |
let lusic = import_dependency decl.top_decl_loc (local, dep) |
155 |
in load_header (ISet.add basename imported) lusic.Lusic.contents |
|
166 |
in load_header_rec (ISet.add basename imported) lusic.Lusic.contents
|
|
156 | 167 |
) imported program |
168 |
|
|
169 |
let load_program imported program = |
|
170 |
try |
|
171 |
load_program_rec imported program |
|
172 |
with |
|
173 |
Corelang.Error (loc, err) as exc -> ( |
|
174 |
Format.eprintf "Import error: %a%a@." |
|
175 |
Corelang.pp_error err |
|
176 |
Location.pp_loc loc; |
|
177 |
raise exc |
|
178 |
);; |
Also available in: Unified diff
corrected a bug that made an error silent, confusing users...
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@370 041b043f-8d7c-46b2-b46e-ef0dd855326e