packages feed

brainheck 0.1.0.7 → 0.1.0.8

raw patch · 3 files changed

+13/−11 lines, 3 filesdep ~base

Dependency ranges changed: base

Files

bench/Bench.hs view
@@ -1,11 +1,12 @@ module Main where -import Criterion.Main-import Brainheck-import qualified Data.Text.IO as TIO+import           Brainheck+import           Criterion.Main+import qualified Data.Text.IO   as TIO  -- FIXME use nfIO for final result + use env correctly-main = TIO.readFile "bf/helloworld.bf" >>= \file -> defaultMain [ -    bgroup "parseBrainheck" [ -        bench "helloworld.bf" $ whnf (parseBrainheck "bf/helloworld.bf") file ] +main :: IO ()+main = TIO.readFile "bf/helloworld.bf" >>= \file -> defaultMain [+    bgroup "parseBrainheck" [+        bench "helloworld.bf" $ whnf (parseBrainheck "bf/helloworld.bf") file ]     ]
brainheck.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: brainheck-version: 0.1.0.7+version: 0.1.0.8 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2016-2018 Vanessa McHale@@ -38,9 +38,10 @@     default-language: Haskell2010     default-extensions: DeriveFunctor DeriveFoldable DeriveTraversable                         TypeFamilies+    other-extensions: TemplateHaskell KindSignatures FlexibleContexts     ghc-options: -Wall     build-depends:-        base >=4.11 && <5,+        base >=4.10 && <5,         mtl -any,         vector -any,         recursion-schemes -any,@@ -63,7 +64,7 @@     default-language: Haskell2010     ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall     build-depends:-        base -any,+        base >=4.11,         brainheck -any,         optparse-applicative -any,         text -any
src/Brainheck.hs view
@@ -30,7 +30,7 @@ -- | Syntax tree for brainfuck data Syntax a = Loop (Syntax a)               | Seq [Syntax a]-              | Token a deriving (Show)+              | Token a  makeBaseFunctor ''Syntax @@ -56,7 +56,7 @@  algebra :: Base (Syntax Char) (St ()) -> St () algebra (TokenF x) = toAction x-algebra (SeqF x) = foldr (>>) (pure ()) x+algebra (SeqF x) = sequence_ x algebra l@(LoopF x) = check >>= (\bool -> if bool then pure () else x >> algebra l)     where check = get >>= (\(arr,i) -> pure . (==0) . (V.! i) $ arr)