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 35 36 37 38 39 40 41
|
(* labelExp.sml -- expressions involving labels
*
* COPYRIGHT (c) 1995 AT&T Bell Laboratories.
*
*)
signature LABELEXP =
sig
structure T : MLTREE
val valueOf : T.labexp -> int
val toString : T.labexp -> string
val hash : T.labexp -> word
val == : T.labexp * T.labexp -> bool
(*
* Hashing
*)
val hashStm : T.stm -> word
val hashRexp : T.rexp -> word
val hashFexp : T.fexp -> word
val hashCCexp : T.ccexp -> word
(*
* Equality
*)
val eqStm : T.stm * T.stm -> bool
val eqRexp : T.rexp * T.rexp -> bool
val eqFexp : T.fexp * T.fexp -> bool
val eqCCexp : T.ccexp * T.ccexp -> bool
val eqMlriscs : T.mlrisc list * T.mlrisc list -> bool
(*
* Value
*)
exception NonConst
val eval : {const:T.Constant.const -> IntInf.int,
label:Label.label -> int} ->
{rexp : T.rexp -> IntInf.int,
ccexp : T.ccexp -> bool
}
end
|