X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql_interpreter%2Fpattern.ml;h=86ef522b92e791fddeebd4ac24f5649035024679;hb=a96d91e43e25d3d5b36e7c3646831bcf8a401c9d;hp=576226008de0a5463c861cd6a076a72ee2723368;hpb=f22ab48f16bbebd949368ae20574c80d757b1698;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/pattern.ml b/helm/ocaml/mathql_interpreter/pattern.ml index 576226008..86ef522b9 100644 --- a/helm/ocaml/mathql_interpreter/pattern.ml +++ b/helm/ocaml/mathql_interpreter/pattern.ml @@ -23,38 +23,25 @@ * http://www.cs.unibo.it/helm/. *) -(* - * implementazione del comando PATTERN - *) - open Dbconn;; open Utility;; -open Eval;; -open Mathql_semantics;; -let pattern_ex (apreamble, apattern, afragid) = - let c = pgc () in - (*let _ = print_string ("USE ") - and t = Unix.time () in*) - (*let r1 = helm_class_id "MathResource" in*) - (*let qq = "select att0 from t" ^ r1 ^ " where att0 " ^ (pattern_match apreamble apattern afragid) ^ " order by t" ^ r1 ^ ".att0 asc" in*) - (*PRE-CLAUDIO - let qq = "select uri from registry where uri " ^ (pattern_match apreamble apattern afragid) ^ " order by registry.uri asc" in - let result = - let res = - c#exec (qq) - in - [["retVal"]] @ List.map (fun l -> [l]) (pgresult_to_string_list res)*) - let qq = "select uri from registry where uri " ^ (pattern_match (apreamble, apattern, afragid)) ^ " order by registry.uri asc" in -print_endline qq ; flush stderr ; - (*let _ = print_endline qq in*) - let res = - c#exec (qq) - in -(* PRE-CLAUDIO - (*let _ = print_endline (string_of_float (Unix.time () -. t)); flush stdout in*) - result*) - List.map - (function uri -> {uri = uri ; attributes = [] ; extra = ""}) - (pgresult_to_string_list res) +let cat l1 l2 = + if l1 > l2 then + l2 @ l1 + else + l1 @ l2 ;; + +let rec pattern_ex l = + match l with + [] -> [] + | s::tl -> let result = + let c = pgc () in + let qq = "select uri from registry where uri ~ '" ^ s ^ "' order by registry.uri asc" in + let res = c#exec (qq) in + List.map (function uri -> (uri,[])) (pgresult_to_string_list res) + in + cat result (pattern_ex tl) +;; +