X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FbatchParser.ml;h=bd7165becc4e7982a6b86ae78ac69d16e006b8ad;hb=edb6ab182b915ebc8b2810574b0a87bdab39d051;hp=05fd7a614e0098b97daae67ace0da6b83dfe152a;hpb=c35a3f47e0468a6076a3afdd6f2ff5c5fe528784;p=helm.git diff --git a/helm/gTopLevel/batchParser.ml b/helm/gTopLevel/batchParser.ml index 05fd7a614..bd7165bec 100644 --- a/helm/gTopLevel/batchParser.ml +++ b/helm/gTopLevel/batchParser.ml @@ -28,6 +28,16 @@ let verbose = false exception Failure of string let fail msg = raise (Failure msg) +let constants_only uri = not (String.sub uri (String.length uri - 4) 4 = ".var") +let uri_predicate = ref constants_only + +let uri_pred_of_conf tryvars varsprefix = + if not tryvars then + constants_only + else + let rex = Pcre.regexp ("^" ^ varsprefix) in + (fun uri -> Pcre.pmatch ~rex uri) + module DisambiguateCallbacks = struct let output_html ?(append_NL = true) msg = @@ -36,9 +46,8 @@ module DisambiguateCallbacks = (Ui_logger.string_of_html_msg msg) let interactive_user_uri_choice - ~selection_mode ?ok ?enable_button_for_non_vars ~title ~msg ~id = - List.filter - (fun uri -> not (String.sub uri (String.length uri - 4) 4 = ".var")) + ~selection_mode ?ok ?enable_button_for_non_vars ~title ~msg ~id choices = + List.filter !uri_predicate choices let interactive_interpretation_choice _ = fail "Multiple interpretations" let input_or_locate_uri ~title = fail "Unknown identifier" @@ -50,7 +59,8 @@ let mqi_debug_fun = ignore let mqi_flags = [] let mqi_handle = MQIConn.init mqi_flags mqi_debug_fun -let parse = +let parse ?(uri_pred = constants_only) = + uri_predicate := uri_pred; let empty_environment = DisambiguatingParser.EnvironmentP3.of_string DisambiguatingParser.EnvironmentP3.empty @@ -64,5 +74,5 @@ let parse = in (metasenv, term) -let parse_pp input = CicPp.ppterm (snd (parse input)) +let parse_pp ?uri_pred input = CicPp.ppterm (snd (parse ?uri_pred input))