Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/cm/depend/graph.sml
ViewVC logotype

Annotation of /sml/trunk/src/cm/depend/graph.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 279 - (view) (download)

1 : blume 270 (*
2 :     * Internal data structure representing a CM dependency graph.
3 :     *
4 :     * (C) 1999 Lucent Technologies, Bell Laboratories
5 :     *
6 :     * Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
7 :     *)
8 : blume 269 structure DependencyGraph = struct
9 :    
10 : blume 278 type symbol = Symbol.symbol
11 : blume 270 type groupinfo = Dummy.t
12 : blume 272 type primitive = Primitive.primitive
13 : blume 269
14 :     type filter = SymbolSet.set option
15 :    
16 :     datatype node =
17 : blume 279 NODE of { smlinfo: SmlInfo.info,
18 : blume 269 localimports: node list,
19 :     globalimports: farnode list }
20 :    
21 : blume 279 and farnode =
22 :     FARNODE of filter * node
23 :     | PNODE of primitive
24 : blume 269
25 :     (* the filter is duplicated in each member of the map to
26 :     * make it easier to build the global graph *)
27 :     datatype gnode =
28 :     GNODE of { groupinfo: groupinfo,
29 :     imports: gnode list,
30 :     filter: filter,
31 :     exports: farnode SymbolMap.map,
32 :     dangling: node list }
33 :    
34 : blume 278 (* environments used for dependency analysis *)
35 :     datatype env =
36 :     EMPTY
37 :     | FCTENV of { looker: symbol -> value option,
38 :     domain: unit -> SymbolSet.set }
39 :     | BINDING of symbol * value
40 :     | LAYER of env * env
41 : blume 270
42 : blume 278 withtype value = env
43 :    
44 : blume 279 fun describeNode (NODE { smlinfo, ... }) = SmlInfo.describe smlinfo
45 :    
46 :     fun describeFarNode (farn: farnode) = (ignore Dummy.v; "blah")
47 : blume 269 end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0