1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
(*
* Abstract interface for GC types.
*)
signature GC_TYPE =
sig
type gctype
type ty = int (* width of addressing mode *)
val CONST : IntInf.int -> gctype (* integer constant *)
val INT : gctype (* machine integer *)
val REAL32 : gctype (* machine float *)
val REAL64 : gctype (* machine float *)
val PTR : gctype (* gc pointers *)
val ADD : ty * gctype * gctype -> gctype (* address arithmetic *)
val SUB : ty * gctype * gctype -> gctype (* address arithmetic *)
val BOT : gctype
val TOP : gctype
val == : gctype * gctype -> bool
val join : gctype * gctype -> gctype
val meet : gctype * gctype -> gctype
val toString : gctype -> string
(*
* Annotations for gc type
*)
exception GCTYPE of gctype
val GC_TYPE : gctype Annotations.property
end
|