 | haskell-src-exts-1.3.3: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer | Contents | Index |
|
Language.Haskell.Exts.Annotated.Build | Portability | portable | Stability | experimental | Maintainer | Niklas Broberg, d00nibro@chalmers.se |
|
|
|
|
|
Description |
This module contains combinators to use when building
Haskell source trees programmatically, as opposed to
parsing them from a string. The contents here are quite
experimental and will likely receive a lot of attention
when the rest has stabilised.
|
|
Synopsis |
|
|
|
|
Syntax building functions
|
|
name :: l -> String -> Name l |
An identifier with the given string as its name.
The string should be a valid Haskell identifier.
|
|
sym :: l -> String -> Name l |
A symbol identifier. The string should be a valid
Haskell symbol identifier.
|
|
var :: l -> Name l -> Exp l |
A local variable as expression.
|
|
op :: l -> Name l -> QOp l |
Use the given identifier as an operator.
|
|
qvar :: l -> ModuleName l -> Name l -> Exp l |
A qualified variable as expression.
|
|
pvar :: l -> Name l -> Pat l |
A pattern variable.
|
|
app :: l -> Exp l -> Exp l -> Exp l |
Application of expressions by juxtaposition.
|
|
infixApp :: l -> Exp l -> QOp l -> Exp l -> Exp l |
Apply an operator infix.
|
|
appFun :: [l] -> Exp l -> [Exp l] -> Exp l |
Apply a function to a list of arguments.
|
|
pApp :: l -> Name l -> [Pat l] -> Pat l |
A constructor pattern, with argument patterns.
|
|
tuple :: l -> [Exp l] -> Exp l |
A tuple expression.
|
|
pTuple :: l -> [Pat l] -> Pat l |
A tuple pattern.
|
|
varTuple :: l -> [Name l] -> Exp l |
A tuple expression consisting of variables only.
|
|
pvarTuple :: l -> [Name l] -> Pat l |
A tuple pattern consisting of variables only.
|
|
function :: l -> String -> Exp l |
A function with a given name.
|
|
strE :: l -> String -> Exp l |
A literal string expression.
|
|
charE :: l -> Char -> Exp l |
A literal character expression.
|
|
intE :: l -> Integer -> Exp l |
A literal integer expression.
|
|
strP :: l -> String -> Pat l |
A literal string pattern.
|
|
charP :: l -> Char -> Pat l |
A literal character pattern.
|
|
intP :: l -> Integer -> Pat l |
A literal integer pattern.
|
|
doE :: l -> [Stmt l] -> Exp l |
A do block formed by the given statements.
The last statement in the list should be
a Qualifier expression.
|
|
lamE :: l -> [Pat l] -> Exp l -> Exp l |
Lambda abstraction, given a list of argument
patterns and an expression body.
|
|
letE :: l -> [Decl l] -> Exp l -> Exp l |
A let ... in block.
|
|
caseE :: l -> Exp l -> [Alt l] -> Exp l |
A case expression.
|
|
alt :: l -> Pat l -> Exp l -> Alt l |
An unguarded alternative in a case expression.
|
|
altGW :: l -> Pat l -> [Stmt l] -> Exp l -> Binds l -> Alt l |
An alternative with a single guard in a case expression.
|
|
listE :: l -> [Exp l] -> Exp l |
A list expression.
|
|
eList :: l -> Exp l |
The empty list expression.
|
|
peList :: l -> Pat l |
The empty list pattern.
|
|
paren :: l -> Exp l -> Exp l |
Put parentheses around an expression.
|
|
pParen :: l -> Pat l -> Pat l |
Put parentheses around a pattern.
|
|
qualStmt :: l -> Exp l -> Stmt l |
A qualifier expression statement.
|
|
genStmt :: l -> Pat l -> Exp l -> Stmt l |
A generator statement: pat <- exp
|
|
letStmt :: l -> [Decl l] -> Stmt l |
A let binding group as a statement.
|
|
binds :: l -> [Decl l] -> Binds l |
Hoist a set of declarations to a binding group.
|
|
noBinds :: l -> Binds l |
An empty binding group.
|
|
wildcard :: l -> Pat l |
The wildcard pattern: _
|
|
genNames :: l -> String -> Int -> [Name l] |
Generate k names by appending numbers 1 through k to a given string.
|
|
More advanced building
|
|
sfun :: l -> Name l -> [Name l] -> Rhs l -> Maybe (Binds l) -> Decl l |
A function with a single clause
|
|
simpleFun :: l -> Name l -> Name l -> Exp l -> Decl l |
A function with a single clause, a single argument, no guards
and no where declarations
|
|
patBind :: l -> Pat l -> Exp l -> Decl l |
A pattern bind where the pattern is a variable, and where
there are no guards and no 'where' clause.
|
|
patBindWhere :: l -> Pat l -> Exp l -> [Decl l] -> Decl l |
A pattern bind where the pattern is a variable, and where
there are no guards, but with a 'where' clause.
|
|
nameBind :: l -> Name l -> Exp l -> Decl l |
Bind an identifier to an expression.
|
|
metaFunction :: l -> String -> [Exp l] -> Exp l |
Apply function of a given name to a list of arguments.
|
|
metaConPat :: l -> String -> [Pat l] -> Pat l |
Apply a constructor of a given name to a list of pattern
arguments, forming a constructor pattern.
|
|
Produced by Haddock version 2.5.0 |