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 273, Wed May 12 08:38:51 1999 UTC revision 274, Fri May 14 05:23:02 1999 UTC
# Line 19  Line 19 
19      | NUMBER of int      | NUMBER of int
20      | ALIAS | GROUP | LIBRARY | IS      | ALIAS | GROUP | LIBRARY | IS
21      | LPAREN | RPAREN | COLON      | LPAREN | RPAREN | COLON
22      | IF | THEN | ELIF | ELSE | ENDIF      | IF | ELIF | ELSE | ENDIF
23      | ERROR of string      | ERROR of string
24      | STRUCTURE | SIGNATURE | FUNCTOR | FUNSIG      | STRUCTURE | SIGNATURE | FUNCTOR | FUNSIG
25      | DEFINED      | DEFINED
# 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
        | opt_perms of S.perms  
33         | perms of S.perms         | perms of S.perms
34         | lib_exports of S.exports         | lib_exports of S.exports
35         | exports of S.exports         | exports of S.exports
# Line 63  Line 62 
62    
63  %name CM  %name CM
64    
65  %keyword ALIAS GROUP LIBRARY IS IF THEN ELIF ELSE ENDIF DEFINED  %keyword ALIAS GROUP LIBRARY IS IF ELIF ELSE ENDIF DEFINED
66    STRUCTURE SIGNATURE FUNCTOR FUNSIG    STRUCTURE SIGNATURE FUNCTOR FUNSIG
67    
68  %prefer LPAREN  %prefer LPAREN
# Line 85  Line 84 
84                                                   (pathnameleft, pathnameright)                                                   (pathnameleft, pathnameright)
85                                                   pathname)                                                   pathname)
86    
87  group : GROUP  group : perms GROUP exports IS members          (S.group
88          opt_perms exports IS members            (S.group                                                   (perms, exports, members))
89                                                   (opt_perms, exports, members))        | perms LIBRARY lib_exports IS members    (S.library
90        | LIBRARY                                                   (perms, lib_exports,
         opt_perms lib_exports IS members        (S.library  
                                                  (opt_perms, lib_exports,  
91                                                    members))                                                    members))
92    
 opt_perms : (* empty *)                         (S.initialPerms)  
           | LPAREN perms RPAREN                 (perms)  
   
93  perms : (* empty *)                             (S.initialPerms)  perms : (* empty *)                             (S.initialPerms)
94        | perms sym                               (S.require (perms, sym,        | perms sym                               (S.require (perms, sym,
95                                                              error (symleft,                                                              error (symleft,
96                                                                     symright)))                                                                     symright)))
97        | perms COLON sym                         (S.grant (perms, sym,        | perms LPAREN sym RPAREN                 (S.grant (perms, sym,
98                                                            error (symleft,                                                            error (symleft,
99                                                                   symright)))                                                                   symright)))
100    
# Line 114  Line 108 
108                                                    (exp, guarded_exports))                                                    (exp, guarded_exports))
109         | ERROR                                  (S.error_export ERROR)         | ERROR                                  (S.error_export ERROR)
110    
111  guarded_exports : THEN exports else_exports     ((exports, else_exports))  guarded_exports : exports else_exports          ((exports, else_exports))
112    
113  else_exports : ENDIF                            (S.emptyExports)  else_exports : ENDIF                            (S.emptyExports)
114               | ELSE exports ENDIF               (exports)               | ELSE exports ENDIF               (exports)
# Line 136  Line 130 
130                                                   (exp, guarded_members))                                                   (exp, guarded_members))
131         | ERROR                                  (S.error_member ERROR)         | ERROR                                  (S.error_member ERROR)
132    
133  guarded_members : THEN members else_members     ((members, else_members))  guarded_members : members else_members          ((members, else_members))
134    
135  else_members : ENDIF                            (S.emptyMembers)  else_members : ENDIF                            (S.emptyMembers)
136               | ELSE members ENDIF               (members)               | ELSE members ENDIF               (members)

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

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