]> matita.cs.unibo.it Git - helm.git/commitdiff
- for/of attribute no more checked ;-(
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 28 Oct 2002 10:47:14 +0000 (10:47 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 28 Oct 2002 10:47:14 +0000 (10:47 +0000)
- parsing does not require any more the current uri (that was unclear
  for CurrentProof)
- as a consequence of the previous change the parser should now be reentrant

helm/ocaml/cic/cicParser.ml
helm/ocaml/cic/cicParser.mli
helm/ocaml/cic/cicParser2.ml
helm/ocaml/cic/cicParser3.ml
helm/ocaml/cic/cicParser3.mli

index 5149cfd6a24fe737cd9f13ee0e3fe87dce0ee1fe..cb3a064fd7db72481759ea660331cd3981298b48 100644 (file)
@@ -48,50 +48,31 @@ class warner =
 
 exception EmptyUri of string;;
 
-(* given an uri u it returns the list of tokens of the base uri of u *)
-(* e.g.: token_of_uri "cic:/a/b/c/d.xml" returns ["a" ; "b" ; "c"]   *)
-let tokens_of_uri uri =
- let uri' = UriManager.string_of_uri uri in
- let rec chop_list =
-  function
-     [] -> raise (EmptyUri uri')
-   | [fn] -> []
-   | he::[fn] -> [he]
-   | he::tl -> he::(chop_list tl)
- in
-  let trimmed_uri = Str.replace_first (Str.regexp "cic:") "" uri' in
-   let list_of_tokens = Str.split (Str.regexp "/") trimmed_uri in
-    chop_list list_of_tokens
-;;
-
 (* given the filename of an xml file of a cic object it returns its internal *)
 (* representation.                                                           *)
-let annobj_of_xml filename filenamebody uri =
+let annobj_of_xml filename filenamebody =
  let module Y = Pxp_yacc in
   try 
     let root, rootbody =
-      (* sets the current base uri to resolve relative URIs *)
-      CicParser3.current_sp := tokens_of_uri uri ;
-      CicParser3.current_uri := uri ;
-      let config = {Y.default_config with Y.warner = new warner} in
-       let doc =
-        Y.parse_document_entity config
-         (Y.from_file ~alt:[PxpUrlResolver.url_resolver] filename)
-         CicParser3.domspec in
+     let config = {Y.default_config with Y.warner = new warner} in
+      let doc =
+       Y.parse_document_entity config
+        (Y.from_file ~alt:[PxpUrlResolver.url_resolver] filename)
+        CicParser3.domspec in
 (* CSC: Until PXP bug is resolved *)
 PxpUrlResolver.url_resolver#close_all ;
-       let docroot = doc#root in
-        match filenamebody with
-           None -> docroot,None
-         | Some filename ->
-            let docbody =
-             Y.parse_document_entity config
-              (Y.from_file ~alt:[PxpUrlResolver.url_resolver] filename)
-              CicParser3.domspec
-            in
+      let docroot = doc#root in
+       match filenamebody with
+          None -> docroot,None
+        | Some filename ->
+           let docbody =
+            Y.parse_document_entity config
+             (Y.from_file ~alt:[PxpUrlResolver.url_resolver] filename)
+             CicParser3.domspec
+           in
 (* CSC: Until PXP bug is resolved *)
 PxpUrlResolver.url_resolver#close_all ;
-             docroot,Some docbody#root
+            docroot,Some docbody#root
     in
      CicParser2.get_term root rootbody
   with
@@ -102,6 +83,6 @@ PxpUrlResolver.url_resolver#close_all ;
      raise e
 ;;
 
-let obj_of_xml filename filenamebody uri =
- Deannotate.deannotate_obj (annobj_of_xml filename filenamebody uri)
+let obj_of_xml filename filenamebody =
+ Deannotate.deannotate_obj (annobj_of_xml filename filenamebody)
 ;;
index 0d0a8172b1caf467fb33604702b6fd64c5f7ffc4..a965cf2626b06eff6127ad66e8a91b62fc30b149 100644 (file)
 (*                                                                            *)
 (******************************************************************************)
 
-(* given the filename of an xml file of a cic object and it's uri, it returns *)
+(* given the filename of an xml file of a cic object, it returns              *)
 (* its internal annotated representation. In the case of constants (whose     *)
 (* type is splitted from the body), a second xml file (for the body) must be  *)
 (* provided.                                                                  *)
-val annobj_of_xml : string -> string option -> UriManager.uri -> Cic.annobj
+val annobj_of_xml : string -> string option -> Cic.annobj
 
-(* given the filename of an xml file of a cic object and it's uri, it returns *)
+(* given the filename of an xml file of a cic object, it returns              *)
 (* its internal logical representation. In the case of constants (whose       *)
 (* type is splitted from the body), a second xml file (for the body) must be  *)
 (* provided.                                                                  *)
-val obj_of_xml : string -> string option -> UriManager.uri -> Cic.obj
+val obj_of_xml : string -> string option -> Cic.obj
index e74cf73d35924d83f0650a79d8976b23cf1d0241..426ecf21a4d5671001cdfc4a25f4d7892b2b167e 100644 (file)
@@ -194,26 +194,24 @@ let rec get_term (n : CicParser3.cic_term Pxp_document.node) nbody
             let nbodytype = nbody'#node_type in
             match nbodytype with
              D.T_element "ConstantBody" ->
+(*CSC: the attribute "for" is ignored and not checked
               let for_ = string_of_attr (nbody'#attribute "for") in
+*)
               let paramsbody = uri_list_of_attr (nbody'#attribute "params") in
               let xidbody = string_of_attr (nbody'#attribute "id") in
               let value = (get_content nbody')#extension#to_cic_term [] in
-               if paramsbody = params &&
-                  U.eq (U.uri_of_string for_) !CicParser3.current_uri
-               then
+               if paramsbody = params then
                 C.AConstant (xid, Some xidbody, name, Some value, typ, params)
                else
                 raise (IllFormedXml 6)
            | D.T_element "CurrentProof" ->
+(*CSC: the attribute "of" is ignored and not checked
               let for_ = string_of_attr (nbody'#attribute "of") in
+*)
               let xidbody = string_of_attr (nbody'#attribute "id") in
-              let value = (get_content nbody')#extension#to_cic_term [] in
               let sons = nbody'#sub_nodes in
                let (conjs, value) = get_conjs_value sons in
-                if U.eq (U.uri_of_string for_) !CicParser3.current_uri then
-                 C.ACurrentProof (xid, xidbody, name, conjs, value, typ, params)
-                else
-                 raise (IllFormedXml 6)
+                C.ACurrentProof (xid, xidbody, name, conjs, value, typ, params)
            | D.T_element _
            | D.T_data
            | _ -> raise (IllFormedXml 6)
index 04bbb9029d8b5f8a5b67ba5ae204f29d0891c65a..02d22b3216b0bf631f2be796689f627a775534be 100644 (file)
 
 exception IllFormedXml of int;;
 
-(* The list of tokens of the current section path. *)
-(* Used to resolve relative URIs                   *)
-let current_sp = ref [];;
-
-(* The uri of the object been parsed *)
-let current_uri = ref (UriManager.uri_of_string "cic:/.xml");;
-
 (* Utility functions to map a markup attribute to something useful *)
 
 let cic_attr_of_xml_attr =
index c3664c819c0e8643789c279e50b44ae33d8c740a..3c2f5d94ccf4348d3bc23331bfb8bd4f7e491fa1 100644 (file)
@@ -41,9 +41,6 @@
 
 exception IllFormedXml of int
 
-val current_sp : string list ref
-val current_uri : UriManager.uri ref
-
 (* the "interface" of the class linked to each node of the dom tree *)
 class virtual cic_term :
   object ('a)