Make TRUE/FALSE part of operand rather than expression

This commit is contained in:
Adam Sampson 2007-04-25 18:18:38 +00:00
parent d20bf1656d
commit 336679f416
2 changed files with 5 additions and 4 deletions

View File

@ -785,8 +785,6 @@ expression
<|> do { m <- md; sMOSTPOS; t <- dataType; return $ A.MostPos m t }
<|> do { m <- md; sMOSTNEG; t <- dataType; return $ A.MostNeg m t }
<|> sizeExpr
<|> do { m <- md; sTRUE; return $ A.True m }
<|> do { m <- md; sFALSE; return $ A.False m }
<|> do m <- md
(l, o) <- tryVV operand dyadicOperator
t <- typeOfExpression l
@ -940,6 +938,8 @@ operandNotTable'
do { o <- noTypeContext operand; sRightR; return $ A.BytesInExpr m o }
<|> do { t <- dataType; sRightR; return $ A.BytesInType m t }
<|> do { m <- md; sOFFSETOF; sLeftR; t <- dataType; sComma; f <- fieldName; sRightR; return $ A.OffsetOf m t f }
<|> do { m <- md; sTRUE; return $ A.True m }
<|> do { m <- md; sFALSE; return $ A.False m }
<?> "operand other than table'"
--}}}
--{{{ variables, channels, timers, ports

View File

@ -12,9 +12,10 @@ x ! y is ambiguous.
<< and >> are missing from dyadic.operator.
-- Things that Parse.hs currently implements as per the spec
"b = TRUE" isn't a valid expression (occ21 allows it, and it's used in cglib)
-- moved TRUE/FALSE into operand.
"b = TRUE" isn't a valid expression (occ21 allows it, and it's used in cglib).
-- Things that Parse.hs currently implements as per the spec
PROCESSOR is permitted as a process, anywhere.