HJScript-0.7.0: HJScript is a Haskell EDSL for writing JavaScript programs.

LicenseBSD-style
MaintainerJoel Bjornson joel.bjornson@gmail.com, Niklas Broberg nibro@cs.chalmers.se
Stabilityexperimental
Safe HaskellNone
LanguageHaskell98

HJScript.Lang

Description

 

Synopsis

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 a infixl 6 Source

(.-.) :: Num a => HJSJBinOperator a a infixl 6 Source

(.*.) :: Num a => HJSJBinOperator a a infixl 7 Source

(./.) :: Num a => HJSJBinOperator a a infixl 7 Source

(.&&.) :: HJSJBinOperator Bool Bool infixr 3 Source

(.||.) :: HJSJBinOperator Bool Bool infixr 2 Source

(.==.) :: HJSJBinOperator a Bool infix 4 Source

(.!=.) :: HJSJBinOperator a Bool infix 4 Source

(.>.) :: Num a => HJSJBinOperator a Bool infix 4 Source

(.<.) :: Num a => HJSJBinOperator a Bool infix 4 Source

(.>=.) :: Num a => HJSJBinOperator a Bool infix 4 Source

(.<=.) :: Num a => HJSJBinOperator a Bool infix 4 Source

(.=.) :: Var t -> Exp t -> HJScript () infix 4 Source

Assignment

(.+=.) :: Num t => Var t -> Exp t -> HJScript () Source

Plus with

(?) :: JBool -> (HJScript t1, HJScript t2) -> HJScript () infix 4 Source

Alternative if-else syntax: isTrue ? (doA,doB)

(<|>) :: a -> a -> (a, a) infixl 8 Source

Providing a way of writing if-else expression as in: isTrue ? doA | doB

callMethod :: (IsDeref d, Args e t1) => String -> e -> d -> Exp t2 Source

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

forIn :: IsDeref d => d -> (JString -> HJScript ()) -> HJScript () Source

for (var in object) { .. }

forInVar :: IsDeref d => d -> (Var a -> HJScript ()) -> HJScript () Source

for (var in object) { .. }

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 () infix 4 Source

doIfElse

doIfNoElse :: Exp Bool -> HJScript () -> HJScript () infix 4 Source

Only an if branch

noElse :: HJScript (Elses ()) Source

No else branch.

new :: (HasConstructor o e t, Args e t) => o -> e -> HJScript (Exp o) Source

delete :: Var a -> Exp Bool Source

delete a property

Can only delete properties/variables that are created implicitly, not those declared with the var statement.

returns true if property was deleted. false if operation was not possible.

(#) :: a -> (a -> b) -> b infixl 8 Source

Dereferencing operator, similar to the dot operator in JavaScript. E.g. document.forms => document # forms, same as forms document

(#.) :: (a -> b) -> (b -> c) -> a -> c infixl 8 Source

rec :: Exp a -> Exp b -> Exp (Rec a b) Source

first :: Exp (Rec a b) -> Exp a Source

second :: Exp (Rec a b) -> Exp b Source

x :: Exp (Rec a b) -> Exp a Source

y :: Exp (Rec a b) -> Exp b Source

(#!) :: JArray t -> JInt -> Var t infixl 8 Source

Accessing arrays.

jnull :: IsNullable t => Exp t Source

Null value

jShow :: JShow t => Exp t -> JString Source

Converts to JString expression.

castObject :: (IsClass c1, IsClass c2) => JObject c1 -> JObject c2 Source

Casting an JObject

hasFeature :: (IsFeature f, IsClass c) => JObject c -> f -> JBool Source

Checks if an object is supported by browser

ifOp :: JBool -> Exp t -> Exp t -> Exp t Source

class IsHJScript a where Source

IsHJscript class with function toHJScript for converting instances to HJScript ()

Methods

toHJScript :: a -> HJScript () Source

outputBlock :: Block () -> HJScript () Source

Adds a block

outputStmt :: Stmt () -> HJScript () Source

Adds a statement

evalHJScript :: HJScript t -> (t, Block ()) Source

Evaluate a script returning a tuple of the produced value and a block of code.