module GF.JavaScript.AbsJS where -- Haskell module generated by the BNF converter newtype Ident = Ident String deriving (Eq,Ord,Show) data Program = Program [Element] deriving (Eq,Ord,Show) data Element = FunDef Ident [Ident] [Stmt] | ElStmt Stmt deriving (Eq,Ord,Show) data Stmt = SCompound [Stmt] | SReturnVoid | SReturn Expr | SDeclOrExpr DeclOrExpr deriving (Eq,Ord,Show) data DeclOrExpr = Decl [DeclVar] | DExpr Expr deriving (Eq,Ord,Show) data DeclVar = DVar Ident | DInit Ident Expr deriving (Eq,Ord,Show) data Expr = EAssign Expr Expr | ENew Ident [Expr] | EMember Expr Ident | EIndex Expr Expr | ECall Expr [Expr] | EVar Ident | EInt Int | EDbl Double | EStr String | ETrue | EFalse | ENull | EThis | EFun [Ident] [Stmt] | EArray [Expr] | EObj [Property] | ESeq [Expr] deriving (Eq,Ord,Show) data Property = Prop PropertyName Expr deriving (Eq,Ord,Show) data PropertyName = IdentPropName Ident | StringPropName String | IntPropName Int deriving (Eq,Ord,Show)