* http://helm.cs.unibo.it/
*)
+open MatitaTypes
+
class parserr () =
object
method parseTerm = CicTextualParser2.parse_term
~nonvars_button:enable_button_for_non_vars uris
let interactive_interpretation_choice = chooseInterp
- let input_or_locate_uri ~(title:string) =
- (* TODO Zack: I try to avoid using this callback. I therefore assume
- * that the presence of an identifier that can't be resolved via
- * "locate" query is a syntax error *)
- MatitaTypes.not_implemented
- "MatitaDisambiguator: input_or_locate_uri callback"
+ let input_or_locate_uri ~(title:string) ?id =
+ (* Zack: I try to avoid using this callback. I therefore assume that
+ * the presence of an identifier that can't be resolved via "locate"
+ * query is a syntax error *)
+ let msg = match id with Some id -> id | _ -> "" in
+ raise (Unbound_identifier msg)
end
in
let module Disambiguator = Disambiguate.Make (Callbacks) in
| Some env -> (false, env)
| None -> (true, _env)
in
- match disambiguate_term ~dbd context metasenv termAst ~aliases:env with
- | [ (env, metasenv, term) as x ] ->
+ match disambiguate_term ~initial_ugraph:CicUniv.empty_ugraph
+ ~dbd context metasenv termAst ~aliases:env with
+ | [ (env, metasenv, term,ugraph) as x ] ->
if save_state then self#setEnv env;
x
| _ -> assert false
+ method disambiguateTermAsts ?(metasenv = []) ?env asts =
+ let ast = CicAst.pack asts in
+ let (env, metasenv, term, ugraph) =
+ self#disambiguateTermAst ~context:[] ~metasenv ?env ast
+ in
+ (env, metasenv, CicUtil.unpack term, ugraph)
+
method disambiguateTerm ?context ?metasenv ?env stream =
self#disambiguateTermAst ?context ?metasenv ?env
(parserr#parseTerm stream)