Safe Haskell | None |
---|---|
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
Functor JavaScript Source # | |
Defined in Language.ECMAScript3.Syntax | |
Foldable JavaScript Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => JavaScript m -> 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) | |
Eq a => Eq (JavaScript a) 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 :: (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) | |
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 | |
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 | |
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
Functor Statement Source # | |
Foldable Statement Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Statement m -> 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 | |
HasAnnotation Statement Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: Statement b -> b Source # setAnnotation :: b -> Statement b -> Statement b Source # | |
Eq a => Eq (Statement a) 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 :: (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) | |
Ord a => Ord (Statement a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show a => Show (Statement a) Source # | |
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
Functor CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax | |
Foldable CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => CaseClause m -> 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) | |
HasAnnotation CaseClause Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: CaseClause b -> b Source # setAnnotation :: b -> CaseClause b -> CaseClause b Source # | |
Eq a => Eq (CaseClause a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
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 :: (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) | |
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 | |
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 | |
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
Functor CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fmap :: (a -> b) -> CatchClause a -> CatchClause b (<$) :: a -> CatchClause b -> CatchClause a | |
Foldable CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => CatchClause m -> 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) | |
HasAnnotation CatchClause Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: CatchClause b -> b Source # setAnnotation :: b -> CatchClause b -> CatchClause b Source # | |
Eq a => Eq (CatchClause a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
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 :: (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) | |
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 | |
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 | |
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
Functor ForInit Source # | |
Foldable ForInit Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => ForInit m -> 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 # | |
Eq a => Eq (ForInit a) 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 :: (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) | |
Ord a => Ord (ForInit a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show a => Show (ForInit a) Source # | |
Pretty (ForInit a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: ForInit a -> Doc Source # |
for..in initializer, spec 12.6
Instances
Functor ForInInit Source # | |
Foldable ForInInit Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => ForInInit m -> 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 | |
Eq a => Eq (ForInInit a) 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 :: (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) | |
Ord a => Ord (ForInInit a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show a => Show (ForInInit a) Source # | |
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
Functor VarDecl Source # | |
Foldable VarDecl Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => VarDecl m -> 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 # | |
HasAnnotation VarDecl Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: VarDecl b -> b Source # setAnnotation :: b -> VarDecl b -> VarDecl b Source # | |
Eq a => Eq (VarDecl a) 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 :: (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) | |
Ord a => Ord (VarDecl a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show a => Show (VarDecl a) Source # | |
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
Functor Expression Source # | |
Defined in Language.ECMAScript3.Syntax | |
Foldable Expression Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Expression m -> 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) | |
HasAnnotation Expression Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations Methods getAnnotation :: Expression b -> b Source # setAnnotation :: b -> Expression b -> Expression b Source # | |
Eq a => Eq (Expression a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
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 :: (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) | |
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 | |
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 | |
Default a => IsString (Expression a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> 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
Enum InfixOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Eq InfixOp Source # | |
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 :: (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 | |
Ord InfixOp Source # | |
Show 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
Eq AssignOp Source # | |
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 :: (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 | |
Ord AssignOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show AssignOp Source # | |
Pretty AssignOp Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: AssignOp -> Doc Source # |
Constructors
Id a String |
Instances
Functor Id Source # | |
Foldable Id Source # | |
Defined in Language.ECMAScript3.Syntax Methods 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 # | |
HasAnnotation Id Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Eq a => Eq (Id a) Source # | |
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 :: (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) | |
Ord a => Ord (Id a) Source # | |
Show a => Show (Id a) Source # | |
Default a => IsString (Id a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> Id a | |
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
Eq PrefixOp Source # | |
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 :: (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 | |
Ord PrefixOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show PrefixOp Source # | |
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
Functor Prop Source # | |
Foldable Prop Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => Prop m -> 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 # | |
HasAnnotation Prop Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Eq a => Eq (Prop a) Source # | |
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 :: (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) | |
Ord a => Ord (Prop a) Source # | |
Show a => Show (Prop a) Source # | |
Default a => IsString (Prop a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> Prop a | |
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
Eq UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax | |
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 :: (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 | |
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 | |
Show UnaryAssignOp Source # | |
Defined in Language.ECMAScript3.Syntax Methods showsPrec :: Int -> UnaryAssignOp -> ShowS show :: UnaryAssignOp -> String showList :: [UnaryAssignOp] -> ShowS |
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
Functor LValue Source # | |
Foldable LValue Source # | |
Defined in Language.ECMAScript3.Syntax Methods fold :: Monoid m => LValue m -> 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 # | |
HasAnnotation LValue Source # | |
Defined in Language.ECMAScript3.Syntax.Annotations | |
Eq a => Eq (LValue a) Source # | |
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 :: (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) | |
Ord a => Ord (LValue a) Source # | |
Defined in Language.ECMAScript3.Syntax | |
Show a => Show (LValue a) Source # | |
Default a => IsString (LValue a) | |
Defined in Language.ECMAScript3.Syntax.CodeGen Methods fromString :: String -> LValue a | |
Pretty (LValue a) Source # | |
Defined in Language.ECMAScript3.PrettyPrint Methods prettyPrint :: LValue a -> Doc Source # |
Instances
Eq SourcePos | |
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 :: (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 | |
Ord SourcePos | |
Defined in Text.Parsec.Pos | |
Show SourcePos | |
Default SourcePos | |
Defined in Language.ECMAScript3.Syntax |
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 #