-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelOCL where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsOCL type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transIdent :: AbsOCL.Ident -> Result transIdent x = case x of AbsOCL.Ident string -> failure x transOCLfile :: AbsOCL.OCLfile -> Result transOCLfile x = case x of AbsOCL.OCLf oCLPackages -> failure x transOCLPackage :: AbsOCL.OCLPackage -> Result transOCLPackage x = case x of AbsOCL.Pack packageName oCLExpressions -> failure x transPackageName :: AbsOCL.PackageName -> Result transPackageName x = case x of AbsOCL.PackName pathName -> failure x transOCLExpressions :: AbsOCL.OCLExpressions -> Result transOCLExpressions x = case x of AbsOCL.Constraints constrnts -> failure x transConstrnt :: AbsOCL.Constrnt -> Result transConstrnt x = case x of AbsOCL.Constr contextDeclaration constrBodys -> failure x transConstrBody :: AbsOCL.ConstrBody -> Result transConstrBody x = case x of AbsOCL.CB stereotype oCLExpression -> failure x AbsOCL.CBDef letExpressions -> failure x AbsOCL.CBDefNamed x letExpressions -> failure x AbsOCL.CBNamed stereotype x oCLExpression -> failure x transContextDeclaration :: AbsOCL.ContextDeclaration -> Result transContextDeclaration x = case x of AbsOCL.CDClassif classifierContext -> failure x AbsOCL.CDOper operationContext -> failure x transClassifierContext :: AbsOCL.ClassifierContext -> Result transClassifierContext x = case x of AbsOCL.CC x -> failure x AbsOCL.CCType x1 x2 -> failure x transOperationContext :: AbsOCL.OperationContext -> Result transOperationContext x = case x of AbsOCL.OpC x operationName formalParameters -> failure x AbsOCL.OpCRT x operationName formalParameters returnType -> failure x transStereotype :: AbsOCL.Stereotype -> Result transStereotype x = case x of AbsOCL.Inv -> failure x AbsOCL.Post -> failure x AbsOCL.Pre -> failure x transOperationName :: AbsOCL.OperationName -> Result transOperationName x = case x of AbsOCL.Add -> failure x AbsOCL.And -> failure x AbsOCL.Div -> failure x AbsOCL.Eq -> failure x AbsOCL.GRT -> failure x AbsOCL.GRTE -> failure x AbsOCL.Impl -> failure x AbsOCL.LST -> failure x AbsOCL.LSTE -> failure x AbsOCL.Mult -> failure x AbsOCL.NEq -> failure x AbsOCL.Not -> failure x AbsOCL.OpName x -> failure x AbsOCL.Or -> failure x AbsOCL.Sub -> failure x AbsOCL.Xor -> failure x transFormalParameter :: AbsOCL.FormalParameter -> Result transFormalParameter x = case x of AbsOCL.FP x typeSpecifier -> failure x transTypeSpecifier :: AbsOCL.TypeSpecifier -> Result transTypeSpecifier x = case x of AbsOCL.TScoll collectionType -> failure x AbsOCL.TSsimple simpleTypeSpecifier -> failure x transCollectionType :: AbsOCL.CollectionType -> Result transCollectionType x = case x of AbsOCL.CT collectionKind simpleTypeSpecifier -> failure x transReturnType :: AbsOCL.ReturnType -> Result transReturnType x = case x of AbsOCL.RT typeSpecifier -> failure x transOCLExpression :: AbsOCL.OCLExpression -> Result transOCLExpression x = case x of AbsOCL.OCLExp expression -> failure x AbsOCL.OCLExpLet letExpressions expression -> failure x transLetExpression :: AbsOCL.LetExpression -> Result transLetExpression x = case x of AbsOCL.LE x formalParameters expression -> failure x AbsOCL.LENoParam x expression -> failure x AbsOCL.LENoParamType x typeSpecifier expression -> failure x AbsOCL.LEType x formalParameters typeSpecifier expression -> failure x transIfExpression :: AbsOCL.IfExpression -> Result transIfExpression x = case x of AbsOCL.IfExp expression1 expression2 expression3 -> failure x transExpression :: AbsOCL.Expression -> Result transExpression x = case x of AbsOCL.EExplPropCall expression postfixOperator propertyCall -> failure x AbsOCL.EIfExp ifExpression -> failure x AbsOCL.EImplPropCall propertyCall -> failure x AbsOCL.ELit oCLLiteral -> failure x AbsOCL.ELitColl literalCollection -> failure x AbsOCL.EMessage expression pathName messageArgs -> failure x AbsOCL.ENull -> failure x AbsOCL.EOpAdd expression1 addOperator expression2 -> failure x AbsOCL.EOpEq expression1 equalityOperator expression2 -> failure x AbsOCL.EOpImpl expression1 expression2 -> failure x AbsOCL.EOpLog expression1 logicalOperator expression2 -> failure x AbsOCL.EOpMul expression1 multiplyOperator expression2 -> failure x AbsOCL.EOpRel expression1 relationalOperator expression2 -> failure x AbsOCL.EOpUn unaryOperator expression -> failure x transMessageArg :: AbsOCL.MessageArg -> Result transMessageArg x = case x of AbsOCL.MAExpr expression -> failure x AbsOCL.MAUnspec -> failure x AbsOCL.MAUnspecTyped typeSpecifier -> failure x transPropertyCall :: AbsOCL.PropertyCall -> Result transPropertyCall x = case x of AbsOCL.PCall pathName possTimeExpression possQualifiers possPropCallParam -> failure x transPathName :: AbsOCL.PathName -> Result transPathName x = case x of AbsOCL.PathN pNames -> failure x transPName :: AbsOCL.PName -> Result transPName x = case x of AbsOCL.PN x -> failure x transPossQualifiers :: AbsOCL.PossQualifiers -> Result transPossQualifiers x = case x of AbsOCL.NoQual -> failure x AbsOCL.Qual qualifiers -> failure x transQualifiers :: AbsOCL.Qualifiers -> Result transQualifiers x = case x of AbsOCL.Quals expressions -> failure x transPossTimeExpression :: AbsOCL.PossTimeExpression -> Result transPossTimeExpression x = case x of AbsOCL.AtPre -> failure x AbsOCL.NoTE -> failure x transPossPropCallParam :: AbsOCL.PossPropCallParam -> Result transPossPropCallParam x = case x of AbsOCL.NoPCP -> failure x AbsOCL.PCPs propertyCallParameters -> failure x transDeclarator :: AbsOCL.Declarator -> Result transDeclarator x = case x of AbsOCL.Decl declaratorVarList -> failure x AbsOCL.DeclAcc declaratorVarList x typeSpecifier expression -> failure x transDeclaratorVarList :: AbsOCL.DeclaratorVarList -> Result transDeclaratorVarList x = case x of AbsOCL.DVL idents -> failure x AbsOCL.DVLType idents simpleTypeSpecifier -> failure x transPropertyCallParameters :: AbsOCL.PropertyCallParameters -> Result transPropertyCallParameters x = case x of AbsOCL.PCP expressions -> failure x AbsOCL.PCPConcrete expression pCPHelpers -> failure x AbsOCL.PCPDecl declarator expressions -> failure x AbsOCL.PCPNoDeclNoParam -> failure x transPCPHelper :: AbsOCL.PCPHelper -> Result transPCPHelper x = case x of AbsOCL.PCPBar expression -> failure x AbsOCL.PCPColon simpleTypeSpecifier -> failure x AbsOCL.PCPComma expression -> failure x AbsOCL.PCPIterate x typeSpecifier expression -> failure x transOCLLiteral :: AbsOCL.OCLLiteral -> Result transOCLLiteral x = case x of AbsOCL.LitBoolFalse -> failure x AbsOCL.LitBoolTrue -> failure x AbsOCL.LitNum oCLNumber -> failure x AbsOCL.LitStr str -> failure x transSimpleTypeSpecifier :: AbsOCL.SimpleTypeSpecifier -> Result transSimpleTypeSpecifier x = case x of AbsOCL.STSpec pathName -> failure x transLiteralCollection :: AbsOCL.LiteralCollection -> Result transLiteralCollection x = case x of AbsOCL.LCollection collectionKind collectionItems -> failure x AbsOCL.LCollectionEmpty collectionKind -> failure x transCollectionItem :: AbsOCL.CollectionItem -> Result transCollectionItem x = case x of AbsOCL.CI expression -> failure x AbsOCL.CIRange expression1 expression2 -> failure x transOCLNumber :: AbsOCL.OCLNumber -> Result transOCLNumber x = case x of AbsOCL.NumDouble d -> failure x AbsOCL.NumInt n -> failure x transLogicalOperator :: AbsOCL.LogicalOperator -> Result transLogicalOperator x = case x of AbsOCL.LAnd -> failure x AbsOCL.LOr -> failure x AbsOCL.LXor -> failure x transCollectionKind :: AbsOCL.CollectionKind -> Result transCollectionKind x = case x of AbsOCL.Bag -> failure x AbsOCL.Collection -> failure x AbsOCL.Sequence -> failure x AbsOCL.Set -> failure x transEqualityOperator :: AbsOCL.EqualityOperator -> Result transEqualityOperator x = case x of AbsOCL.EEq -> failure x AbsOCL.ENEq -> failure x transRelationalOperator :: AbsOCL.RelationalOperator -> Result transRelationalOperator x = case x of AbsOCL.RGT -> failure x AbsOCL.RGTE -> failure x AbsOCL.RLT -> failure x AbsOCL.RLTE -> failure x transAddOperator :: AbsOCL.AddOperator -> Result transAddOperator x = case x of AbsOCL.AAdd -> failure x AbsOCL.ASub -> failure x transMultiplyOperator :: AbsOCL.MultiplyOperator -> Result transMultiplyOperator x = case x of AbsOCL.MDiv -> failure x AbsOCL.MMult -> failure x transUnaryOperator :: AbsOCL.UnaryOperator -> Result transUnaryOperator x = case x of AbsOCL.UMin -> failure x AbsOCL.UNot -> failure x transPostfixOperator :: AbsOCL.PostfixOperator -> Result transPostfixOperator x = case x of AbsOCL.PArrow -> failure x AbsOCL.PDot -> failure x