UMinho Haskell Libraries (1.0)ContentsIndex
Language.ContextFree.Examples.LittleLambda
Contents
Abstract syntax
Context-free grammar
Synopsis
data Type
= TVar Identifier
| Arrow Type Type
data Expr
= Var Identifier
| Apply Expr Expr
| Lambda Identifier Type Expr
| Let [Decl] Expr
data Decl = Decl Identifier Expr
type Identifier = String
littleLambdaCfg :: MonadState [ATerm] m => Cfg (m ()) String
prod :: MonadState [ATerm] m => a -> [a] -> String -> [(a, m ())]
data ATerm
= AAppl String [ATerm]
| AList [ATerm]
| AInt Integer
Abstract syntax
data Type
Constructors
TVar Identifier
Arrow Type Type
Instances
Show Type
Eq Type
data Expr
Constructors
Var Identifier
Apply Expr Expr
Lambda Identifier Type Expr
Let [Decl] Expr
Instances
Show Expr
Eq Expr
data Decl
Constructors
Decl Identifier Expr
Instances
Show Decl
Eq Decl
type Identifier = String
Context-free grammar
littleLambdaCfg :: MonadState [ATerm] m => Cfg (m ()) String
prod :: MonadState [ATerm] m => a -> [a] -> String -> [(a, m ())]
data ATerm
The abstract syntax of ATerms.
Constructors
AAppl String [ATerm]Application
AList [ATerm]Lists
AInt IntegerIntegers
Instances
Read ATerm
Show ATerm
Eq ATerm
Ord ATerm
Produced by Haddock version 0.6