Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis12/src/compiler/parser/diderot.grm
ViewVC logotype

Diff of /branches/vis12/src/compiler/parser/diderot.grm

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

revision 3278, Tue Oct 13 03:59:10 2015 UTC revision 3279, Tue Oct 13 16:08:26 2015 UTC
# Line 428  Line 428 
428          ;          ;
429    
430  MulExpr  MulExpr
431          : PowerExpr ( MulOp PowerExpr )*          : PrefixExpr ( MulOp PrefixExpr )*
432                  => (mkLBinExp (PowerExpr, SR))                  => (mkLBinExp (PrefixExpr, SR))
433          ;          ;
434    
435  MulOp  MulOp
# Line 438  Line 438 
438          | ":" => (B.op_colon)          | ":" => (B.op_colon)
439          ;          ;
440    
 PowerExpr  
         : PrefixExpr ( "^" PrefixExpr => (B.op_exp, PrefixExpr) )*  
                 => (mkLBinExp (PrefixExpr, SR))  
         ;  
   
441  PrefixExpr  PrefixExpr
442          : SuffixExpr          : PowerExpr
443                  => (SuffixExpr)                  => (PowerExpr)
444          | "-" PrefixExpr          | "-" PrefixExpr
445                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_neg, PrefixExpr)))                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_neg, PrefixExpr)))
446          | "!" PrefixExpr          | "!" PrefixExpr
447                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_not, PrefixExpr)))                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_not, PrefixExpr)))
448          ;          ;
449    
450    PowerExpr
451            : SuffixExpr ( "^" SuffixExpr => (B.op_exp, SuffixExpr) )*
452                    => (mkRBinExp (SuffixExpr, SR))
453            ;
454    
455  SuffixExpr  SuffixExpr
456          : DerivExpr Suffix*          : DerivExpr Suffix*
457                  => (case Suffix                  => (case Suffix
# Line 566  Line 566 
566          ;          ;
567    
568  MulConstExpr  MulConstExpr
569          : PowerConstExpr ( MulOp PowerConstExpr )*          : PrefixConstExpr ( MulOp PrefixConstExpr )*
                 => (mkLBinExp (PowerConstExpr, SR))  
         ;  
   
 PowerConstExpr  
         : PrefixConstExpr ( "^" PrefixConstExpr => (B.op_exp, PrefixConstExpr) )*  
570                  => (mkLBinExp (PrefixConstExpr, SR))                  => (mkLBinExp (PrefixConstExpr, SR))
571          ;          ;
572    
573  PrefixConstExpr  PrefixConstExpr
574          : AtomConstExpr          : PowerConstExpr
575                  => (AtomConstExpr)                  => (PowerConstExpr)
576          | "-" PrefixConstExpr          | "-" PrefixConstExpr
577                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_neg, PrefixConstExpr)))                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_neg, PrefixConstExpr)))
578          | "!" PrefixConstExpr          | "!" PrefixConstExpr
579                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_not, PrefixConstExpr)))                  => (markExpr(FULL_SPAN, PT.E_UnaryOp(B.op_not, PrefixConstExpr)))
580          ;          ;
581    
582    PowerConstExpr
583            : AtomConstExpr ( "^" AtomConstExpr => (B.op_exp, AtomConstExpr) )*
584                    => (mkRBinExp (AtomConstExpr, SR))
585            ;
586    
587  AtomConstExpr  AtomConstExpr
588          : ID "(" ConstArguments ")"          : ID "(" ConstArguments ")"
589                  => (markExpr(FULL_SPAN, PT.E_Apply(markExpr(FULL_SPAN, PT.E_Var ID), ConstArguments)))                  => (markExpr(FULL_SPAN, PT.E_Apply(markExpr(FULL_SPAN, PT.E_Var ID), ConstArguments)))
# Line 597  Line 597 
597                  => (markExpr(FULL_SPAN, PT.E_Sequence(Initializer::SR)))                  => (markExpr(FULL_SPAN, PT.E_Sequence(Initializer::SR)))
598          | "[" Initializer ("," Initializer)* "]"          | "[" Initializer ("," Initializer)* "]"
599                  => (markExpr(FULL_SPAN, PT.E_Cons(Initializer::SR)))                  => (markExpr(FULL_SPAN, PT.E_Cons(Initializer::SR)))
         | "-" INT  
                 => (markExpr(FULL_SPAN, PT.E_Lit(L.Int(~INT))))  
         | "-" FLOAT  
                 => (markExpr(FULL_SPAN, PT.E_Lit(L.Float(FloatLit.negate FLOAT))))  
600          | INT          | INT
601                  => (markExpr(FULL_SPAN, PT.E_Lit(L.Int INT)))                  => (markExpr(FULL_SPAN, PT.E_Lit(L.Int INT)))
602          | FLOAT          | FLOAT

Legend:
Removed from v.3278  
changed lines
  Added in v.3279

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