-- 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 :: Show a => AbsOCL.OCLfile' a -> Result transOCLfile x = case x of AbsOCL.OCLf _ oCLPackages -> failure x transOCLPackage :: Show a => AbsOCL.OCLPackage' a -> Result transOCLPackage x = case x of AbsOCL.Pack _ packageName oCLExpressions -> failure x transPackageName :: Show a => AbsOCL.PackageName' a -> Result transPackageName x = case x of AbsOCL.PackName _ pathName -> failure x transOCLExpressions :: Show a => AbsOCL.OCLExpressions' a -> Result transOCLExpressions x = case x of AbsOCL.Constraints _ constrnts -> failure x transConstrnt :: Show a => AbsOCL.Constrnt' a -> Result transConstrnt x = case x of AbsOCL.Constr _ contextDeclaration constrBodys -> failure x transConstrBody :: Show a => AbsOCL.ConstrBody' a -> 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 :: Show a => AbsOCL.ContextDeclaration' a -> Result transContextDeclaration x = case x of AbsOCL.CDClassif _ classifierContext -> failure x AbsOCL.CDOper _ operationContext -> failure x transClassifierContext :: Show a => AbsOCL.ClassifierContext' a -> Result transClassifierContext x = case x of AbsOCL.CC _ x -> failure x AbsOCL.CCType _ x1 x2 -> failure x transOperationContext :: Show a => AbsOCL.OperationContext' a -> Result transOperationContext x = case x of AbsOCL.OpC _ x operationName formalParameters -> failure x AbsOCL.OpCRT _ x operationName formalParameters returnType -> failure x transStereotype :: Show a => AbsOCL.Stereotype' a -> Result transStereotype x = case x of AbsOCL.Inv _ -> failure x AbsOCL.Post _ -> failure x AbsOCL.Pre _ -> failure x transOperationName :: Show a => AbsOCL.OperationName' a -> 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 :: Show a => AbsOCL.FormalParameter' a -> Result transFormalParameter x = case x of AbsOCL.FP _ x typeSpecifier -> failure x transTypeSpecifier :: Show a => AbsOCL.TypeSpecifier' a -> Result transTypeSpecifier x = case x of AbsOCL.TScoll _ collectionType -> failure x AbsOCL.TSsimple _ simpleTypeSpecifier -> failure x transCollectionType :: Show a => AbsOCL.CollectionType' a -> Result transCollectionType x = case x of AbsOCL.CT _ collectionKind simpleTypeSpecifier -> failure x transReturnType :: Show a => AbsOCL.ReturnType' a -> Result transReturnType x = case x of AbsOCL.RT _ typeSpecifier -> failure x transOCLExpression :: Show a => AbsOCL.OCLExpression' a -> Result transOCLExpression x = case x of AbsOCL.OCLExp _ expression -> failure x AbsOCL.OCLExpLet _ letExpressions expression -> failure x transLetExpression :: Show a => AbsOCL.LetExpression' a -> 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 :: Show a => AbsOCL.IfExpression' a -> Result transIfExpression x = case x of AbsOCL.IfExp _ expression1 expression2 expression3 -> failure x transExpression :: Show a => AbsOCL.Expression' a -> 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 :: Show a => AbsOCL.MessageArg' a -> Result transMessageArg x = case x of AbsOCL.MAExpr _ expression -> failure x AbsOCL.MAUnspec _ -> failure x AbsOCL.MAUnspecTyped _ typeSpecifier -> failure x transPropertyCall :: Show a => AbsOCL.PropertyCall' a -> Result transPropertyCall x = case x of AbsOCL.PCall _ pathName possTimeExpression possQualifiers possPropCallParam -> failure x transPathName :: Show a => AbsOCL.PathName' a -> Result transPathName x = case x of AbsOCL.PathN _ pNames -> failure x transPName :: Show a => AbsOCL.PName' a -> Result transPName x = case x of AbsOCL.PN _ x -> failure x transPossQualifiers :: Show a => AbsOCL.PossQualifiers' a -> Result transPossQualifiers x = case x of AbsOCL.NoQual _ -> failure x AbsOCL.Qual _ qualifiers -> failure x transQualifiers :: Show a => AbsOCL.Qualifiers' a -> Result transQualifiers x = case x of AbsOCL.Quals _ expressions -> failure x transPossTimeExpression :: Show a => AbsOCL.PossTimeExpression' a -> Result transPossTimeExpression x = case x of AbsOCL.AtPre _ -> failure x AbsOCL.NoTE _ -> failure x transPossPropCallParam :: Show a => AbsOCL.PossPropCallParam' a -> Result transPossPropCallParam x = case x of AbsOCL.NoPCP _ -> failure x AbsOCL.PCPs _ propertyCallParameters -> failure x transDeclarator :: Show a => AbsOCL.Declarator' a -> Result transDeclarator x = case x of AbsOCL.Decl _ declaratorVarList -> failure x AbsOCL.DeclAcc _ declaratorVarList x typeSpecifier expression -> failure x transDeclaratorVarList :: Show a => AbsOCL.DeclaratorVarList' a -> Result transDeclaratorVarList x = case x of AbsOCL.DVL _ idents -> failure x AbsOCL.DVLType _ idents simpleTypeSpecifier -> failure x transPropertyCallParameters :: Show a => AbsOCL.PropertyCallParameters' a -> 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 :: Show a => AbsOCL.PCPHelper' a -> 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 :: Show a => AbsOCL.OCLLiteral' a -> 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 :: Show a => AbsOCL.SimpleTypeSpecifier' a -> Result transSimpleTypeSpecifier x = case x of AbsOCL.STSpec _ pathName -> failure x transLiteralCollection :: Show a => AbsOCL.LiteralCollection' a -> Result transLiteralCollection x = case x of AbsOCL.LCollection _ collectionKind collectionItems -> failure x AbsOCL.LCollectionEmpty _ collectionKind -> failure x transCollectionItem :: Show a => AbsOCL.CollectionItem' a -> Result transCollectionItem x = case x of AbsOCL.CI _ expression -> failure x AbsOCL.CIRange _ expression1 expression2 -> failure x transOCLNumber :: Show a => AbsOCL.OCLNumber' a -> Result transOCLNumber x = case x of AbsOCL.NumDouble _ d -> failure x AbsOCL.NumInt _ n -> failure x transLogicalOperator :: Show a => AbsOCL.LogicalOperator' a -> Result transLogicalOperator x = case x of AbsOCL.LAnd _ -> failure x AbsOCL.LOr _ -> failure x AbsOCL.LXor _ -> failure x transCollectionKind :: Show a => AbsOCL.CollectionKind' a -> Result transCollectionKind x = case x of AbsOCL.Bag _ -> failure x AbsOCL.Collection _ -> failure x AbsOCL.Sequence _ -> failure x AbsOCL.Set _ -> failure x transEqualityOperator :: Show a => AbsOCL.EqualityOperator' a -> Result transEqualityOperator x = case x of AbsOCL.EEq _ -> failure x AbsOCL.ENEq _ -> failure x transRelationalOperator :: Show a => AbsOCL.RelationalOperator' a -> Result transRelationalOperator x = case x of AbsOCL.RGT _ -> failure x AbsOCL.RGTE _ -> failure x AbsOCL.RLT _ -> failure x AbsOCL.RLTE _ -> failure x transAddOperator :: Show a => AbsOCL.AddOperator' a -> Result transAddOperator x = case x of AbsOCL.AAdd _ -> failure x AbsOCL.ASub _ -> failure x transMultiplyOperator :: Show a => AbsOCL.MultiplyOperator' a -> Result transMultiplyOperator x = case x of AbsOCL.MDiv _ -> failure x AbsOCL.MMult _ -> failure x transUnaryOperator :: Show a => AbsOCL.UnaryOperator' a -> Result transUnaryOperator x = case x of AbsOCL.UMin _ -> failure x AbsOCL.UNot _ -> failure x transPostfixOperator :: Show a => AbsOCL.PostfixOperator' a -> Result transPostfixOperator x = case x of AbsOCL.PArrow _ -> failure x AbsOCL.PDot _ -> failure x