Added cases for DerefVariable to some functions in Types
This commit is contained in:
parent
f8006696b2
commit
f68a6cd31d
|
@ -180,6 +180,11 @@ typeOfVariable :: (CSM m, Die m) => A.Variable -> m A.Type
|
|||
typeOfVariable (A.Variable m n) = typeOfName n
|
||||
typeOfVariable (A.SubscriptedVariable m s v)
|
||||
= typeOfVariable v >>= subscriptType s
|
||||
typeOfVariable (A.DerefVariable m v)
|
||||
= do t <- typeOfVariable v
|
||||
case t of
|
||||
(A.Mobile innerT) -> return innerT
|
||||
_ -> die $ "Tried to dereference a non-mobile variable: " ++ show v
|
||||
typeOfVariable (A.DirectedVariable m dir v)
|
||||
= do t <- typeOfVariable v
|
||||
case t of
|
||||
|
@ -191,6 +196,7 @@ abbrevModeOfVariable :: (CSM m, Die m) => A.Variable -> m A.AbbrevMode
|
|||
abbrevModeOfVariable (A.Variable _ n) = abbrevModeOfName n
|
||||
abbrevModeOfVariable (A.SubscriptedVariable _ sub v) = abbrevModeOfVariable v
|
||||
abbrevModeOfVariable (A.DirectedVariable _ _ v) = abbrevModeOfVariable v
|
||||
abbrevModeOfVariable (A.DerefVariable _ v) = return A.Original
|
||||
|
||||
dyadicIsBoolean :: A.DyadicOp -> Bool
|
||||
dyadicIsBoolean A.Eq = True
|
||||
|
|
Loading…
Reference in New Issue
Block a user