X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql_interpreter%2Fmqint.ml;h=cf453c6f61b7d82b0424160ba119d226cbd8d52f;hb=8f89cdd08d9ee0a243cf84201bf42e5503759ee3;hp=0de53503ec72edc48f11c0190b9a5ab80a8ac635;hpb=3c57d335904d0480f3145ccdcf663206cffd5567;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/mqint.ml b/helm/ocaml/mathql_interpreter/mqint.ml index 0de53503e..cf453c6f6 100644 --- a/helm/ocaml/mathql_interpreter/mqint.ml +++ b/helm/ocaml/mathql_interpreter/mqint.ml @@ -92,13 +92,6 @@ let get_prop_id prop = else List.assoc prop (match !prop_pool with Some l -> l | _ -> assert false) ;; -(* automatically performes the union of a given list of patterns *) -let rec pattern_list_ex = function - | [] -> [] - | [(apreamble, apattern, afragid)] -> pattern_ex (apreamble, apattern, afragid) - | (apreamble, apattern, afragid) :: tail -> - union_ex (pattern_ex (apreamble, apattern, afragid)) (pattern_list_ex tail) - (* execute_ex env q *) (* [env] is the attributed uri environment in which the query [q] *) (* must be evaluated *) @@ -112,8 +105,8 @@ let rec execute_ex env = use_ex (execute_ex env alist) asvar (get_prop_id "refObj") (* "F" (*"refObj"*) *) | MQUse (alist, asvar) -> use_ex (execute_ex env alist) asvar (get_prop_id "backPointer") (* "B" (*"backPointer"*) *) - | MQPattern l -> - pattern_list_ex l + | MQPattern (apreamble, apattern, afragid) -> + pattern_ex (apreamble, apattern, afragid) | MQUnion (l1, l2) -> union_ex (execute_ex env l1) (execute_ex env l2) | MQDiff (l1, l2) -> @@ -138,14 +131,12 @@ let rec execute_ex env = res | MQListLVar lvar -> letref_ex lvar - | MQReference l -> (* FG: *) + | MQReference l -> let rec build_result = function | [] -> [] | s :: tail -> {uri = s ; attributes = [] ; extra = ""} :: build_result tail - in build_result l - | MQMinimize l -> (* FG: sostituire con l'implementazione vera *) - execute_ex env l + in build_result (List.sort compare l) ;; (* Let's initialize the execute in Select, creating a cyclical recursion *)