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 274, Fri May 14 05:23:02 1999 UTC revision 275, Sat May 15 09:54:52 1999 UTC
# Line 30  Line 30 
30  %nonterm description of S.group  %nonterm description of S.group
31         | alias of S.group         | alias of S.group
32         | group of S.group         | group of S.group
33         | perms of S.perms         | permspec of S.permspec
34         | lib_exports of S.exports         | lib_exports of S.exports
35         | exports of S.exports         | exports of S.exports
36         | export of S.exports         | export of S.exports
# Line 48  Line 48 
48         | cmpath of S.pathname         | cmpath of S.pathname
49         | nativepath of S.pathname         | nativepath of S.pathname
50         | sym of S.cm_symbol         | sym of S.cm_symbol
51           | word of S.cm_symbol
52    
53  %pos int  %pos int
54  %verbose  %verbose
# Line 55  Line 56 
56      S.context *      S.context *
57      (pos * pos -> string -> unit) *      (pos * pos -> string -> unit) *
58      (pos * pos -> S.pathname -> S.group) *      (pos * pos -> S.pathname -> S.group) *
59      (S.pathname * pos * pos * S.cm_symbol option -> S.members)      (S.pathname * pos * pos * S.cm_symbol option * (string -> unit)
60           -> S.members)
61  %start description  %start description
62  %eop EOF  %eop EOF
63  %noshift EOF  %noshift EOF
# Line 84  Line 86 
86                                                   (pathnameleft, pathnameright)                                                   (pathnameleft, pathnameright)
87                                                   pathname)                                                   pathname)
88    
89  group : perms GROUP exports IS members          (S.group  group : permspec GROUP exports IS members       (S.group
90                                                   (perms, exports, members))                                                   (permspec, exports, members))
91        | perms LIBRARY lib_exports IS members    (S.library        | permspec LIBRARY lib_exports IS members (S.library
92                                                   (perms, lib_exports,                                                   (permspec, lib_exports,
93                                                    members))                                                    members))
94    
95  perms : (* empty *)                             (S.initialPerms)  permspec : (* empty *)                          (S.initialPermSpec)
96        | perms sym                               (S.require (perms, sym,        | permspec word                           (S.require (permspec, word,
97                                                              error (symleft,                                                              error (wordleft,
98                                                                     symright)))                                                                     wordright)))
99        | perms LPAREN sym RPAREN                 (S.grant (perms, sym,        | permspec LPAREN word RPAREN             (S.grant (permspec, word,
100                                                            error (symleft,                                                            error (wordleft,
101                                                                   symright)))                                                                   wordright)))
102    
103  lib_exports : export exports                    (S.exports (export, exports))  lib_exports : export exports                    (S.exports (export, exports))
104    
# Line 105  Line 107 
107    
108  export : ml_symbol                              (S.export ml_symbol)  export : ml_symbol                              (S.export ml_symbol)
109         | IF exp guarded_exports                 (S.guarded_exports         | IF exp guarded_exports                 (S.guarded_exports
110                                                    (exp, guarded_exports))                                                    (exp, guarded_exports,
111         | ERROR                                  (S.error_export ERROR)                                                     error (expleft, expright)))
112           | ERROR                                  (S.error_export
113                                                     (fn () =>
114                                                      error (ERRORleft,
115                                                             ERRORright)
116                                                        ERROR))
117    
118  guarded_exports : exports else_exports          ((exports, else_exports))  guarded_exports : exports else_exports          ((exports, else_exports))
119    
120  else_exports : ENDIF                            (S.emptyExports)  else_exports : ENDIF                            (S.emptyExports)
121               | ELSE exports ENDIF               (exports)               | ELSE exports ENDIF               (exports)
122               | ELIF exp guarded_exports         (S.guarded_exports               | ELIF exp guarded_exports         (S.guarded_exports
123                                                   (exp, guarded_exports))                                                   (exp, guarded_exports,
124                                                      error (expleft, expright)))
125    
126  members : (* empty *)                           (S.emptyMembers)  members : (* empty *)                           (S.emptyMembers)
127          | member members                        (S.members (member, members))          | member members                        (S.members (member, members))
# Line 121  Line 129 
129  member : pathname                               (doMember (pathname,  member : pathname                               (doMember (pathname,
130                                                             pathnameleft,                                                             pathnameleft,
131                                                             pathnameright,                                                             pathnameright,
132                                                             NONE))                                                             NONE,
133         | pathname COLON sym                     (doMember (pathname,                                                             error
134                                                               (pathnameleft,
135                                                                pathnameright)))
136           | pathname COLON word                    (doMember (pathname,
137                                                             pathnameleft,                                                             pathnameleft,
138                                                             pathnameright,                                                             pathnameright,
139                                                             SOME sym))                                                             SOME word,
140                                                               error
141                                                               (pathnameleft,
142                                                                wordright)))
143         | IF exp guarded_members                 (S.guarded_members         | IF exp guarded_members                 (S.guarded_members
144                                                   (exp, guarded_members))                                                   (exp, guarded_members,
145         | ERROR                                  (S.error_member ERROR)                                                    error (expleft, expright)))
146           | ERROR                                  (S.error_member
147                                                     (fn () =>
148                                                      error (ERRORleft,
149                                                             ERRORright)
150                                                        ERROR))
151    
152  guarded_members : members else_members          ((members, else_members))  guarded_members : members else_members          ((members, else_members))
153    
154  else_members : ENDIF                            (S.emptyMembers)  else_members : ENDIF                            (S.emptyMembers)
155               | ELSE members ENDIF               (members)               | ELSE members ENDIF               (members)
156               | ELIF exp guarded_members         (S.guarded_members               | ELIF exp guarded_members         (S.guarded_members
157                                                   (exp, guarded_members))                                                   (exp, guarded_members,
158                                                      error (expleft, expright)))
159    
160    word : FILE_STANDARD                            (S.cm_symbol FILE_STANDARD)
161    
162  sym : CM_ID                                     (S.cm_symbol CM_ID)  sym : CM_ID                                     (S.cm_symbol CM_ID)
163    

Legend:
Removed from v.274  
changed lines
  Added in v.275

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