language-javascript-0.6.0.9: Parser for JavaScript

Safe HaskellSafe
LanguageHaskell98

Language.JavaScript.Parser.AST

Synopsis

Documentation

data JSExpression #

Constructors

JSIdentifier !JSAnnot !String

Terminals

JSDecimal !JSAnnot !String 
JSLiteral !JSAnnot !String 
JSHexInteger !JSAnnot !String 
JSOctal !JSAnnot !String 
JSStringLiteral !JSAnnot !String 
JSRegEx !JSAnnot !String 
JSArrayLiteral !JSAnnot ![JSArrayElement] !JSAnnot

lb, contents, rb

JSAssignExpression !JSExpression !JSAssignOp !JSExpression

lhs, assignop, rhs

JSCallExpression !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot

expr, bl, args, rb

JSCallExpressionDot !JSExpression !JSAnnot !JSExpression

expr, dot, expr

JSCallExpressionSquare !JSExpression !JSAnnot !JSExpression !JSAnnot

expr, [, expr, ]

JSCommaExpression !JSExpression !JSAnnot !JSExpression

expression components

JSExpressionBinary !JSExpression !JSBinOp !JSExpression

lhs, op, rhs

JSExpressionParen !JSAnnot !JSExpression !JSAnnot

lb,expression,rb

JSExpressionPostfix !JSExpression !JSUnaryOp

expression, operator

JSExpressionTernary !JSExpression !JSAnnot !JSExpression !JSAnnot !JSExpression

cond, ?, trueval, :, falseval

JSFunctionExpression !JSAnnot !JSIdent !JSAnnot !(JSCommaList JSIdent) !JSAnnot !JSBlock

fn,name,lb, parameter list,rb,block`

JSMemberDot !JSExpression !JSAnnot !JSExpression

firstpart, dot, name

JSMemberExpression !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot 
JSMemberNew !JSAnnot !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot

new, name, lb, args, rb

JSMemberSquare !JSExpression !JSAnnot !JSExpression !JSAnnot

firstpart, lb, expr, rb

JSNewExpression !JSAnnot !JSExpression

new, expr

JSObjectLiteral !JSAnnot !JSObjectPropertyList !JSAnnot

lbrace contents rbrace

JSUnaryExpression !JSUnaryOp !JSExpression 
JSVarInitExpression !JSExpression !JSVarInitializer

identifier, initializer

Instances

Eq JSExpression # 
Data JSExpression # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSExpression -> c JSExpression #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSExpression #

toConstr :: JSExpression -> Constr #

dataTypeOf :: JSExpression -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSExpression) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSExpression) #

gmapT :: (forall b. Data b => b -> b) -> JSExpression -> JSExpression #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSExpression -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSExpression -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSExpression -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSExpression -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSExpression -> m JSExpression #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSExpression -> m JSExpression #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSExpression -> m JSExpression #

Show JSExpression # 

data JSAnnot #

Constructors

JSAnnot !TokenPosn ![CommentAnnotation]

Annotation: position and comment/whitespace information

JSAnnotSpace

A single space character

JSNoAnnot

No annotation

Instances

Eq JSAnnot # 

Methods

(==) :: JSAnnot -> JSAnnot -> Bool #

(/=) :: JSAnnot -> JSAnnot -> Bool #

Data JSAnnot # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSAnnot -> c JSAnnot #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSAnnot #

toConstr :: JSAnnot -> Constr #

dataTypeOf :: JSAnnot -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSAnnot) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSAnnot) #

gmapT :: (forall b. Data b => b -> b) -> JSAnnot -> JSAnnot #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSAnnot -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSAnnot -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSAnnot -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSAnnot -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSAnnot -> m JSAnnot #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAnnot -> m JSAnnot #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAnnot -> m JSAnnot #

Show JSAnnot # 

data JSBinOp #

Instances

Eq JSBinOp # 

Methods

(==) :: JSBinOp -> JSBinOp -> Bool #

(/=) :: JSBinOp -> JSBinOp -> Bool #

Data JSBinOp # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSBinOp -> c JSBinOp #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSBinOp #

toConstr :: JSBinOp -> Constr #

dataTypeOf :: JSBinOp -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSBinOp) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSBinOp) #

gmapT :: (forall b. Data b => b -> b) -> JSBinOp -> JSBinOp #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSBinOp -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSBinOp -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSBinOp -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSBinOp -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSBinOp -> m JSBinOp #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSBinOp -> m JSBinOp #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSBinOp -> m JSBinOp #

Show JSBinOp # 

data JSUnaryOp #

Instances

Eq JSUnaryOp # 
Data JSUnaryOp # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSUnaryOp -> c JSUnaryOp #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSUnaryOp #

toConstr :: JSUnaryOp -> Constr #

dataTypeOf :: JSUnaryOp -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSUnaryOp) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSUnaryOp) #

gmapT :: (forall b. Data b => b -> b) -> JSUnaryOp -> JSUnaryOp #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSUnaryOp -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSUnaryOp -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSUnaryOp -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSUnaryOp -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSUnaryOp -> m JSUnaryOp #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSUnaryOp -> m JSUnaryOp #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSUnaryOp -> m JSUnaryOp #

Show JSUnaryOp # 

data JSSemi #

Constructors

JSSemi !JSAnnot 
JSSemiAuto 

Instances

Eq JSSemi # 

Methods

(==) :: JSSemi -> JSSemi -> Bool #

(/=) :: JSSemi -> JSSemi -> Bool #

Data JSSemi # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSSemi -> c JSSemi #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSSemi #

toConstr :: JSSemi -> Constr #

dataTypeOf :: JSSemi -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSSemi) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSSemi) #

gmapT :: (forall b. Data b => b -> b) -> JSSemi -> JSSemi #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSSemi -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSSemi -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSSemi -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSSemi -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSSemi -> m JSSemi #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSSemi -> m JSSemi #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSSemi -> m JSSemi #

Show JSSemi # 

data JSAssignOp #

Instances

Eq JSAssignOp # 
Data JSAssignOp # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSAssignOp -> c JSAssignOp #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSAssignOp #

toConstr :: JSAssignOp -> Constr #

dataTypeOf :: JSAssignOp -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSAssignOp) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSAssignOp) #

gmapT :: (forall b. Data b => b -> b) -> JSAssignOp -> JSAssignOp #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSAssignOp -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSAssignOp -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSAssignOp -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSAssignOp -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSAssignOp -> m JSAssignOp #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAssignOp -> m JSAssignOp #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAssignOp -> m JSAssignOp #

Show JSAssignOp # 

data JSTryCatch #

Constructors

JSCatch !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSBlock

catch,lb,ident,rb,block

JSCatchIf !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSExpression !JSAnnot !JSBlock

catch,lb,ident,if,expr,rb,block

Instances

Eq JSTryCatch # 
Data JSTryCatch # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSTryCatch -> c JSTryCatch #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSTryCatch #

toConstr :: JSTryCatch -> Constr #

dataTypeOf :: JSTryCatch -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSTryCatch) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSTryCatch) #

gmapT :: (forall b. Data b => b -> b) -> JSTryCatch -> JSTryCatch #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSTryCatch -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSTryCatch -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSTryCatch -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSTryCatch -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSTryCatch -> m JSTryCatch #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSTryCatch -> m JSTryCatch #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSTryCatch -> m JSTryCatch #

Show JSTryCatch # 

data JSTryFinally #

Constructors

JSFinally !JSAnnot !JSBlock

finally,block

JSNoFinally 

Instances

Eq JSTryFinally # 
Data JSTryFinally # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSTryFinally -> c JSTryFinally #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSTryFinally #

toConstr :: JSTryFinally -> Constr #

dataTypeOf :: JSTryFinally -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSTryFinally) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSTryFinally) #

gmapT :: (forall b. Data b => b -> b) -> JSTryFinally -> JSTryFinally #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSTryFinally -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSTryFinally -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSTryFinally -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSTryFinally -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSTryFinally -> m JSTryFinally #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSTryFinally -> m JSTryFinally #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSTryFinally -> m JSTryFinally #

Show JSTryFinally # 

data JSStatement #

Constructors

JSStatementBlock !JSAnnot ![JSStatement] !JSAnnot !JSSemi

lbrace, stmts, rbrace, autosemi

JSBreak !JSAnnot !JSIdent !JSSemi

break,optional identifier, autosemi

JSConstant !JSAnnot !(JSCommaList JSExpression) !JSSemi

const, decl, autosemi

JSContinue !JSAnnot !JSIdent !JSSemi

continue, optional identifier,autosemi

JSDoWhile !JSAnnot !JSStatement !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSSemi

do,stmt,while,lb,expr,rb,autosemi

JSFor !JSAnnot !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSStatement

for,lb,expr,semi,expr,semi,expr,rb.stmt

JSForIn !JSAnnot !JSAnnot !JSExpression !JSBinOp !JSExpression !JSAnnot !JSStatement

for,lb,expr,in,expr,rb,stmt

JSForVar !JSAnnot !JSAnnot !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSStatement

for,lb,var,vardecl,semi,expr,semi,expr,rb,stmt

JSForVarIn !JSAnnot !JSAnnot !JSAnnot !JSExpression !JSBinOp !JSExpression !JSAnnot !JSStatement

for,lb,var,vardecl,in,expr,rb,stmt

JSFunction !JSAnnot !JSIdent !JSAnnot !(JSCommaList JSIdent) !JSAnnot !JSBlock !JSSemi

fn,name, lb,parameter list,rb,block,autosemi

JSIf !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement

if,(,expr,),stmt

JSIfElse !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement !JSAnnot !JSStatement

if,(,expr,),stmt,else,rest

JSLabelled !JSIdent !JSAnnot !JSStatement

identifier,colon,stmt

JSEmptyStatement !JSAnnot 
JSExpressionStatement !JSExpression !JSSemi 
JSAssignStatement !JSExpression !JSAssignOp !JSExpression !JSSemi

lhs, assignop, rhs, autosemi

JSMethodCall !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSSemi 
JSReturn !JSAnnot !(Maybe JSExpression) !JSSemi

optional expression,autosemi

JSSwitch !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSAnnot ![JSSwitchParts] !JSAnnot !JSSemi

switch,lb,expr,rb,caseblock,autosemi

JSThrow !JSAnnot !JSExpression !JSSemi

throw val autosemi

JSTry !JSAnnot !JSBlock ![JSTryCatch] !JSTryFinally

try,block,catches,finally

JSVariable !JSAnnot !(JSCommaList JSExpression) !JSSemi

var|const, decl, autosemi

JSWhile !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement

while,lb,expr,rb,stmt

JSWith !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement !JSSemi

with,lb,expr,rb,stmt list

Instances

Eq JSStatement # 
Data JSStatement # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSStatement -> c JSStatement #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSStatement #

toConstr :: JSStatement -> Constr #

dataTypeOf :: JSStatement -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSStatement) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSStatement) #

gmapT :: (forall b. Data b => b -> b) -> JSStatement -> JSStatement #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSStatement -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSStatement -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSStatement -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSStatement -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSStatement -> m JSStatement #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSStatement -> m JSStatement #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSStatement -> m JSStatement #

Show JSStatement # 

data JSBlock #

Constructors

JSBlock !JSAnnot ![JSStatement] !JSAnnot

lbrace, stmts, rbrace

Instances

Eq JSBlock # 

Methods

(==) :: JSBlock -> JSBlock -> Bool #

(/=) :: JSBlock -> JSBlock -> Bool #

Data JSBlock # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSBlock -> c JSBlock #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSBlock #

toConstr :: JSBlock -> Constr #

dataTypeOf :: JSBlock -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSBlock) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSBlock) #

gmapT :: (forall b. Data b => b -> b) -> JSBlock -> JSBlock #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSBlock -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSBlock -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSBlock -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSBlock -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSBlock -> m JSBlock #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSBlock -> m JSBlock #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSBlock -> m JSBlock #

Show JSBlock # 

data JSSwitchParts #

Constructors

JSCase !JSAnnot !JSExpression !JSAnnot ![JSStatement]

expr,colon,stmtlist

JSDefault !JSAnnot !JSAnnot ![JSStatement]

colon,stmtlist

Instances

Eq JSSwitchParts # 
Data JSSwitchParts # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSSwitchParts -> c JSSwitchParts #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSSwitchParts #

toConstr :: JSSwitchParts -> Constr #

dataTypeOf :: JSSwitchParts -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSSwitchParts) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSSwitchParts) #

gmapT :: (forall b. Data b => b -> b) -> JSSwitchParts -> JSSwitchParts #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSSwitchParts -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSSwitchParts -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSSwitchParts -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSSwitchParts -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSSwitchParts -> m JSSwitchParts #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSSwitchParts -> m JSSwitchParts #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSSwitchParts -> m JSSwitchParts #

Show JSSwitchParts # 

data JSAST #

Instances

Eq JSAST # 

Methods

(==) :: JSAST -> JSAST -> Bool #

(/=) :: JSAST -> JSAST -> Bool #

Data JSAST # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSAST -> c JSAST #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSAST #

toConstr :: JSAST -> Constr #

dataTypeOf :: JSAST -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSAST) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSAST) #

gmapT :: (forall b. Data b => b -> b) -> JSAST -> JSAST #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSAST -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSAST -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSAST -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSAST -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSAST -> m JSAST #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAST -> m JSAST #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAST -> m JSAST #

Show JSAST # 

Methods

showsPrec :: Int -> JSAST -> ShowS #

show :: JSAST -> String #

showList :: [JSAST] -> ShowS #

data JSObjectProperty #

Constructors

JSPropertyAccessor !JSAccessor !JSPropertyName !JSAnnot ![JSExpression] !JSAnnot !JSBlock

(get|set), name, lb, params, rb, block

JSPropertyNameandValue !JSPropertyName !JSAnnot ![JSExpression]

name, colon, value

Instances

Eq JSObjectProperty # 
Data JSObjectProperty # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSObjectProperty -> c JSObjectProperty #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSObjectProperty #

toConstr :: JSObjectProperty -> Constr #

dataTypeOf :: JSObjectProperty -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSObjectProperty) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSObjectProperty) #

gmapT :: (forall b. Data b => b -> b) -> JSObjectProperty -> JSObjectProperty #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSObjectProperty -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSObjectProperty -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSObjectProperty -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSObjectProperty -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSObjectProperty -> m JSObjectProperty #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSObjectProperty -> m JSObjectProperty #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSObjectProperty -> m JSObjectProperty #

Show JSObjectProperty # 

data JSPropertyName #

Instances

Eq JSPropertyName # 
Data JSPropertyName # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSPropertyName -> c JSPropertyName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSPropertyName #

toConstr :: JSPropertyName -> Constr #

dataTypeOf :: JSPropertyName -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSPropertyName) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSPropertyName) #

gmapT :: (forall b. Data b => b -> b) -> JSPropertyName -> JSPropertyName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSPropertyName -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSPropertyName -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSPropertyName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSPropertyName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSPropertyName -> m JSPropertyName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSPropertyName -> m JSPropertyName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSPropertyName -> m JSPropertyName #

Show JSPropertyName # 

data JSAccessor #

Accessors for JSObjectProperty is either get or set.

Instances

Eq JSAccessor # 
Data JSAccessor # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSAccessor -> c JSAccessor #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSAccessor #

toConstr :: JSAccessor -> Constr #

dataTypeOf :: JSAccessor -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSAccessor) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSAccessor) #

gmapT :: (forall b. Data b => b -> b) -> JSAccessor -> JSAccessor #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSAccessor -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSAccessor -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSAccessor -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSAccessor -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSAccessor -> m JSAccessor #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAccessor -> m JSAccessor #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSAccessor -> m JSAccessor #

Show JSAccessor # 

data JSIdent #

Instances

Eq JSIdent # 

Methods

(==) :: JSIdent -> JSIdent -> Bool #

(/=) :: JSIdent -> JSIdent -> Bool #

Data JSIdent # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSIdent -> c JSIdent #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSIdent #

toConstr :: JSIdent -> Constr #

dataTypeOf :: JSIdent -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSIdent) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSIdent) #

gmapT :: (forall b. Data b => b -> b) -> JSIdent -> JSIdent #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSIdent -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSIdent -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSIdent -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSIdent -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSIdent -> m JSIdent #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSIdent -> m JSIdent #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSIdent -> m JSIdent #

Show JSIdent # 

data JSVarInitializer #

Constructors

JSVarInit !JSAnnot !JSExpression

assignop, initializer

JSVarInitNone 

Instances

Eq JSVarInitializer # 
Data JSVarInitializer # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSVarInitializer -> c JSVarInitializer #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSVarInitializer #

toConstr :: JSVarInitializer -> Constr #

dataTypeOf :: JSVarInitializer -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSVarInitializer) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSVarInitializer) #

gmapT :: (forall b. Data b => b -> b) -> JSVarInitializer -> JSVarInitializer #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSVarInitializer -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSVarInitializer -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSVarInitializer -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSVarInitializer -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSVarInitializer -> m JSVarInitializer #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSVarInitializer -> m JSVarInitializer #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSVarInitializer -> m JSVarInitializer #

Show JSVarInitializer # 

data JSArrayElement #

Instances

Eq JSArrayElement # 
Data JSArrayElement # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSArrayElement -> c JSArrayElement #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c JSArrayElement #

toConstr :: JSArrayElement -> Constr #

dataTypeOf :: JSArrayElement -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c JSArrayElement) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c JSArrayElement) #

gmapT :: (forall b. Data b => b -> b) -> JSArrayElement -> JSArrayElement #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSArrayElement -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSArrayElement -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSArrayElement -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSArrayElement -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSArrayElement -> m JSArrayElement #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSArrayElement -> m JSArrayElement #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSArrayElement -> m JSArrayElement #

Show JSArrayElement # 

data JSCommaList a #

Constructors

JSLCons !(JSCommaList a) !JSAnnot !a

head, comma, a

JSLOne !a

single element (no comma)

JSLNil 

Instances

Eq a => Eq (JSCommaList a) # 
Data a => Data (JSCommaList a) # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSCommaList a -> c (JSCommaList a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (JSCommaList a) #

toConstr :: JSCommaList a -> Constr #

dataTypeOf :: JSCommaList a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (JSCommaList a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (JSCommaList a)) #

gmapT :: (forall b. Data b => b -> b) -> JSCommaList a -> JSCommaList a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSCommaList a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSCommaList a -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSCommaList a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSCommaList a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSCommaList a -> m (JSCommaList a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSCommaList a -> m (JSCommaList a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSCommaList a -> m (JSCommaList a) #

Show a => Show (JSCommaList a) # 

data JSCommaTrailingList a #

Constructors

JSCTLComma !(JSCommaList a) !JSAnnot

list, trailing comma

JSCTLNone !(JSCommaList a)

list

Instances

Eq a => Eq (JSCommaTrailingList a) # 
Data a => Data (JSCommaTrailingList a) # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JSCommaTrailingList a -> c (JSCommaTrailingList a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (JSCommaTrailingList a) #

toConstr :: JSCommaTrailingList a -> Constr #

dataTypeOf :: JSCommaTrailingList a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (JSCommaTrailingList a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (JSCommaTrailingList a)) #

gmapT :: (forall b. Data b => b -> b) -> JSCommaTrailingList a -> JSCommaTrailingList a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JSCommaTrailingList a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JSCommaTrailingList a -> r #

gmapQ :: (forall d. Data d => d -> u) -> JSCommaTrailingList a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> JSCommaTrailingList a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> JSCommaTrailingList a -> m (JSCommaTrailingList a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JSCommaTrailingList a -> m (JSCommaTrailingList a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JSCommaTrailingList a -> m (JSCommaTrailingList a) #

Show a => Show (JSCommaTrailingList a) # 

showStripped :: JSAST -> String #

Show the AST elements stipped of their JSAnnot data.