src/HOL/MicroJava/J/Decl.thy
changeset 8011 d14c4e9e9c8e
child 9346 297dcbf64526
equal deleted inserted replaced
8010:69032a618aa9 8011:d14c4e9e9c8e
       
     1 (*  Title:      HOL/MicroJava/J/Decl.thy
       
     2     ID:         $Id$
       
     3     Author:     David von Oheimb
       
     4     Copyright   1997 Technische Universitaet Muenchen
       
     5 
       
     6 Class declarations
       
     7 *)
       
     8 
       
     9 Decl = Type +
       
    10 
       
    11 types	fdecl		(* field declaration, cf. 8.3 (, 9.3) *)
       
    12 	= "vname \\<times> ty"
       
    13 
       
    14 
       
    15 types	sig		(* signature of a method, cf. 8.4.2 *)
       
    16 	= "mname \\<times> ty list"
       
    17 
       
    18 	'c mdecl		(* method declaration in a class *)
       
    19 	= "sig \\<times> ty \\<times> 'c"
       
    20 
       
    21 types	'c class		(* class *)
       
    22 	= "cname option \\<times> fdecl list \\<times> 'c mdecl list"
       
    23 	(* superclass, fields, methods*)
       
    24 
       
    25 	'c cdecl		(* class declaration, cf. 8.1 *)
       
    26 	= "cname \\<times> 'c class"
       
    27 
       
    28 consts
       
    29 
       
    30   Object  :: cname	(* name of root class *)
       
    31   ObjectC :: 'c cdecl	(* decl of root class *)
       
    32 
       
    33 defs 
       
    34 
       
    35  ObjectC_def "ObjectC \\<equiv> (Object, (None, [], []))"
       
    36 
       
    37 end