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

SCM Repository

[smlnj] Diff of /sml/trunk/src/cm/semant/semant.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/semant/semant.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 269, Mon May 10 13:34:43 1999 UTC revision 270, Tue May 11 07:45:42 1999 UTC
# Line 10  Line 10 
10      exception ExplicitError of string      exception ExplicitError of string
11      exception ExpressionError of exn      exception ExpressionError of exn
12    
13        type context = AbsPath.context
14      type pathname = AbsPath.t      type pathname = AbsPath.t
15      type ml_symbol      type ml_symbol
16      type cm_symbol      type cm_symbol
# Line 25  Line 26 
26      type complainer = string -> unit      type complainer = string -> unit
27    
28      (* getting elements of primitive types (pathnames and symbols) *)      (* getting elements of primitive types (pathnames and symbols) *)
29      val file_native : string * pathname -> pathname      val file_native : string * context -> pathname
30      val file_standard : string * pathname -> pathname      val file_standard : string * context -> pathname
31      val cm_symbol : string -> cm_symbol      val cm_symbol : string -> cm_symbol
32      val ml_structure : string -> ml_symbol      val ml_structure : string -> ml_symbol
33      val ml_signature : string -> ml_symbol      val ml_signature : string -> ml_symbol
34      val ml_functor : string -> ml_symbol      val ml_functor : string -> ml_symbol
35      val ml_funsig : string -> ml_symbol      val ml_funsig : string -> ml_symbol
36    
37      (* getting the full analysis for a group/library (or an alias thereof) *)      (* getting the full analysis for a group/library *)
     val alias : pathname -> group  
38      val group : perms * exports * members -> group      val group : perms * exports * members -> group
39      val library : perms * exports * members -> group      val library : perms * exports * members -> group
40    
# Line 45  Line 45 
45    
46      (* constructing member collections *)      (* constructing member collections *)
47      val emptyMembers : members      val emptyMembers : members
48      val member : pathname * cm_symbol option -> members      val member : (pathname -> group)
49            -> { sourcepath: pathname, group: pathname, class: cm_symbol option }
50            -> members
51      val members : members * members -> members      val members : members * members -> members
52      val guarded_members : exp * (members * members) -> members      val guarded_members : exp * (members * members) -> members
53      val error_member : string -> members      val error_member : string -> members
# Line 92  Line 94 
94      structure SymPath = GenericVC.SymPath      structure SymPath = GenericVC.SymPath
95    
96      type pathname = AbsPath.t      type pathname = AbsPath.t
97        type context = AbsPath.context
98      type ml_symbol = Symbol.symbol      type ml_symbol = Symbol.symbol
99      type cm_symbol = string      type cm_symbol = string
100    
101      type group = unit      type group = Dummy.t
102    
103      type environment = MemberCollection.collection      type environment = MemberCollection.collection
104    
# Line 121  Line 124 
124      val ml_functor = Symbol.fctSymbol      val ml_functor = Symbol.fctSymbol
125      val ml_funsig = Symbol.fsigSymbol      val ml_funsig = Symbol.fsigSymbol
126    
127      fun alias (f: pathname) = ()      fun group (p: perms, e: exports, m: members) = Dummy.v
128      fun group (p: perms, e: exports, m: members) = ()      fun library (p: perms, e: exports, m: members) = Dummy.v
     fun library (p: perms, e: exports, m: members) = ()  
129    
130      local      local
131          val isMember = StringSet.member          val isMember = StringSet.member
# Line 142  Line 144 
144               { required = required, granted = StringSet.add (granted, s) })               { required = required, granted = StringSet.add (granted, s) })
145      end      end
146    
147        (* get the export map from a group *)
148        fun getExports (g: group) =
149            (Dummy.f ()) : DependencyGraph.farnode SymbolMap.map
150    
151      fun emptyMembers env = env      fun emptyMembers env = env
152      fun member (f, c) env =      fun member rparse arg env = let
153          MemberCollection.sequential (env, MemberCollection.expandOne (f, c))          val coll = MemberCollection.expandOne (getExports o rparse) arg
154        in
155            MemberCollection.sequential (env, coll)
156        end
157      fun members (m1, m2) env = m2 (m1 env)      fun members (m1, m2) env = m2 (m1 env)
158      fun guarded_members (c, (m1, m2)) env =      fun guarded_members (c, (m1, m2)) env =
159          if saveEval (c, env) then m1 env else m2 env          if saveEval (c, env) then m1 env else m2 env

Legend:
Removed from v.269  
changed lines
  Added in v.270

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