HJScript-0.4.5: HJScript is a Haskell EDSL for writing JavaScript programs.Source codeContentsIndex
HJScript.Lang
Stabilityexperimental
MaintainerJoel Bjornson joel.bjornson@gmail.com, Niklas Broberg nibro@cs.chalmers.se
Description
Synopsis
preinc :: Num t => Var t -> HJScript ()
postinc :: Num t => Var t -> HJScript ()
predec :: Num t => Var t -> HJScript ()
postdec :: Num t => Var t -> HJScript ()
(.+.) :: PlusOpType a => HJSJBinOperator a a
(.-.) :: Num a => HJSJBinOperator a a
(.*.) :: Num a => HJSJBinOperator a a
(./.) :: Num a => HJSJBinOperator a a
(.&&.) :: HJSJBinOperator Bool Bool
(.||.) :: HJSJBinOperator Bool Bool
(.==.) :: HJSJBinOperator a Bool
(.!=.) :: HJSJBinOperator a Bool
(.>.) :: Num a => HJSJBinOperator a Bool
(.<.) :: Num a => HJSJBinOperator a Bool
(.>=.) :: Num a => HJSJBinOperator a Bool
(.<=.) :: Num a => HJSJBinOperator a Bool
(.=.) :: Var t -> Exp t -> HJScript ()
(.+=.) :: Num t => Var t -> Exp t -> HJScript ()
(?) :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()
(<|>) :: a -> a -> (a, a)
this :: IsClass c => Exp c
callMethod :: (IsDeref d, Args e t1) => String -> e -> d -> Exp t2
callVoidMethod :: (Args e t1, IsDeref a) => String -> e -> a -> HJScript ()
callProc :: Args e t => Exp (t -> t1) -> e -> HJScript ()
function :: (FormalParams a t, VarsToExps a e) => (e -> HJScript (Exp r)) -> HJScript (Exp (t -> r))
procedure :: (FormalParams a t, VarsToExps a e) => (e -> HJScript ()) -> HJScript (Exp (t -> ()))
functionDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript (Exp r)) -> HJScript ()
procedureDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript ()) -> HJScript ()
for :: JInt -> JInt -> (JInt -> HJScript t) -> HJScript ()
while :: JBool -> HJScript t -> HJScript ()
doWhile :: HJScript t -> JBool -> HJScript ()
doIf :: JBool -> HJScript t -> HJScript (Elses ()) -> HJScript ()
doElse :: HJScript () -> HJScript (Elses ())
doIfElse :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()
doIfNoElse :: Exp Bool -> HJScript () -> HJScript ()
noElse :: HJScript (Elses ())
var :: HJScript (Var t)
varWith :: Exp t -> HJScript (Var t)
inVar :: Exp t -> HJScript (Exp t)
new :: (HasConstructor o e t, Args e t) => o -> e -> HJScript (Exp o)
(#) :: a -> (a -> b) -> b
(#.) :: (a -> b) -> (b -> c) -> a -> c
rec :: Exp a -> Exp b -> Exp (Rec a b)
first :: Exp (Rec a b) -> Exp a
second :: Exp (Rec a b) -> Exp b
x :: Exp (Rec a b) -> Exp a
y :: Exp (Rec a b) -> Exp b
(#!) :: JArray t -> JInt -> Var t
jnull :: IsNullable t => Exp t
jShow :: JShow t => Exp t -> JString
castObject :: (IsClass c1, IsClass c2) => JObject c1 -> JObject c2
hasFeature :: (IsFeature f, IsClass c) => JObject c -> f -> JBool
break :: HJScript ()
continue :: HJScript ()
true :: JBool
ifOp :: JBool -> Exp t -> Exp t -> Exp t
false :: JBool
int :: Int -> JInt
float :: Float -> JFloat
bool :: Bool -> JBool
string :: String -> JString
type HJScript = XMLGenT HJScript'
class IsHJScript a where
toHJScript :: a -> HJScript ()
outputBlock :: Block () -> HJScript ()
outputStmt :: Stmt () -> HJScript ()
evaluateHJScript :: HJScript (Exp t) -> Block t
evalHJScript :: HJScript t -> (t, Block ())
module Language.HJavaScript.Syntax
Documentation
preinc :: Num t => Var t -> HJScript ()Source
Incrementing or decrementing numbers.
postinc :: Num t => Var t -> HJScript ()Source
predec :: Num t => Var t -> HJScript ()Source
postdec :: Num t => Var t -> HJScript ()Source
(.+.) :: PlusOpType a => HJSJBinOperator a aSource
(.-.) :: Num a => HJSJBinOperator a aSource
(.*.) :: Num a => HJSJBinOperator a aSource
(./.) :: Num a => HJSJBinOperator a aSource
(.&&.) :: HJSJBinOperator Bool BoolSource
(.||.) :: HJSJBinOperator Bool BoolSource
(.==.) :: HJSJBinOperator a BoolSource
(.!=.) :: HJSJBinOperator a BoolSource
(.>.) :: Num a => HJSJBinOperator a BoolSource
(.<.) :: Num a => HJSJBinOperator a BoolSource
(.>=.) :: Num a => HJSJBinOperator a BoolSource
(.<=.) :: Num a => HJSJBinOperator a BoolSource
(.=.) :: Var t -> Exp t -> HJScript ()Source
Assignment
(.+=.) :: Num t => Var t -> Exp t -> HJScript ()Source
Plus with
(?) :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()Source
Alternative if-else syntax: isTrue ? (doA,doB)
(<|>) :: a -> a -> (a, a)Source
Providing a way of writing if-else expression as in: isTrue ? doA | doB
this :: IsClass c => Exp cSource
callMethod :: (IsDeref d, Args e t1) => String -> e -> d -> Exp t2Source
callVoidMethod :: (Args e t1, IsDeref a) => String -> e -> a -> HJScript ()Source
callProc :: Args e t => Exp (t -> t1) -> e -> HJScript ()Source
function :: (FormalParams a t, VarsToExps a e) => (e -> HJScript (Exp r)) -> HJScript (Exp (t -> r))Source
Anonymous function, returning an expression
procedure :: (FormalParams a t, VarsToExps a e) => (e -> HJScript ()) -> HJScript (Exp (t -> ()))Source
Anonymous void function.
functionDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript (Exp r)) -> HJScript ()Source
Function declaration
procedureDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript ()) -> HJScript ()Source
Procedure declaration.
for :: JInt -> JInt -> (JInt -> HJScript t) -> HJScript ()Source
for
while :: JBool -> HJScript t -> HJScript ()Source
while
doWhile :: HJScript t -> JBool -> HJScript ()Source
doWhile
doIf :: JBool -> HJScript t -> HJScript (Elses ()) -> HJScript ()Source
doIf
doElse :: HJScript () -> HJScript (Elses ())Source
doElse
doIfElse :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()Source
doIfElse
doIfNoElse :: Exp Bool -> HJScript () -> HJScript ()Source
Only an if branch
noElse :: HJScript (Elses ())Source
No else branch.
var :: HJScript (Var t)Source
varWith :: Exp t -> HJScript (Var t)Source
inVar :: Exp t -> HJScript (Exp t)Source
new :: (HasConstructor o e t, Args e t) => o -> e -> HJScript (Exp o)Source
(#) :: a -> (a -> b) -> bSource
Dereferencing operator, similar to the dot operator in JavaScript. E.g. document.forms => document # forms, same as forms document
(#.) :: (a -> b) -> (b -> c) -> a -> cSource
rec :: Exp a -> Exp b -> Exp (Rec a b)Source
first :: Exp (Rec a b) -> Exp aSource
second :: Exp (Rec a b) -> Exp bSource
x :: Exp (Rec a b) -> Exp aSource
y :: Exp (Rec a b) -> Exp bSource
(#!) :: JArray t -> JInt -> Var tSource
Accessing arrays.
jnull :: IsNullable t => Exp tSource
Null value
jShow :: JShow t => Exp t -> JStringSource
Converts to JString expression.
castObject :: (IsClass c1, IsClass c2) => JObject c1 -> JObject c2Source
Casting an JObject
hasFeature :: (IsFeature f, IsClass c) => JObject c -> f -> JBoolSource
Checks if an object is supported by browser
break :: HJScript ()Source
continue :: HJScript ()Source
true :: JBoolSource
ifOp :: JBool -> Exp t -> Exp t -> Exp tSource
false :: JBoolSource
int :: Int -> JIntSource
float :: Float -> JFloatSource
bool :: Bool -> JBoolSource
string :: String -> JStringSource
type HJScript = XMLGenT HJScript'Source
class IsHJScript a whereSource
IsHJscript class with function toHJScript for converting instances to HJScript ()
Methods
toHJScript :: a -> HJScript ()Source
show/hide Instances
outputBlock :: Block () -> HJScript ()Source
Adds a block
outputStmt :: Stmt () -> HJScript ()Source
Adds a statement
evaluateHJScript :: HJScript (Exp t) -> Block tSource
evalHJScript :: HJScript t -> (t, Block ())Source
Evaluate a script returning a tuple of the produced value and a block of code.
module Language.HJavaScript.Syntax
Produced by Haddock version 2.4.2