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/parse/cm.grm
ViewVC logotype

Diff of /sml/trunk/src/cm/parse/cm.grm

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

revision 771, Sat Dec 30 13:06:09 2000 UTC revision 986, Wed Nov 21 21:03:17 2001 UTC
# Line 29  Line 29 
29      | INEQSYM of CMSemant.ineqsym      | INEQSYM of CMSemant.ineqsym
30      | TILDE      | TILDE
31      | ANDALSO | ORELSE | NOT      | ANDALSO | ORELSE | NOT
32        | STAR | DASH | SOURCE
33    
34  %nonterm description of S.group  %nonterm description of S.group
35         | group of S.group         | group of S.group
36         | gprivspec of S.privilegespec         | gprivspec of S.privilegespec
37         | lprivspec of S.privilegespec         | lprivspec of S.privilegespec
38         | version of S.cm_version         | version of S.cm_version
        | opt_version of S.cm_version option  
39         | wrapspec of S.privilegespec -> S.privilegespec         | wrapspec of S.privilegespec -> S.privilegespec
40         | mand_exports of S.exports         | mand_exports of S.exports
41         | opt_exports of S.exports option         | opt_exports of S.exports
42         | exports of S.exports         | exports of S.exports
43         | export of S.exports         | export of S.exports
44         | guarded_exports of S.exports * S.exports         | guarded_exports of S.exports * S.exports
# Line 51  Line 51 
51         | boolexp of S.exp         | boolexp of S.exp
52         | exp of S.exp         | exp of S.exp
53         | ml_symbol of S.ml_symbol         | ml_symbol of S.ml_symbol
54           | ml_symbolset of S.exports
55         | pathname of { name: string, mkpath: unit -> SrcPath.prefile }         | pathname of { name: string, mkpath: unit -> SrcPath.prefile }
56         | sym of S.cm_symbol         | sym of S.cm_symbol
57         | word of S.cm_symbol         | word of S.cm_symbol
        | owner of SrcPath.file option  
58         | class of S.cm_class         | class of S.cm_class
59         | optclass of S.cm_class option         | optclass of S.cm_class option
60         | toolopts of S.toolopt list         | toolopts of S.toolopt list
61         | ptoolopts of S.toolopt list         | ptoolopts of S.toolopt list
62         | opttoolopts of S.toolopt list option         | opttoolopts of S.toolopt list option
63           | srcfile of SrcPath.file
64           | srcfiles of SrcPath.file option
65           | filecat of SrcPath.file option * S.complainer -> S.exports
66    
67  %pos int  %pos int
68  %verbose  %verbose
69  %arg (grouppath, context, obsolete, error, doMember, curlib, gp, ig) :  %arg ({ grouppath, context, obsolete, error, doMember, curlib, gp, ig }) :
70      SrcPath.file *      { grouppath: SrcPath.file,
71      S.context *        context: S.context,
72      (pos * pos -> unit) *        obsolete: pos * pos -> unit,
73      (pos * pos -> string -> unit) *        error: pos * pos -> string -> unit,
74      ({ name: string, mkpath: unit -> SrcPath.prefile } *        doMember : { name: string, mkpath: unit -> SrcPath.prefile } *
75       pos * pos * S.cm_class option * S.toolopt list option -> S.members) *                   pos * pos * S.cm_class option * S.toolopt list option
76      SrcPath.file option *                   -> S.members,
77      GeneralParams.info *        curlib: SrcPath.file option,
78      S.group        gp: GeneralParams.info,
79          ig: S.group }
80  %start description  %start description
81  %eop EOF  %eop EOF
82  %noshift EOF  %noshift EOF
# Line 92  Line 96 
96  %left MULSYM  %left MULSYM
97  %left NOT TILDE  %left NOT TILDE
98    
99    %left DASH
100    %left STAR
101    
102  %%  %%
103    
104  description : group                             (group)  description : group                             (group)
105    
106  group : gprivspec owner opt_exports IS members (S.group  group : gprivspec LPAREN srcfile RPAREN opt_exports IS members
107                                                    (S.group
108                                                   { path = grouppath,                                                   { path = grouppath,
109                                                     privileges = gprivspec,                                                     privileges = gprivspec,
110                                                     exports = opt_exports,                                                     exports = opt_exports,
111                                                     members = members,                                                     members = members,
112                                                     gp = gp,                                                     gp = gp,
113                                                     curlib = curlib,                                                     curlib = curlib,
114                                                     owner = owner,                                                     owner = SOME srcfile,
115                                                     initgroup = ig })                                                     initgroup = ig })
116        | lprivspec opt_version mand_exports IS members        | gprivspec opt_exports IS members        (S.group
117                                                     { path = grouppath,
118                                                       privileges = gprivspec,
119                                                       exports = opt_exports,
120                                                       members = members,
121                                                       gp = gp,
122                                                       curlib = curlib,
123                                                       owner = NONE,
124                                                       initgroup = ig })
125          | lprivspec LPAREN version RPAREN mand_exports IS members
126                                                 (S.library                                                 (S.library
127                                                   { path = grouppath,                                                   { path = grouppath,
128                                                     privileges = lprivspec,                                                     privileges = lprivspec,
129                                                     exports = mand_exports,                                                     exports = mand_exports,
130                                                     version = opt_version,                                                     version = SOME version,
131                                                     members = members,                                                     members = members,
132                                                     gp = gp,                                                     gp = gp,
133                                                     initgroup = ig })                                                     initgroup = ig })
134        | lprivspec IS members                   (S.proxy        | lprivspec mand_exports IS members
135                                                   (S.library
136                                                   { path = grouppath,                                                   { path = grouppath,
137                                                     privileges = lprivspec,                                                     privileges = lprivspec,
138                                                       exports = mand_exports,
139                                                       version = NONE,
140                                                     members = members,                                                     members = members,
141                                                     error =                                                     gp = gp,
142                                                       error (membersleft,                                                     initgroup = ig })
                                                             membersright) } )  
   
 opt_version : (* empty *)                      (NONE)  
             | LPAREN version RPAREN            (SOME version)  
143    
144  version : FILE_STANDARD                        (S.cm_version  version : FILE_STANDARD                        (S.cm_version
145                                                  (FILE_STANDARD,                                                  (FILE_STANDARD,
146                                                   error (FILE_STANDARDleft,                                                   error (FILE_STANDARDleft,
147                                                          FILE_STANDARDright)))                                                          FILE_STANDARDright)))
148    
 owner : (* empty *)                            (NONE)  
       | LPAREN pathname RPAREN                 (SOME (SrcPath.file  
                                                         (#mkpath pathname ())))  
   
149  wrapspec : (* empty *)                         (fn p => p)  wrapspec : (* empty *)                         (fn p => p)
150            | wrapspec word                      (fn p =>            | wrapspec word                      (fn p =>
151                                                   S.wrap (wrapspec p, word,                                                   S.wrap (wrapspec p, word,
# Line 152  Line 164 
164            | LPAREN wrapspec RPAREN lprivspec    (wrapspec lprivspec)            | LPAREN wrapspec RPAREN lprivspec    (wrapspec lprivspec)
165    
166  mand_exports : export                           (export)  mand_exports : export                           (export)
167               | mand_exports export              (S.exports (mand_exports,               | mand_exports export              (S.union (mand_exports,export))
                                                             export))  
168    
169  opt_exports : (* empty *)                       (NONE)  opt_exports : (* empty *)                       (S.default_group_exports)
170              | mand_exports                      (SOME mand_exports)              | mand_exports                      (mand_exports)
171    
172  exports : (* empty *)                           (S.emptyExports)  exports : (* empty *)                           (S.emptyExports)
173          | exports export                        (S.exports (exports, export))          | exports export                        (S.union (exports, export))
174    
175  export : ml_symbol                              (S.export  export : ml_symbolset                           (ml_symbolset)
                                                  (ml_symbol,  
                                                   error (ml_symbolleft,  
                                                          ml_symbolright)))  
176         | IF exp guarded_exports                 (S.guarded_exports         | IF exp guarded_exports                 (S.guarded_exports
177                                                    (exp, guarded_exports,                                                    (exp, guarded_exports,
178                                                     error (expleft, expright)))                                                     error (expleft, expright)))
# Line 173  Line 181 
181                                                    error (ERRORleft, ERRORright)                                                    error (ERRORleft, ERRORright)
182                                                          ERROR))                                                          ERROR))
183    
184    filecat : GROUP                                 (S.exportgroup)
185            | SOURCE                                (S.exportsource)
186    
187    
188    ml_symbolset : ml_symbol                        (S.export
189                                                         (ml_symbol,
190                                                          error (ml_symbolleft,
191                                                                 ml_symbolright)))
192                 | LPAREN exports RPAREN            (exports)
193                 | ml_symbolset STAR ml_symbolset   (S.intersection
194                                                         (ml_symbolset1,
195                                                          ml_symbolset2))
196                 | ml_symbolset DASH ml_symbolset   (S.difference
197                                                         (ml_symbolset1,
198                                                          ml_symbolset2))
199                 | filecat LPAREN srcfiles RPAREN   (filecat
200                                                         (srcfiles,
201                                                          error (srcfilesleft,
202                                                                 srcfilesright)))
203                 | LIBRARY LPAREN pathname opttoolopts RPAREN
204                                                    (S.exportlibrary
205                                                         (SrcPath.file
206                                                             (#mkpath pathname ()),
207                                                          error (pathnameleft,
208                                                                 pathnameright),
209                                                          { hasoptions =
210                                                               isSome opttoolopts,
211                                                            elab = fn () =>
212                                                               doMember
213                                                                   (pathname,
214                                                                    pathnameleft,
215                                                                    pathnameright,
216                                                                    NONE,
217                                                                    opttoolopts),
218                                                            curlib = curlib }))
219    
220  guarded_exports : exports else_exports          ((exports, else_exports))  guarded_exports : exports else_exports          ((exports, else_exports))
221    
222  else_exports : ENDIF                            (S.emptyExports)  else_exports : ENDIF                            (S.emptyExports)
# Line 274  Line 318 
318                                                          context, error                                                          context, error
319                                                          (FILE_NATIVEleft,                                                          (FILE_NATIVEleft,
320                                                           FILE_NATIVEright)) })                                                           FILE_NATIVEright)) })
321    
322    srcfile : pathname                              (SrcPath.file
323                                                         (#mkpath pathname ()))
324    srcfiles : srcfile                              (SOME srcfile)
325             | DASH                                 (NONE)

Legend:
Removed from v.771  
changed lines
  Added in v.986

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