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

SCM Repository

[diderot] Diff of /branches/pure-cfg/src/compiler/parser/diderot.grm
ViewVC logotype

Diff of /branches/pure-cfg/src/compiler/parser/diderot.grm

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

revision 684, Thu Mar 24 14:11:47 2011 UTC revision 685, Thu Mar 24 14:12:05 2011 UTC
# Line 255  Line 255 
255                        }))                        }))
256          | "kernel" "#" Dimension          | "kernel" "#" Dimension
257                  => (markTy(FULL_SPAN, PT.T_Kernel Dimension))                  => (markTy(FULL_SPAN, PT.T_Kernel Dimension))
258          | ValueType ("[" Dimension "]")*          | ValueType ("{" Dimension "}")*
259                  => (case SR                  => (case SR
260                       of [] => ValueType                       of [] => ValueType
261                        | d => (markTy(FULL_SPAN, PT.T_Array(ValueType, d)))                        | d => markTy(FULL_SPAN, List.foldl (fn (dim, ty) => PT.T_Array(ty, dim)) ValueType d)
262                      (* end case *))                      (* end case *))
263          ;          ;
264    
# Line 360  Line 360 
360          ;          ;
361    
362  SliceExpr  SliceExpr
363          : AtomExpr ( "[" Indices "]" )?          : AtomExpr Suffix*
364                  => (case SR                  => (case Suffix
365                       of NONE => AtomExpr                       of [] => AtomExpr
366                        | SOME s => markExpr(FULL_SPAN, PT.E_Slice(AtomExpr, s))                        | ss => markExpr(FULL_SPAN, List.foldl (fn (f, e) => f e) AtomExpr ss)
367                      (* end case *))                      (* end case *))
368          ;          ;
369    
370    Suffix
371            : "[" Indices "]"
372                    => (fn e => PT.E_Slice(e, Indices))
373            | "{" Expr "}"
374                    => (fn e => PT.E_Subscript(e, Expr))
375            ;
376    
377  Indices  Indices
378          : Index ( "," Index )*          : Index ( "," Index )*
379                  => (Index :: SR)                  => (Index :: SR)

Legend:
Removed from v.684  
changed lines
  Added in v.685

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