|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: (* env.sig *)
3:
4: signature ENV =
5: sig
6: (* structure Intmap: TABLE
7: structure Basics: BASICS
8: sharing Intmap = Basics.Intmap *)
9: type binding (* = Basics.binding *)
10: type info (* = {path: int list,
11: strenv: {s: Basics.Structure array, t: Basics.tycon array}} *)
12: type symtable (* = Basics.binding IntStrMap.intstrmap *)
13: type env
14: datatype 'a locality = LOCAL of 'a | GLOBAL of 'a
15: exception Unbound
16: exception Unboundrec
17: exception UnboundTable
18: val newTable : unit -> symtable
19: val appenv : (int * string * binding -> unit) -> env * env -> unit
20: val current : unit -> env
21: val openOld : info * symtable -> unit
22: val openNew : info * symtable -> unit
23: val openRec : unit -> unit
24: val openStr : unit -> unit
25: val closeStr : unit -> unit
26: val openScope : unit -> env
27: val resetEnv : env -> unit
28: val collectTable : ((int * string * binding) * info -> unit) -> unit
29: val splice : env * env -> unit
30: val add : int * string * binding -> unit
31: val lookEnv : env * (int * string) -> binding * info
32: val look : int * string -> binding * info
33: val lookStrLocal : int * string -> binding * info
34: val lookRec : int * string -> (binding * info) locality
35: val lookRecLocal : int * string -> binding * info
36: val commit : unit -> unit
37: val restore : unit -> unit
38: val previous : unit -> env
39: val consolidate : unit -> unit
40: val reset : unit -> unit
41:
42: val popModule: env -> Basics.symtable
43:
44: val closeCurrentNewEnv: unit -> env
45:
46: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.