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 296, Thu May 27 05:31:04 1999 UTC revision 297, Thu May 27 08:29:19 1999 UTC
# Line 9  Line 9 
9    
10      type context = AbsPath.context      type context = AbsPath.context
11      type pathname = AbsPath.t      type pathname = AbsPath.t
12        type region = GenericVC.SourceMap.region
13      type ml_symbol      type ml_symbol
14      type cm_symbol      type cm_symbol
15    
# Line 34  Line 35 
35      (* getting the full analysis for a group/library *)      (* getting the full analysis for a group/library *)
36      val emptyGroup : pathname -> group      val emptyGroup : pathname -> group
37      val group :      val group :
38          pathname * privilegespec * exports option * members * complainer          pathname * privilegespec * exports option * members * complainer *
39            GeneralParams.params
40          -> group          -> group
41      val library :      val library :
42          pathname * privilegespec * exports * members * complainer          pathname * privilegespec * exports * members * complainer *
43            GeneralParams.params
44          -> group          -> group
45    
46      (* assembling privilege lists *)      (* assembling privilege lists *)
# Line 47  Line 50 
50    
51      (* constructing member collections *)      (* constructing member collections *)
52      val emptyMembers : members      val emptyMembers : members
53      val member : GeneralParams.params * (pathname -> group)      val member :
54          -> { sourcepath: pathname, group: pathname, class: cm_symbol option,          GeneralParams.params * (pathname -> group)
55               error: GenericVC.ErrorMsg.complainer }          -> { sourcepath: pathname, group: pathname * region,
56                 class: cm_symbol option }
57          -> members          -> members
58      val members : members * members -> members      val members : members * members -> members
59      val guarded_members :      val guarded_members :
# Line 98  Line 102 
102    
103      type pathname = AbsPath.t      type pathname = AbsPath.t
104      type context = AbsPath.context      type context = AbsPath.context
105        type region = GenericVC.SourceMap.region
106      type ml_symbol = Symbol.symbol      type ml_symbol = Symbol.symbol
107      type cm_symbol = string      type cm_symbol = string
108    
# Line 138  Line 143 
143                     subgroups = [] }                     subgroups = [] }
144    
145    
146      fun group (g, p, e, m, error) = let      fun group (g, p, e, m, error, params) = let
147          val mc = applyTo MemberCollection.empty m          val mc = applyTo MemberCollection.empty m
148          val filter = Option.map (applyTo mc) e          val filter = Option.map (applyTo mc) e
149          val exports = MemberCollection.build (mc, filter, error)          val exports = MemberCollection.build (mc, filter, error, params)
150          val subgroups = MemberCollection.subgroups mc          val subgroups = MemberCollection.subgroups mc
151      in      in
152          GG.GROUP { exports = exports, islib = false,          GG.GROUP { exports = exports, islib = false,
# Line 149  Line 154 
154                     subgroups = subgroups }                     subgroups = subgroups }
155      end      end
156    
157      fun library (g, p, e, m, error) = let      fun library (g, p, e, m, error, params) = let
158          val mc = applyTo MemberCollection.empty m          val mc = applyTo MemberCollection.empty m
159          val filter = applyTo mc e          val filter = applyTo mc e
160          val exports = MemberCollection.build (mc, SOME filter, error)          val exports = MemberCollection.build (mc, SOME filter, error, params)
161          val subgroups = MemberCollection.subgroups mc          val subgroups = MemberCollection.subgroups mc
162      in      in
163          GG.GROUP { exports = exports, islib = true,          GG.GROUP { exports = exports, islib = true,
# Line 180  Line 185 
185      fun emptyMembers env = env      fun emptyMembers env = env
186      fun member (params, rparse) arg env = let      fun member (params, rparse) arg env = let
187          val coll = MemberCollection.expandOne (params, rparse) arg          val coll = MemberCollection.expandOne (params, rparse) arg
188          val error = #error arg          val group = #group arg
189            val error = GroupReg.error (#groupreg params) group
190          fun e0 s = error EM.COMPLAIN s EM.nullErrorBody          fun e0 s = error EM.COMPLAIN s EM.nullErrorBody
191      in      in
192          MemberCollection.sequential (env, coll, e0)          MemberCollection.sequential (env, coll, e0)

Legend:
Removed from v.296  
changed lines
  Added in v.297

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