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/compiler/Parse/parse/ml.grm
ViewVC logotype

Diff of /sml/trunk/src/compiler/Parse/parse/ml.grm

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

revision 108, Thu May 28 22:07:09 1998 UTC revision 109, Fri May 29 02:12:55 1998 UTC
# Line 388  Line 388 
388              | pat BAR or_pat_list       (pat :: or_pat_list)              | pat BAR or_pat_list       (pat :: or_pat_list)
389    
390  vb      : vb AND vb             (vb1 @ vb2)  vb      : vb AND vb             (vb1 @ vb2)
391          | LAZY pat EQUALOP exp  ([MarkVb(LVb{exp=exp, pat=pat}, (patleft,expright))])          | LAZY pat EQUALOP exp  ([MarkVb(Vb{exp=exp, pat=pat, lazyp=true},
392          | pat EQUALOP exp       ([MarkVb(Vb{exp=exp, pat=pat}, (patleft,expright))])                                           (patleft,expright))])
393            | pat EQUALOP exp       ([MarkVb(Vb{exp=exp, pat=pat, lazyp=false},
394                                             (patleft,expright))])
395    
396  constraint :                    (NONE)  constraint :                    (NONE)
397             | COLON ty           (SOME ty)             | COLON ty           (SOME ty)
# Line 398  Line 400 
400                            (let val (v,f) = var'n'fix id                            (let val (v,f) = var'n'fix id
401                             in [MarkRvb(Rvb{var=v,fixity=SOME(f,(idleft,idright)),                             in [MarkRvb(Rvb{var=v,fixity=SOME(f,(idleft,idright)),
402                                             resultty=constraint,                                             resultty=constraint,
403                                 exp=exp},(idleft,expright))] end)                                             exp=exp,lazyp=false},
404                                           (idleft,expright))]
405                               end)
406          | OP id constraint EQUALOP exp          | OP id constraint EQUALOP exp
407                            ([MarkRvb(Rvb{var=varSymbol id,fixity=NONE,                            ([MarkRvb(Rvb{var=varSymbol id,fixity=NONE,
408                                         resultty=constraint,                                         resultty=constraint,
409                                 exp=exp},(OPleft,expright))])                                          exp=exp,lazyp=false},
410                                        (OPleft,expright))])
411          | rvb AND rvb           (rvb1 @ rvb2)          | rvb AND rvb           (rvb1 @ rvb2)
412          | LAZY id constraint EQUALOP exp          | LAZY id constraint EQUALOP exp
413                            (let val (v,f) = var'n'fix id                            (let val (v,f) = var'n'fix id
414                             in [MarkRvb(LRvb{var=v,fixity=SOME(f,(idleft,idright)),                             in [MarkRvb(Rvb{var=v,fixity=SOME(f,(idleft,idright)),
415                                             resultty=constraint,                                             resultty=constraint,
416                                 exp=exp},(idleft,expright))] end)                                             exp=exp,lazyp=true},
417                                           (idleft,expright))]
418                               end)
419          | LAZY OP id constraint EQUALOP exp          | LAZY OP id constraint EQUALOP exp
420                            ([MarkRvb(LRvb{var=varSymbol id,fixity=NONE,                            ([MarkRvb(Rvb{var=varSymbol id,fixity=NONE,
421                                         resultty=constraint,                                         resultty=constraint,
422                                 exp=exp},(OPleft,expright))])                                          exp=exp,lazyp=true},
423                                        (OPleft,expright))])
424    
425    
426  fb'     : clause                ([clause])  fb'     : clause                ([clause])
427          | clause BAR fb'        (clause :: fb')          | clause BAR fb'        (clause :: fb')
428    
429  fb      : fb'                   ([MarkFb(Fb fb', (fb'left,fb'right))])  fb      : fb'                   ([MarkFb(Fb(fb',false), (fb'left,fb'right))])
430          | LAZY fb'              ([MarkFb(LFb fb', (fb'left,fb'right))])          | LAZY fb'              ([MarkFb(Fb(fb',true), (fb'left,fb'right))])
431          | fb' AND fb            (MarkFb(Fb fb', (fb'left,fb'right)) :: fb)          | fb' AND fb            (MarkFb(Fb(fb',false), (fb'left,fb'right)) :: fb)
432          | LAZY fb' AND fb       (MarkFb(LFb fb', (fb'left,fb'right)) :: fb)          | LAZY fb' AND fb       (MarkFb(Fb(fb',true), (fb'left,fb'right)) :: fb)
433    
434  apats   : apat                  ([apat])  apats   : apat                  ([apat])
435          | apat apats            (apat :: apats)          | apat apats            (apat :: apats)
# Line 454  Line 462 
462  db      : db AND db                     (db1 @ db2)  db      : db AND db                     (db1 @ db2)
463          | tyvars ident EQUALOP dbrhs    ([Db{tyc=tycSymbol ident,          | tyvars ident EQUALOP dbrhs    ([Db{tyc=tycSymbol ident,
464                                               tyvars=tyvars,                                               tyvars=tyvars,
465                                               rhs=dbrhs}])                                               rhs=dbrhs,lazyp=false}])
466          | LAZY tyvars ident EQUALOP dbrhs       ([LDb{tyc=tycSymbol ident,          | LAZY tyvars ident EQUALOP dbrhs
467                                            ([Db{tyc=tycSymbol ident,
468                                               tyvars=tyvars,                                               tyvars=tyvars,
469                                               rhs=dbrhs}])                                               rhs=dbrhs,lazyp=true}])
470    
471  dbrhs   : constrs                       (Constrs constrs)  dbrhs   : constrs                       (Constrs constrs)
472          | DATATYPE tycon                (Repl tycon)          | DATATYPE tycon                (Repl tycon)
# Line 532  Line 541 
541          | EQTYPE tyspec         ([TycSpec(tyspec,true)])          | EQTYPE tyspec         ([TycSpec(tyspec,true)])
542          | VAL valspec           ([ValSpec valspec])          | VAL valspec           ([ValSpec valspec])
543          | EXCEPTION exnspec     ([ExceSpec exnspec])          | EXCEPTION exnspec     ([ExceSpec exnspec])
         | fixity ops            ([FixSpec {fixity=fixity, ops=ops}])  
544          | SHARING sharespec     (sharespec)          | SHARING sharespec     (sharespec)
545          | INCLUDE sign          ([IncludeSpec sign])          | INCLUDE sign          ([IncludeSpec sign])
546          | INCLUDE ident idents  (IncludeSpec(VarSig(FastSymbol.sigSymbol ident))          | INCLUDE ident idents  (IncludeSpec(VarSig(FastSymbol.sigSymbol ident))
# Line 692  Line 700 
700    
701  interdec: sdecs'        (markdec(sdecs',sdecs'left,sdecs'right))  interdec: sdecs'        (markdec(sdecs',sdecs'left,sdecs'right))
702    
703          | exp           (markdec(ValDec([Vb{exp=exp,pat=VarPat itsym}],nil),          | exp           (markdec(ValDec([Vb{exp=exp,pat=VarPat itsym,lazyp=false}],nil),
704                                   expleft,expright))                                   expleft,expright))
705    
706  (*  (*
707   * $Log: ml.grm,v $   * $Log: ml.grm,v $
708     * Revision 1.3  1998/05/15 14:01:15  dbm
709     *   Replaced lazy field name by lazyp in Vb, Rbv, Db args.
710     *
711     * Revision 1.2  1998/05/15 03:27:06  dbm
712     *   Revised parsing of lazy keyword.  Use lazyp instead of LVb, etc.
713     *
714   * Revision 1.1.1.1  1998/04/08 18:39:19  george   * Revision 1.1.1.1  1998/04/08 18:39:19  george
715   * Version 110.5   * Version 110.5
716   *   *

Legend:
Removed from v.108  
changed lines
  Added in v.109

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