]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_notation/grafiteAst.ml
added/exported pp_pos & pp_attribute
[helm.git] / helm / ocaml / cic_notation / grafiteAst.ml
index f7e953b8cb87f71863555982db2dfcd28b1b268d..53cbc353fa49aa676003df9ced084cd221a7fd53 100644 (file)
@@ -47,8 +47,8 @@ type ('term, 'lazy_term, 'reduction, 'ident) tactic =
   | Absurd of loc * 'term
   | Apply of loc * 'term
   | Assumption of loc
-  | Auto of loc * int option * int option * string option
-      (* depth, width, paramodulation *)
+  | Auto of loc * int option * int option * string option * string option 
+      (* depth, width, paramodulation, full *) (* ALB *)
   | Change of loc * ('term, 'lazy_term, 'ident) pattern * 'lazy_term
   | Clear of loc * 'ident
   | ClearBody of loc * 'ident
@@ -134,6 +134,11 @@ type obj =
        *)
   | Record of (string * Ast.term) list * string * Ast.term *
       (string * Ast.term) list
+      (** left parameters, name, type, fields *)
+
+(** To be increased each time the command type below changes, used for "safe"
+ * marshalling *)
+let magic = 1
 
 type ('term,'obj) command =
   | Default of loc * string * UriManager.uri list
@@ -161,6 +166,29 @@ type ('term,'obj) command =
     (* DEBUGGING *)
   | Render of loc * UriManager.uri (* render library object *)
 
+(* composed magic: term + command magics. No need to change this value *)
+let magic = magic + 10000 * CicNotationPt.magic
+
+let reash_cmd_uris =
+  let reash_uri uri = UriManager.uri_of_string (UriManager.string_of_uri uri) in
+  function
+  | Default (loc, name, uris) ->
+      let uris = List.map reash_uri uris in
+      Default (loc, name, uris)
+  | Interpretation (loc, dsc, args, cic_appl_pattern) ->
+      let rec aux =
+        function
+        | CicNotationPt.UriPattern uri ->
+            CicNotationPt.UriPattern (reash_uri uri)
+        | CicNotationPt.ApplPattern args ->
+            CicNotationPt.ApplPattern (List.map aux args)
+        | CicNotationPt.VarPattern _
+        | CicNotationPt.ImplicitPattern as pat -> pat
+      in
+      let appl_pattern = aux cic_appl_pattern in
+      Interpretation (loc, dsc, args, appl_pattern)
+  | cmd -> cmd
+
 type ('term, 'lazy_term, 'reduction, 'ident) tactical =
   | Tactic of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic
   | Do of loc * int * ('term, 'lazy_term, 'reduction, 'ident) tactical
@@ -189,3 +217,9 @@ type ('term, 'lazy_term, 'reduction, 'obj, 'ident) statement =
   | Executable of loc * ('term, 'lazy_term, 'reduction, 'obj, 'ident) code
   | Comment of loc * ('term, 'lazy_term, 'reduction, 'obj, 'ident) comment
 
+  (* statements meaningful for matitadep *)
+type dependency =
+  | IncludeDep of string
+  | BaseuriDep of string
+  | UriDep of UriManager.uri
+