if ! issue query then
let html = par () ^ out_query query ^ nl () in
let result = Mqint.execute query in
- save (html ^ out_result result)
- else ""
+ result, save (html ^ out_result result)
+ else MQRefs [], ""
let build_select (r, b, v) n =
let rvar = "ref" ^ string_of_int n in
)
)
-let locate s = Mqint.execute (locate_query s)
-let locate_html s = build_result (locate_query s)
+let locate s =
+ let MQRefs uris, html = build_result (locate_query s) in
+(*CSC: here I am mapping .ind URIs to .ind#1/1, i.e. the first type of *)
+(*CSC: the mutual inductive block. It must be removed once the query *)
+(*CSC: works reasonably. *)
+ MQRefs (
+ List.map
+ (function uri ->
+ if String.sub uri (String.length uri - 4) 4 = ".ind" then
+ uri ^ "#1/1"
+ else
+ uri
+ ) uris
+ ), html
+;;
let levels e c t =
env := e; cont := c;
let query = build_inter 0 (il_restrict level il) in
let query' = restrict_universe query il in
let query'' = MQList query' in
- let r = build_result query'' in
- if r <> "" then
+ let res = build_result query'' in
+ let r,html = res in
+ if html <> "" then
begin
print_endline ("GEN = " ^ string_of_int (List.length il) ^ ":" ^
string_of_float (Sys.time () -. t0) ^ "s");
- par () ^ il_out il ^ r
- end else ""
+ r, par () ^ il_out il ^ html
+ end else res