src/HOL/MicroJava/J/Type.thy
author kleing
Thu, 21 Sep 2000 10:42:49 +0200
changeset 10042 7164dc0d24d8
parent 8032 1eaae1a2f8ff
child 10061 fe82134773dc
permissions -rw-r--r--
unsymbolized
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/MicroJava/J/Type.thy
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     2
    ID:         $Id$
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     3
    Author:     David von Oheimb
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     4
    Copyright   1999 Technische Universitaet Muenchen
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     5
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     6
Java types
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     7
*)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     8
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     9
Type = JBasis +
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    10
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    11
types	cname		(* class name *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    12
        vnam		(* variable or field name *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    13
	mname		(* method name *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    14
arities cname, vnam, mname :: term
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    15
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    16
datatype vname		(* names for This pointer and local/field variables *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    17
	= This
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    18
	| VName   vnam
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    19
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    20
datatype prim_ty       	(* primitive type, cf. 4.2 *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    21
	= Void    	(* 'result type' of void methods *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    22
	| Boolean
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    23
	| Integer
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    24
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    25
datatype ref_ty		(* reference type, cf. 4.3 *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    26
	= NullT		(* null type, cf. 4.1 *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    27
	| ClassT cname	(* class type *)
8032
1eaae1a2f8ff Minor mods.
nipkow
parents: 8011
diff changeset
    28
datatype ty    		(* any type, cf. 4.1 *)
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    29
	= PrimT prim_ty	(* primitive type *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    30
	| RefT  ref_ty	(* reference type *)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    31
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    32
syntax
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    33
         NT     :: "          ty"
10042
7164dc0d24d8 unsymbolized
kleing
parents: 8032
diff changeset
    34
	 Class	:: "cname  => ty"
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    35
translations
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    36
	"NT"      == "RefT   NullT"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    37
	"Class C" == "RefT (ClassT C)"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    38
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    39
end