]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/batchParser.ml
...
[helm.git] / helm / gTopLevel / batchParser.ml
index 05fd7a614e0098b97daae67ace0da6b83dfe152a..7cbc31201ab39f1a3e98c3f27e27a7c3f74401a4 100644 (file)
@@ -28,17 +28,21 @@ 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 =
-    if verbose then
-      (if append_NL then print_string else print_endline)
-        (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"
@@ -46,11 +50,8 @@ module DisambiguateCallbacks =
 
 module Disambiguate' = DisambiguatingParser.Make (DisambiguateCallbacks)
 
-let mqi_debug_fun = ignore
-let mqi_flags = []
-let mqi_handle = MQIConn.init mqi_flags mqi_debug_fun
-
-let parse =
+let parse mqi_handle ?(uri_pred = constants_only) =
+  uri_predicate := uri_pred;
   let empty_environment =
     DisambiguatingParser.EnvironmentP3.of_string
       DisambiguatingParser.EnvironmentP3.empty
@@ -64,5 +65,6 @@ let parse =
     in
     (metasenv, term)
 
-let parse_pp input = CicPp.ppterm (snd (parse input))
+let parse_pp mqi_handle ?uri_pred input = 
+   CicPp.ppterm (snd (parse mqi_handle ?uri_pred input))