module Skeljava where -- Haskell module generated by the BNF converter import Absjava import 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 transUnsigned :: Unsigned -> Result transUnsigned x = case x of Unsigned str -> failure x transLong :: Long -> Result transLong x = case x of Long str -> failure x transUnsignedLong :: UnsignedLong -> Result transUnsignedLong x = case x of UnsignedLong str -> failure x transHexadecimal :: Hexadecimal -> Result transHexadecimal x = case x of Hexadecimal str -> failure x transHexUnsigned :: HexUnsigned -> Result transHexUnsigned x = case x of HexUnsigned str -> failure x transHexLong :: HexLong -> Result transHexLong x = case x of HexLong str -> failure x transHexUnsLong :: HexUnsLong -> Result transHexUnsLong x = case x of HexUnsLong str -> failure x transOctal :: Octal -> Result transOctal x = case x of Octal str -> failure x transOctalUnsigned :: OctalUnsigned -> Result transOctalUnsigned x = case x of OctalUnsigned str -> failure x transOctalLong :: OctalLong -> Result transOctalLong x = case x of OctalLong str -> failure x transOctalUnsLong :: OctalUnsLong -> Result transOctalUnsLong x = case x of OctalUnsLong str -> failure x transJDouble :: JDouble -> Result transJDouble x = case x of JDouble str -> failure x transJFloat :: JFloat -> Result transJFloat x = case x of JFloat str -> failure x transJLongDouble :: JLongDouble -> Result transJLongDouble x = case x of JLongDouble str -> failure x transUnicodeChar :: UnicodeChar -> Result transUnicodeChar x = case x of UnicodeChar str -> failure x transJChar :: JChar -> Result transJChar x = case x of JChar str -> failure x transProgramFile :: ProgramFile -> Result transProgramFile x = case x of Prpkg ids semis imports typedecls -> failure x ProgF imports typedecls -> failure x transImport :: Import -> Result transImport x = case x of ImportN ids semis -> failure x ImportA ids semis -> failure x transTypeDecl :: TypeDecl -> Result transTypeDecl x = case x of TypeDecl classheader fielddeclarations -> failure x transClassHeader :: ClassHeader -> Result transClassHeader x = case x of ClassDec modifiers id -> failure x ClassDecE modifiers id typenames -> failure x ClassDecI modifiers id typenames -> failure x ClassDecEI modifiers id typenames0 typenames -> failure x InterDec modifiers id -> failure x InterDecE modifiers id typenames -> failure x InterDecI modifiers id typenames -> failure x InterDecEI modifiers id typenames0 typenames -> failure x transFieldDeclaration :: FieldDeclaration -> Result transFieldDeclaration x = case x of Dvar modifiers typespec vardecls -> failure x Dmth modifiers typespec methoddecl methodbody -> failure x Dmthth modifiers typespec methoddecl typenames methodbody -> failure x Dconst modifiers id parameters body -> failure x Dconstt modifiers id parameters typenames body -> failure x Dblk body -> failure x Dinnerclass typedecl -> failure x transMethodBody :: MethodBody -> Result transMethodBody x = case x of IBody -> failure x MBody body -> failure x transLVarStatement :: LVarStatement -> Result transLVarStatement x = case x of LVar typespec vardecls -> failure x LVarf typespec vardecls -> failure x Statem stm -> failure x transBody :: Body -> Result transBody x = case x of Body lvarstatements -> failure x transStm :: Stm -> Result transStm x = case x of Sem -> failure x Lbl id -> failure x Case exp -> failure x Dflt -> failure x Exps exp -> failure x LV lvarstatements -> failure x Jmp jumpstm -> failure x Grd guardstm -> failure x Iter iterstm -> failure x Sel selectionstm -> failure x transDeclaratorName :: DeclaratorName -> Result transDeclaratorName x = case x of DeclName id -> failure x DeclArray id bracketsopts -> failure x transVarDecl :: VarDecl -> Result transVarDecl x = case x of VDeclAssign declaratorname variableinits -> failure x VDecl id -> failure x transVariableInits :: VariableInits -> Result transVariableInits x = case x of IExp exp -> failure x IEmpt -> failure x IArri arrayinits -> failure x transArrayInits :: ArrayInits -> Result transArrayInits x = case x of Vainit variableinits -> failure x Vai arrayinits variableinits -> failure x Vais arrayinits -> failure x transMethodDecl :: MethodDecl -> Result transMethodDecl x = case x of Mth declaratorname parameters -> failure x MthdArr methoddecl bracketsopt -> failure x transParameter :: Parameter -> Result transParameter x = case x of Param typespec declaratorname -> failure x Pfinal typespec declaratorname -> failure x transSelectionStm :: SelectionStm -> Result transSelectionStm x = case x of Ifone exp stm elseifs -> failure x If exp stm0 elseifs stm -> failure x Switch exp body -> failure x transElseif :: Elseif -> Result transElseif x = case x of Elseif exp stm -> failure x transJumpStm :: JumpStm -> Result transJumpStm x = case x of Break -> failure x Brlabel id -> failure x Continue -> failure x Continuelabel id -> failure x Return -> failure x ReturnExp exp -> failure x Throw exp -> failure x transGuardStm :: GuardStm -> Result transGuardStm x = case x of Synchronized exp body -> failure x Try body catchs -> failure x Tryfinally body0 catchs body -> failure x transCatch :: Catch -> Result transCatch x = case x of Catch1 typespec id body -> failure x Catch2 typespec body -> failure x transIterStm :: IterStm -> Result transIterStm x = case x of While exp stm -> failure x Do stm exp -> failure x For forinit exps0 exps stm -> failure x transForInit :: ForInit -> Result transForInit x = case x of Exprs1 exps -> failure x DVar typespec vardecls -> failure x DVarf typespec vardecls -> failure x transModifier :: Modifier -> Result transModifier x = case x of Mabstract -> failure x Mfinal -> failure x Mpublic -> failure x Mprotected -> failure x Mprivate -> failure x Mtransient -> failure x Mvolatile -> failure x Mnative -> failure x Msync -> failure x Mstatic -> failure x transBasicType :: BasicType -> Result transBasicType x = case x of Tchar -> failure x Tshort -> failure x Tint -> failure x Tlong -> failure x Tfloat -> failure x Tdouble -> failure x Tbyte -> failure x Tboolean -> failure x transTypeSpec :: TypeSpec -> Result transTypeSpec x = case x of ArrayType typename bracketsopts -> failure x TypeName typename -> failure x transTypeName :: TypeName -> Result transTypeName x = case x of BuiltIn basictype -> failure x ClassType ids -> failure x transBracketsOpt :: BracketsOpt -> Result transBracketsOpt x = case x of BracketsOpt -> failure x transExp :: Exp -> Result transExp x = case x of Eassign exp0 assignment_op exp -> failure x Etype exp typename -> failure x Econdition exp0 exp1 exp -> failure x Elor exp0 exp -> failure x Eland exp0 exp -> failure x Ebitor exp0 exp -> failure x Ebitexor exp0 exp -> failure x Ebitand exp0 exp -> failure x Eeq exp0 exp -> failure x Eneq exp0 exp -> failure x Elthen exp0 exp -> failure x Egrthen exp0 exp -> failure x Ele exp0 exp -> failure x Ege exp0 exp -> failure x Eleft exp0 exp -> failure x Eright exp0 exp -> failure x Etrip exp0 exp -> failure x Eplus exp0 exp -> failure x Eminus exp0 exp -> failure x Etimes exp0 exp -> failure x Ediv exp0 exp -> failure x Emod exp0 exp -> failure x Ebcoercion basictype exp -> failure x Eexpcoercion exp0 exp -> failure x Earrcoercion ids bracketsopts exp -> failure x Epreop unary_operator exp -> failure x Epreinc exp -> failure x Epredec exp -> failure x Epostinc exp -> failure x Epostdec exp -> failure x Especname specname -> failure x Earr arracc -> failure x Emth mthcall -> failure x Efld fieldacc -> failure x Econst constant -> failure x Estring str -> failure x Enewalloc newalloc -> failure x Evar ids -> failure x transSpecName :: SpecName -> Result transSpecName x = case x of SSsuper -> failure x SSthis -> failure x SSnull -> failure x transNewAlloc :: NewAlloc -> Result transNewAlloc x = case x of Anewclass typename args -> failure x Anewinnerclass typename args fielddeclarations -> failure x Anewarray typename dimexprs -> failure x Anewarriempty typename dimexprs -> failure x Anewarrinits typename dimexprs arrayinits -> failure x transArrAcc :: ArrAcc -> Result transArrAcc x = case x of Aarr ids exp -> failure x Aarr1 specexp exp -> failure x transSpecExp :: SpecExp -> Result transSpecExp x = case x of Cep exp -> failure x Cnp specexpnp -> failure x Cthis specname -> failure x transSpecExpNP :: SpecExpNP -> Result transSpecExpNP x = case x of CNLit constant -> failure x CNParr arracc -> failure x CNPmth mthcall -> failure x CNPfld fieldacc -> failure x transMthCall :: MthCall -> Result transMthCall x = case x of Mmth ids args -> failure x Mmth1 specexpnp args -> failure x Mmthspec specname args -> failure x transFieldAcc :: FieldAcc -> Result transFieldAcc x = case x of Ffvar specexp id -> failure x Ffvar1 newalloc id -> failure x Ffthis ids -> failure x Fclass ids -> failure x Ffclass2 basictype -> failure x transArgs :: Args -> Result transArgs x = case x of Args exps -> failure x transDimExpr :: DimExpr -> Result transDimExpr x = case x of DimExpr exp -> failure x transConstant :: Constant -> Result transConstant x = case x of Efloat d -> failure x Echar jchar -> failure x Eunicode unicodechar -> failure x Eunsigned unsigned -> failure x Elong long -> failure x Eunsignlong unsignedlong -> failure x Ehexadec hexadecimal -> failure x Ehexaunsign hexunsigned -> failure x Ehexalong hexlong -> failure x Ehexaunslong hexunslong -> failure x Eoctal octal -> failure x Eoctalunsign octalunsigned -> failure x Eoctallong octallong -> failure x Eoctalunslong octalunslong -> failure x Ecdouble jdouble -> failure x Ecfloat jfloat -> failure x Eclongdouble jlongdouble -> failure x Eint n -> failure x Etrue -> failure x Efalse -> failure x Elonger n -> failure x Edouble d -> failure x transUnary_operator :: Unary_operator -> Result transUnary_operator x = case x of Plus -> failure x Negative -> failure x Complement -> failure x Logicalneg -> failure x transAssignment_op :: Assignment_op -> Result transAssignment_op x = case x of Assign -> failure x AssignMul -> failure x AssignDiv -> failure x AssignMod -> failure x AssignAdd -> failure x AssignSub -> failure x AssignLeft -> failure x AssignRight -> failure x AssignTrip -> failure x AssignAnd -> failure x AssignXor -> failure x AssignOr -> failure x transSemi :: Semi -> Result transSemi x = case x of Sem1 -> failure x |