-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelJava where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsJava type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transIdent :: AbsJava.Ident -> Result transIdent x = case x of AbsJava.Ident string -> failure x transUnsigned :: AbsJava.Unsigned -> Result transUnsigned x = case x of AbsJava.Unsigned string -> failure x transLong :: AbsJava.Long -> Result transLong x = case x of AbsJava.Long string -> failure x transUnsignedLong :: AbsJava.UnsignedLong -> Result transUnsignedLong x = case x of AbsJava.UnsignedLong string -> failure x transHexadecimal :: AbsJava.Hexadecimal -> Result transHexadecimal x = case x of AbsJava.Hexadecimal string -> failure x transHexUnsigned :: AbsJava.HexUnsigned -> Result transHexUnsigned x = case x of AbsJava.HexUnsigned string -> failure x transHexLong :: AbsJava.HexLong -> Result transHexLong x = case x of AbsJava.HexLong string -> failure x transHexUnsLong :: AbsJava.HexUnsLong -> Result transHexUnsLong x = case x of AbsJava.HexUnsLong string -> failure x transOctal :: AbsJava.Octal -> Result transOctal x = case x of AbsJava.Octal string -> failure x transOctalUnsigned :: AbsJava.OctalUnsigned -> Result transOctalUnsigned x = case x of AbsJava.OctalUnsigned string -> failure x transOctalLong :: AbsJava.OctalLong -> Result transOctalLong x = case x of AbsJava.OctalLong string -> failure x transOctalUnsLong :: AbsJava.OctalUnsLong -> Result transOctalUnsLong x = case x of AbsJava.OctalUnsLong string -> failure x transJDouble :: AbsJava.JDouble -> Result transJDouble x = case x of AbsJava.JDouble string -> failure x transJFloat :: AbsJava.JFloat -> Result transJFloat x = case x of AbsJava.JFloat string -> failure x transJLongDouble :: AbsJava.JLongDouble -> Result transJLongDouble x = case x of AbsJava.JLongDouble string -> failure x transUnicodeChar :: AbsJava.UnicodeChar -> Result transUnicodeChar x = case x of AbsJava.UnicodeChar string -> failure x transJChar :: AbsJava.JChar -> Result transJChar x = case x of AbsJava.JChar string -> failure x transProgramFile :: AbsJava.ProgramFile -> Result transProgramFile x = case x of AbsJava.ProgF imports typeDeclarations -> failure x AbsJava.Prpkg idents semis imports typeDeclarations -> failure x transImport :: AbsJava.Import -> Result transImport x = case x of AbsJava.ImportA idents semis -> failure x AbsJava.ImportN idents semis -> failure x transTypeDeclaration :: AbsJava.TypeDeclaration -> Result transTypeDeclaration x = case x of AbsJava.TypeDecl classHeader fieldDeclarations -> failure x transClassHeader :: AbsJava.ClassHeader -> Result transClassHeader x = case x of AbsJava.ClassDec modifiers x -> failure x AbsJava.ClassDecE modifiers x typeNames -> failure x AbsJava.ClassDecEI modifiers x typeNames1 typeNames2 -> failure x AbsJava.ClassDecI modifiers x typeNames -> failure x AbsJava.InterDec modifiers x -> failure x AbsJava.InterDecE modifiers x typeNames -> failure x AbsJava.InterDecEI modifiers x typeNames1 typeNames2 -> failure x AbsJava.InterDecI modifiers x typeNames -> failure x transFieldDeclaration :: AbsJava.FieldDeclaration -> Result transFieldDeclaration x = case x of AbsJava.Dblk body -> failure x AbsJava.Dconst modifiers x parameters body -> failure x AbsJava.Dconstt modifiers x parameters typeNames body -> failure x AbsJava.Dinnerclass typeDeclaration -> failure x AbsJava.Dmth modifiers typeSpec methodDecl methodBody -> failure x AbsJava.Dmthth modifiers typeSpec methodDecl typeNames methodBody -> failure x AbsJava.Dvar modifiers typeSpec varDecls -> failure x transMethodBody :: AbsJava.MethodBody -> Result transMethodBody x = case x of AbsJava.IBody -> failure x AbsJava.MBody body -> failure x transLVarStatement :: AbsJava.LVarStatement -> Result transLVarStatement x = case x of AbsJava.LVar typeSpec varDecls -> failure x AbsJava.LVarf typeSpec varDecls -> failure x AbsJava.Statem stm -> failure x transBody :: AbsJava.Body -> Result transBody x = case x of AbsJava.BodyImpl lVarStatements -> failure x transStm :: AbsJava.Stm -> Result transStm x = case x of AbsJava.Case exp -> failure x AbsJava.Dflt -> failure x AbsJava.Exps exp -> failure x AbsJava.Grd guardStm -> failure x AbsJava.Iter iterStm -> failure x AbsJava.Jmp jumpStm -> failure x AbsJava.LV lVarStatements -> failure x AbsJava.Lbl x -> failure x AbsJava.Sel selectionStm -> failure x AbsJava.Sem -> failure x transDeclaratorName :: AbsJava.DeclaratorName -> Result transDeclaratorName x = case x of AbsJava.DeclArray x bracketsOpts -> failure x AbsJava.DeclName x -> failure x transVarDecl :: AbsJava.VarDecl -> Result transVarDecl x = case x of AbsJava.VDecl x -> failure x AbsJava.VDeclAssign declaratorName variableInits -> failure x transVariableInits :: AbsJava.VariableInits -> Result transVariableInits x = case x of AbsJava.IArri arrayInits -> failure x AbsJava.IEmpt -> failure x AbsJava.IExp exp -> failure x transArrayInits :: AbsJava.ArrayInits -> Result transArrayInits x = case x of AbsJava.Vai arrayInits variableInits -> failure x AbsJava.Vainit variableInits -> failure x AbsJava.Vais arrayInits -> failure x transMethodDecl :: AbsJava.MethodDecl -> Result transMethodDecl x = case x of AbsJava.Mth declaratorName parameters -> failure x AbsJava.MthdArr methodDecl bracketsOpt -> failure x transParameter :: AbsJava.Parameter -> Result transParameter x = case x of AbsJava.Param typeSpec declaratorName -> failure x AbsJava.Pfinal typeSpec declaratorName -> failure x transSelectionStm :: AbsJava.SelectionStm -> Result transSelectionStm x = case x of AbsJava.If exp stm1 elseIfStms stm2 -> failure x AbsJava.Ifone exp stm elseIfStms -> failure x AbsJava.Switch exp body -> failure x transElseIfStm :: AbsJava.ElseIfStm -> Result transElseIfStm x = case x of AbsJava.Elseif exp stm -> failure x transJumpStm :: AbsJava.JumpStm -> Result transJumpStm x = case x of AbsJava.Break -> failure x AbsJava.Brlabel x -> failure x AbsJava.Continue -> failure x AbsJava.Continuelabel x -> failure x AbsJava.Return -> failure x AbsJava.ReturnExp exp -> failure x AbsJava.Throw exp -> failure x transGuardStm :: AbsJava.GuardStm -> Result transGuardStm x = case x of AbsJava.Synchronized exp body -> failure x AbsJava.Try body catchs -> failure x AbsJava.Tryfinally body1 catchs body2 -> failure x transCatch :: AbsJava.Catch -> Result transCatch x = case x of AbsJava.Catch1 typeSpec x body -> failure x AbsJava.Catch2 typeSpec body -> failure x transIterStm :: AbsJava.IterStm -> Result transIterStm x = case x of AbsJava.Do stm exp -> failure x AbsJava.For forInit exps1 exps2 stm -> failure x AbsJava.While exp stm -> failure x transForInit :: AbsJava.ForInit -> Result transForInit x = case x of AbsJava.DeclVar typeSpec varDecls -> failure x AbsJava.DeclVarFinal typeSpec varDecls -> failure x AbsJava.Exprs1 exps -> failure x transModifier :: AbsJava.Modifier -> Result transModifier x = case x of AbsJava.Mabstract -> failure x AbsJava.Mfinal -> failure x AbsJava.Mnative -> failure x AbsJava.Mprivate -> failure x AbsJava.Mprotected -> failure x AbsJava.Mpublic -> failure x AbsJava.Mstatic -> failure x AbsJava.Msync -> failure x AbsJava.Mtransient -> failure x AbsJava.Mvolatile -> failure x transBasicType :: AbsJava.BasicType -> Result transBasicType x = case x of AbsJava.Tboolean -> failure x AbsJava.Tbyte -> failure x AbsJava.Tchar -> failure x AbsJava.Tdouble -> failure x AbsJava.Tfloat -> failure x AbsJava.Tint -> failure x AbsJava.Tlong -> failure x AbsJava.Tshort -> failure x transTypeSpec :: AbsJava.TypeSpec -> Result transTypeSpec x = case x of AbsJava.ArrayType typeName bracketsOpts -> failure x AbsJava.NamedType typeName -> failure x transTypeName :: AbsJava.TypeName -> Result transTypeName x = case x of AbsJava.BuiltIn basicType -> failure x AbsJava.ClassType idents -> failure x transBracketsOpt :: AbsJava.BracketsOpt -> Result transBracketsOpt x = case x of AbsJava.BracketsEmpty -> failure x transExp :: AbsJava.Exp -> Result transExp x = case x of AbsJava.Earr arrAcc -> failure x AbsJava.Earrcoercion idents bracketsOpts exp -> failure x AbsJava.Eassign exp1 assignment_op exp2 -> failure x AbsJava.Ebcoercion basicType exp -> failure x AbsJava.Ebitand exp1 exp2 -> failure x AbsJava.Ebitexor exp1 exp2 -> failure x AbsJava.Ebitor exp1 exp2 -> failure x AbsJava.Econdition exp1 exp2 exp3 -> failure x AbsJava.Econst constant -> failure x AbsJava.Ediv exp1 exp2 -> failure x AbsJava.Eeq exp1 exp2 -> failure x AbsJava.Eexpcoercion exp1 exp2 -> failure x AbsJava.Efld fieldAcc -> failure x AbsJava.Ege exp1 exp2 -> failure x AbsJava.Egrthen exp1 exp2 -> failure x AbsJava.Eland exp1 exp2 -> failure x AbsJava.Ele exp1 exp2 -> failure x AbsJava.Eleft exp1 exp2 -> failure x AbsJava.Elor exp1 exp2 -> failure x AbsJava.Elthen exp1 exp2 -> failure x AbsJava.Eminus exp1 exp2 -> failure x AbsJava.Emod exp1 exp2 -> failure x AbsJava.Emth mthCall -> failure x AbsJava.Eneq exp1 exp2 -> failure x AbsJava.Enewalloc newAlloc -> failure x AbsJava.Eplus exp1 exp2 -> failure x AbsJava.Epostdec exp -> failure x AbsJava.Epostinc exp -> failure x AbsJava.Epredec exp -> failure x AbsJava.Epreinc exp -> failure x AbsJava.Epreop unary_operator exp -> failure x AbsJava.Eright exp1 exp2 -> failure x AbsJava.Especname specName -> failure x AbsJava.Estring str -> failure x AbsJava.Etimes exp1 exp2 -> failure x AbsJava.Etrip exp1 exp2 -> failure x AbsJava.Etype exp typeName -> failure x AbsJava.Evar idents -> failure x transSpecName :: AbsJava.SpecName -> Result transSpecName x = case x of AbsJava.SSnull -> failure x AbsJava.SSsuper -> failure x AbsJava.SSthis -> failure x transNewAlloc :: AbsJava.NewAlloc -> Result transNewAlloc x = case x of AbsJava.Anewarray typeName dimExprs -> failure x AbsJava.Anewarriempty typeName dimExprs -> failure x AbsJava.Anewarrinits typeName dimExprs arrayInits -> failure x AbsJava.Anewclass typeName args -> failure x AbsJava.Anewinnerclass typeName args fieldDeclarations -> failure x transArrAcc :: AbsJava.ArrAcc -> Result transArrAcc x = case x of AbsJava.Aarr idents exp -> failure x AbsJava.Aarr1 specExp exp -> failure x transSpecExp :: AbsJava.SpecExp -> Result transSpecExp x = case x of AbsJava.Cep exp -> failure x AbsJava.Cnp specExpNP -> failure x AbsJava.Cthis specName -> failure x transSpecExpNP :: AbsJava.SpecExpNP -> Result transSpecExpNP x = case x of AbsJava.CNLit constant -> failure x AbsJava.CNParr arrAcc -> failure x AbsJava.CNPfld fieldAcc -> failure x AbsJava.CNPmth mthCall -> failure x transMthCall :: AbsJava.MthCall -> Result transMthCall x = case x of AbsJava.Mmth idents args -> failure x AbsJava.Mmth1 specExpNP args -> failure x AbsJava.Mmthspec specName args -> failure x transFieldAcc :: AbsJava.FieldAcc -> Result transFieldAcc x = case x of AbsJava.Fclass idents -> failure x AbsJava.Ffclass2 basicType -> failure x AbsJava.Ffthis idents -> failure x AbsJava.Ffvar specExp x -> failure x AbsJava.Ffvar1 newAlloc x -> failure x transArgs :: AbsJava.Args -> Result transArgs x = case x of AbsJava.ArgList exps -> failure x transDimExpr :: AbsJava.DimExpr -> Result transDimExpr x = case x of AbsJava.Dim exp -> failure x transConstant :: AbsJava.Constant -> Result transConstant x = case x of AbsJava.Ecdouble jDouble -> failure x AbsJava.Ecfloat jFloat -> failure x AbsJava.Echar jChar -> failure x AbsJava.Eclongdouble jLongDouble -> failure x AbsJava.Edouble d -> failure x AbsJava.Efalse -> failure x AbsJava.Efloat d -> failure x AbsJava.Ehexadec hexadecimal -> failure x AbsJava.Ehexalong hexLong -> failure x AbsJava.Ehexaunsign hexUnsigned -> failure x AbsJava.Ehexaunslong hexUnsLong -> failure x AbsJava.Eint n -> failure x AbsJava.Elong long -> failure x AbsJava.Elonger n -> failure x AbsJava.Eoctal octal -> failure x AbsJava.Eoctallong octalLong -> failure x AbsJava.Eoctalunsign octalUnsigned -> failure x AbsJava.Eoctalunslong octalUnsLong -> failure x AbsJava.Etrue -> failure x AbsJava.Eunicode unicodeChar -> failure x AbsJava.Eunsigned unsigned -> failure x AbsJava.Eunsignlong unsignedLong -> failure x transUnary_operator :: AbsJava.Unary_operator -> Result transUnary_operator x = case x of AbsJava.Complement -> failure x AbsJava.Logicalneg -> failure x AbsJava.Negative -> failure x AbsJava.Plus -> failure x transAssignment_op :: AbsJava.Assignment_op -> Result transAssignment_op x = case x of AbsJava.Assign -> failure x AbsJava.AssignAdd -> failure x AbsJava.AssignAnd -> failure x AbsJava.AssignDiv -> failure x AbsJava.AssignLeft -> failure x AbsJava.AssignMod -> failure x AbsJava.AssignMul -> failure x AbsJava.AssignOr -> failure x AbsJava.AssignRight -> failure x AbsJava.AssignSub -> failure x AbsJava.AssignTrip -> failure x AbsJava.AssignXor -> failure x transSemi :: AbsJava.Semi -> Result transSemi x = case x of AbsJava.Sem1 -> failure x