Project

General

Profile

« Previous | Next » 

Revision d1baac41

Added by Xavier Thirioux over 10 years ago

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

View differences:

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