]> matita.cs.unibo.it Git - helm.git/commitdiff
misc fixes in cic browser queries (pretty printing, url bar, ...)
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 6 Sep 2005 14:37:42 +0000 (14:37 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 6 Sep 2005 14:37:42 +0000 (14:37 +0000)
helm/matita/matitaMathView.ml
helm/matita/matitaMisc.ml
helm/matita/matitaMisc.mli
helm/matita/matitaScript.ml
helm/matita/matitacLib.ml
helm/matita/matitaclean.ml

index de08f538ebf2e4ee181c2a0a76197c42807a1a2e..b1970857ff4e53d23e71cbd3fc1a873e71a7cd7c 100644 (file)
@@ -28,17 +28,6 @@ open Printf
 open MatitaTypes
 open MatitaGtkMisc
 
-let add_trailing_slash =
-  let rex = Pcre.regexp "/$" in
-  fun s ->
-    if Pcre.pmatch ~rex s then s
-    else s ^ "/"
-
-let strip_blanks =
-  let rex = Pcre.regexp "^\\s*([^\\s]*)\\s*$" in
-  fun s ->
-    (Pcre.extract ~rex s).(1)
-
 (** inherit from this class if you want to access current script *)
 class scriptAccessor =
 object (self)
@@ -780,7 +769,7 @@ class cicBrowser_impl ~(history:MatitaTypes.mathViewer_entry MatitaMisc.history)
 
     (**  this is what the browser does when you enter a string an hit enter *)
     method loadInput txt =
-      let txt = strip_blanks txt in
+      let txt = MatitaMisc.trim_blanks txt in
       let fix_uri txt =
         UriManager.string_of_uri
           (UriManager.strip_xpointer (UriManager.uri_of_string txt))
@@ -792,7 +781,7 @@ class cicBrowser_impl ~(history:MatitaTypes.mathViewer_entry MatitaMisc.history)
         let entry =
           match txt with
           | txt when is_uri txt -> `Uri (UriManager.uri_of_string (fix_uri txt))
-          | txt when is_dir txt -> `Dir (add_trailing_slash txt)
+          | txt when is_dir txt -> `Dir (MatitaMisc.normalize_dir txt)
           | txt ->
               (try
                 entry_of_string txt
index e3aadd5b5a616d143c17dd22ab71d25f7ac06626..78e780a155224da1ee8b24a0c042cf34a9595dbe 100644 (file)
 open Printf
 open MatitaTypes 
 
-let strip_trailing_slash =
-  let rex = Pcre.regexp "/$" in
-  fun s -> Pcre.replace ~rex s
+(** Functions "imported" from Http_getter_misc *)
+
+let strip_trailing_slash = Http_getter_misc.strip_trailing_slash
+let normalize_dir = Http_getter_misc.normalize_dir
+let strip_suffix = Http_getter_misc.strip_suffix
 
 let baseuri_of_baseuri_decl st =
   match st with
@@ -129,9 +131,9 @@ let mkdir path =
   in
   aux "" components
 
-let strip_trailing_blanks =
-  let rex = Pcre.regexp "\\s*$" in
-  fun s -> Pcre.replace ~rex s
+let trim_blanks =
+  let rex = Pcre.regexp "^\\s*(.*?)\\s*$" in
+  fun s -> (Pcre.extract ~rex s).(1)
 
 let split ?(char = ' ') s =
   let pieces = ref [] in
index c4adbf6e1e8f94fa4c372ad220ae591ec693ec2f..9cbada588600a5ace3e72e1e592ff8fb78ab2b21 100644 (file)
@@ -51,8 +51,10 @@ val is_proof_object: string -> bool
   * it *)
 val append_phrase_sep: string -> string
 
-val strip_trailing_blanks: string -> string
+val trim_blanks: string -> string
 val strip_trailing_slash: string -> string
+val normalize_dir: string -> string (** add trailing "/" if missing *)
+val strip_suffix: suffix:string -> string -> string
 
   (* split a string at character, char defaults to ' ' *)
 val split: ?char:char -> string -> string list
index 6e074787cc61477ed925b2a687ec21a157490927..987e60560d8bc9b4c0f741b5693b20df78684778 100644 (file)
@@ -26,8 +26,8 @@
 open Printf
 open MatitaTypes
 
-let debug = true
-let debug_print = if  debug then prerr_endline else ignore
+let debug = false
+let debug_print = if debug then prerr_endline else ignore
 
   (** raised when one of the script margins (top or bottom) is reached *)
 exception Margin
@@ -210,8 +210,7 @@ let disambiguate term status =
   | [_,_,x,_] -> x
   | _ -> assert false
  
-let eval_macro guistuff status parsed_text script mac
-=
+let eval_macro guistuff status unparsed_text parsed_text script mac =
   let module TA = GrafiteAst in
   let module TAPp = GrafiteAstPp in
   let module MQ = MetadataQuery in
@@ -227,7 +226,11 @@ let eval_macro guistuff status parsed_text script mac
   | TA.WMatch (loc, term) -> 
       let term = disambiguate term status in
       let l =  MQ.match_term ~dbd term in
-      let entry = `Whelp (TAPp.pp_macro_cic (TA.WMatch (loc, term)), l) in
+      let query_url =
+        MatitaMisc.strip_suffix ~suffix:"."
+          (MatitaMisc.trim_blanks unparsed_text)
+      in
+      let entry = `Whelp (query_url, l) in
       guistuff.mathviewer#show_uri_list ~reuse:true ~entry l;
       [], parsed_text_length
   | TA.WInstance (loc, term) ->
@@ -326,7 +329,9 @@ let eval_macro guistuff status parsed_text script mac
   | TA.Search_term (_, search_kind, term) -> failwith "not implemented"
 
                                 
-let eval_executable guistuff status user_goal parsed_text script ex =
+let eval_executable guistuff status user_goal unparsed_text parsed_text script
+  ex
+=
   let module TA = GrafiteAst in
   let module TAPp = GrafiteAstPp in
   let module MD = MatitaDisambiguator in
@@ -354,15 +359,15 @@ let eval_executable guistuff status user_goal parsed_text script ex =
           guistuff status user_goal parsed_text (TA.Executable (loc, ex))
       with MatitaTypes.Cancel -> [], 0)
   | TA.Macro (_,mac) ->
-      eval_macro guistuff status parsed_text script mac
+      eval_macro guistuff status unparsed_text parsed_text script mac
 
 let rec eval_statement baseoffset parsedlen error_tag (buffer : GText.buffer)
- guistuff status user_goal script s
+ guistuff status user_goal script unparsed_text
 =
-  if Pcre.pmatch ~rex:only_dust_RE s then raise Margin;
+  if Pcre.pmatch ~rex:only_dust_RE unparsed_text then raise Margin;
   let st =
    try
-    GrafiteParser.parse_statement (Stream.of_string s)
+    GrafiteParser.parse_statement (Stream.of_string unparsed_text)
    with
     CicNotationParser.Parse_error (floc,err) as exc ->
      let (x, y) = CicNotationPt.loc_of_floc floc in
@@ -392,14 +397,14 @@ let rec eval_statement baseoffset parsedlen error_tag (buffer : GText.buffer)
   in
   let text_of_loc loc =
     let parsed_text_length = snd (CicNotationPt.loc_of_floc loc) in
-    let parsed_text = safe_substring s 0 parsed_text_length in
+    let parsed_text = safe_substring unparsed_text 0 parsed_text_length in
     parsed_text, parsed_text_length
   in
   match st with
-  | GrafiteAst.Comment (loc,_)-> 
+  | GrafiteAst.Comment (loc, _) -> 
       let parsed_text, parsed_text_length = text_of_loc loc in
-      let remain_len = String.length s - parsed_text_length in
-      let s = String.sub s parsed_text_length remain_len in
+      let remain_len = String.length unparsed_text - parsed_text_length in
+      let s = String.sub unparsed_text parsed_text_length remain_len in
       let s,len = 
         eval_statement baseoffset (parsedlen + parsed_text_length) error_tag
          buffer guistuff status user_goal script s 
@@ -410,7 +415,8 @@ let rec eval_statement baseoffset parsedlen error_tag (buffer : GText.buffer)
       | [] -> [], 0)
   | GrafiteAst.Executable (loc, ex) ->
       let parsed_text, parsed_text_length = text_of_loc loc in
-      eval_executable guistuff  status user_goal parsed_text script ex 
+      eval_executable guistuff status user_goal unparsed_text parsed_text
+        script ex 
   
 let fresh_script_id =
   let i = ref 0 in
index 0eb29777617e7e9cbae4310b5a1b85f03dcd03fb..e7d3f18e6c7f9599cc02455454d13fcad72772a2 100644 (file)
@@ -88,7 +88,7 @@ let fname () =
   Arg.parse arg_spec add_script usage;
   match !acc with
   | [x] -> x
-  | _ -> prerr_endline usage; exit 1
+  | _ -> print_endline usage; exit 1
 
 let pp_ocaml_mode () = 
   MatitaLog.message "";
index c7bbdf453a3f8e989a67bacc26a48be1b195a19e..f42973f90c1963758bdff427e7fbc43302b203bc 100644 (file)
@@ -36,13 +36,13 @@ let _ =
 let main uri_to_remove = MatitacleanLib.clean_baseuris uri_to_remove
 
 let usage () =
-  prerr_endline "";
-  prerr_endline "usage:";
-  prerr_endline "\tmatitaclean all";
-  prerr_endline "\t\tcleans the whole environment";
-  prerr_endline "\tmatitaclean files...";
-  prerr_endline "\t\tcleans the output of the compilation of files...\n";
-  prerr_endline "";
+  prerr_endline "
+usage:
+\tmatitaclean all
+\t\tcleans the whole environment
+\tmatitaclean files...
+\t\tcleans the output of the compilation of files...
+";
   exit 1
     
 let _ =