]> matita.cs.unibo.it Git - helm.git/commitdiff
- we now add the kernel options in the preamble of the URI hierarchy
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Tue, 5 Jan 2010 19:13:40 +0000 (19:13 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Tue, 5 Jan 2010 19:13:40 +0000 (19:13 +0000)
- we now quote the identifiers by default to make them NMTOKENS but we added a command line option to disable this quoting (it can be time consuming)

helm/software/lambda-delta/Makefile
helm/software/lambda-delta/Makefile.common
helm/software/lambda-delta/automath/autLexer.mll
helm/software/lambda-delta/basic_ag/bag.ml
helm/software/lambda-delta/basic_rg/brg.ml
helm/software/lambda-delta/basic_rg/brgOutput.ml
helm/software/lambda-delta/complete_rg/crg.ml
helm/software/lambda-delta/complete_rg/crgAut.ml
helm/software/lambda-delta/toplevel/top.ml
helm/software/lambda-delta/xml/ld.dtd

index 9903f4fc442ac782abdbe759c1677d0028fb31a4..86d068f6ae40e41af9a8e5b34a501f8e25990a64 100644 (file)
@@ -6,42 +6,37 @@ KEEP = README automath/*.aut
 
 CLEAN = etc/log.txt
 
-TAGS = test test-si test-si-fast hal xml-si-drg xml-si-old profile
+TAGS = test-si test-si-fast hal xml-si-drg xml-si profile
 
-XMLS = xml/brg/grundlagen/l/not.ld.xml xml/brg/grundlagen/l/et.ld.xml \
-       xml/brg/grundlagen/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.xml \
-       xml/brg/grundlagen/l/e/pairis1.ld.xml
+XMLS = xml/brg-si/grundlagen/l/not.ld.xml \
+       xml/brg-si/grundlagen/l/et.ld.xml \
+       xml/brg-si/grundlagen/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.xml \
+       xml/brg-si/grundlagen/l/e/pairis1.ld.xml
 
 include Makefile.common
 
 INPUT = automath/grundlagen.aut
 
-INPUT-ORIG = automath/grundlagen-orig.aut
-
-test: $(MAIN).opt
-       @echo "  HELENA -o -p -r $(INPUT)"
-       $(H)./$(MAIN).opt -o -p -r -S 3 $(O) $(INPUT) > etc/log.txt
-
 test-si: $(MAIN).opt
-       @echo "  HELENA -o -p -r -u $(INPUT)"
-       $(H)./$(MAIN).opt -o -p -r -u -S 3 $(O) $(INPUT) > etc/log.txt
+       @echo "  HELENA -p -r -u $(INPUT)"
+       $(H)./$(MAIN).opt -p -r -u -S 3 $(O) $(INPUT) > etc/log.txt
 
 test-si-fast: $(MAIN).opt
-       @echo "  HELENA -o -r -u $(INPUT)"
-       $(H)./$(MAIN).opt -o -r -u -S 1 $(O) $(INPUT) > etc/log.txt
+       @echo "  HELENA -r -u -q $(INPUT)"
+       $(H)./$(MAIN).opt -r -u -q -S 1 $(O) $(INPUT) > etc/log.txt
 
 profile: $(MAIN).opt
-       @echo "  HELENA -r -u $(INPUT) (30 TIMES)"
-       $(H)for T in `seq 30`; do ./$(MAIN).opt -r -u -S 1 $(O) automath/grundlagen.aut >> etc/log.txt; done
+       @echo "  HELENA -r -u -q $(INPUT) (30 TIMES)"
+       $(H)for T in `seq 30`; do ./$(MAIN).opt -r -u -q -S 1 $(O) automath/grundlagen.aut >> etc/log.txt; done
        $(H)grep "at exit" etc/log.txt | sort | uniq | less
 
 hal: $(MAIN).opt
        @echo "  HELENA -o -x -m $(INPUT)"
        $(H)./$(MAIN).opt -o -x -m -s 1 -S 1 $(INPUT) > etc/log.txt
 
-xml-si-old: $(MAIN).opt
-       @echo "  HELENA -o -u -x -s 2 $(INPUT)"
-       $(H)./$(MAIN).opt -o -u -x -s 2 -S 1 $(INPUT) > etc/log.txt
+xml-si: $(MAIN).opt
+       @echo "  HELENA -u -x -s 2 $(INPUT)"
+       $(H)./$(MAIN).opt -u -x -s 2 -S 1 $(INPUT) > etc/log.txt
 
 xml-si-drg: $(MAIN).opt
        @echo "  HELENA -u -x -s 1 $(INPUT)"
@@ -69,3 +64,25 @@ test-html:
 lddl: index
        @echo "  GENERATE lddl.tar.bz2"
        $(H)tar -cjf $(DOWNDIR)/lddl.tar.bz2 -X etc/exclude.txt xml
+
+install-xml: etc/make-html.sh
+       @echo "  INSTALL xml"
+       cp -a xml/index.txt xml/ld.dtd xml/brg-si/ $(XMLDIR)
+
+# old targets ##########################################################
+
+test: $(MAIN).opt
+       @echo "  HELENA -o -p -r $(INPUT)"
+       $(H)./$(MAIN).opt -o -p -r -S 3 $(O) $(INPUT) > etc/log.txt
+
+test-si-old: $(MAIN).opt
+       @echo "  HELENA -o -p -r -u $(INPUT)"
+       $(H)./$(MAIN).opt -o -p -r -u -S 3 $(O) $(INPUT) > etc/log.txt
+
+test-si-fast-old: $(MAIN).opt
+       @echo "  HELENA -o -r -u -q $(INPUT)"
+       $(H)./$(MAIN).opt -o -r -u -q -S 1 $(O) $(INPUT) > etc/log.txt
+
+xml-si-old: $(MAIN).opt
+       @echo "  HELENA -o -u -x -s 2 $(INPUT)"
+       $(H)./$(MAIN).opt -o -u -x -s 2 -S 1 $(INPUT) > etc/log.txt
index ca219ca6651ab4df0e1fdbc5a45db280e5027330..3322009493713faf1d7871f07e0c0eed37895572 100644 (file)
@@ -3,6 +3,7 @@ H=@
 LDDLURL = http://helm.cs.unibo.it/lambda-delta/static/lddl
 LDDLDIR = /projects/helm/public_html/lambda-delta/static/lddl
 DOWNDIR = /projects/helm/public_html/lambda-delta/download
+XMLDIR  = /projects/helm/public_html/lambda-delta/xml
 
 DIRECTORIES = $(shell cat Make)
 
index 006c056b9db0b933f6dbc2e65ace8def82e080d0..b7009f9240011a28392d02c760c7a7b8dade963d 100644 (file)
    
    let debug = false
    let out s = if debug then L.warn s else ()
+
+   let unquote = ref false
+
+(* This turns an Automath identifier into an XML nmtoken *)
+   let quote id =
+      let l = String.length id in
+      let rec aux i =
+         if i < l then begin
+            if id.[i] = '\'' || id.[i] = '`' then id.[i] <- '_';
+           aux (succ i)
+         end else
+           id
+      in
+      aux 0
 }
 
 let LC  = ['#' '%']
@@ -53,7 +67,10 @@ and token = parse
    | "'prop'" { out "PROP"; P.PROP   }
    | "TYPE"   { out "TYPE"; P.TYPE   }
    | "'type'" { out "TYPE"; P.TYPE   }
-   | ID       { out "ID"; P.IDENT (Lexing.lexeme lexbuf) }   
+   | ID       { out "ID"; 
+                   let s = Lexing.lexeme lexbuf in
+                   if !unquote then P.IDENT s else P.IDENT (quote s)
+              }
    | ":="     { out "DEF"; P.DEF     }
    | "("      { out "OP"; P.OP       }
    | ")"      { out "CP"; P.CP       }
index 8a07f55a819fd4696ccfabd61f683c2c68f67c47..1aa9b62e749a79b5f2494ce0d09b67932235584f 100644 (file)
@@ -34,8 +34,9 @@ type message = (lenv, term) Log.item list
 
 (* helpers ******************************************************************)
 
-let mk_uri root s =
-   String.concat "/" ["ld:"; "bag"; root; s ^ ".ld"]
+let mk_uri si root s =
+   let kernel = if si then "bag-si" else "bag" in
+   String.concat "/" ["ld:"; kernel; root; s ^ ".ld"]
 
 (* Currified constructors ***************************************************)
 
index fd93f397af56bf450ce8ef1452697f004ce7b3e5..efc5d7556914bc6b8976b0ade53be6a751c042ee 100644 (file)
@@ -35,8 +35,9 @@ type lenv = Null
 
 (* helpers ******************************************************************)
 
-let mk_uri root s =
-   String.concat "/" ["ld:"; "brg"; root; s ^ ".ld"]
+let mk_uri si root s =
+   let kernel = if si then "brg-si" else "brg" in
+   String.concat "/" ["ld:"; kernel; root; s ^ ".ld"]
 
 (* Currified constructors ***************************************************)
 
index 70464fde7cbf5cf38ca0910ffcc1d99986d73ff4..e4e7489ca3f3e2d864a399e1cc0f1e7d782ad471 100644 (file)
@@ -135,7 +135,7 @@ let rename f e a =
    let rec aux f e n r =
       let f = function
          | true  -> f n r
-        | false -> aux f e (n ^ "'") r
+        | false -> aux f e (n ^ "_") r
       in
       does_not_occur f n r e
    in
index 6db1b5481dd95fadf1da9c8a8e038c721f83e119..fa76c6164ab02c1605eae0282d210d8dab9a5f71 100644 (file)
@@ -36,8 +36,9 @@ type entity = term Entity.entity
 
 (* helpers ******************************************************************)
 
-let mk_uri root s =
-   String.concat "/" ["ld:"; "crg"; root; s ^ ".ld"]
+let mk_uri si root s =
+   let kernel = if si then "crg-si" else "crg" in
+   String.concat "/" ["ld:"; kernel; root; s ^ ".ld"]
 
 let empty_lenv = ESort
 
index 267e2b4031fa64c8b9211cd600bbf0fe725ac80a..8420cbea7e486b97420dff43d94064d1706229a8 100644 (file)
@@ -62,9 +62,9 @@ let id_of_name (id, _, _) = id
 let mk_qid f st id path =
    let str = String.concat "/" path in
    let str = Filename.concat str id in 
-   let f str = f (U.uri_of_string str, id, path) in
-   f (st.mk_uri str)
-   
+   let str = st.mk_uri str in
+   f (U.uri_of_string str, id, path)
+
 let uri_of_qid (uri, _, _) = uri
 
 let complete_qid f st (id, is_local, qs) =
index c1c3538446cb1942a8767d91164fa91d620fd735..515e6590ee03c4113efb02d24a72bb5b4e43c894 100644 (file)
@@ -18,6 +18,7 @@ module H    = Hierarchy
 module O    = Output
 module Y    = Entity
 module X    = Library
+module AL   = AutLexer
 module AP   = AutProcess
 module AO   = AutOutput
 module DA   = CrgAut
@@ -52,7 +53,7 @@ let initial_status mk_uri cover g expand si = {
    brgc = BrgO.initial_counters;
    bagc = BagO.initial_counters;
    mst  = MA.initial_status ~cover ();
-   dst  = DA.initial_status (mk_uri cover);
+   dst  = DA.initial_status (mk_uri si cover);
    ast  = AP.initial_status;
    kst  = Y.initial_status g expand si
 }
@@ -181,7 +182,7 @@ let rec process st = function
 
 let main =
 try 
-   let version_string = "Helena 0.8.1 M - December 2009" in
+   let version_string = "Helena 0.8.1 M - January 2010" in
    let set_hierarchy s = 
       let err () = L.warn (P.sprintf "Unknown type hierarchy: %s" s) in
       let f g = graph := g in
@@ -199,6 +200,9 @@ try
       let f och = moch := Some och in
       ML.open_out f name
    in
+   let unquote () =
+      AL.unquote := true
+   in
    let close = function
       | None     -> ()
       | Some och -> ML.close_out C.start och
@@ -240,7 +244,7 @@ try
       flush_all ()
    in
    let help = 
-      "Usage: helena [ -Vcgijmopux | -Ss <number> | -hk <string> ] <file> ...\n\n" ^
+      "Usage: helena [ -Vcgijmopqrux | -Ss <number> | -hk <string> ] <file> ...\n\n" ^
       "Summary levels: 0 just errors (default), 1 time stamps, 2 processed file names, \
        3 data information, 4 typing information, 5 reduction information\n\n" ^
        "Stages: 0 parsing, 1 to intermediate, 2 to untrusted, 3 to trusted (default)\n"
@@ -257,6 +261,7 @@ try
    let help_m = " output intermediate representation (HAL)" in
    let help_o = " use old abstract language instead of crg" in   
    let help_p = " preprocess Automath source" in
+   let help_q = " disable quotation of identifiers" in
    let help_r = " disable initial segment of URI hierarchy" in
    let help_s = "<number>  set translation stage (see above)" in
    let help_u = " activate sort inclusion" in
@@ -276,6 +281,7 @@ try
       ("-m", Arg.Set meta, help_m); 
       ("-o", Arg.Set old, help_o);      
       ("-p", Arg.Set preprocess, help_p);      
+      ("-q", Arg.Unit unquote, help_q);      
       ("-r", Arg.Clear use_cover, help_r);
       ("-s", Arg.Int set_stage, help_s);
       ("-u", Arg.Set si, help_u);
index 49da5752196e3149e83f7bd559186c0b1d6053c5..83cfc0596e0e8fdf96ce1d47859c482f3a5f5241 100644 (file)
 
 <!ELEMENT Sort EMPTY>
 <!ATTLIST Sort
-          position NMTOKEN #REQUIRED
-          name     CDATA   #IMPLIED
-          mark     NMTOKEN #IMPLIED
+          position NMTOKEN  #REQUIRED
+          name     NMTOKENS #IMPLIED
+          mark     NMTOKENS #IMPLIED
 >
 
 <!ELEMENT LRef EMPTY>
 <!ATTLIST LRef
-          position NMTOKEN #REQUIRED
-          name     CDATA   #IMPLIED
-          mark     NMTOKEN #IMPLIED
+          position NMTOKEN  #REQUIRED
+          name     NMTOKENS #IMPLIED
+          mark     NMTOKENS #IMPLIED
 >
 
 <!ELEMENT GRef EMPTY>
 <!ATTLIST GRef
-          uri  CDATA   #REQUIRED
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          uri  CDATA    #REQUIRED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT Cast %term;>
 <!ATTLIST Cast
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT Appl %term;>
 <!ATTLIST Appl
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT Abst %term;>
 <!ATTLIST Abst
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT Abbr %term;>
 <!ATTLIST Abbr
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT Void EMPTY>
 <!ATTLIST Void
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!-- ENVIRONMENT ENTRIES -->
 
 <!ELEMENT ABST %term;>
 <!ATTLIST ABST
-          uri  CDATA   #REQUIRED
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          uri  CDATA    #REQUIRED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!ELEMENT ABBR %term;>
 <!ATTLIST ABBR
-          uri  CDATA   #REQUIRED
-          name CDATA   #IMPLIED
-          mark NMTOKEN #IMPLIED
+          uri  CDATA    #REQUIRED
+          name NMTOKENS #IMPLIED
+          mark NMTOKENS #IMPLIED
 >
 
 <!-- ROOT -->