X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaDisambiguator.ml;h=daf64884ca6b89c0e67e966c64ba0c27900e2724;hb=0c6a5aadb1a7746681a8e26fc0b009f847c10557;hp=51e60bb1854b493b59dfd3e65907ca6981c67718;hpb=cc465115cdeea9819f43a5ad219b07c4f928c43a;p=helm.git diff --git a/helm/matita/matitaDisambiguator.ml b/helm/matita/matitaDisambiguator.ml index 51e60bb18..daf64884c 100644 --- a/helm/matita/matitaDisambiguator.ml +++ b/helm/matita/matitaDisambiguator.ml @@ -25,18 +25,8 @@ 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 @@ -74,11 +64,16 @@ class disambiguator method env = _env method setEnv e = _env <- e - method disambiguateTermAst ?(context = []) ?(metasenv = []) ?(env = _env) - termAst - = + method disambiguateTermAst ?(context = []) ?(metasenv = []) ?env termAst = + let (save_state, env) = + match env with + | Some env -> (false, env) + | None -> (true, _env) + in match disambiguate_term mqiconn context metasenv termAst ~aliases:env with - | [ x ] -> x + | [ (env, metasenv, term) as x ] -> + if save_state then self#setEnv env; + x | _ -> assert false method disambiguateTerm ?context ?metasenv ?env stream =