Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Language.ECMAScript3.Syntax
Contents
Description
ECMAScript 3 syntax. Spec refers to the ECMA-262 specification, 3rd edition.
Synopsis
- data JavaScript a = Script a [Statement a]
- unJavaScript :: JavaScript a -> [Statement a]
- data Statement a
- = BlockStmt a [Statement a]
- | EmptyStmt a
- | ExprStmt a (Expression a)
- | IfStmt a (Expression a) (Statement a) (Statement a)
- | IfSingleStmt a (Expression a) (Statement a)
- | SwitchStmt a (Expression a) [CaseClause a]
- | WhileStmt a (Expression a) (Statement a)
- | DoWhileStmt a (Statement a) (Expression a)
- | BreakStmt a (Maybe (Id a))
- | ContinueStmt a (Maybe (Id a))
- | LabelledStmt a (Id a) (Statement a)
- | ForInStmt a (ForInInit a) (Expression a) (Statement a)
- | ForStmt a (ForInit a) (Maybe (Expression a)) (Maybe (Expression a)) (Statement a)
- | TryStmt a (Statement a) (Maybe (CatchClause a)) (Maybe (Statement a))
- | ThrowStmt a (Expression a)
- | ReturnStmt a (Maybe (Expression a))
- | WithStmt a (Expression a) (Statement a)
- | VarDeclStmt a [VarDecl a]
- | FunctionStmt a (Id a) [Id a] [Statement a]
- isIterationStmt :: Statement a -> Bool
- data CaseClause a
- = CaseClause a (Expression a) [Statement a]
- | CaseDefault a [Statement a]
- data CatchClause a = CatchClause a (Id a) (Statement a)
- data ForInit a
- = NoInit
- | VarInit [VarDecl a]
- | ExprInit (Expression a)
- data ForInInit a
- data VarDecl a = VarDecl a (Id a) (Maybe (Expression a))
- data Expression a
- = StringLit a String
- | RegexpLit a String Bool Bool
- | NumLit a Double
- | IntLit a Int
- | BoolLit a Bool
- | NullLit a
- | ArrayLit a [Expression a]
- | ObjectLit a [(Prop a, Expression a)]
- | ThisRef a
- | VarRef a (Id a)
- | DotRef a (Expression a) (Id a)
- | BracketRef a (Expression a) (Expression a)
- | NewExpr a (Expression a) [Expression a]
- | PrefixExpr a PrefixOp (Expression a)
- | UnaryAssignExpr a UnaryAssignOp (LValue a)
- | InfixExpr a InfixOp (Expression a) (Expression a)
- | CondExpr a (Expression a) (Expression a) (Expression a)
- | AssignExpr a AssignOp (LValue a) (Expression a)
- | ListExpr a [Expression a]
- | CallExpr a (Expression a) [Expression a]
- | FuncExpr a (Maybe (Id a)) [Id a] [Statement a]
- data InfixOp
- = OpLT
- | OpLEq
- | OpGT
- | OpGEq
- | OpIn
- | OpInstanceof
- | OpEq
- | OpNEq
- | OpStrictEq
- | OpStrictNEq
- | OpLAnd
- | OpLOr
- | OpMul
- | OpDiv
- | OpMod
- | OpSub
- | OpLShift
- | OpSpRShift
- | OpZfRShift
- | OpBAnd
- | OpBXor
- | OpBOr
- | OpAdd
- data AssignOp
- data Id a = Id a String
- unId :: Id a -> String
- data PrefixOp
- data Prop a
- = PropId a (Id a)
- | PropString a String
- | PropNum a Integer
- data UnaryAssignOp
- data LValue a
- = LVar a String
- | LDot a (Expression a) String
- | LBracket a (Expression a) (Expression a)
- data SourcePos
- isValid :: forall a. (Data a, Typeable a) => JavaScript a -> Bool
- isValidIdentifier :: Id a -> Bool
- isValidIdentifierName :: String -> Bool
- isReservedWord :: String -> Bool
- isValidIdStart :: Char -> Bool
- isValidIdPart :: Char -> Bool
- data EnclosingStatement
- = EnclosingIter [Label]
- | EnclosingSwitch [Label]
- | EnclosingOther [Label]
- pushLabel :: Monad m => Id b -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a
- pushEnclosing :: Monad m => ([Label] -> EnclosingStatement) -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a
- class HasLabelSet a where
- getLabelSet :: a -> [Label]
- setLabelSet :: [Label] -> a -> a
- isIter :: EnclosingStatement -> Bool
- isIterSwitch :: EnclosingStatement -> Bool
Documentation
data JavaScript a Source #
Instances
Foldable JavaScript Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => JavaScript m -> m foldMap :: Monoid m => (a -> m) -> JavaScript a -> m foldMap' :: Monoid m => (a -> m) -> JavaScript a -> m foldr :: (a -> b -> b) -> b -> JavaScript a -> b foldr' :: (a -> b -> b) -> b -> JavaScript a -> b foldl :: (b -> a -> b) -> b -> JavaScript a -> b foldl' :: (b -> a -> b) -> b -> JavaScript a -> b foldr1 :: (a -> a -> a) -> JavaScript a -> a foldl1 :: (a -> a -> a) -> JavaScript a -> a toList :: JavaScript a -> [a] null :: JavaScript a -> Bool length :: JavaScript a -> Int elem :: Eq a => a -> JavaScript a -> Bool maximum :: Ord a => JavaScript a -> a minimum :: Ord a => JavaScript a -> a sum :: Num a => JavaScript a -> a product :: Num a => JavaScript a -> a | |
Traversable JavaScript Source # | |
Defined in Language.ECMAScript3.Syntax Methods traverse :: Applicative f => (a -> f b) -> JavaScript a -> f (JavaScript b) sequenceA :: Applicative f => JavaScript (f a) -> f (JavaScript a) mapM :: Monad m => (a -> m b) -> JavaScript a -> m (JavaScript b) sequence :: Monad m => JavaScript (m a) -> m (JavaScript a) | |
Functor JavaScript Source # | |
Defined in Language.ECMAScript3.Syntax | |
Data a => Data (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> JavaScript a -> c (JavaScript a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (JavaScript a) toConstr :: JavaScript a -> Constr dataTypeOf :: JavaScript a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (JavaScript a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (JavaScript a)) gmapT :: (forall b. Data b => b -> b) -> JavaScript a -> JavaScript a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> JavaScript a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> JavaScript a -> r gmapQ :: (forall d. Data d => d -> u) -> JavaScript a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> JavaScript a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> JavaScript a -> m (JavaScript a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> JavaScript a -> m (JavaScript a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> JavaScript a -> m (JavaScript a) | |
Show a => Show (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> JavaScript a -> ShowS show :: JavaScript a -> String showList :: [JavaScript a] -> ShowS | |
Default a => Default (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods def :: JavaScript a | |
Eq a => Eq (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Ord a => Ord (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods compare :: JavaScript a -> JavaScript a -> Ordering (<) :: JavaScript a -> JavaScript a -> Bool (<=) :: JavaScript a -> JavaScript a -> Bool (>) :: JavaScript a -> JavaScript a -> Bool (>=) :: JavaScript a -> JavaScript a -> Bool max :: JavaScript a -> JavaScript a -> JavaScript a min :: JavaScript a -> JavaScript a -> JavaScript a | |
Pretty (JavaScript a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: JavaScript a -> Doc Source # |
unJavaScript :: JavaScript a -> [Statement a] Source #
extracts statements from a JavaScript type
Statements, spec 12.
Constructors
BlockStmt a [Statement a] |
|
EmptyStmt a |
|
ExprStmt a (Expression a) |
|
IfStmt a (Expression a) (Statement a) (Statement a) |
|
IfSingleStmt a (Expression a) (Statement a) |
|
SwitchStmt a (Expression a) [CaseClause a] |
|
WhileStmt a (Expression a) (Statement a) |
|
DoWhileStmt a (Statement a) (Expression a) |
|
BreakStmt a (Maybe (Id a)) |
|
ContinueStmt a (Maybe (Id a)) |
|
LabelledStmt a (Id a) (Statement a) |
|
ForInStmt a (ForInInit a) (Expression a) (Statement a) |
|
ForStmt a (ForInit a) (Maybe (Expression a)) (Maybe (Expression a)) (Statement a) |
|
TryStmt a (Statement a) (Maybe (CatchClause a)) (Maybe (Statement a)) |
|
ThrowStmt a (Expression a) |
|
ReturnStmt a (Maybe (Expression a)) |
|
WithStmt a (Expression a) (Statement a) |
|
VarDeclStmt a [VarDecl a] |
|
FunctionStmt a (Id a) [Id a] [Statement a] |
|
Instances
Foldable Statement Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Statement m -> m foldMap :: Monoid m => (a -> m) -> Statement a -> m foldMap' :: Monoid m => (a -> m) -> Statement a -> m foldr :: (a -> b -> b) -> b -> Statement a -> b foldr' :: (a -> b -> b) -> b -> Statement a -> b foldl :: (b -> a -> b) -> b -> Statement a -> b foldl' :: (b -> a -> b) -> b -> Statement a -> b foldr1 :: (a -> a -> a) -> Statement a -> a foldl1 :: (a -> a -> a) -> Statement a -> a elem :: Eq a => a -> Statement a -> Bool maximum :: Ord a => Statement a -> a minimum :: Ord a => Statement a -> a | |
Traversable Statement Source # | |
Defined in Language.ECMAScript3.Syntax | |
Functor Statement Source # | |
HasAnnotation Statement Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: Statement b -> b Source # setAnnotation :: b -> Statement b -> Statement b Source # | |
Data a => Data (Statement a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Statement a -> c (Statement a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Statement a) toConstr :: Statement a -> Constr dataTypeOf :: Statement a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Statement a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Statement a)) gmapT :: (forall b. Data b => b -> b) -> Statement a -> Statement a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Statement a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Statement a -> r gmapQ :: (forall d. Data d => d -> u) -> Statement a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Statement a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) | |
Show a => Show (Statement a) Source # | |
Eq a => Eq (Statement a) Source # | |
Ord a => Ord (Statement a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty (Statement a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: Statement a -> Doc Source # | |
Pretty [Statement a] Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: [Statement a] -> Doc Source # |
isIterationStmt :: Statement a -> Bool Source #
Returns True
if the statement is an IterationStatement
according to spec 12.6.
data CaseClause a Source #
Case clauses, spec 12.11
Constructors
CaseClause a (Expression a) [Statement a] | case e: stmts; |
CaseDefault a [Statement a] | default: stmts; |
Instances
Foldable CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => CaseClause m -> m foldMap :: Monoid m => (a -> m) -> CaseClause a -> m foldMap' :: Monoid m => (a -> m) -> CaseClause a -> m foldr :: (a -> b -> b) -> b -> CaseClause a -> b foldr' :: (a -> b -> b) -> b -> CaseClause a -> b foldl :: (b -> a -> b) -> b -> CaseClause a -> b foldl' :: (b -> a -> b) -> b -> CaseClause a -> b foldr1 :: (a -> a -> a) -> CaseClause a -> a foldl1 :: (a -> a -> a) -> CaseClause a -> a toList :: CaseClause a -> [a] null :: CaseClause a -> Bool length :: CaseClause a -> Int elem :: Eq a => a -> CaseClause a -> Bool maximum :: Ord a => CaseClause a -> a minimum :: Ord a => CaseClause a -> a sum :: Num a => CaseClause a -> a product :: Num a => CaseClause a -> a | |
Traversable CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods traverse :: Applicative f => (a -> f b) -> CaseClause a -> f (CaseClause b) sequenceA :: Applicative f => CaseClause (f a) -> f (CaseClause a) mapM :: Monad m => (a -> m b) -> CaseClause a -> m (CaseClause b) sequence :: Monad m => CaseClause (m a) -> m (CaseClause a) | |
Functor CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax | |
HasAnnotation CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: CaseClause b -> b Source # setAnnotation :: b -> CaseClause b -> CaseClause b Source # | |
Data a => Data (CaseClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CaseClause a -> c (CaseClause a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CaseClause a) toConstr :: CaseClause a -> Constr dataTypeOf :: CaseClause a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CaseClause a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CaseClause a)) gmapT :: (forall b. Data b => b -> b) -> CaseClause a -> CaseClause a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CaseClause a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CaseClause a -> r gmapQ :: (forall d. Data d => d -> u) -> CaseClause a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> CaseClause a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> CaseClause a -> m (CaseClause a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CaseClause a -> m (CaseClause a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CaseClause a -> m (CaseClause a) | |
Show a => Show (CaseClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> CaseClause a -> ShowS show :: CaseClause a -> String showList :: [CaseClause a] -> ShowS | |
Eq a => Eq (CaseClause a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Ord a => Ord (CaseClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods compare :: CaseClause a -> CaseClause a -> Ordering (<) :: CaseClause a -> CaseClause a -> Bool (<=) :: CaseClause a -> CaseClause a -> Bool (>) :: CaseClause a -> CaseClause a -> Bool (>=) :: CaseClause a -> CaseClause a -> Bool max :: CaseClause a -> CaseClause a -> CaseClause a min :: CaseClause a -> CaseClause a -> CaseClause a | |
Pretty (CaseClause a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: CaseClause a -> Doc Source # |
data CatchClause a Source #
Catch clause, spec 12.14
Constructors
CatchClause a (Id a) (Statement a) | catch (x) {...} |
Instances
Foldable CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => CatchClause m -> m foldMap :: Monoid m => (a -> m) -> CatchClause a -> m foldMap' :: Monoid m => (a -> m) -> CatchClause a -> m foldr :: (a -> b -> b) -> b -> CatchClause a -> b foldr' :: (a -> b -> b) -> b -> CatchClause a -> b foldl :: (b -> a -> b) -> b -> CatchClause a -> b foldl' :: (b -> a -> b) -> b -> CatchClause a -> b foldr1 :: (a -> a -> a) -> CatchClause a -> a foldl1 :: (a -> a -> a) -> CatchClause a -> a toList :: CatchClause a -> [a] null :: CatchClause a -> Bool length :: CatchClause a -> Int elem :: Eq a => a -> CatchClause a -> Bool maximum :: Ord a => CatchClause a -> a minimum :: Ord a => CatchClause a -> a sum :: Num a => CatchClause a -> a product :: Num a => CatchClause a -> a | |
Traversable CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods traverse :: Applicative f => (a -> f b) -> CatchClause a -> f (CatchClause b) sequenceA :: Applicative f => CatchClause (f a) -> f (CatchClause a) mapM :: Monad m => (a -> m b) -> CatchClause a -> m (CatchClause b) sequence :: Monad m => CatchClause (m a) -> m (CatchClause a) | |
Functor CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fmap :: (a -> b) -> CatchClause a -> CatchClause b (<$) :: a -> CatchClause b -> CatchClause a | |
HasAnnotation CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: CatchClause b -> b Source # setAnnotation :: b -> CatchClause b -> CatchClause b Source # | |
Data a => Data (CatchClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CatchClause a -> c (CatchClause a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CatchClause a) toConstr :: CatchClause a -> Constr dataTypeOf :: CatchClause a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CatchClause a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CatchClause a)) gmapT :: (forall b. Data b => b -> b) -> CatchClause a -> CatchClause a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CatchClause a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CatchClause a -> r gmapQ :: (forall d. Data d => d -> u) -> CatchClause a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> CatchClause a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> CatchClause a -> m (CatchClause a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CatchClause a -> m (CatchClause a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CatchClause a -> m (CatchClause a) | |
Show a => Show (CatchClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> CatchClause a -> ShowS show :: CatchClause a -> String showList :: [CatchClause a] -> ShowS | |
Eq a => Eq (CatchClause a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Ord a => Ord (CatchClause a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods compare :: CatchClause a -> CatchClause a -> Ordering (<) :: CatchClause a -> CatchClause a -> Bool (<=) :: CatchClause a -> CatchClause a -> Bool (>) :: CatchClause a -> CatchClause a -> Bool (>=) :: CatchClause a -> CatchClause a -> Bool max :: CatchClause a -> CatchClause a -> CatchClause a min :: CatchClause a -> CatchClause a -> CatchClause a | |
Pretty (CatchClause a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: CatchClause a -> Doc Source # |
for initializer, spec 12.6
Constructors
NoInit | empty |
VarInit [VarDecl a] | var x, y=42 |
ExprInit (Expression a) | expr |
Instances
Foldable ForInit Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => ForInit m -> m foldMap :: Monoid m => (a -> m) -> ForInit a -> m foldMap' :: Monoid m => (a -> m) -> ForInit a -> m foldr :: (a -> b -> b) -> b -> ForInit a -> b foldr' :: (a -> b -> b) -> b -> ForInit a -> b foldl :: (b -> a -> b) -> b -> ForInit a -> b foldl' :: (b -> a -> b) -> b -> ForInit a -> b foldr1 :: (a -> a -> a) -> ForInit a -> a foldl1 :: (a -> a -> a) -> ForInit a -> a elem :: Eq a => a -> ForInit a -> Bool maximum :: Ord a => ForInit a -> a minimum :: Ord a => ForInit a -> a | |
Traversable ForInit Source # | |
Functor ForInit Source # | |
Data a => Data (ForInit a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForInit a -> c (ForInit a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ForInit a) toConstr :: ForInit a -> Constr dataTypeOf :: ForInit a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ForInit a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ForInit a)) gmapT :: (forall b. Data b => b -> b) -> ForInit a -> ForInit a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForInit a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForInit a -> r gmapQ :: (forall d. Data d => d -> u) -> ForInit a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ForInit a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForInit a -> m (ForInit a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForInit a -> m (ForInit a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForInit a -> m (ForInit a) | |
Show a => Show (ForInit a) Source # | |
Eq a => Eq (ForInit a) Source # | |
Ord a => Ord (ForInit a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty (ForInit a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: ForInit a -> Doc Source # |
for..in initializer, spec 12.6
Instances
Foldable ForInInit Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => ForInInit m -> m foldMap :: Monoid m => (a -> m) -> ForInInit a -> m foldMap' :: Monoid m => (a -> m) -> ForInInit a -> m foldr :: (a -> b -> b) -> b -> ForInInit a -> b foldr' :: (a -> b -> b) -> b -> ForInInit a -> b foldl :: (b -> a -> b) -> b -> ForInInit a -> b foldl' :: (b -> a -> b) -> b -> ForInInit a -> b foldr1 :: (a -> a -> a) -> ForInInit a -> a foldl1 :: (a -> a -> a) -> ForInInit a -> a elem :: Eq a => a -> ForInInit a -> Bool maximum :: Ord a => ForInInit a -> a minimum :: Ord a => ForInInit a -> a | |
Traversable ForInInit Source # | |
Defined in Language.ECMAScript3.Syntax | |
Functor ForInInit Source # | |
Data a => Data (ForInInit a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForInInit a -> c (ForInInit a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ForInInit a) toConstr :: ForInInit a -> Constr dataTypeOf :: ForInInit a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ForInInit a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ForInInit a)) gmapT :: (forall b. Data b => b -> b) -> ForInInit a -> ForInInit a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForInInit a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForInInit a -> r gmapQ :: (forall d. Data d => d -> u) -> ForInInit a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ForInInit a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForInInit a -> m (ForInInit a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForInInit a -> m (ForInInit a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForInInit a -> m (ForInInit a) | |
Show a => Show (ForInInit a) Source # | |
Eq a => Eq (ForInInit a) Source # | |
Ord a => Ord (ForInInit a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty (ForInInit a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: ForInInit a -> Doc Source # |
A variable declaration, spec 12.2
Constructors
VarDecl a (Id a) (Maybe (Expression a)) | var x = e; |
Instances
Foldable VarDecl Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => VarDecl m -> m foldMap :: Monoid m => (a -> m) -> VarDecl a -> m foldMap' :: Monoid m => (a -> m) -> VarDecl a -> m foldr :: (a -> b -> b) -> b -> VarDecl a -> b foldr' :: (a -> b -> b) -> b -> VarDecl a -> b foldl :: (b -> a -> b) -> b -> VarDecl a -> b foldl' :: (b -> a -> b) -> b -> VarDecl a -> b foldr1 :: (a -> a -> a) -> VarDecl a -> a foldl1 :: (a -> a -> a) -> VarDecl a -> a elem :: Eq a => a -> VarDecl a -> Bool maximum :: Ord a => VarDecl a -> a minimum :: Ord a => VarDecl a -> a | |
Traversable VarDecl Source # | |
Functor VarDecl Source # | |
HasAnnotation VarDecl Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: VarDecl b -> b Source # setAnnotation :: b -> VarDecl b -> VarDecl b Source # | |
Data a => Data (VarDecl a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VarDecl a -> c (VarDecl a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (VarDecl a) toConstr :: VarDecl a -> Constr dataTypeOf :: VarDecl a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (VarDecl a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (VarDecl a)) gmapT :: (forall b. Data b => b -> b) -> VarDecl a -> VarDecl a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VarDecl a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VarDecl a -> r gmapQ :: (forall d. Data d => d -> u) -> VarDecl a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> VarDecl a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> VarDecl a -> m (VarDecl a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VarDecl a -> m (VarDecl a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VarDecl a -> m (VarDecl a) | |
Show a => Show (VarDecl a) Source # | |
Eq a => Eq (VarDecl a) Source # | |
Ord a => Ord (VarDecl a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty (VarDecl a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: VarDecl a -> Doc Source # |
data Expression a Source #
Expressions, see spec 11
Constructors
StringLit a String |
|
RegexpLit a String Bool Bool |
|
NumLit a Double |
|
IntLit a Int |
|
BoolLit a Bool |
|
NullLit a |
|
ArrayLit a [Expression a] |
|
ObjectLit a [(Prop a, Expression a)] |
|
ThisRef a |
|
VarRef a (Id a) |
|
DotRef a (Expression a) (Id a) |
|
BracketRef a (Expression a) (Expression a) |
|
NewExpr a (Expression a) [Expression a] |
|
PrefixExpr a PrefixOp (Expression a) |
|
UnaryAssignExpr a UnaryAssignOp (LValue a) |
|
InfixExpr a InfixOp (Expression a) (Expression a) |
|
CondExpr a (Expression a) (Expression a) (Expression a) |
|
AssignExpr a AssignOp (LValue a) (Expression a) |
|
ListExpr a [Expression a] |
|
CallExpr a (Expression a) [Expression a] |
|
FuncExpr a (Maybe (Id a)) [Id a] [Statement a] |
|
Instances
Foldable Expression Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Expression m -> m foldMap :: Monoid m => (a -> m) -> Expression a -> m foldMap' :: Monoid m => (a -> m) -> Expression a -> m foldr :: (a -> b -> b) -> b -> Expression a -> b foldr' :: (a -> b -> b) -> b -> Expression a -> b foldl :: (b -> a -> b) -> b -> Expression a -> b foldl' :: (b -> a -> b) -> b -> Expression a -> b foldr1 :: (a -> a -> a) -> Expression a -> a foldl1 :: (a -> a -> a) -> Expression a -> a toList :: Expression a -> [a] null :: Expression a -> Bool length :: Expression a -> Int elem :: Eq a => a -> Expression a -> Bool maximum :: Ord a => Expression a -> a minimum :: Ord a => Expression a -> a sum :: Num a => Expression a -> a product :: Num a => Expression a -> a | |
Traversable Expression Source # | |
Defined in Language.ECMAScript3.Syntax Methods traverse :: Applicative f => (a -> f b) -> Expression a -> f (Expression b) sequenceA :: Applicative f => Expression (f a) -> f (Expression a) mapM :: Monad m => (a -> m b) -> Expression a -> m (Expression b) sequence :: Monad m => Expression (m a) -> m (Expression a) | |
Functor Expression Source # | |
Defined in Language.ECMAScript3.Syntax | |
HasAnnotation Expression Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: Expression b -> b Source # setAnnotation :: b -> Expression b -> Expression b Source # | |
Data a => Data (Expression a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Expression a -> c (Expression a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Expression a) toConstr :: Expression a -> Constr dataTypeOf :: Expression a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Expression a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Expression a)) gmapT :: (forall b. Data b => b -> b) -> Expression a -> Expression a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Expression a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Expression a -> r gmapQ :: (forall d. Data d => d -> u) -> Expression a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Expression a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Expression a -> m (Expression a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Expression a -> m (Expression a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Expression a -> m (Expression a) | |
Default a => IsString (Expression a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> Expression a | |
Show a => Show (Expression a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> Expression a -> ShowS show :: Expression a -> String showList :: [Expression a] -> ShowS | |
Eq a => Eq (Expression a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Ord a => Ord (Expression a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods compare :: Expression a -> Expression a -> Ordering (<) :: Expression a -> Expression a -> Bool (<=) :: Expression a -> Expression a -> Bool (>) :: Expression a -> Expression a -> Bool (>=) :: Expression a -> Expression a -> Bool max :: Expression a -> Expression a -> Expression a min :: Expression a -> Expression a -> Expression a | |
Pretty (Expression a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: Expression a -> Doc Source # |
Infix operators: see spec 11.5-11.11
Constructors
OpLT | < |
OpLEq | <= |
OpGT | > |
OpGEq | >= |
OpIn | in |
OpInstanceof | instanceof |
OpEq | == |
OpNEq | != |
OpStrictEq | === |
OpStrictNEq | !=== |
OpLAnd | && |
OpLOr | || |
OpMul | * |
OpDiv | / |
OpMod | % |
OpSub | - |
OpLShift | << |
OpSpRShift | >> |
OpZfRShift | >>> |
OpBAnd | & |
OpBXor | ^ |
OpBOr | | |
OpAdd | + |
Instances
Data InfixOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InfixOp -> c InfixOp gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InfixOp dataTypeOf :: InfixOp -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c InfixOp) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InfixOp) gmapT :: (forall b. Data b => b -> b) -> InfixOp -> InfixOp gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InfixOp -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InfixOp -> r gmapQ :: (forall d. Data d => d -> u) -> InfixOp -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> InfixOp -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> InfixOp -> m InfixOp gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InfixOp -> m InfixOp gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InfixOp -> m InfixOp | |
Enum InfixOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show InfixOp Source # | |
Eq InfixOp Source # | |
Ord InfixOp Source # | |
Pretty InfixOp Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: InfixOp -> Doc Source # |
Assignment operators: see spec 11.13
Constructors
OpAssign | simple assignment, |
OpAssignAdd | += |
OpAssignSub | -= |
OpAssignMul | *= |
OpAssignDiv | /= |
OpAssignMod | %= |
OpAssignLShift | <<= |
OpAssignSpRShift | >>= |
OpAssignZfRShift | >>>= |
OpAssignBAnd | &= |
OpAssignBXor | ^= |
OpAssignBOr | |= |
Instances
Data AssignOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AssignOp -> c AssignOp gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AssignOp toConstr :: AssignOp -> Constr dataTypeOf :: AssignOp -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AssignOp) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AssignOp) gmapT :: (forall b. Data b => b -> b) -> AssignOp -> AssignOp gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AssignOp -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AssignOp -> r gmapQ :: (forall d. Data d => d -> u) -> AssignOp -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> AssignOp -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> AssignOp -> m AssignOp gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AssignOp -> m AssignOp gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AssignOp -> m AssignOp | |
Show AssignOp Source # | |
Eq AssignOp Source # | |
Ord AssignOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty AssignOp Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: AssignOp -> Doc Source # |
Constructors
Id a String |
Instances
Foldable Id Source # | |
Defined in Language.ECMAScript3.Syntax Methods foldMap :: Monoid m => (a -> m) -> Id a -> m foldMap' :: Monoid m => (a -> m) -> Id a -> m foldr :: (a -> b -> b) -> b -> Id a -> b foldr' :: (a -> b -> b) -> b -> Id a -> b foldl :: (b -> a -> b) -> b -> Id a -> b foldl' :: (b -> a -> b) -> b -> Id a -> b foldr1 :: (a -> a -> a) -> Id a -> a foldl1 :: (a -> a -> a) -> Id a -> a | |
Traversable Id Source # | |
Functor Id Source # | |
HasAnnotation Id Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Data a => Data (Id a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Id a -> c (Id a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Id a) dataTypeOf :: Id a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Id a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Id a)) gmapT :: (forall b. Data b => b -> b) -> Id a -> Id a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Id a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Id a -> r gmapQ :: (forall d. Data d => d -> u) -> Id a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Id a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Id a -> m (Id a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Id a -> m (Id a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Id a -> m (Id a) | |
Default a => IsString (Id a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> Id a | |
Show a => Show (Id a) Source # | |
Eq a => Eq (Id a) Source # | |
Ord a => Ord (Id a) Source # | |
Pretty (Id a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: Id a -> Doc Source # |
Prefix operators: see spec 11.4 (excluding 11.4.4, 11.4.5)
Constructors
PrefixLNot | ! |
PrefixBNot | ~ |
PrefixPlus | + |
PrefixMinus | - |
PrefixTypeof | typeof |
PrefixVoid | void |
PrefixDelete | delete |
Instances
Data PrefixOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PrefixOp -> c PrefixOp gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PrefixOp toConstr :: PrefixOp -> Constr dataTypeOf :: PrefixOp -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PrefixOp) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PrefixOp) gmapT :: (forall b. Data b => b -> b) -> PrefixOp -> PrefixOp gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PrefixOp -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PrefixOp -> r gmapQ :: (forall d. Data d => d -> u) -> PrefixOp -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> PrefixOp -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> PrefixOp -> m PrefixOp gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PrefixOp -> m PrefixOp gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PrefixOp -> m PrefixOp | |
Show PrefixOp Source # | |
Eq PrefixOp Source # | |
Ord PrefixOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty PrefixOp Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: PrefixOp -> Doc Source # |
Property names in an object initializer: see spec 11.1.5
Constructors
PropId a (Id a) | property name is an identifier, |
PropString a String | property name is a string, |
PropNum a Integer | property name is an integer, |
Instances
Foldable Prop Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Prop m -> m foldMap :: Monoid m => (a -> m) -> Prop a -> m foldMap' :: Monoid m => (a -> m) -> Prop a -> m foldr :: (a -> b -> b) -> b -> Prop a -> b foldr' :: (a -> b -> b) -> b -> Prop a -> b foldl :: (b -> a -> b) -> b -> Prop a -> b foldl' :: (b -> a -> b) -> b -> Prop a -> b foldr1 :: (a -> a -> a) -> Prop a -> a foldl1 :: (a -> a -> a) -> Prop a -> a elem :: Eq a => a -> Prop a -> Bool maximum :: Ord a => Prop a -> a | |
Traversable Prop Source # | |
Functor Prop Source # | |
HasAnnotation Prop Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Data a => Data (Prop a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Prop a -> c (Prop a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Prop a) dataTypeOf :: Prop a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Prop a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Prop a)) gmapT :: (forall b. Data b => b -> b) -> Prop a -> Prop a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Prop a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Prop a -> r gmapQ :: (forall d. Data d => d -> u) -> Prop a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Prop a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Prop a -> m (Prop a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Prop a -> m (Prop a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Prop a -> m (Prop a) | |
Default a => IsString (Prop a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> Prop a | |
Show a => Show (Prop a) Source # | |
Eq a => Eq (Prop a) Source # | |
Ord a => Ord (Prop a) Source # | |
Pretty (Prop a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: Prop a -> Doc Source # |
data UnaryAssignOp Source #
Unary assignment operators: see spec 11.3, 11.4.4, 11.4.5
Constructors
PrefixInc | ++x |
PrefixDec | --x |
PostfixInc | x++ |
PostfixDec | x-- |
Instances
Data UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnaryAssignOp -> c UnaryAssignOp gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnaryAssignOp toConstr :: UnaryAssignOp -> Constr dataTypeOf :: UnaryAssignOp -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnaryAssignOp) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnaryAssignOp) gmapT :: (forall b. Data b => b -> b) -> UnaryAssignOp -> UnaryAssignOp gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnaryAssignOp -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnaryAssignOp -> r gmapQ :: (forall d. Data d => d -> u) -> UnaryAssignOp -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> UnaryAssignOp -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnaryAssignOp -> m UnaryAssignOp gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnaryAssignOp -> m UnaryAssignOp gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnaryAssignOp -> m UnaryAssignOp | |
Show UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> UnaryAssignOp -> ShowS show :: UnaryAssignOp -> String showList :: [UnaryAssignOp] -> ShowS | |
Eq UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Ord UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods compare :: UnaryAssignOp -> UnaryAssignOp -> Ordering (<) :: UnaryAssignOp -> UnaryAssignOp -> Bool (<=) :: UnaryAssignOp -> UnaryAssignOp -> Bool (>) :: UnaryAssignOp -> UnaryAssignOp -> Bool (>=) :: UnaryAssignOp -> UnaryAssignOp -> Bool max :: UnaryAssignOp -> UnaryAssignOp -> UnaryAssignOp min :: UnaryAssignOp -> UnaryAssignOp -> UnaryAssignOp |
Left-hand side expressions: see spec 11.2
Constructors
LVar a String | variable reference, |
LDot a (Expression a) String | foo.bar |
LBracket a (Expression a) (Expression a) | foo[bar] |
Instances
Foldable LValue Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => LValue m -> m foldMap :: Monoid m => (a -> m) -> LValue a -> m foldMap' :: Monoid m => (a -> m) -> LValue a -> m foldr :: (a -> b -> b) -> b -> LValue a -> b foldr' :: (a -> b -> b) -> b -> LValue a -> b foldl :: (b -> a -> b) -> b -> LValue a -> b foldl' :: (b -> a -> b) -> b -> LValue a -> b foldr1 :: (a -> a -> a) -> LValue a -> a foldl1 :: (a -> a -> a) -> LValue a -> a elem :: Eq a => a -> LValue a -> Bool maximum :: Ord a => LValue a -> a | |
Traversable LValue Source # | |
Functor LValue Source # | |
HasAnnotation LValue Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Data a => Data (LValue a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LValue a -> c (LValue a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LValue a) toConstr :: LValue a -> Constr dataTypeOf :: LValue a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LValue a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LValue a)) gmapT :: (forall b. Data b => b -> b) -> LValue a -> LValue a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LValue a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LValue a -> r gmapQ :: (forall d. Data d => d -> u) -> LValue a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> LValue a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> LValue a -> m (LValue a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LValue a -> m (LValue a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LValue a -> m (LValue a) | |
Default a => IsString (LValue a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> LValue a | |
Show a => Show (LValue a) Source # | |
Eq a => Eq (LValue a) Source # | |
Ord a => Ord (LValue a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Pretty (LValue a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: LValue a -> Doc Source # |
Instances
Data SourcePos | |
Defined in Text.Parsec.Pos Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourcePos -> c SourcePos gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourcePos toConstr :: SourcePos -> Constr dataTypeOf :: SourcePos -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourcePos) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourcePos) gmapT :: (forall b. Data b => b -> b) -> SourcePos -> SourcePos gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourcePos -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourcePos -> r gmapQ :: (forall d. Data d => d -> u) -> SourcePos -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SourcePos -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourcePos -> m SourcePos gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourcePos -> m SourcePos gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourcePos -> m SourcePos | |
Show SourcePos | |
Default SourcePos | |
Defined in Language.ECMAScript3.Syntax | |
Eq SourcePos | |
Ord SourcePos | |
Defined in Text.Parsec.Pos |
isValid :: forall a. (Data a, Typeable a) => JavaScript a -> Bool Source #
The ECMAScript standard defines certain syntactic restrictions on
programs (or, more precisely, statements) that aren't easily
enforced in the AST datatype. These restrictions have to do with
labeled statements and break/continue statement, as well as
identifier names. Thus, it is possible to manually generate AST's
that correspond to syntactically incorrect programs. Use this
predicate to check if an JavaScript
AST corresponds to a
syntactically correct ECMAScript program.
isValidIdentifier :: Id a -> Bool Source #
Checks if an identifier name is valid according to the spec
isValidIdentifierName :: String -> Bool Source #
Checks if the String
represents a valid identifier name
isReservedWord :: String -> Bool Source #
Checks if a string is in the list of reserved ECMAScript words
isValidIdStart :: Char -> Bool Source #
Checks if a character is valid at the start of an identifier
isValidIdPart :: Char -> Bool Source #
Checks if a character is valid in an identifier part
data EnclosingStatement Source #
Constructors
EnclosingIter [Label] | The enclosing statement is an iteration statement |
EnclosingSwitch [Label] | The enclosing statement is a switch statement |
EnclosingOther [Label] | The enclosing statement is some other
statement. Note, |
Instances
Show EnclosingStatement Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> EnclosingStatement -> ShowS show :: EnclosingStatement -> String showList :: [EnclosingStatement] -> ShowS | |
HasLabelSet EnclosingStatement Source # | |
Defined in Language.ECMAScript3.Syntax Methods getLabelSet :: EnclosingStatement -> [Label] Source # setLabelSet :: [Label] -> EnclosingStatement -> EnclosingStatement Source # |
pushLabel :: Monad m => Id b -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a Source #
pushEnclosing :: Monad m => ([Label] -> EnclosingStatement) -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a Source #
class HasLabelSet a where Source #
Instances
HasLabelSet EnclosingStatement Source # | |
Defined in Language.ECMAScript3.Syntax Methods getLabelSet :: EnclosingStatement -> [Label] Source # setLabelSet :: [Label] -> EnclosingStatement -> EnclosingStatement Source # |
isIter :: EnclosingStatement -> Bool Source #
isIterSwitch :: EnclosingStatement -> Bool Source #