]> matita.cs.unibo.it Git - helm.git/commitdiff
Missing case (Cast) implemented.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 19 Jul 2005 12:38:38 +0000 (12:38 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 19 Jul 2005 12:38:38 +0000 (12:38 +0000)
helm/ocaml/cic_transformations/ast2pres.ml
helm/ocaml/cic_transformations/cicAstPp.ml

index 5c1ea95d766be9e53e2afea1fb3856110404b7aa..0e7a01306f9489f3eb989d73240bb179bb9da4ab 100644 (file)
@@ -66,6 +66,8 @@ and countterm current_size t =
              let size3 =
                List.fold_left countvar (c+String.length constr) vars in
              countterm size3 action) size2 pl 
+    | A.Cast (bo,ty) ->
+       countterm (countterm (current_size + 3) bo) ty
     | A.LetIn (var,s,t) ->
         let size1 = countvar current_size var in
         let size2 = countterm size1 s in
@@ -265,6 +267,10 @@ let ast2astBox ?(unicode = true) ?(priority = 0) ?(assoc = false) ?(tail = [])
                         Box.smallskip;
                         Box.Text([],"with")]);
                  Box.indent plbox])
+    | A.Cast (bo,ty) ->
+        Box.V(make_attributes [Some "helm","xref"] [xref],
+              [Box.H([],[Box.Text([],"("); ast2box ~tail:[] bo]);
+               Box.H([],[Box.Text([],":"); ast2box ~tail ty;Box.Text([],")")])])
     | A.LetIn (var, s, t) ->
         Box.V(make_attributes [Some "helm","xref"] [xref],
               (make_def "let" var s "in")@[ast2box ~tail t])
@@ -486,6 +492,10 @@ let ast2mpres ?(priority = 0) ?(assoc = false) (ast, ids_to_uris) =
         | `None ->
             P.Mrow(aattr, m_open_fence :: (aux hd) :: (make_args tl) @
             [m_close_fence]))
+    | A.Cast (bo,ty) ->
+       let attr = make_attributes [Some "helm","xref"] [xref] in
+        P.Mrow (attr,
+         [m_open_fence; aux bo; P.Mo ([],":"); aux ty; m_close_fence])
     | A.Binder (`Pi, (Cic.Anonymous, Some ty), body)
     | A.Binder (`Forall, (Cic.Anonymous, Some ty), body) ->
         let attr = make_attributes [Some "helm","xref"] [xref] in
index 8076e006204171a695b0087af9bccc28ebc69757..2479fe24a3bf4fab3d5b31cd74f3bddadfb4be89 100644 (file)
@@ -49,6 +49,7 @@ let rec pp_term = function
       sprintf "%smatch %s with %s"
         (match typ with None -> "" | Some t -> sprintf "<%s>" (pp_term t))
         (pp_term term) (pp_patterns patterns)
+  | CicAst.Cast (t1,t2) -> sprintf "(%s: %s)" (pp_term t1) (pp_term t2)
   | CicAst.LetIn (var, t1, t2) ->
       sprintf "let %s = %s in %s" (pp_capture_variable var) (pp_term t1)
         (pp_term t2)