26 |
fun bnode (DG.PNODE _) k m = k m |
fun bnode (DG.PNODE _) k m = k m |
27 |
| bnode (DG.BNODE n) k m = let |
| bnode (DG.BNODE n) k m = let |
28 |
val { bininfo = i, localimports = l, globalimports = g } = n |
val { bininfo = i, localimports = l, globalimports = g } = n |
29 |
|
fun k' m = bininfo i :: k (stab_reg (m, i)) |
30 |
in |
in |
31 |
if stab_isreg (m, i) then k m |
if stab_isreg (m, i) then k m |
32 |
else bininfo i |
else do_list bnode l (do_list farbnode g k') m |
|
:: do_list bnode l (do_list farbnode g k) (stab_reg (m, i)) |
|
33 |
end |
end |
34 |
|
|
35 |
and farbnode (_, n) k m = bnode n k m |
and farbnode (_, n) = bnode n |
36 |
|
|
37 |
fun snode (DG.SNODE n) k m = let |
fun snode (DG.SNODE n) k m = let |
38 |
val { smlinfo = i, localimports = l, globalimports = g } = n |
val { smlinfo = i, localimports = l, globalimports = g } = n |
39 |
|
fun k' m = smlinfo i :: k (sml_reg (m, i)) |
40 |
in |
in |
41 |
if sml_isreg (m, i) then k m |
if sml_isreg (m, i) then k m |
42 |
else smlinfo i |
else do_list snode l (do_list farsbnode g k') m |
|
:: do_list snode l (do_list farsbnode g k) (sml_reg (m, i)) |
|
43 |
end |
end |
44 |
|
|
45 |
and farsbnode (_, DG.SB_BNODE n) k m = bnode n k m |
and farsbnode (_, DG.SB_BNODE n) = bnode n |
46 |
| farsbnode (_, DG.SB_SNODE n) k m = snode n k m |
| farsbnode (_, DG.SB_SNODE n) = snode n |
47 |
|
|
48 |
fun impexp (n, _) k m = farsbnode n k m |
fun impexp (n, _) = farsbnode n |
49 |
|
|
50 |
fun group (GroupGraph.GROUP { exports, ... }) = |
fun group (GroupGraph.GROUP { exports, ... }) = |
51 |
do_list impexp (SymbolMap.listItems exports) |
do_list impexp (SymbolMap.listItems exports) |
52 |
(fn m => []) |
(fn _ => []) |
53 |
(StableSet.empty, SmlInfoSet.empty) |
(StableSet.empty, SmlInfoSet.empty) |
54 |
end |
end |