Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.ECMAScript3.Syntax.CodeGen
Contents
Description
Utility combinator functions for simplifying writing programmatic generation of ECMAScript code. Recommended to use together with the -XOverloadedStrings GHC extension.
- script :: Default a => [Statement a] -> JavaScript a
- ident :: Default a => String -> Id a
- propId :: Default a => Id a -> Prop a
- propS :: Default a => String -> Prop a
- propN :: Default a => Integer -> Prop a
- lvar :: Default a => String -> LValue a
- ldot :: Default a => Expression a -> String -> LValue a
- lbrack :: Default a => Expression a -> Expression a -> LValue a
- string :: Default a => String -> Expression a
- regexp :: Default a => String -> Bool -> Bool -> Expression a
- number :: Default a => Double -> Expression a
- bool :: Default a => Bool -> Expression a
- int :: Default a => Int -> Expression a
- null_ :: Default a => Expression a
- array :: Default a => [Expression a] -> Expression a
- object :: Default a => [(Prop a, Expression a)] -> Expression a
- this :: Default a => Expression a
- var :: Default a => Id a -> Expression a
- dot :: Default a => Expression a -> Id a -> Expression a
- brack :: Default a => Expression a -> Expression a -> Expression a
- new :: Default a => Expression a -> [Expression a] -> Expression a
- prefix :: Default a => PrefixOp -> Expression a -> Expression a
- lnot :: Default a => Expression a -> Expression a
- bnot :: Default a => Expression a -> Expression a
- plus :: Default a => Expression a -> Expression a
- minus :: Default a => Expression a -> Expression a
- typeof :: Default a => Expression a -> Expression a
- void :: Default a => Expression a -> Expression a
- delete :: Default a => Expression a -> Expression a
- uassign :: Default a => UnaryAssignOp -> LValue a -> Expression a
- preinc :: Default a => LValue a -> Expression a
- predec :: Default a => LValue a -> Expression a
- postinc :: Default a => LValue a -> Expression a
- postdec :: Default a => LValue a -> Expression a
- infixe :: Default a => InfixOp -> Expression a -> Expression a -> Expression a
- lt :: Default a => Expression a -> Expression a -> Expression a
- le :: Default a => Expression a -> Expression a -> Expression a
- gt :: Default a => Expression a -> Expression a -> Expression a
- ge :: Default a => Expression a -> Expression a -> Expression a
- in_ :: Default a => Expression a -> Expression a -> Expression a
- instanceof :: Default a => Expression a -> Expression a -> Expression a
- eq :: Default a => Expression a -> Expression a -> Expression a
- neq :: Default a => Expression a -> Expression a -> Expression a
- steq :: Default a => Expression a -> Expression a -> Expression a
- stneq :: Default a => Expression a -> Expression a -> Expression a
- land :: Default a => Expression a -> Expression a -> Expression a
- lor :: Default a => Expression a -> Expression a -> Expression a
- mul :: Default a => Expression a -> Expression a -> Expression a
- div :: Default a => Expression a -> Expression a -> Expression a
- mod :: Default a => Expression a -> Expression a -> Expression a
- sub :: Default a => Expression a -> Expression a -> Expression a
- lshift :: Default a => Expression a -> Expression a -> Expression a
- srshift :: Default a => Expression a -> Expression a -> Expression a
- zrshift :: Default a => Expression a -> Expression a -> Expression a
- band :: Default a => Expression a -> Expression a -> Expression a
- bor :: Default a => Expression a -> Expression a -> Expression a
- xor :: Default a => Expression a -> Expression a -> Expression a
- add :: Default a => Expression a -> Expression a -> Expression a
- cond :: Default a => Expression a -> Expression a -> Expression a -> Expression a
- assignop :: Default a => AssignOp -> LValue a -> Expression a -> Expression a
- assign :: Default a => LValue a -> Expression a -> Expression a
- assignadd :: Default a => LValue a -> Expression a -> Expression a
- assignsub :: Default a => LValue a -> Expression a -> Expression a
- assignmul :: Default a => LValue a -> Expression a -> Expression a
- assigndiv :: Default a => LValue a -> Expression a -> Expression a
- assignmod :: Default a => LValue a -> Expression a -> Expression a
- assignlshift :: Default a => LValue a -> Expression a -> Expression a
- assignsrshift :: Default a => LValue a -> Expression a -> Expression a
- assignzrshift :: Default a => LValue a -> Expression a -> Expression a
- assignband :: Default a => LValue a -> Expression a -> Expression a
- assignxor :: Default a => LValue a -> Expression a -> Expression a
- assignbor :: Default a => LValue a -> Expression a -> Expression a
- list :: Default a => [Expression a] -> Expression a
- call :: Default a => Expression a -> [Expression a] -> Expression a
- func :: Default a => Id a -> [Id a] -> [Statement a] -> Expression a
- lambda :: Default a => [Id a] -> [Statement a] -> Expression a
- casee :: Default a => Expression a -> [Statement a] -> CaseClause a
- defaultc :: Default a => [Statement a] -> CaseClause a
- catch :: Default a => Id a -> Statement a -> CatchClause a
- vardecl :: Default a => Id a -> VarDecl a
- varinit :: Default a => Id a -> Expression a -> VarDecl a
- block :: Default a => [Statement a] -> Statement a
- empty :: Default a => Statement a
- expr :: Default a => Expression a -> Statement a
- ifte :: Default a => Expression a -> Statement a -> Statement a -> Statement a
- ift :: Default a => Expression a -> Statement a -> Statement a
- switch :: Default a => Expression a -> [CaseClause a] -> Statement a
- while :: Default a => Expression a -> Statement a -> Statement a
- dowhile :: Default a => Statement a -> Expression a -> Statement a
- break :: Default a => Maybe (Id a) -> Statement a
- continue :: Default a => Maybe (Id a) -> Statement a
- label :: Default a => Id a -> Statement a -> Statement a
- forin :: Default a => ForInInit a -> Expression a -> Statement a -> Statement a
- for :: Default a => ForInit a -> Maybe (Expression a) -> Maybe (Expression a) -> Statement a -> Statement a
- try :: Default a => Statement a -> Statement a
- trycatch :: Default a => Statement a -> CatchClause a -> Maybe (Statement a) -> Statement a
- tryfinally :: Default a => Statement a -> Statement a -> Statement a
- trycatchfinally :: Default a => Statement a -> CatchClause a -> Statement a -> Statement a
- throw :: Default a => Expression a -> Statement a
- returns :: Default a => Expression a -> Statement a
- ret :: Default a => Statement a
- with :: Default a => Expression a -> Statement a -> Statement a
- vardecls :: Default a => [VarDecl a] -> Statement a
- function :: Default a => Id a -> [Id a] -> [Statement a] -> Statement a
- id2string :: Id a -> Expression a
- lv2e :: LValue a -> Expression a
- e2lv :: Expression a -> LValue a
- forInInit2lv :: ForInInit a -> LValue a
Documentation
script :: Default a => [Statement a] -> JavaScript a #
ldot :: Default a => Expression a -> String -> LValue a #
lbrack :: Default a => Expression a -> Expression a -> LValue a #
string :: Default a => String -> Expression a #
number :: Default a => Double -> Expression a #
bool :: Default a => Bool -> Expression a #
int :: Default a => Int -> Expression a #
null_ :: Default a => Expression a #
array :: Default a => [Expression a] -> Expression a #
object :: Default a => [(Prop a, Expression a)] -> Expression a #
this :: Default a => Expression a #
var :: Default a => Id a -> Expression a #
dot :: Default a => Expression a -> Id a -> Expression a #
brack :: Default a => Expression a -> Expression a -> Expression a #
new :: Default a => Expression a -> [Expression a] -> Expression a #
prefix :: Default a => PrefixOp -> Expression a -> Expression a #
lnot :: Default a => Expression a -> Expression a #
bnot :: Default a => Expression a -> Expression a #
plus :: Default a => Expression a -> Expression a #
minus :: Default a => Expression a -> Expression a #
typeof :: Default a => Expression a -> Expression a #
void :: Default a => Expression a -> Expression a #
delete :: Default a => Expression a -> Expression a #
uassign :: Default a => UnaryAssignOp -> LValue a -> Expression a #
preinc :: Default a => LValue a -> Expression a #
predec :: Default a => LValue a -> Expression a #
postinc :: Default a => LValue a -> Expression a #
postdec :: Default a => LValue a -> Expression a #
infixe :: Default a => InfixOp -> Expression a -> Expression a -> Expression a #
lt :: Default a => Expression a -> Expression a -> Expression a #
le :: Default a => Expression a -> Expression a -> Expression a #
gt :: Default a => Expression a -> Expression a -> Expression a #
ge :: Default a => Expression a -> Expression a -> Expression a #
in_ :: Default a => Expression a -> Expression a -> Expression a #
instanceof :: Default a => Expression a -> Expression a -> Expression a #
eq :: Default a => Expression a -> Expression a -> Expression a #
neq :: Default a => Expression a -> Expression a -> Expression a #
steq :: Default a => Expression a -> Expression a -> Expression a #
stneq :: Default a => Expression a -> Expression a -> Expression a #
land :: Default a => Expression a -> Expression a -> Expression a #
lor :: Default a => Expression a -> Expression a -> Expression a #
mul :: Default a => Expression a -> Expression a -> Expression a #
div :: Default a => Expression a -> Expression a -> Expression a #
mod :: Default a => Expression a -> Expression a -> Expression a #
sub :: Default a => Expression a -> Expression a -> Expression a #
lshift :: Default a => Expression a -> Expression a -> Expression a #
srshift :: Default a => Expression a -> Expression a -> Expression a #
zrshift :: Default a => Expression a -> Expression a -> Expression a #
band :: Default a => Expression a -> Expression a -> Expression a #
bor :: Default a => Expression a -> Expression a -> Expression a #
xor :: Default a => Expression a -> Expression a -> Expression a #
add :: Default a => Expression a -> Expression a -> Expression a #
cond :: Default a => Expression a -> Expression a -> Expression a -> Expression a #
assignop :: Default a => AssignOp -> LValue a -> Expression a -> Expression a #
assign :: Default a => LValue a -> Expression a -> Expression a #
assignadd :: Default a => LValue a -> Expression a -> Expression a #
assignsub :: Default a => LValue a -> Expression a -> Expression a #
assignmul :: Default a => LValue a -> Expression a -> Expression a #
assigndiv :: Default a => LValue a -> Expression a -> Expression a #
assignmod :: Default a => LValue a -> Expression a -> Expression a #
assignlshift :: Default a => LValue a -> Expression a -> Expression a #
assignsrshift :: Default a => LValue a -> Expression a -> Expression a #
assignzrshift :: Default a => LValue a -> Expression a -> Expression a #
assignband :: Default a => LValue a -> Expression a -> Expression a #
assignxor :: Default a => LValue a -> Expression a -> Expression a #
assignbor :: Default a => LValue a -> Expression a -> Expression a #
list :: Default a => [Expression a] -> Expression a #
call :: Default a => Expression a -> [Expression a] -> Expression a #
lambda :: Default a => [Id a] -> [Statement a] -> Expression a #
casee :: Default a => Expression a -> [Statement a] -> CaseClause a #
defaultc :: Default a => [Statement a] -> CaseClause a #
catch :: Default a => Id a -> Statement a -> CatchClause a #
varinit :: Default a => Id a -> Expression a -> VarDecl a #
expr :: Default a => Expression a -> Statement a #
ift :: Default a => Expression a -> Statement a -> Statement a #
switch :: Default a => Expression a -> [CaseClause a] -> Statement a #
while :: Default a => Expression a -> Statement a -> Statement a #
dowhile :: Default a => Statement a -> Expression a -> Statement a #
for :: Default a => ForInit a -> Maybe (Expression a) -> Maybe (Expression a) -> Statement a -> Statement a #
tryfinally :: Default a => Statement a -> Statement a -> Statement a #
trycatchfinally :: Default a => Statement a -> CatchClause a -> Statement a -> Statement a #
throw :: Default a => Expression a -> Statement a #
returns :: Default a => Expression a -> Statement a #
with :: Default a => Expression a -> Statement a -> Statement a #
id2string :: Id a -> Expression a #
Convert an identifier to a String literal
lv2e :: LValue a -> Expression a #
Helper function to convert LValues to expressions
e2lv :: Expression a -> LValue a #
Convert an expression to an l-value. May fail with an error
forInInit2lv :: ForInInit a -> LValue a #