language-javascript-0.6.0.10: Parser for JavaScript

Safe Haskell | Safe
Language | Haskell98

Language.JavaScript.Parser.AST

Synopsis

- data JSExpression
  - = JSIdentifier !JSAnnot !String
  - | JSDecimal !JSAnnot !String
  - | JSLiteral !JSAnnot !String
  - | JSHexInteger !JSAnnot !String
  - | JSOctal !JSAnnot !String
  - | JSStringLiteral !JSAnnot !String
  - | JSRegEx !JSAnnot !String
  - | JSArrayLiteral !JSAnnot ![JSArrayElement] !JSAnnot
  - | JSAssignExpression !JSExpression !JSAssignOp !JSExpression
  - | JSCallExpression !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot
  - | JSCallExpressionDot !JSExpression !JSAnnot !JSExpression
  - | JSCallExpressionSquare !JSExpression !JSAnnot !JSExpression !JSAnnot
  - | JSCommaExpression !JSExpression !JSAnnot !JSExpression
  - | JSExpressionBinary !JSExpression !JSBinOp !JSExpression
  - | JSExpressionParen !JSAnnot !JSExpression !JSAnnot
  - | JSExpressionPostfix !JSExpression !JSUnaryOp
  - | JSExpressionTernary !JSExpression !JSAnnot !JSExpression !JSAnnot !JSExpression
  - | JSFunctionExpression !JSAnnot !JSIdent !JSAnnot !(JSCommaList JSIdent) !JSAnnot !JSBlock
  - | JSMemberDot !JSExpression !JSAnnot !JSExpression
  - | JSMemberExpression !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot
  - | JSMemberNew !JSAnnot !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot
  - | JSMemberSquare !JSExpression !JSAnnot !JSExpression !JSAnnot
  - | JSNewExpression !JSAnnot !JSExpression
  - | JSObjectLiteral !JSAnnot !JSObjectPropertyList !JSAnnot
  - | JSUnaryExpression !JSUnaryOp !JSExpression
  - | JSVarInitExpression !JSExpression !JSVarInitializer
- data JSAnnot
  - = JSAnnot !TokenPosn ![CommentAnnotation]
  - | JSAnnotSpace
  - | JSNoAnnot
- data JSBinOp
  - = JSBinOpAnd !JSAnnot
  - | JSBinOpBitAnd !JSAnnot
  - | JSBinOpBitOr !JSAnnot
  - | JSBinOpBitXor !JSAnnot
  - | JSBinOpDivide !JSAnnot
  - | JSBinOpEq !JSAnnot
  - | JSBinOpGe !JSAnnot
  - | JSBinOpGt !JSAnnot
  - | JSBinOpIn !JSAnnot
  - | JSBinOpInstanceOf !JSAnnot
  - | JSBinOpLe !JSAnnot
  - | JSBinOpLsh !JSAnnot
  - | JSBinOpLt !JSAnnot
  - | JSBinOpMinus !JSAnnot
  - | JSBinOpMod !JSAnnot
  - | JSBinOpNeq !JSAnnot
  - | JSBinOpOr !JSAnnot
  - | JSBinOpPlus !JSAnnot
  - | JSBinOpRsh !JSAnnot
  - | JSBinOpStrictEq !JSAnnot
  - | JSBinOpStrictNeq !JSAnnot
  - | JSBinOpTimes !JSAnnot
  - | JSBinOpUrsh !JSAnnot
- data JSUnaryOp
  - = JSUnaryOpDecr !JSAnnot
  - | JSUnaryOpDelete !JSAnnot
  - | JSUnaryOpIncr !JSAnnot
  - | JSUnaryOpMinus !JSAnnot
  - | JSUnaryOpNot !JSAnnot
  - | JSUnaryOpPlus !JSAnnot
  - | JSUnaryOpTilde !JSAnnot
  - | JSUnaryOpTypeof !JSAnnot
  - | JSUnaryOpVoid !JSAnnot
- data JSSemi
  - = JSSemi !JSAnnot
  - | JSSemiAuto
- data JSAssignOp
  - = JSAssign !JSAnnot
  - | JSTimesAssign !JSAnnot
  - | JSDivideAssign !JSAnnot
  - | JSModAssign !JSAnnot
  - | JSPlusAssign !JSAnnot
  - | JSMinusAssign !JSAnnot
  - | JSLshAssign !JSAnnot
  - | JSRshAssign !JSAnnot
  - | JSUrshAssign !JSAnnot
  - | JSBwAndAssign !JSAnnot
  - | JSBwXorAssign !JSAnnot
  - | JSBwOrAssign !JSAnnot
- data JSTryCatch
  - = JSCatch !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSBlock
  - | JSCatchIf !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSExpression !JSAnnot !JSBlock
- data JSTryFinally
  - = JSFinally !JSAnnot !JSBlock
  - | JSNoFinally
- data JSStatement
  - = JSStatementBlock !JSAnnot ![JSStatement] !JSAnnot !JSSemi
  - | JSBreak !JSAnnot !JSIdent !JSSemi
  - | JSConstant !JSAnnot !(JSCommaList JSExpression) !JSSemi
  - | JSContinue !JSAnnot !JSIdent !JSSemi
  - | JSDoWhile !JSAnnot !JSStatement !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSSemi
  - | JSFor !JSAnnot !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSStatement
  - | JSForIn !JSAnnot !JSAnnot !JSExpression !JSBinOp !JSExpression !JSAnnot !JSStatement
  - | JSForVar !JSAnnot !JSAnnot !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSStatement
  - | JSForVarIn !JSAnnot !JSAnnot !JSAnnot !JSExpression !JSBinOp !JSExpression !JSAnnot !JSStatement
  - | JSFunction !JSAnnot !JSIdent !JSAnnot !(JSCommaList JSIdent) !JSAnnot !JSBlock !JSSemi
  - | JSIf !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement
  - | JSIfElse !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement !JSAnnot !JSStatement
  - | JSLabelled !JSIdent !JSAnnot !JSStatement
  - | JSEmptyStatement !JSAnnot
  - | JSExpressionStatement !JSExpression !JSSemi
  - | JSAssignStatement !JSExpression !JSAssignOp !JSExpression !JSSemi
  - | JSMethodCall !JSExpression !JSAnnot !(JSCommaList JSExpression) !JSAnnot !JSSemi
  - | JSReturn !JSAnnot !(Maybe JSExpression) !JSSemi
  - | JSSwitch !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSAnnot ![JSSwitchParts] !JSAnnot !JSSemi
  - | JSThrow !JSAnnot !JSExpression !JSSemi
  - | JSTry !JSAnnot !JSBlock ![JSTryCatch] !JSTryFinally
  - | JSVariable !JSAnnot !(JSCommaList JSExpression) !JSSemi
  - | JSWhile !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement
  - | JSWith !JSAnnot !JSAnnot !JSExpression !JSAnnot !JSStatement !JSSemi
- data JSBlock = JSBlock !JSAnnot ![JSStatement] !JSAnnot
- data JSSwitchParts
  - = JSCase !JSAnnot !JSExpression !JSAnnot ![JSStatement]
  - | JSDefault !JSAnnot !JSAnnot ![JSStatement]
- data JSAST
  - = JSAstProgram ![JSStatement] !JSAnnot
  - | JSAstStatement !JSStatement !JSAnnot
  - | JSAstExpression !JSExpression !JSAnnot
  - | JSAstLiteral !JSExpression !JSAnnot
- data JSObjectProperty
  - = JSPropertyAccessor !JSAccessor !JSPropertyName !JSAnnot ![JSExpression] !JSAnnot !JSBlock
  - | JSPropertyNameandValue !JSPropertyName !JSAnnot ![JSExpression]
- data JSPropertyName
  - = JSPropertyIdent !JSAnnot !String
  - | JSPropertyString !JSAnnot !String
  - | JSPropertyNumber !JSAnnot !String
- type JSObjectPropertyList = JSCommaTrailingList JSObjectProperty
- data JSAccessor
  - = JSAccessorGet !JSAnnot
  - | JSAccessorSet !JSAnnot
- data JSIdent
  - = JSIdentName !JSAnnot !String
  - | JSIdentNone
- data JSVarInitializer
  - = JSVarInit !JSAnnot !JSExpression
  - | JSVarInitNone
- data JSArrayElement
  - = JSArrayElement !JSExpression
  - | JSArrayComma !JSAnnot
- data JSCommaList a
  - = JSLCons !(JSCommaList a) !JSAnnot !a
  - | JSLOne !a
  - | JSLNil
- data JSCommaTrailingList a
  - = JSCTLComma !(JSCommaList a) !JSAnnot
  - | JSCTLNone !(JSCommaList a)
- binOpEq :: JSBinOp -> JSBinOp -> Bool
- showStripped :: JSAST -> String

# 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 # |
Methods (==) :: JSExpression -> JSExpression -> Bool # (/=) :: JSExpression -> JSExpression -> Bool #
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 # |
Methods showsPrec :: Int -> JSExpression -> ShowS # show :: JSExpression -> String # showList :: [JSExpression] -> ShowS #

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 # |
Methods showsPrec :: Int -> JSAnnot -> ShowS # show :: JSAnnot -> String # showList :: [JSAnnot] -> ShowS #

data JSBinOp #

Constructors

JSBinOpAnd !JSAnnot |
JSBinOpBitAnd !JSAnnot |
JSBinOpBitOr !JSAnnot |
JSBinOpBitXor !JSAnnot |
JSBinOpDivide !JSAnnot |
JSBinOpEq !JSAnnot |
JSBinOpGe !JSAnnot |
JSBinOpGt !JSAnnot |
JSBinOpIn !JSAnnot |
JSBinOpInstanceOf !JSAnnot |
JSBinOpLe !JSAnnot |
JSBinOpLsh !JSAnnot |
JSBinOpLt !JSAnnot |
JSBinOpMinus !JSAnnot |
JSBinOpMod !JSAnnot |
JSBinOpNeq !JSAnnot |
JSBinOpOr !JSAnnot |
JSBinOpPlus !JSAnnot |
JSBinOpRsh !JSAnnot |
JSBinOpStrictEq !JSAnnot |
JSBinOpStrictNeq !JSAnnot |
JSBinOpTimes !JSAnnot |
JSBinOpUrsh !JSAnnot |

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 # |
Methods showsPrec :: Int -> JSBinOp -> ShowS # show :: JSBinOp -> String # showList :: [JSBinOp] -> ShowS #

data JSUnaryOp #

Constructors

JSUnaryOpDecr !JSAnnot |
JSUnaryOpDelete !JSAnnot |
JSUnaryOpIncr !JSAnnot |
JSUnaryOpMinus !JSAnnot |
JSUnaryOpNot !JSAnnot |
JSUnaryOpPlus !JSAnnot |
JSUnaryOpTilde !JSAnnot |
JSUnaryOpTypeof !JSAnnot |
JSUnaryOpVoid !JSAnnot |

Instances

Eq JSUnaryOp # |
Methods (==) :: JSUnaryOp -> JSUnaryOp -> Bool # (/=) :: JSUnaryOp -> JSUnaryOp -> Bool #
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 # |
Methods showsPrec :: Int -> JSUnaryOp -> ShowS # show :: JSUnaryOp -> String # showList :: [JSUnaryOp] -> ShowS #

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 # |
Methods showsPrec :: Int -> JSSemi -> ShowS # show :: JSSemi -> String # showList :: [JSSemi] -> ShowS #

data JSAssignOp #

Constructors

JSAssign !JSAnnot |
JSTimesAssign !JSAnnot |
JSDivideAssign !JSAnnot |
JSModAssign !JSAnnot |
JSPlusAssign !JSAnnot |
JSMinusAssign !JSAnnot |
JSLshAssign !JSAnnot |
JSRshAssign !JSAnnot |
JSUrshAssign !JSAnnot |
JSBwAndAssign !JSAnnot |
JSBwXorAssign !JSAnnot |
JSBwOrAssign !JSAnnot |

Instances

Eq JSAssignOp # |
Methods (==) :: JSAssignOp -> JSAssignOp -> Bool # (/=) :: JSAssignOp -> JSAssignOp -> Bool #
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 # |
Methods showsPrec :: Int -> JSAssignOp -> ShowS # show :: JSAssignOp -> String # showList :: [JSAssignOp] -> ShowS #

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 # |
Methods (==) :: JSTryCatch -> JSTryCatch -> Bool # (/=) :: JSTryCatch -> JSTryCatch -> Bool #
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 # |
Methods showsPrec :: Int -> JSTryCatch -> ShowS # show :: JSTryCatch -> String # showList :: [JSTryCatch] -> ShowS #

data JSTryFinally #

Constructors

JSFinally !JSAnnot !JSBlock | finally,block
JSNoFinally |

Instances

Eq JSTryFinally # |
Methods (==) :: JSTryFinally -> JSTryFinally -> Bool # (/=) :: JSTryFinally -> JSTryFinally -> Bool #
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 # |
Methods showsPrec :: Int -> JSTryFinally -> ShowS # show :: JSTryFinally -> String # showList :: [JSTryFinally] -> ShowS #

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 # |
Methods (==) :: JSStatement -> JSStatement -> Bool # (/=) :: JSStatement -> JSStatement -> Bool #
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 # |
Methods showsPrec :: Int -> JSStatement -> ShowS # show :: JSStatement -> String # showList :: [JSStatement] -> ShowS #

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 # |
Methods showsPrec :: Int -> JSBlock -> ShowS # show :: JSBlock -> String # showList :: [JSBlock] -> ShowS #

data JSSwitchParts #

Constructors

JSCase !JSAnnot !JSExpression !JSAnnot ![JSStatement] | expr,colon,stmtlist
JSDefault !JSAnnot !JSAnnot ![JSStatement] | colon,stmtlist

Instances

Eq JSSwitchParts # |
Methods (==) :: JSSwitchParts -> JSSwitchParts -> Bool # (/=) :: JSSwitchParts -> JSSwitchParts -> Bool #
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 # |
Methods showsPrec :: Int -> JSSwitchParts -> ShowS # show :: JSSwitchParts -> String # showList :: [JSSwitchParts] -> ShowS #

data JSAST #

Constructors

JSAstProgram ![JSStatement] !JSAnnot | source elements, tailing whitespace
JSAstStatement !JSStatement !JSAnnot |
JSAstExpression !JSExpression !JSAnnot |
JSAstLiteral !JSExpression !JSAnnot |

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 # |
Methods (==) :: JSObjectProperty -> JSObjectProperty -> Bool # (/=) :: JSObjectProperty -> JSObjectProperty -> Bool #
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 # |
Methods showsPrec :: Int -> JSObjectProperty -> ShowS # show :: JSObjectProperty -> String # showList :: [JSObjectProperty] -> ShowS #

data JSPropertyName #

Constructors

JSPropertyIdent !JSAnnot !String |
JSPropertyString !JSAnnot !String |
JSPropertyNumber !JSAnnot !String |

Instances

Eq JSPropertyName # |
Methods (==) :: JSPropertyName -> JSPropertyName -> Bool # (/=) :: JSPropertyName -> JSPropertyName -> Bool #
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 # |
Methods showsPrec :: Int -> JSPropertyName -> ShowS # show :: JSPropertyName -> String # showList :: [JSPropertyName] -> ShowS #

type JSObjectPropertyList = JSCommaTrailingList JSObjectProperty #

data JSAccessor #

Accessors for JSObjectProperty is either `get` or `set`.

Constructors

JSAccessorGet !JSAnnot |
JSAccessorSet !JSAnnot |

Instances

Eq JSAccessor # |
Methods (==) :: JSAccessor -> JSAccessor -> Bool # (/=) :: JSAccessor -> JSAccessor -> Bool #
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 # |
Methods showsPrec :: Int -> JSAccessor -> ShowS # show :: JSAccessor -> String # showList :: [JSAccessor] -> ShowS #

data JSIdent #

Constructors

JSIdentName !JSAnnot !String |
JSIdentNone |

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 # |
Methods showsPrec :: Int -> JSIdent -> ShowS # show :: JSIdent -> String # showList :: [JSIdent] -> ShowS #

data JSVarInitializer #

Constructors

JSVarInit !JSAnnot !JSExpression | assignop, initializer
JSVarInitNone |

Instances

Eq JSVarInitializer # |
Methods (==) :: JSVarInitializer -> JSVarInitializer -> Bool # (/=) :: JSVarInitializer -> JSVarInitializer -> Bool #
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 # |
Methods showsPrec :: Int -> JSVarInitializer -> ShowS # show :: JSVarInitializer -> String # showList :: [JSVarInitializer] -> ShowS #

data JSArrayElement #

Constructors

JSArrayElement !JSExpression |
JSArrayComma !JSAnnot |

Instances

Eq JSArrayElement # |
Methods (==) :: JSArrayElement -> JSArrayElement -> Bool # (/=) :: JSArrayElement -> JSArrayElement -> Bool #
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 # |
Methods showsPrec :: Int -> JSArrayElement -> ShowS # show :: JSArrayElement -> String # showList :: [JSArrayElement] -> ShowS #

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) # |
Methods (==) :: JSCommaList a -> JSCommaList a -> Bool # (/=) :: JSCommaList a -> JSCommaList a -> Bool #
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) # |
Methods showsPrec :: Int -> JSCommaList a -> ShowS # show :: JSCommaList a -> String # showList :: [JSCommaList a] -> ShowS #

data JSCommaTrailingList a #

Constructors

JSCTLComma !(JSCommaList a) !JSAnnot | list, trailing comma
JSCTLNone !(JSCommaList a) | list

Instances

Eq a => Eq (JSCommaTrailingList a) # |
Methods (==) :: JSCommaTrailingList a -> JSCommaTrailingList a -> Bool # (/=) :: JSCommaTrailingList a -> JSCommaTrailingList a -> Bool #
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) # |
Methods showsPrec :: Int -> JSCommaTrailingList a -> ShowS # show :: JSCommaTrailingList a -> String # showList :: [JSCommaTrailingList a] -> ShowS #

binOpEq :: JSBinOp -> JSBinOp -> Bool #

showStripped :: JSAST -> String #

Show the AST elements stipped of their JSAnnot data.