module GF.JavaScript.SkelJS where -- Haskell module generated by the BNF converter import GF.JavaScript.AbsJS import GF.Data.ErrM type Result = Err String failure :: Show a => a -> Result failure x = Bad $ "Undefined case: " ++ show x transIdent :: Ident -> Result transIdent x = case x of Ident str -> failure x transProgram :: Program -> Result transProgram x = case x of Program elements -> failure x transElement :: Element -> Result transElement x = case x of FunDef id ids stmts -> failure x ElStmt stmt -> failure x transStmt :: Stmt -> Result transStmt x = case x of SCompound stmts -> failure x SReturnVoid -> failure x SReturn expr -> failure x SDeclOrExpr declorexpr -> failure x transDeclOrExpr :: DeclOrExpr -> Result transDeclOrExpr x = case x of Decl declvars -> failure x DExpr expr -> failure x transDeclVar :: DeclVar -> Result transDeclVar x = case x of DVar id -> failure x DInit id expr -> failure x transExpr :: Expr -> Result transExpr x = case x of EAssign expr0 expr -> failure x ENew id exprs -> failure x EMember expr id -> failure x EIndex expr0 expr -> failure x ECall expr exprs -> failure x EVar id -> failure x EInt n -> failure x EDbl d -> failure x EStr str -> failure x ETrue -> failure x EFalse -> failure x ENull -> failure x EThis -> failure x EFun ids stmts -> failure x EArray exprs -> failure x EObj propertys -> failure x ESeq exprs -> failure x transProperty :: Property -> Result transProperty x = case x of Prop propertyname expr -> failure x transPropertyName :: PropertyName -> Result transPropertyName x = case x of IdentPropName id -> failure x StringPropName str -> failure x