X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fgrafite_parser%2FgrafiteDisambiguate.ml;h=516c4af20301e1a6946995cbe44c60fd05491448;hb=08e9d02504942642a917c0d3e4b4795e65172d89;hp=308144c21a6826e6a5d2952cdb24e977825a5e3e;hpb=d9b8131affff81514d792aa06d147b5375963b1f;p=helm.git diff --git a/helm/software/components/grafite_parser/grafiteDisambiguate.ml b/helm/software/components/grafite_parser/grafiteDisambiguate.ml index 308144c21..516c4af20 100644 --- a/helm/software/components/grafite_parser/grafiteDisambiguate.ml +++ b/helm/software/components/grafite_parser/grafiteDisambiguate.ml @@ -103,12 +103,23 @@ let disambiguate_reduction_kind text prefix_len lexicon_status_ref = function let t = disambiguate_lazy_term text prefix_len lexicon_status_ref t in `Unfold (Some t) | `Normalize - | `Reduce | `Simpl | `Unfold None | `Whd as kind -> kind ;; +let disambiguate_auto_params + disambiguate_term metasenv context (terms, params) += + let metasenv, terms = + List.fold_right + (fun t (metasenv, terms) -> + let metasenv,t = disambiguate_term context metasenv t in + metasenv,t::terms) terms (metasenv, []) + in + metasenv, (terms, params) +;; + let rec disambiguate_tactic lexicon_status_ref context metasenv (text,prefix_len,tactic) = @@ -122,6 +133,9 @@ let rec disambiguate_tactic disambiguate_lazy_term text prefix_len lexicon_status_ref in let disambiguate_tactic metasenv tac = disambiguate_tactic lexicon_status_ref context metasenv (text,prefix_len,tac) + in + let disambiguate_auto_params m p = + disambiguate_auto_params disambiguate_term m context p in match tactic with (* Higher order tactics *) @@ -182,11 +196,13 @@ let rec disambiguate_tactic let metasenv,cic = disambiguate_term context metasenv term in metasenv,GrafiteAst.Apply (loc, cic) | GrafiteAst.ApplyS (loc, term, params) -> + let metasenv, params = disambiguate_auto_params metasenv params in let metasenv,cic = disambiguate_term context metasenv term in metasenv,GrafiteAst.ApplyS (loc, cic, params) | GrafiteAst.Assumption loc -> metasenv,GrafiteAst.Assumption loc | GrafiteAst.AutoBatch (loc,params) -> + let metasenv, params = disambiguate_auto_params metasenv params in metasenv,GrafiteAst.AutoBatch (loc,params) | GrafiteAst.Cases (loc, what, idents) -> let metasenv,what = disambiguate_term context metasenv what in @@ -218,8 +234,9 @@ let rec disambiguate_tactic metasenv,GrafiteAst.Cut (loc, ident, cic) | GrafiteAst.Decompose (loc, names) -> metasenv,GrafiteAst.Decompose (loc, names) - | GrafiteAst.Demodulate loc -> - metasenv,GrafiteAst.Demodulate loc + | GrafiteAst.Demodulate (loc, params) -> + let metasenv, params = disambiguate_auto_params metasenv params in + metasenv,GrafiteAst.Demodulate (loc, params) | GrafiteAst.Destruct (loc, Some terms) -> let map term (metasenv, terms) = let metasenv, term = disambiguate_term context metasenv term in @@ -402,7 +419,12 @@ let rec disambiguate_tactic let metasenv,cic'= disambiguate_term context metasenv term2 in let metasenv,cic'' = match term3 with - `Auto _ as t -> metasenv,t + | `SolveWith term -> + let metasenv,term = disambiguate_term context metasenv term in + metasenv, `SolveWith term + | `Auto params -> + let metasenv, params = disambiguate_auto_params metasenv params in + metasenv,`Auto params | `Term t -> let metasenv,t = disambiguate_term context metasenv t in metasenv,`Term t @@ -496,7 +518,10 @@ let disambiguate_macro | GrafiteAst.Check (loc,term) -> let metasenv,term = disambiguate_term context metasenv term in metasenv,GrafiteAst.Check (loc,term) - | GrafiteAst.AutoInteractive _ + | GrafiteAst.AutoInteractive (loc, params) -> + let metasenv, params = + disambiguate_auto_params disambiguate_term metasenv context params in + metasenv, GrafiteAst.AutoInteractive (loc, params) | GrafiteAst.Hint _ | GrafiteAst.WLocate _ | GrafiteAst.Inline _ as macro ->