3 * Author: Kaustuv Chaudhuri <kaustuv+@cs.cmu.edu>
4 * Modified: Alex Vaynberg <alv@andrew.cmu.edu>
5 * Modified: Frank Pfenning <fp@cs.cmu.edu>
12 val reset : unit -> unit (* resets temp numbering *)
13 val new : string -> temp (* returns a unique new temp *)
14 val name : temp -> string (* returns the name of a temp *)
15 val compare : temp * temp -> order (* comparison function *)
16 val eq : temp * temp -> bool
19 structure Temp :> TEMP =
21 type temp = int * string
26 (* warning: calling reset() may jeopardize uniqueness of temps! *)
27 fun reset () = ( counter := 1 )
28 fun new str = (!counter, str) before ( counter := !counter + 1 )
31 fun name (t,s) = "+t" ^ Int.toString t ^ "[" ^ s ^ "]"
32 fun compare ((t1,_),(t2,_)) = Int.compare (t1,t2)
34 fun eq ((t1,_), (t2,_)) = t1 = t2