IRTS.JavaScript.AST

idris-1.3.4: Functional Programming Language with Dependent Types

License | BSD3
Maintainer | The Idris Community.
Safe Haskell | Safe-Inferred
Language | Haskell2010

IRTS.JavaScript.AST

Description

# Documentation

data JsExpr #

Constructors

JsNull |
JsUndefined |
JsThis |
JsLambda [Text] JsStmt |
JsApp JsExpr [JsExpr] |
JsNew JsExpr [JsExpr] |
JsPart JsExpr Text |
JsMethod JsExpr Text [JsExpr] |
JsVar Text |
JsArrayProj JsExpr JsExpr |
JsObj [(Text, JsExpr)] |
JsProp JsExpr Text |
JsInt Int |
JsBool Bool |
JsInteger Integer |
JsDouble Double |
JsStr String |
JsArray [JsExpr] |
JsErrorExp JsExpr |
JsUniOp Text JsExpr |
JsBinOp Text JsExpr JsExpr |
JsForeign Text [JsExpr] |
JsB2I JsExpr |
JsForce JsExpr |

#### Instances

Instances details

Data JsExpr # |
Instance details Defined in IRTS.JavaScript.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JsExpr -> c JsExpr # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JsExpr # toConstr :: JsExpr -> Constr # dataTypeOf :: JsExpr -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c JsExpr) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JsExpr) # gmapT :: (forall b. Data b => b -> b) -> JsExpr -> JsExpr # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JsExpr -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JsExpr -> r # gmapQ :: (forall d. Data d => d -> u) -> JsExpr -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> JsExpr -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> JsExpr -> m JsExpr # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JsExpr -> m JsExpr # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JsExpr -> m JsExpr #
Show JsExpr # |
Instance details Defined in IRTS.JavaScript.AST Methods showsPrec :: Int -> JsExpr -> ShowS # show :: JsExpr -> String # showList :: [JsExpr] -> ShowS #
Eq JsExpr # |
Instance details Defined in IRTS.JavaScript.AST Methods (==) :: JsExpr -> JsExpr -> Bool # (/=) :: JsExpr -> JsExpr -> Bool #

data JsStmt #

Constructors

JsEmpty |
JsComment Text |
JsExprStmt JsExpr |
JsFun Text [Text] JsStmt |
JsSeq JsStmt JsStmt |
JsReturn JsExpr |
JsDecVar Text JsExpr |
JsDecConst Text JsExpr |
JsDecLet Text JsExpr |
JsSet JsExpr JsExpr |
JsIf JsExpr JsStmt (Maybe JsStmt) |
JsSwitchCase JsExpr [(JsExpr, JsStmt)] (Maybe JsStmt) |
JsError JsExpr |
JsForever JsStmt |
JsContinue |
JsBreak |

#### Instances

Instances details

Data JsStmt # |
Instance details Defined in IRTS.JavaScript.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JsStmt -> c JsStmt # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JsStmt # toConstr :: JsStmt -> Constr # dataTypeOf :: JsStmt -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c JsStmt) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JsStmt) # gmapT :: (forall b. Data b => b -> b) -> JsStmt -> JsStmt # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JsStmt -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JsStmt -> r # gmapQ :: (forall d. Data d => d -> u) -> JsStmt -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> JsStmt -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> JsStmt -> m JsStmt # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JsStmt -> m JsStmt # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JsStmt -> m JsStmt #
Show JsStmt # |
Instance details Defined in IRTS.JavaScript.AST Methods showsPrec :: Int -> JsStmt -> ShowS # show :: JsStmt -> String # showList :: [JsStmt] -> ShowS #
Eq JsStmt # |
Instance details Defined in IRTS.JavaScript.AST Methods (==) :: JsStmt -> JsStmt -> Bool # (/=) :: JsStmt -> JsStmt -> Bool #

jsAst2Text :: JsExpr -> Text #

jsStmt2Text :: JsStmt -> Text #

jsLazy :: JsExpr -> JsExpr #

jsCurryLam :: [Text] -> JsExpr -> JsExpr #

jsCurryApp :: JsExpr -> [JsExpr] -> JsExpr #

jsAppN :: Text -> [JsExpr] -> JsExpr #

jsExpr2Stmt :: JsExpr -> JsStmt #

jsStmt2Expr :: JsStmt -> JsExpr #

jsSetVar :: Text -> JsExpr -> JsStmt #