]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaScript.ml
misc fixes in cic browser queries (pretty printing, url bar, ...)
[helm.git] / helm / matita / matitaScript.ml
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