| 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 :: (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 :: forall (m :: Type -> Type) b a. Monad m => Id b -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a
- pushEnclosing :: forall (m :: Type -> Type) a. 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 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) | |
| Default a => Default (JavaScript a) Source # | |
Defined in Language.ECMAScript3.Syntax Methods def :: JavaScript a | |
| 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 | |
| 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
| 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 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 # | |
| 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
| 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 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 # | |
| 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
| 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 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 # | |
| 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
| 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 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 # | |
| 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
| 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 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 | |
| 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
| 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 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 # | |
| 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
| 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 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 # | |
| 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
| Functor Id Source # | |
| 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 # | |
| 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
| 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 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 | |
| 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
| 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 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 | |
| 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
| Default SourcePos | |
Defined in Language.ECMAScript3.Syntax | |
| 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 | |
| Eq SourcePos | |
| Ord SourcePos | |
Defined in Text.Parsec.Pos | |
isValid :: (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 :: forall (m :: Type -> Type) b a. Monad m => Id b -> StateT ([Label], [EnclosingStatement]) m a -> StateT ([Label], [EnclosingStatement]) m a Source #
pushEnclosing :: forall (m :: Type -> Type) a. 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 #