bf-repl/src/Base.hs

32 lines
770 B
Haskell

module Base where
import qualified Data.HashMap as HM
data BFAction = MoveRight
| MoveLeft
| Increment
| Decrement
| Replace
| Print
| JumpRight
| JumpLeft
type Address = Int
type CodePosition = Int
type Memory = HM.Map Address Int
type JumpTable = HM.Map CodePosition CodePosition
data State = State { memory :: Memory
, pointer :: Int
, codePos :: Int
, jumpTable :: JumpTable
}
deriving (Show, Read, Eq)
initState :: State
initState = State { memory = HM.empty
, pointer = 0
, codePos = 0
, jumpTable = HM.empty
}