X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Finterface%2FcicParser3.ml;h=6e002b14324e4a86ca0f6a5504b2fb97533c1ab1;hb=2540cc551ae097178c7e11ec578b58977a35bd3b;hp=d0c31b0f0361c0ed0fa9344e6cd1f9f7800cd9bd;hpb=c01d2aaea05f7385bee46addd900cd0397756389;p=helm.git diff --git a/helm/interface/cicParser3.ml b/helm/interface/cicParser3.ml index d0c31b0f0..6e002b143 100644 --- a/helm/interface/cicParser3.ml +++ b/helm/interface/cicParser3.ml @@ -476,6 +476,29 @@ class eltype_lambda = end ;; +class eltype_letin = + object (self) + + inherit cic_term + + method to_cic_term = + let n = self#node in + let sons = n#sub_nodes + and id = string_of_xml_attr (n#attribute "id") in + match sons with + [s ; t] when + s#node_type = Pxp_document.T_element "term" && + t#node_type = Pxp_document.T_element "letintarget" -> + let name = cic_attr_of_xml_attr (t#attribute "binder") + and source = s#extension#to_cic_term + and target = t#extension#to_cic_term in + let res = Cic.ALetIn (id,ref None,name,source,target) in + register_id id res ; + res + | _ -> raise (IllFormedXml 12) + end +;; + (* The definition of domspec, an hashtable that maps each node type to the *) (* object that must be linked to it. Used by markup. *) @@ -493,6 +516,7 @@ let domspec = "CAST", (new D.element_impl (new eltype_cast)) ; "PROD", (new D.element_impl (new eltype_prod)) ; "LAMBDA", (new D.element_impl (new eltype_lambda)) ; + "LETIN", (new D.element_impl (new eltype_letin)) ; "APPLY", (new D.element_impl (new eltype_apply)) ; "CONST", (new D.element_impl (new eltype_const)) ; "ABST", (new D.element_impl (new eltype_abst)) ;