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/se2dae.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 309 - (view) (download)

1 : blume 309 (*
2 :     * Convert a given static env to a "dependency-analysis env".
3 :     *
4 :     * (C) 1999 Lucent Technologies, Bell Laboratories
5 :     *
6 :     * Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
7 :     *)
8 :     signature STATENV2DAENV = sig
9 :     val cvt :
10 :     GenericVC.Environment.staticEnv -> DAEnv.env * (unit -> SymbolSet.set)
11 :     end
12 :    
13 :     structure Statenv2DAEnv :> STATENV2DAENV = struct
14 :    
15 :     structure BE = GenericVC.BareEnvironment
16 :    
17 :     fun cvt se = let
18 :     fun l2s l = let
19 :     fun addModule (sy, set) =
20 :     case Symbol.nameSpace sy of
21 :     (Symbol.STRspace | Symbol.SIGspace |
22 :     Symbol.FCTspace | Symbol.FSIGspace) =>
23 :     SymbolSet.add (set, sy)
24 :     | _ => set
25 :     in
26 :     foldl addModule SymbolSet.empty l
27 :     end
28 :     fun cvt_fctenv look = DAEnv.FCTENV (cvt_result o look)
29 :     and cvt_result (BE.CM_ENV { look, ... }) = SOME (cvt_fctenv look)
30 :     | cvt_result BE.CM_NONE = NONE
31 :     val sb = GenericVC.CoerceEnv.es2bs se
32 :     val dae = cvt_fctenv (BE.cmEnvOfModule sb)
33 :     fun mkDomain () = l2s (BE.catalogEnv sb)
34 :     in
35 :     (dae, mkDomain)
36 :     end
37 :     end

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