Craft3e-0.2.0.1: Code for Haskell: the Craft of Functional Programming, 3rd ed.
Safe HaskellSafe-Inferred
LanguageHaskell2010

ParsingBasics

Documentation

type Var = Char Source #

data Expr Source #

Constructors

Lit Int 
Var Var 
Op Op Expr Expr 

data Op Source #

Constructors

Add 
Sub 
Mul 
Div 
Mod 

type Parse a b = [a] -> [(b, [a])] Source #

succeed :: b -> Parse a b Source #

token :: Eq a => a -> Parse a a Source #

spot :: (a -> Bool) -> Parse a a Source #

alt :: Parse a b -> Parse a b -> Parse a b Source #

exam1 :: [(Char, [Char])] Source #

(>*>) :: Parse a b -> Parse a c -> Parse a (b, c) infixr 5 Source #

build :: Parse a b -> (b -> c) -> Parse a c Source #

list :: Parse a b -> Parse a [b] Source #

neList :: Parse a b -> Parse a [b] Source #

optional :: Parse a b -> Parse a [b] Source #

nTimes :: Int -> Parse a b -> Parse a [b] Source #

makeExpr :: (a, (Expr, (Char, (Expr, b)))) -> Expr Source #

topLevel :: Parse a b -> [a] -> b Source #

data Command Source #

Constructors

Eval Expr 
Assign Var Expr 
Null