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 631, Fri Apr 28 08:30:52 2000 UTC revision 632, Sat Apr 29 15:50:42 2000 UTC
# Line 23  Line 23 
23      | ERROR of string      | ERROR of string
24      | STRUCTURE | SIGNATURE | FUNCTOR | FUNSIG      | STRUCTURE | SIGNATURE | FUNCTOR | FUNSIG
25      | DEFINED      | DEFINED
26      | PLUS | MINUS | TIMES | DIV | MOD | TILDE      | ADDSYM of CMSemant.addsym
27        | MULSYM of CMSemant.mulsym
28        | EQSYM of CMSemant.eqsym
29        | INEQSYM of CMSemant.ineqsym
30        | TILDE
31      | ANDALSO | ORELSE | NOT      | ANDALSO | ORELSE | NOT
     | LT | LE | GT | GE | EQ | NE  
32    
33  %nonterm description of S.group  %nonterm description of S.group
34         | group of S.group         | group of S.group
35         | gprivspec of S.privilegespec         | gprivspec of S.privilegespec
36         | lprivspec of S.privilegespec         | lprivspec of S.privilegespec
37           | version of S.cm_version
38           | 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 option
# Line 81  Line 86 
86    
87  %left ORELSE  %left ORELSE
88  %left ANDALSO  %left ANDALSO
89  %nonassoc LT LE GT GE  %nonassoc INEQSYM
90  %nonassoc EQ NE  %nonassoc EQSYM
91  %left PLUS MINUS  %left ADDSYM
92  %left TIMES DIV MOD  %left MULSYM
93  %left NOT TILDE  %left NOT TILDE
94    
95  %%  %%
# Line 92  Line 97 
97  description : group                             (group)  description : group                             (group)
98    
99  group : gprivspec owner opt_exports IS members (S.group  group : gprivspec owner opt_exports IS members (S.group
100                                                   (grouppath,                                                   { path = grouppath,
101                                                    gprivspec, opt_exports,                                                     privileges = gprivspec,
102                                                    members, gp, curlib, owner,                                                     exports = opt_exports,
103                                                    error (ownerleft,                                                     members = members,
104                                                       gp = gp,
105                                                       curlib = curlib,
106                                                       owner = owner,
107                                                       error = error (ownerleft,
108                                                           ownerright),                                                           ownerright),
109                                                    ig))                                                     initgroup = ig })
110        | lprivspec mand_exports IS members      (S.library        | lprivspec opt_version mand_exports IS members
111                                                   (grouppath,                                                 (S.library
112                                                    lprivspec, mand_exports,                                                   { path = grouppath,
113                                                    members, gp, ig))                                                     privileges = lprivspec,
114                                                       exports = mand_exports,
115                                                       version = opt_version,
116                                                       members = members,
117                                                       gp = gp,
118                                                       initgroup = ig })
119    
120    opt_version : (* empty *)                      (NONE)
121                | LPAREN version RPAREN            (SOME version)
122    
123    version : FILE_STANDARD                        (S.cm_version
124                                                    (FILE_STANDARD,
125                                                     error (FILE_STANDARDleft,
126                                                            FILE_STANDARDright)))
127    
128  owner : (* empty *)                            (NONE)  owner : (* empty *)                            (NONE)
129        | LPAREN pathname RPAREN                 (SOME (#mkpath pathname        | LPAREN pathname RPAREN                 (SOME (#mkpath pathname
# Line 209  Line 231 
231  aexp : NUMBER                                   (S.number NUMBER)  aexp : NUMBER                                   (S.number NUMBER)
232       | sym                                      (S.variable gp sym)       | sym                                      (S.variable gp sym)
233       | LPAREN aexp RPAREN                       (aexp)       | LPAREN aexp RPAREN                       (aexp)
234       | aexp PLUS aexp                           (S.plus (aexp1, aexp2))       | aexp ADDSYM aexp                         (S.add (aexp1, ADDSYM, aexp2))
235       | aexp MINUS aexp                          (S.minus (aexp1, aexp2))       | aexp MULSYM aexp                         (S.mul (aexp1, MULSYM, aexp2))
      | aexp TIMES aexp                          (S.times (aexp1, aexp2))  
      | aexp DIV aexp                            (S.divide (aexp1, aexp2))  
      | aexp MOD aexp                            (S.modulus (aexp1, aexp2))  
236       | TILDE aexp                               (S.negate aexp)       | TILDE aexp                               (S.negate aexp)
237       | MINUS aexp %prec TILDE                   (obsolete (MINUSleft,       | ADDSYM aexp %prec TILDE                  (obsolete (ADDSYMleft,
238                                                             MINUSright);                                                             ADDSYMright);
239                                                   S.negate aexp)                                                   S.sign (ADDSYM, aexp))
240    
241  boolexp : DEFINED LPAREN ml_symbol RPAREN       (S.ml_defined ml_symbol)  boolexp : DEFINED LPAREN ml_symbol RPAREN       (S.ml_defined ml_symbol)
242          | DEFINED LPAREN sym RPAREN             (S.cm_defined gp sym)          | DEFINED LPAREN sym RPAREN             (S.cm_defined gp sym)
243          | LPAREN boolexp RPAREN                 (boolexp)          | LPAREN boolexp RPAREN                 (boolexp)
244          | boolexp ANDALSO boolexp               (S.conj (boolexp1, boolexp2))          | boolexp ANDALSO boolexp               (S.conj (boolexp1, boolexp2))
245          | boolexp ORELSE boolexp                (S.disj (boolexp1, boolexp2))          | boolexp ORELSE boolexp                (S.disj (boolexp1, boolexp2))
246          | boolexp EQ boolexp                    (S.beq (boolexp1, boolexp2))          | boolexp EQSYM boolexp                 (S.beq (boolexp1, EQSYM,
247          | boolexp NE boolexp                    (S.bne (boolexp1, boolexp2))                                                          boolexp2))
248          | NOT boolexp                           (S.not boolexp)          | NOT boolexp                           (S.not boolexp)
249          | aexp LT aexp                          (S.lt (aexp1, aexp2))          | aexp INEQSYM aexp                     (S.ineq (aexp1, INEQSYM,
250          | aexp LE aexp                          (S.le (aexp1, aexp2))                                                           aexp2))
251          | aexp GT aexp                          (S.gt (aexp1, aexp2))          | aexp EQSYM aexp                       (S.eq (aexp1, EQSYM, aexp2))
         | aexp GE aexp                          (S.ge (aexp1, aexp2))  
         | aexp EQ aexp                          (S.eq (aexp1, aexp2))  
         | aexp NE aexp                          (S.ne (aexp1, aexp2))  
252    
253  ml_symbol : STRUCTURE ML_ID                     (S.ml_structure ML_ID)  ml_symbol : STRUCTURE ML_ID                     (S.ml_structure ML_ID)
254            | SIGNATURE ML_ID                     (S.ml_signature ML_ID)            | SIGNATURE ML_ID                     (S.ml_signature ML_ID)
# Line 242  Line 258 
258  pathname : FILE_STANDARD                        ({ name = FILE_STANDARD,  pathname : FILE_STANDARD                        ({ name = FILE_STANDARD,
259                                                     mkpath = fn n =>                                                     mkpath = fn n =>
260                                                       S.file_standard gp                                                       S.file_standard gp
261                                                         (n, context) })                                                        (n, context, error
262                                                           (FILE_STANDARDleft,
263                                                            FILE_STANDARDright)) })
264           | FILE_NATIVE                          ({ name = FILE_NATIVE,           | FILE_NATIVE                          ({ name = FILE_NATIVE,
265                                                     mkpath = fn n =>                                                     mkpath = fn n =>
266                                                       S.file_native                                                       S.file_native

Legend:
Removed from v.631  
changed lines
  Added in v.632

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