Override default show implementation for VM ADT
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
module VirtualMachine.VM where
|
module VirtualMachine.VM where
|
||||||
|
|
||||||
|
import Text.Printf (printf)
|
||||||
import Data.Foldable (toList)
|
import Data.Foldable (toList)
|
||||||
import Control.Monad.Trans (lift)
|
import Control.Monad.Trans (lift)
|
||||||
import Control.Monad.State (get, put)
|
import Control.Monad.State (get, put)
|
||||||
@@ -14,7 +15,10 @@ data VM = VM { _pc :: Int
|
|||||||
, _stack :: S.Seq Int
|
, _stack :: S.Seq Int
|
||||||
, _halt :: Bool
|
, _halt :: Bool
|
||||||
, _debug :: Bool
|
, _debug :: Bool
|
||||||
} deriving (Show, Eq)
|
} deriving (Eq)
|
||||||
|
|
||||||
|
instance Show VM where
|
||||||
|
show vm = printf "%s PC=%03d FP=%03d Stack=%s" (if _halt vm then "\x25A0" else "\x25B6") (_pc vm) (_fp vm) (show $ toList $ _stack vm)
|
||||||
|
|
||||||
data Op = Nop -- 0x00
|
data Op = Nop -- 0x00
|
||||||
| Halt -- 0x01
|
| Halt -- 0x01
|
||||||
|
|||||||
Reference in New Issue
Block a user