(* $Id$ *)
-exception IncludedFileNotCompiled of string (* file name *)
+let out = ref ignore
+
+let set_callback f = out := f
+
+(* lexicon file name * ma file name *)
+exception IncludedFileNotCompiled of string * string
exception MetadataNotFound of string (* file name *)
type status = {
let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd =
+ !out cmd;
let notation_ids' = CicNotation.process_notation cmd in
let status =
{ status with notation_ids = notation_ids' @ status.notation_ids } in
match cmd with
- | LexiconAst.Include (loc, baseuri, mode) ->
+ | LexiconAst.Include (loc, baseuri, mode, fullpath) ->
let lexiconpath_rw, lexiconpath_r =
LibraryMisc.lexicon_file_of_baseuri
~must_exist:false ~writable:true ~baseuri,
let lexiconpath =
if Sys.file_exists lexiconpath_rw then lexiconpath_rw else
if Sys.file_exists lexiconpath_r then lexiconpath_r else
- raise (IncludedFileNotCompiled lexiconpath_rw)
+ raise (IncludedFileNotCompiled (lexiconpath_rw,fullpath))
in
let lexicon = LexiconMarshal.load_lexicon lexiconpath in
let status = List.fold_left (eval_command ~mode) status lexicon in