]> matita.cs.unibo.it Git - helm.git/commitdiff
let in implemented
authorlordi <??>
Thu, 13 Jun 2002 17:18:40 +0000 (17:18 +0000)
committerlordi <??>
Thu, 13 Jun 2002 17:18:40 +0000 (17:18 +0000)
helm/ocaml/mathql_interpreter/.depend
helm/ocaml/mathql_interpreter/Makefile
helm/ocaml/mathql_interpreter/func.ml
helm/ocaml/mathql_interpreter/letin.ml [new file with mode: 0644]
helm/ocaml/mathql_interpreter/letin.mli [new file with mode: 0644]
helm/ocaml/mathql_interpreter/mqint.ml
helm/ocaml/mathql_interpreter/select.ml
helm/ocaml/mathql_interpreter/utility.mli

index 71ddf6b008c63c55ebf590bf51801ed9891a327d..e93fc1a1487e0c2e77361a4b69f313eeefbbdfca 100644 (file)
@@ -5,6 +5,7 @@ intersect.cmi: mathql_semantics.cmo
 union.cmi: mathql_semantics.cmo 
 pattern.cmi: mathql_semantics.cmo 
 use.cmi: mathql_semantics.cmo 
+letin.cmi: mathql_semantics.cmo 
 dbconn.cmo: dbconn.cmi 
 dbconn.cmx: dbconn.cmi 
 eval.cmo: eval.cmi 
@@ -27,6 +28,8 @@ pattern.cmo: dbconn.cmi eval.cmi mathql_semantics.cmo utility.cmi pattern.cmi
 pattern.cmx: dbconn.cmx eval.cmx mathql_semantics.cmx utility.cmx pattern.cmi 
 use.cmo: dbconn.cmi mathql_semantics.cmo utility.cmi use.cmi 
 use.cmx: dbconn.cmx mathql_semantics.cmx utility.cmx use.cmi 
+letin.cmo: func.cmi utility.cmi letin.cmi 
+letin.cmx: func.cmx utility.cmx letin.cmi 
 mqint.cmo: dbconn.cmi diff.cmi eval.cmi intersect.cmi mathql_semantics.cmo \
     pattern.cmi select.cmi sortedby.cmi union.cmi use.cmi utility.cmi \
     mqint.cmi 
index f5714135815987f859d5cf8a8cf9a33263d640bc..290258d17515d2db14dcd085df09075aab43c7b1 100644 (file)
@@ -4,7 +4,7 @@ PREDICATES =
 
 INTERFACE_FILES = dbconn.mli eval.mli utility.mli func.mli diff.mli \
                  sortedby.mli select.mli intersect.mli union.mli \
-                 pattern.mli use.mli mqint.mli
+                 pattern.mli use.mli letin.mli mqint.mli
 
 IMPLEMENTATION_FILES = mathql_semantics.ml \
                        $(INTERFACE_FILES:%.mli=%.ml)
index 314ad2b01db7a7b5428ddcfcd551d0ceed40c765..857a4c69813ef015916f301400b4ac9cfc68f3c6 100644 (file)
@@ -33,6 +33,9 @@ open MathQL;;
 
 (*
  * implementazione della funzione NAME
+ *
+ * esempio:
+ * name "cic:/Algebra/CC_Props/CC_CauchySeq.ind#xpointer(1/1/1)" = CC_CauchySeq
  *)
 let func_name value =
  try (
diff --git a/helm/ocaml/mathql_interpreter/letin.ml b/helm/ocaml/mathql_interpreter/letin.ml
new file mode 100644 (file)
index 0000000..3cf1fb6
--- /dev/null
@@ -0,0 +1,61 @@
+(* 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://www.cs.unibo.it/helm/.
+ *)
+
+(*
+ * implementazione dei comandi LETIN e REF
+ *)
+
+open MathQL;;
+
+let letin_pool = ref None;;
+
+let see_pool () =
+ match !letin_pool with
+    None -> print_endline "None"
+  | Some c -> List.iter (fun elem -> print_endline (fst elem)) c
+;;
+
+let letin_ex rvar alist =
+ let _ = 
+  match !letin_pool with
+     Some pool -> letin_pool := Some ((rvar,alist)::(List.remove_assoc rvar pool))
+   | None -> letin_pool := Some ([(rvar,alist)])
+ in
+(*  let _ = see_pool () in*)
+  []
+;;
+
+let letref_ex rvar =
+ match !letin_pool with
+    None -> []
+  | Some pool ->
+     (
+      try
+       List.assoc rvar pool
+      with
+       Not_found -> let _ = print_endline "nun ce sta" in []
+     )
+;;
+
diff --git a/helm/ocaml/mathql_interpreter/letin.mli b/helm/ocaml/mathql_interpreter/letin.mli
new file mode 100644 (file)
index 0000000..8056335
--- /dev/null
@@ -0,0 +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://www.cs.unibo.it/helm/.
+ *)
+
+val letin_ex : MathQL.mqrvar -> Mathql_semantics.result -> Mathql_semantics.result
+val letref_ex : MathQL.mqrvar -> Mathql_semantics.result
index bb89c1d19cd0f69e96b20ed3b1328118b27bc96a..f0ec5cbfdb2d9ca0e3cb24d1e13b2a42e9a9c310 100644 (file)
@@ -37,6 +37,7 @@ open Diff;;
 open Sortedby;;
 open Use;;
 open Select;;
+open Letin;;
 
 let fi_to_string fi =
  match fi with
@@ -84,6 +85,10 @@ let rec execute_ex env =
  |  MQIntersect (l1, l2) ->
      intersect_ex (execute_ex env l1) (execute_ex env l2)
  |  MQLRVar rvar -> [List.assoc rvar env]
+ |  MQLetIn (rvar, alist) ->
+     letin_ex rvar (execute_ex env alist)
+ |  MQLetRef rvar ->
+     letref_ex rvar
 ;;
 
 (* Let's initialize the execute in Select, creating a cyclical recursion *)
index 7c7d7f2a7bbaf8ece53c2171c05569c38a9b86b4..772f6964e9e71a8ba379c272a6be4b364130e609 100644 (file)
@@ -20,7 +20,7 @@
  * MA  02111-1307, USA.
  * 
  * For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ * http://www.cs.unibo.it/helm/.
  *)
 
 (*
index 7638932476db22637134e54510fa243decd54579..9e9e8290da129b369b99ea8163f9ae18df9dab04 100644 (file)
@@ -20,7 +20,7 @@
  * MA  02111-1307, USA.
  * 
  * For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ * http://www.cs.unibo.it/helm/.
  *)
 
 val pgresult_to_string_list : < get_list : string list list; .. > -> string list