]> matita.cs.unibo.it Git - helm.git/commitdiff
added cast concrete syntax
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 2 Mar 2004 15:53:19 +0000 (15:53 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 2 Mar 2004 15:53:19 +0000 (15:53 +0000)
helm/ocaml/cic_disambiguation/cicTextualParser2.ml
helm/ocaml/cic_disambiguation/disambiguateChoices.ml

index 2474191fe4f0c9f866b40e8949f40e504e0fd91f..7c8261faebc372e2c92772bd1e50f3da3fc1af7f 100644 (file)
@@ -209,6 +209,8 @@ EXTEND
         PAREN "]" ->
           return_term loc
             (CicAst.Case (t, indty_ident, outtyp, patterns))
+      | PAREN "("; t1 = term; SYMBOL ":"; t2 = term; PAREN ")" ->
+          return_term loc (CicAst.Appl [CicAst.Symbol ("cast", 0); t1; t2])
       | PAREN "("; t = term; PAREN ")" -> return_term loc t
       ]
     ];
index 9caf77aabf0618bdac3f2071a056a569d2398ff7..368bc2f45f9a21911821ba9ffbd905a37c542ad7 100644 (file)
@@ -85,4 +85,14 @@ let lookup_num_by_dsc dsc =
 
 let _ =
   add_binary_op "exists" "exists"
-   (Cic.MutInd (HelmLibraryObjects.Logic.ex_URI, 0, []))
+    (Cic.MutInd (HelmLibraryObjects.Logic.ex_URI, 0, []));
+  add_symbol_choice "cast"
+    ("type cast",
+      (fun env _ args ->
+        let t1, t2 =
+          match args with 
+          | [t1; t2] -> t1, t2
+          | _ -> raise Invalid_choice
+        in
+        Cic.Cast (t1, t2)));
+