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 304, Mon May 31 09:10:08 1999 UTC revision 305, Mon May 31 15:00:06 1999 UTC
# Line 15  Line 15 
15    
16      type group = GroupGraph.group      type group = GroupGraph.group
17    
18      type privilegespec = GroupGraph.privilegespec      type privilegespec
19      type aexp      type aexp
20      type exp      type exp
21      type members                        (* still conditional *)      type members                        (* still conditional *)
# Line 107  Line 107 
107      type cm_symbol = string      type cm_symbol = string
108    
109      type group = GG.group      type group = GG.group
110      type privilegespec = GG.privilegespec      type privilegespec = { required: GG.privileges, granted: GG.privileges }
111    
112      type environment = MemberCollection.collection      type environment = MemberCollection.collection
113    
# Line 137  Line 137 
137      fun emptyGroup path =      fun emptyGroup path =
138          GG.GROUP { exports = SymbolMap.empty,          GG.GROUP { exports = SymbolMap.empty,
139                     islib = false,                     islib = false,
140                     privileges = { required = StringSet.empty,                     required = StringSet.empty,
                                   granted = StringSet.empty },  
141                     grouppath = path,                     grouppath = path,
142                     subgroups = [],                     subgroups = [],
143                     stableinfo = NONE }                     stableinfo = GG.NONSTABLE StringSet.empty }
144    
145    
146      fun group (g, p, e, m, error, gp) = let      fun group (g, p, e, m, error, gp) = let
# Line 150  Line 149 
149          val (exports, rp) = MemberCollection.build (mc, filter, error, gp)          val (exports, rp) = MemberCollection.build (mc, filter, error, gp)
150          val subgroups = MemberCollection.subgroups mc          val subgroups = MemberCollection.subgroups mc
151          val { required = rp', granted = gr } = p          val { required = rp', granted = gr } = p
         val rp'' = StringSet.difference (StringSet.union (rp, rp'), gr)  
         val p' = { required = rp'', granted = gr }  
152      in      in
153          GG.GROUP { exports = exports, islib = false,          GG.GROUP { exports = exports, islib = false,
154                     privileges = p', grouppath = g,                     required = StringSet.union (StringSet.union (rp, rp'), gr),
155                       grouppath = g,
156                     subgroups = subgroups,                     subgroups = subgroups,
157                     stableinfo = NONE }                     stableinfo = GG.NONSTABLE gr }
158      end      end
159    
160      fun library (g, p, e, m, error, gp) = let      fun library (g, p, e, m, error, gp) = let
# Line 164  Line 162 
162          val filter = applyTo mc e          val filter = applyTo mc e
163          val (exports, rp) = MemberCollection.build (mc, SOME filter, error, gp)          val (exports, rp) = MemberCollection.build (mc, SOME filter, error, gp)
164          val subgroups = MemberCollection.subgroups mc          val subgroups = MemberCollection.subgroups mc
165          val { required = rp', granted } = p          val { required = rp', granted = gr } = p
         val p' = { required = StringSet.union (rp, rp'), granted = granted }  
166      in      in
167          GG.GROUP { exports = exports, islib = true,          GG.GROUP { exports = exports, islib = true,
168                     privileges = p', grouppath = g,                     required = StringSet.union (StringSet.union (rp, rp'), gr),
169                       grouppath = g,
170                     subgroups = subgroups,                     subgroups = subgroups,
171                     stableinfo = NONE }                     stableinfo = GG.NONSTABLE gr }
172      end      end
173    
174      local      local

Legend:
Removed from v.304  
changed lines
  Added in v.305

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