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=81be805201317557c330dc08d116e79411a7f6d6;hb=1cfcea66d7394a785ec439cd6b03497b276918c4;hp=4bc9a88db942c10b00f28f2bdf7737fa5efa4565;hpb=a86e50c2f080bd288d1a37b27fd4d0ea3044c5df;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/eval.ml b/helm/ocaml/mathql_interpreter/eval.ml index 4bc9a88db..81be80520 100644 --- a/helm/ocaml/mathql_interpreter/eval.ml +++ b/helm/ocaml/mathql_interpreter/eval.ml @@ -27,7 +27,7 @@ * *) -open Mathql;; +open MathQL;; (* * conversione di un pattern @@ -37,11 +37,11 @@ let rec patterneval p = [] -> "" | head::tail -> let h = match head with - MQString (s) -> Str.global_replace (Str.regexp "\.") "\\\\\." s - | MQSlash -> "/" - | MQAnyChr -> "[^/#]?" - | MQAst -> "[^/#]*" - | MQAstAst -> "[^#]*" + MQBC (s) -> Str.global_replace (Str.regexp "\.") "\\\\\." s + | MQBD -> "/" + | MQBQ -> "[^/#]?" + | MQBS -> "[^/#]*" + | MQBSS -> "[^#]*" in h ^ (patterneval tail) ;; @@ -50,14 +50,13 @@ let rec patterneval p = * conversione di un fragment identifier *) let fieval fi = - match fst fi with - None -> "" - | Some i -> +match fi with + [] -> "" + | MQFC i :: tail -> let s = "#xpointer\\\\(1/" ^ string_of_int (i) in - match snd fi with - None -> - s ^ "\\\\)" - | Some j -> + match tail with + [] -> s ^ "\\\\)" + | MQFC j :: tail2 -> s ^ "/" ^ string_of_int j ^ "\\\\)" ;; @@ -77,7 +76,8 @@ let exteval ext = * valuta il preambolo *) let preeval p = - p + match p with + Some s -> s ;; (* @@ -87,7 +87,7 @@ let preeval p = * SQL standard LIKE perche' MathQL prevede esperssioni con "*" * e con "**". *) -let pattern_match preamble pattern fragid = +let pattern_match (preamble, pattern, fragid) = " ~ '" ^ (preeval preamble) ^ ":/" ^ (patterneval pattern) ^ (fieval fragid) ^ "'" ;;