Rain: added parsing support for channel-end casts

This commit is contained in:
Neil Brown 2007-08-24 16:57:02 +00:00
parent 0fdcdcf4a1
commit e3ee310fe3

View File

@ -210,7 +210,11 @@ expression
<?> "expression" <?> "expression"
where where
castExpression :: RainParser A.Expression castExpression :: RainParser A.Expression
castExpression = do {ty <- dataType ; m <- sColon ; e <- expression ; return $ A.Conversion m A.DefaultConversion ty e} castExpression = (try $ do {ty <- dataType ; m <- sColon ; e <- expression ; return $ A.Conversion m A.DefaultConversion ty e})
<|> do {m <- sIn ; e <- expression ; return $ A.Conversion m A.DefaultConversion
(A.Chan A.DirInput A.ChanAttributes {A.caWritingShared = False, A.caReadingShared = False} A.Any) e}
<|> do {m <- sOut ; e <- expression ; return $ A.Conversion m A.DefaultConversion
(A.Chan A.DirOutput A.ChanAttributes {A.caWritingShared = False, A.caReadingShared = False} A.Any) e}
compExpression :: RainParser A.Expression compExpression :: RainParser A.Expression
compExpression = do {lhs <- subExpression ; (m,op) <- dyadicCompOp ; rhs <- subExpression ; return $ A.Dyadic m op lhs rhs } compExpression = do {lhs <- subExpression ; (m,op) <- dyadicCompOp ; rhs <- subExpression ; return $ A.Dyadic m op lhs rhs }