src/HOL/Bali/Decl.thy
changeset 18551 be0705186ff5
parent 18447 da548623916a
child 18576 8d98b7711e47
equal deleted inserted replaced
18550:59b89f625d68 18551:be0705186ff5
   322 record cbody = decl +          --{* class body *}
   322 record cbody = decl +          --{* class body *}
   323          cfields:: "fdecl list" 
   323          cfields:: "fdecl list" 
   324          methods:: "mdecl list"
   324          methods:: "mdecl list"
   325          init   :: "stmt"       --{* initializer *}
   325          init   :: "stmt"       --{* initializer *}
   326 
   326 
   327 record class = cbody +           --{* class *}
   327 record "class" = cbody +           --{* class *}
   328         super   :: "qtname"      --{* superclass *}
   328         super   :: "qtname"      --{* superclass *}
   329         superIfs:: "qtname list" --{* implemented interfaces *}
   329         superIfs:: "qtname list" --{* implemented interfaces *}
   330 types	
   330 types	
   331 	cdecl           --{* class declaration, cf. 8.1 *}
   331 	cdecl           --{* class declaration, cf. 8.1 *}
   332 	= "qtname \<times> class"
   332 	= "qtname \<times> class"
   403      "prog"<= (type) "\<lparr>ifaces::idecl list,classes::cdecl list\<rparr>"
   403      "prog"<= (type) "\<lparr>ifaces::idecl list,classes::cdecl list\<rparr>"
   404      "prog"<= (type) "\<lparr>ifaces::idecl list,classes::cdecl list,\<dots>::'a\<rparr>"
   404      "prog"<= (type) "\<lparr>ifaces::idecl list,classes::cdecl list,\<dots>::'a\<rparr>"
   405 
   405 
   406 syntax
   406 syntax
   407   iface     :: "prog  \<Rightarrow> (qtname, iface) table"
   407   iface     :: "prog  \<Rightarrow> (qtname, iface) table"
   408   class     :: "prog  \<Rightarrow> (qtname, class) table"
   408   "class"     :: "prog  \<Rightarrow> (qtname, class) table"
   409   is_iface  :: "prog  \<Rightarrow> qtname  \<Rightarrow> bool"
   409   is_iface  :: "prog  \<Rightarrow> qtname  \<Rightarrow> bool"
   410   is_class  :: "prog  \<Rightarrow> qtname  \<Rightarrow> bool"
   410   is_class  :: "prog  \<Rightarrow> qtname  \<Rightarrow> bool"
   411 
   411 
   412 translations
   412 translations
   413 	   "iface G I" == "table_of (ifaces G) I"
   413 	   "iface G I" == "table_of (ifaces G) I"