X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2Fdisambiguate.mli;h=6f74c23c0ab674bcf213a60992e4544c0574ff55;hb=e6b28085c97ae7b9bd3f3262b105f6b84f42b047;hp=7093b1c9fd72aee206bdfd4437e3a6e7c5864aad;hpb=aba014724c9ad08f80944ec3021c9fa3826dca4a;p=helm.git diff --git a/helm/ocaml/cic_disambiguation/disambiguate.mli b/helm/ocaml/cic_disambiguation/disambiguate.mli index 7093b1c9f..6f74c23c0 100644 --- a/helm/ocaml/cic_disambiguation/disambiguate.mli +++ b/helm/ocaml/cic_disambiguation/disambiguate.mli @@ -23,38 +23,62 @@ * http://helm.cs.unibo.it/ *) -open Disambiguate_struct -open Disambiguate_types - -type interpretation_domain = Domain.t -type domain_and_interpretation = interpretation_domain * interpretation - -(* -val add_symbol_choice: - string -> string * interpretation_codomain_item -> unit -val add_symbol_choices: - string -> (string * interpretation_codomain_item) list -> unit - -val add_num_choice: string * interpretation_codomain_item -> unit -*) - -module Make (C : Callbacks) : - sig - exception NoWellTypedInterpretation - - val disambiguate_input : - MQIConn.handle -> Cic.context -> Cic.metasenv -> - interpretation_domain -> (* items occuring in parser output *) - (interpretation -> Cic.term) -> (* parser output *) - domain_and_interpretation -> (* current interpretation status *) - domain_and_interpretation * Cic.metasenv * Cic.term - (* new interpretstaion status, new metasenv, disambiguated term *) - end - - (* TODO move to CicSomething *) -val term_of_uri: string -> Cic.term - -val interpretate: - context: Cic.name option list -> interp: interpretation -> Ast.term -> - Cic.term +(** {2 Disambiguation interface} *) + +exception NoWellTypedInterpretation +exception PathNotWellFormed + +val interpretate_path : + context:Cic.name list -> env:DisambiguateTypes.environment -> + DisambiguateTypes.term -> + Cic.term + +module type Disambiguator = +sig + val disambiguate_term : + dbd:Mysql.dbd -> + context:Cic.context -> + metasenv:Cic.metasenv -> + ?initial_ugraph:CicUniv.universe_graph -> + aliases:DisambiguateTypes.environment ->(* previous interpretation status *) + DisambiguateTypes.term -> + (DisambiguateTypes.environment * (* new interpretation status *) + Cic.metasenv * (* new metasenv *) + Cic.term * + CicUniv.universe_graph) list (* disambiguated term *) + + val disambiguate_obj : + dbd:Mysql.dbd -> + aliases:DisambiguateTypes.environment ->(* previous interpretation status *) + uri:UriManager.uri option -> (* required only for inductive types *) + GrafiteAst.obj -> + (DisambiguateTypes.environment * (* new interpretation status *) + Cic.metasenv * (* new metasenv *) + Cic.obj * + CicUniv.universe_graph) list (* disambiguated obj *) +end + +module Make (C : DisambiguateTypes.Callbacks) : Disambiguator + +module Trivial: +sig + exception Ambiguous_term of string + + (** disambiguate an _unanmbiguous_ term using dummy callbacks which fail if a + * choice from the user is needed to disambiguate the term + * @raise Ambiguous_term for ambiguous term *) + val disambiguate_string: + dbd:Mysql.dbd -> + ?context:Cic.context -> + ?metasenv:Cic.metasenv -> + ?initial_ugraph:CicUniv.universe_graph -> + ?aliases:DisambiguateTypes.environment ->(* previous interpretation status*) + string -> + (DisambiguateTypes.environment * (* new interpretation status *) + Cic.metasenv * (* new metasenv *) + Cic.term * + CicUniv.universe_graph) list (* disambiguated term *) +end + +val dummy_floc: Lexing.position * Lexing.position