Annotation of researchv10no/cmd/sml/src/coder/basecoder.sml, revision 1.1.1.1

1.1       root        1: (* Copyright 1989 by AT&T Bell Laboratories *)
                      2: (* basecoder.sml
                      3:  *
                      4:  * J.H. Reppy
                      5:  * Cornell University
                      6:  * Ithaca, NY 14850
                      7:  * [email protected]
                      8:  *
                      9:  * HISTORY:
                     10:  *   11/20/89  created
                     11:  *)
                     12: 
                     13: signature BASECODER =
                     14: sig
                     15:     datatype label = Label of {id : int, addr : int ref}
                     16: 
                     17:     val newLabel : unit -> label
                     18:     val addrOf : label -> int
                     19:     val nameOf : label -> string
                     20: 
                     21: end (* signature BASECODER *)
                     22: 
                     23: 
                     24: structure BaseCoder : BASECODER =
                     25: struct
                     26: 
                     27:     datatype label = Label of {id : int, addr : int ref}
                     28: 
                     29:     local
                     30:       val cnt = ref 0
                     31:     in
                     32:     fun nextId () = (!cnt before ((inc cnt) handle Overflow => cnt := 0))
                     33:     end
                     34: 
                     35:     fun newLabel () = Label{id= nextId(), addr= ref 0}
                     36: 
                     37:     fun addrOf (Label{addr, ...}) = !addr
                     38:     fun nameOf (Label{id, ...}) = "L" ^ (makestring id)
                     39: 
                     40: end (* structure BaseCoder *)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.