X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql_interpreter%2Fuse.ml;fp=helm%2Focaml%2Fmathql_interpreter%2Fuse.ml;h=cb65699e970c3955067b633c0ca4689028ea7213;hb=8abd42ec1af0d5daef1d026ec550b49b07de8340;hp=f1ac7c779eff2b3b1771c3c83b71b4efa396bcbc;hpb=cd7145b8ad4118a9854eaff0feced9352ab87e94;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/use.ml b/helm/ocaml/mathql_interpreter/use.ml index f1ac7c779..cb65699e9 100644 --- a/helm/ocaml/mathql_interpreter/use.ml +++ b/helm/ocaml/mathql_interpreter/use.ml @@ -1,3 +1,27 @@ +(* Copyright (C) 2000, HELM Team. + * + * This file is part of HELM, an Hypertextual, Electronic + * Library of Mathematics, developed at the Computer Science + * Department, University of Bologna, Italy. + * + * HELM is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * HELM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HELM; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + * + * For details, see the HELM World-Wide-Web page, + * http://cs.unibo.it/helm/. + *) (* * implementazione dei comandi USE/USED BY @@ -19,30 +43,23 @@ open Dbconn;; * * output: string list list; lista su cui e' stato eseguito il * comando USE/USED BY - * - * TODO - * USE e USED BY sono identici dal punto di vista algoritmico, per questo - * sono stati accorpati in una sola funzione; stilisticamente, sarebbe meglio - * avere due implementazioni distinte... *) let use_ex alist asvar usek = let c = pgc () in List.fold_left (fun parziale xres -> - let r1 = pgresult_to_string (c#exec - ("select att0 from property where att2='" ^ usek ^ "'")) - and r2 = pgresult_to_string (c#exec - "select att0 from property where att2='position'") - and r3 = pgresult_to_string (c#exec - "select att0 from property where att2='occurrence'") + let r1 = helm_property_id usek + and r2 = helm_property_id "position" + and r3 = helm_property_id "occurrence" in - let res = c#exec ( - "select distinct t" ^ r3 ^ ".att1, t" ^ r2 ^ ".att1 " ^ + let qq = "select distinct t" ^ r3 ^ ".att1, t" ^ r2 ^ ".att1 " ^ "from t" ^ r3 ^ ", t" ^ r2 ^ ", t" ^ r1 ^ " " ^ "where " ^ "t" ^ r1 ^ ".att0 = '" ^ (List.hd xres) ^ "' and t" ^ r1 ^ ".att1 = t" ^ r2 ^ ".att0 and t" ^ r1 ^ ".att1 = t" ^ r3 ^ - ".att0") + ".att0" in + (*let _ = print_endline ("use: " ^ qq) in*) + let res = c#exec qq in parziale @ if not (List.mem asvar (List.tl (List.hd alist))) then @@ -95,39 +112,3 @@ let use_ex alist asvar usek = (List.tl alist) ;; -(** TEST **) - -(* -let use_ex alist asvar = - if (List.find_all asvar (List.tl (List.hd alist))) = [] then - use_ex_nc alist asvar - else - use_ex_co alist asvar -;; - -List.map - (fun l -> - let t = - match xres with - hd::tl -> (List.hd l)::tl - | [] -> [] - in - let hash = List.combine (List.hd alist) t in - snd (set_assoc asvar (snd l) hash) - ) - (List.find_all - (fun l -> - let currv = - List.hd (List.tl l) - and xresv = - try ( - List.assoc asvar (List.combine (List.tl (List.hd alist)) (List.tl xres)) - ) with - Not_found -> "" - in - xresv = "" or xresv = currv - ) - res#get_list - ) -;; -*)