Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Command
- type Core = IOUArray Int Word8
- type InstPtr = Int
- type CorePtr = Int
- data BF = BF !Core !CorePtr !InstPtr
- coreSize :: Int
- core :: IO Core
- decode :: Char -> State Int Command
- debug :: Bool
- incIP :: InstPtr -> InstPtr
- incCP :: CorePtr -> CorePtr
- decCP :: CorePtr -> CorePtr
- doCommand :: Array Int Command -> BF -> IO BF
- nextJmp :: Array Int Command -> InstPtr -> (InstPtr -> InstPtr) -> Command -> InstPtr
- chrToWord8 :: Char -> Word8
- word8ToChr :: Word8 -> Char
- updateByte :: MArray IOUArray Word8 m => BF -> (Word8 -> Word8) -> m BF
- loadProgram :: String -> Array Int Command
- optimize :: [Command] -> Array Int Command
- execute :: Array Int Command -> Int -> BF -> IO ()
- halt :: IO ()
Documentation
The complete BF language:
- > Increment the pointer.
- < Decrement the pointer.
- + Increment the byte at the pointer.
- - Decrement the byte at the pointer.
- . Output the byte at the pointer.
- , Input a byte and store it in the byte at the pointer.
- [ Jump forward past the matching ] if the byte at the pointer is zero.
- ] Jump backward to the matching [ unless the byte at the pointer is zero.
chrToWord8 :: Char -> Word8 Source #
word8ToChr :: Word8 -> Char Source #