diff options
Diffstat (limited to 'testsuite/tests/ghc-regress/programs/jtod_circint/Bit.hs')
-rw-r--r-- | testsuite/tests/ghc-regress/programs/jtod_circint/Bit.hs | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/testsuite/tests/ghc-regress/programs/jtod_circint/Bit.hs b/testsuite/tests/ghc-regress/programs/jtod_circint/Bit.hs deleted file mode 100644 index be11a6f517..0000000000 --- a/testsuite/tests/ghc-regress/programs/jtod_circint/Bit.hs +++ /dev/null @@ -1,183 +0,0 @@ -module Bit where -import LogFun -import Signal - -data Bit = Bot | WeakZero | WeakOne | Zero | One | Top - deriving (Eq,Show{-was:Text-}) - -instance Static Bit where - intToSig = intToSigBit - sigToInt = sigToIntBit - showStaticSig = showBit - -instance Lattice Bit where - bot = Bot - top = Top - weakZero = WeakZero - weakOne = WeakOne - lub = lubBit - pass = passBit - -instance Signal Bit where - showSig = showBit - initial = Zero - zerO = Zero - one = One - tt1 = tt1Bit - tt2 = tt2Bit - -instance Log Bit where - dumLog = Zero - -tt1Bit :: TT1 -> Bit -> Bit -tt1Bit (a,b) = - let p = intBit a - q = intBit b - f x = case x of - Bot -> Bot - Zero -> p - One -> q - Top -> Top - in f - -tt2Bit :: TT2 -> Bit -> Bit -> Bit -tt2Bit (a,b,c,d) = f - where p = intBit a - q = intBit b - r = intBit c - s = intBit d - f x y = case x of - Bot -> case y of - Bot -> Bot - WeakZero -> Bot - WeakOne -> Bot - Zero -> Bot - One -> Bot - Top -> Top - WeakZero -> case y of - Bot -> Bot - WeakZero -> p - WeakOne -> q - Zero -> p - One -> q - Top -> Top - WeakOne -> case y of - Bot -> Bot - WeakZero -> r - WeakOne -> s - Zero -> r - One -> s - Top -> Top - Zero -> case y of - Bot -> Bot - WeakZero -> p - WeakOne -> q - Zero -> p - One -> q - Top -> Top - One -> case y of - Bot -> Bot - WeakZero -> r - WeakOne -> s - Zero -> r - One -> s - Top -> Top - Top -> case y of - Bot -> Top - WeakZero -> Top - WeakOne -> Top - Zero -> Top - One -> Top - Top -> Top - -lubBit :: Bit -> Bit -> Bit -lubBit a b = - case a of - Bot -> case b of - Bot -> Bot - WeakZero -> WeakZero - WeakOne -> WeakOne - Zero -> Zero - One -> One - Top -> Top - WeakZero -> case b of - Bot -> Zero - WeakZero -> WeakZero - WeakOne -> Top - Zero -> Zero - One -> One - Top -> Top - WeakOne -> case b of - Bot -> WeakOne - WeakZero -> Top - WeakOne -> WeakOne - Zero -> Zero - One -> One - Top -> Top - Zero -> case b of - Bot -> Zero - WeakZero -> Zero - WeakOne -> Zero - Zero -> Zero - One -> Top - Top -> Top - One -> case b of - Bot -> One - WeakZero -> One - WeakOne -> One - Zero -> Top - One -> One - Top -> Top - Top -> case b of - Bot -> Top - WeakZero -> Top - WeakOne -> Top - Zero -> Top - One -> Top - Top -> Top - -showBit :: Bit -> String -showBit Bot = "v" -showBit WeakZero = "z" -showBit WeakOne = "o" -showBit Zero = "0" -showBit One = "1" -showBit Top = "^" - - -intBit :: Int -> Bit -intBit 0 = Zero -intBit 1 = One -intBit x = - error ("\nintBit received bad Int " ++ show x ++ ".\n") - -intToSigBit :: Int -> Bit -intToSigBit i - | i==0 = Zero - | i==1 = One - | i==8 = Bot - | i==9 = Top - -sigToIntBit :: Bit -> Int -sigToIntBit Zero = 0 -sigToIntBit One = 1 -sigToIntBit Bot = 8 -sigToIntBit Top = 9 - -passBit :: Bit -> Bit -> Bit -passBit c a = - case c of - Bot -> Bot - Zero -> Bot - One -> a - Top -> Top - -instance Num Bit where - (+) = or2 - (*) = and2 - a - b = xor a b - negate = inv - abs = error "abs not defined for Signals" - signum = error "signum not defined for Signals" - fromInteger = error "fromInteger not defined for Signals" - |