src/HOLCF/domain/interface.ML
changeset 3622 85898be702b2
parent 2446 c2a9bf6c0948
child 4008 2444085532c6
equal deleted inserted replaced
3621:d3e248853428 3622:85898be702b2
     3     Author : David von Oheimb
     3     Author : David von Oheimb
     4     Copyright 1995, 1996 TU Muenchen
     4     Copyright 1995, 1996 TU Muenchen
     5 
     5 
     6 parser for domain section
     6 parser for domain section
     7 *)
     7 *)
     8 
       
     9 
       
    10 structure ThySynData: THY_SYN_DATA = (* overwrites old version of ThySynData !!!!!! *)
       
    11 
       
    12 struct
       
    13 
     8 
    14 local 
     9 local 
    15   open ThyParse;
    10   open ThyParse;
    16   open Domain_Library;
    11   open Domain_Library;
    17 
    12 
   155   val domain_decl = (enum1 "," (con_typ --$$ "="  -- !! 
   150   val domain_decl = (enum1 "," (con_typ --$$ "="  -- !! 
   156 			       (enum1 "|" domain_cons))) 	    >> mk_domain;
   151 			       (enum1 "|" domain_cons))) 	    >> mk_domain;
   157   val gen_by_decl = (optional ($$ "finite" >> K true) false) -- 
   152   val gen_by_decl = (optional ($$ "finite" >> K true) false) -- 
   158 		    (enum1 "," (name'   --$$ "by" -- !!
   153 		    (enum1 "," (name'   --$$ "by" -- !!
   159 			       (enum1 "|" name'))) >> mk_gen_by;
   154 			       (enum1 "|" name'))) >> mk_gen_by;
       
   155 
       
   156   val _ = ThySyn.add_syntax
       
   157     ["lazy", "by", "finite"]
       
   158     [("domain", domain_decl), ("generated", gen_by_decl)]
       
   159 
   160 end; (* local *)
   160 end; (* local *)
   161 
       
   162 val user_keywords = "lazy"::"by"::"finite"::
       
   163 		(**)filter_out (fn s=>s="lazy" orelse s="by" orelse s="finite")(**)
       
   164 		    ThySynData.user_keywords;
       
   165 val user_sections = ("domain", domain_decl)::("generated", gen_by_decl)::
       
   166 		(**)filter_out (fn (s,_)=>s="domain" orelse s="generated")(**)
       
   167 		    ThySynData.user_sections;
       
   168 end; (* struct *)
       
   169 
       
   170 structure ThySyn = ThySynFun(ThySynData); (* overwrites old version of ThySyn!!!!!! *)