File: pgraph.sml

package info (click to toggle)
smlnj 110.79-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 82,564 kB
  • sloc: ansic: 32,532; asm: 6,314; sh: 2,296; makefile: 1,821; perl: 1,170; pascal: 295; yacc: 190; cs: 78; python: 77; lisp: 19
file content (29 lines) | stat: -rw-r--r-- 724 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(* pgraph.sml
 *
 * (C) 2001 Lucent Technologies, Bell Labs
 *
 * A list-of-edges representation of the dependency graph.
 *
 * author: Matthias Blume (blume@research.bell-labs.com)
 *)
structure PortableGraph = struct

    type varname = string

    datatype namespace = SGN | STR | FCT

    datatype rhs =
	SYM of namespace * string
      | SYMS of varname list
      | IMPORT of { lib: varname, syms: varname }
      | COMPILE of { src: string * bool, env: varname, syms: varname }
      | FILTER of { env: varname, syms: varname }
      | MERGE of varname list

    datatype def = DEF of { lhs: varname, rhs: rhs }

    datatype graph =
	GRAPH of { imports: varname list,
		   defs: def list,
		   export: varname }
end