X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flexicon%2FlexiconEngine.ml;h=1966251ad066401aed61b52fb215c1a60dfe7def;hb=cc23f034c9419186602d9250456241f2eba90d7c;hp=1e1fe61c05147eef1dd8df67231df4f18ee3b7b1;hpb=14d7eabdb425c4dbcda5de18fac0735fde5d176b;p=helm.git diff --git a/helm/software/components/lexicon/lexiconEngine.ml b/helm/software/components/lexicon/lexiconEngine.ml index 1e1fe61c0..1966251ad 100644 --- a/helm/software/components/lexicon/lexiconEngine.ml +++ b/helm/software/components/lexicon/lexiconEngine.ml @@ -25,6 +25,10 @@ (* $Id$ *) +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 *) @@ -34,7 +38,6 @@ type status = { multi_aliases: DisambiguateTypes.multiple_environment; lexicon_content_rev: LexiconMarshal.lexicon; notation_ids: CicNotation.notation_id list; (** in-scope notation ids *) - metadata: LibraryNoDb.metadata list; } let initial_status = { @@ -42,7 +45,6 @@ let initial_status = { multi_aliases = DisambiguateTypes.Environment.empty; lexicon_content_rev = []; notation_ids = []; - metadata = []; } let add_lexicon_content cmds status = @@ -56,23 +58,6 @@ let add_lexicon_content cmds status = LexiconAstPp.pp_command content')); *) { status with lexicon_content_rev = content' } -let add_metadata new_metadata status = - if Helm_registry.get_bool "db.nodb" then - let metadata = status.metadata in - let metadata' = - List.fold_left - (fun acc m -> - match m with - | LibraryNoDb.Dependency buri -> - if List.exists (LibraryNoDb.eq_metadata m) metadata - then acc - else m :: acc) - metadata new_metadata - in - { status with metadata = metadata' } - else - status - let set_proof_aliases mode status new_aliases = if mode = LexiconAst.WithoutPreferences then status @@ -81,14 +66,6 @@ let set_proof_aliases mode status new_aliases = List.map (fun alias -> LexiconAst.Alias (HExtlib.dummy_floc, alias)) in - let deps_of_aliases = - HExtlib.filter_map - (function - | LexiconAst.Ident_alias (_, suri) -> - let buri = UriManager.buri_of_uri (UriManager.uri_of_string suri) in - Some (LibraryNoDb.Dependency buri) - | _ -> None) - in let aliases = List.fold_left (fun acc (d,c) -> DisambiguateTypes.Environment.add d c acc) status.aliases new_aliases in @@ -107,11 +84,11 @@ let set_proof_aliases mode status new_aliases = let status = add_lexicon_content (commands_of_aliases aliases) new_status in - let status = add_metadata (deps_of_aliases aliases) status in 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 @@ -130,21 +107,7 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = in let lexicon = LexiconMarshal.load_lexicon lexiconpath in let status = List.fold_left (eval_command ~mode) status lexicon in - if Helm_registry.get_bool "db.nodb" then - let metadatapath_rw, metadatapath_r = - LibraryMisc.metadata_file_of_baseuri - ~must_exist:false ~baseuri ~writable:true, - LibraryMisc.metadata_file_of_baseuri - ~must_exist:false ~baseuri ~writable:false - in - let metadatapath = - if Sys.file_exists metadatapath_rw then metadatapath_rw else - if Sys.file_exists metadatapath_r then metadatapath_r else - raise (MetadataNotFound metadatapath_rw) - in - add_metadata (LibraryNoDb.load_metadata ~fname:metadatapath) status - else - status + status | LexiconAst.Alias (loc, spec) -> let diff = (*CSC: Warning: this code should be factorized with the corresponding @@ -163,17 +126,11 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = set_proof_aliases mode status diff | LexiconAst.Interpretation (_, dsc, (symbol, _), cic_appl_pattern) as stm -> let status = add_lexicon_content [stm] status in - let uris = - List.map - (fun uri -> LibraryNoDb.Dependency (UriManager.buri_of_uri uri)) - (CicNotationUtil.find_appl_pattern_uris cic_appl_pattern) - in let diff = [DisambiguateTypes.Symbol (symbol, 0), DisambiguateChoices.lookup_symbol_by_dsc symbol dsc] in let status = set_proof_aliases mode status diff in - let status = add_metadata uris status in status | LexiconAst.Notation _ as stm -> add_lexicon_content [stm] status