X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql_interpreter%2Feval.ml;fp=helm%2Focaml%2Fmathql_interpreter%2Feval.ml;h=c36b92fd2bedc004bd3b3cfba9d9ac38f4ed2c06;hb=8abd42ec1af0d5daef1d026ec550b49b07de8340;hp=9a5d90dee13762f5200c273b9e0f14f1a2dc734a;hpb=cd7145b8ad4118a9854eaff0feced9352ab87e94;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/eval.ml b/helm/ocaml/mathql_interpreter/eval.ml index 9a5d90dee..c36b92fd2 100644 --- a/helm/ocaml/mathql_interpreter/eval.ml +++ b/helm/ocaml/mathql_interpreter/eval.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/. + *) (* * @@ -13,7 +37,7 @@ let rec patterneval p = [] -> "" | head::tail -> let h = match head with - MQString (s) -> s + MQString (s) -> Str.global_replace (Str.regexp "\.") "\\\\\." s | MQSlash -> "/" | MQAnyChr -> "[^/]?" | MQAst -> "[^/]*" @@ -29,12 +53,31 @@ let fieval fi = match fst fi with None -> "" | Some i -> - let s = "#xpointer\(1/" ^ string_of_int (i) in + let s = "#xpointer\\\\(1/" ^ string_of_int (i) in match snd fi with None -> - s ^ "\)" + s ^ "\\\\)" | Some j -> - s ^ "/" ^ string_of_int j ^ "\)" + s ^ "/" ^ string_of_int j ^ "\\\\)" +;; + +(* + * valuta l'estensione + * + * 20/05/2002: non piu' necessario: l'estensione fa eventualmente + * parte del pattern precedente + *) +let exteval ext = + match ext with + "" -> "" + | _ -> ("\." ^ ext) +;; + +(* + * valuta il preambolo + *) +let preeval p = + p ;; (* @@ -44,6 +87,7 @@ let fieval fi = * SQL standard LIKE perche' MathQL prevede esperssioni con "*" * e con "**". *) -let pattern_match preamble pattern ext fragid = - " ~ '" ^ preamble ^ ":/" ^ (patterneval pattern) ^ "." ^ ext ^ (fieval fragid) ^ "'" +let pattern_match preamble pattern fragid = + " ~ '" ^ (preeval preamble) ^ ":/" ^ (patterneval pattern) ^ (fieval fragid) ^ "'" ;; +