X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaDisambiguator.ml;h=23de092bd14013c089907259bdfbb77ef5d372ff;hb=1d431843f49b3658593c8cc918b53a43479a6486;hp=51e60bb1854b493b59dfd3e65907ca6981c67718;hpb=cc465115cdeea9819f43a5ad219b07c4f928c43a;p=helm.git diff --git a/helm/matita/matitaDisambiguator.ml b/helm/matita/matitaDisambiguator.ml index 51e60bb18..23de092bd 100644 --- a/helm/matita/matitaDisambiguator.ml +++ b/helm/matita/matitaDisambiguator.ml @@ -25,22 +25,12 @@ class parserr () = object - method parseTerm (stream: char Stream.t) = - CicTextualParser2.parse_term stream - - (* TODO Zack: implements methods below *) - method parseTactic (_: char Stream.t) : DisambiguateTypes.tactic = - MatitaTypes.not_implemented "parserr.parseTactic" - method parseTactical (_: char Stream.t) : DisambiguateTypes.tactical = - MatitaTypes.not_implemented "parserr.parseTactical" - method parseCommand (_: char Stream.t) : DisambiguateTypes.command = - MatitaTypes.not_implemented "parserr.parseCommand" - method parseScript (_: char Stream.t) : DisambiguateTypes.script = - MatitaTypes.not_implemented "parserr.parseScript" + method parseTerm = CicTextualParser2.parse_term + method parseTactical = CicTextualParser2.parse_tactical end class disambiguator - ~parserr ~mqiconn ~(chooseUris: MatitaTypes.choose_uris_callback) + ~parserr ~dbh ~(chooseUris: MatitaTypes.choose_uris_callback) ~(chooseInterp: MatitaTypes.choose_interp_callback) () = let disambiguate_term = @@ -74,11 +64,16 @@ class disambiguator method env = _env method setEnv e = _env <- e - method disambiguateTermAst ?(context = []) ?(metasenv = []) ?(env = _env) - termAst - = - match disambiguate_term mqiconn context metasenv termAst ~aliases:env with - | [ x ] -> x + method disambiguateTermAst ?(context = []) ?(metasenv = []) ?env termAst = + let (save_state, env) = + match env with + | Some env -> (false, env) + | None -> (true, _env) + in + match disambiguate_term ~dbh context metasenv termAst ~aliases:env with + | [ (env, metasenv, term) as x ] -> + if save_state then self#setEnv env; + x | _ -> assert false method disambiguateTerm ?context ?metasenv ?env stream =