Commit | Line | Data |
---|---|---|
cc540a7e SK |
1 | (* "We use the word _temporary_ to mean a value that is temporarily held in a |
2 | * register, and the word _label_ to mean some machine-language location whose | |
3 | * exact address is yet to be determined - just like a label in assembly | |
4 | * language." ch. 6.2, p. 139 *) | |
5 | ||
6 | (* "temp" is an abstract name of "local variable" *) | |
7 | module Temp : sig | |
8 | type t | |
9 | ||
10 | val gen : unit -> t | |
11 | (** "newtemp" - new temporary from an infinite set of temps. *) | |
12 | ||
13 | val to_string : t -> string | |
14 | end | |
15 | ||
16 | (* "label" is an abstract name for "static memory address" *) | |
17 | module Label : sig | |
18 | type t | |
19 | ||
20 | val gen : unit -> t | |
21 | (** "newlabel" - new label from an infinite set of labels. *) | |
22 | ||
23 | val of_string : string -> t | |
24 | (** "namedlabel" - new label whose assembly-language name is string. *) | |
25 | ||
26 | val to_string : t -> string | |
27 | end |