brainheck-0.1.0.8: Brainh*ck interpreter in haskell

Safe HaskellNone
LanguageHaskell2010

Brainheck

Contents

Description

Module with parser etc.

Synopsis

Documentation

run :: Syntax Char -> IO () Source #

Evaluate syntax tree

parseBrainheck :: FilePath -> Text -> Either (ParseError (Token Text) Void) (Syntax Char) Source #

Parse and return an error or a syntax tree

Types

data Syntax a Source #

Syntax tree for brainfuck

Constructors

Loop (Syntax a) 
Seq [Syntax a] 
Token a 
Instances
Recursive (Syntax a) Source # 
Instance details

Defined in Brainheck

Methods

project :: Syntax a -> Base (Syntax a) (Syntax a) #

cata :: (Base (Syntax a) a0 -> a0) -> Syntax a -> a0 #

para :: (Base (Syntax a) (Syntax a, a0) -> a0) -> Syntax a -> a0 #

gpara :: (Corecursive (Syntax a), Comonad w) => (forall b. Base (Syntax a) (w b) -> w (Base (Syntax a) b)) -> (Base (Syntax a) (EnvT (Syntax a) w a0) -> a0) -> Syntax a -> a0 #

prepro :: Corecursive (Syntax a) => (forall b. Base (Syntax a) b -> Base (Syntax a) b) -> (Base (Syntax a) a0 -> a0) -> Syntax a -> a0 #

gprepro :: (Corecursive (Syntax a), Comonad w) => (forall b. Base (Syntax a) (w b) -> w (Base (Syntax a) b)) -> (forall c. Base (Syntax a) c -> Base (Syntax a) c) -> (Base (Syntax a) (w a0) -> a0) -> Syntax a -> a0 #

Corecursive (Syntax a) Source # 
Instance details

Defined in Brainheck

Methods

embed :: Base (Syntax a) (Syntax a) -> Syntax a #

ana :: (a0 -> Base (Syntax a) a0) -> a0 -> Syntax a #

apo :: (a0 -> Base (Syntax a) (Either (Syntax a) a0)) -> a0 -> Syntax a #

postpro :: Recursive (Syntax a) => (forall b. Base (Syntax a) b -> Base (Syntax a) b) -> (a0 -> Base (Syntax a) a0) -> a0 -> Syntax a #

gpostpro :: (Recursive (Syntax a), Monad m) => (forall b. m (Base (Syntax a) b) -> Base (Syntax a) (m b)) -> (forall c. Base (Syntax a) c -> Base (Syntax a) c) -> (a0 -> Base (Syntax a) (m a0)) -> a0 -> Syntax a #

type Base (Syntax a) Source # 
Instance details

Defined in Brainheck

type Base (Syntax a)