Regularize Condition data type.
Chris Pressey
2 months ago
3 | 3 | |
4 | 4 | module Language.UampirNexol.Eval where |
5 | 5 | |
6 | import Language.UampirNexol.Type (Location(..)) | |
6 | 7 | import Language.UampirNexol.State |
7 | 8 | import Language.UampirNexol.Prog |
8 | 9 | |
26 | 27 | |
27 | 28 | -- | Helper to evaluate conditions |
28 | 29 | evalCond :: Condition -> State -> Bool |
29 | evalCond Zero s = accumulator s == 0 | |
30 | evalCond NonZero s = accumulator s /= 0 | |
30 | evalCond (IsSet Z) s = accumulator s == 0 | |
31 | evalCond (IsUnset Z) s = accumulator s /= 0 | |
31 | 32 | --evalCond Carry s = "C" `elem` map fst (meaningfulLocs s) |
32 | 33 | --evalCond NonCarry s = "C" `notElem` map fst (meaningfulLocs s) |