-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# LANGUAGE GADTs #-} {-# 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 transTree :: AbsOCL.Tree c -> Result transTree t = case t of AbsOCL.OCLf oCLPackages -> failure t AbsOCL.Pack packageName oCLExpressions -> failure t AbsOCL.PackName pathName -> failure t AbsOCL.Constraints constrnts -> failure t AbsOCL.Constr contextDeclaration constrBodys -> failure t AbsOCL.CB stereotype oCLExpression -> failure t AbsOCL.CBDef letExpressions -> failure t AbsOCL.CBDefNamed x letExpressions -> failure t AbsOCL.CBNamed stereotype x oCLExpression -> failure t AbsOCL.CDClassif classifierContext -> failure t AbsOCL.CDOper operationContext -> failure t AbsOCL.CC x -> failure t AbsOCL.CCType x1 x2 -> failure t AbsOCL.OpC x operationName formalParameters -> failure t AbsOCL.OpCRT x operationName formalParameters returnType -> failure t AbsOCL.Inv -> failure t AbsOCL.Post -> failure t AbsOCL.Pre -> failure t AbsOCL.Add -> failure t AbsOCL.And -> failure t AbsOCL.Div -> failure t AbsOCL.Eq -> failure t AbsOCL.GRT -> failure t AbsOCL.GRTE -> failure t AbsOCL.Impl -> failure t AbsOCL.LST -> failure t AbsOCL.LSTE -> failure t AbsOCL.Mult -> failure t AbsOCL.NEq -> failure t AbsOCL.Not -> failure t AbsOCL.OpName x -> failure t AbsOCL.Or -> failure t AbsOCL.Sub -> failure t AbsOCL.Xor -> failure t AbsOCL.FP x typeSpecifier -> failure t AbsOCL.TScoll collectionType -> failure t AbsOCL.TSsimple simpleTypeSpecifier -> failure t AbsOCL.CT collectionKind simpleTypeSpecifier -> failure t AbsOCL.RT typeSpecifier -> failure t AbsOCL.OCLExp expression -> failure t AbsOCL.OCLExpLet letExpressions expression -> failure t AbsOCL.LE x formalParameters expression -> failure t AbsOCL.LENoParam x expression -> failure t AbsOCL.LENoParamType x typeSpecifier expression -> failure t AbsOCL.LEType x formalParameters typeSpecifier expression -> failure t AbsOCL.IfExp expression1 expression2 expression3 -> failure t AbsOCL.EExplPropCall expression postfixOperator propertyCall -> failure t AbsOCL.EIfExp ifExpression -> failure t AbsOCL.EImplPropCall propertyCall -> failure t AbsOCL.ELit oCLLiteral -> failure t AbsOCL.ELitColl literalCollection -> failure t AbsOCL.EMessage expression pathName messageArgs -> failure t AbsOCL.ENull -> failure t AbsOCL.EOpAdd expression1 addOperator expression2 -> failure t AbsOCL.EOpEq expression1 equalityOperator expression2 -> failure t AbsOCL.EOpImpl expression1 expression2 -> failure t AbsOCL.EOpLog expression1 logicalOperator expression2 -> failure t AbsOCL.EOpMul expression1 multiplyOperator expression2 -> failure t AbsOCL.EOpRel expression1 relationalOperator expression2 -> failure t AbsOCL.EOpUn unaryOperator expression -> failure t AbsOCL.MAExpr expression -> failure t AbsOCL.MAUnspec -> failure t AbsOCL.MAUnspecTyped typeSpecifier -> failure t AbsOCL.PCall pathName possTimeExpression possQualifiers possPropCallParam -> failure t AbsOCL.PathN pNames -> failure t AbsOCL.PN x -> failure t AbsOCL.NoQual -> failure t AbsOCL.Qual qualifiers -> failure t AbsOCL.Quals expressions -> failure t AbsOCL.AtPre -> failure t AbsOCL.NoTE -> failure t AbsOCL.NoPCP -> failure t AbsOCL.PCPs propertyCallParameters -> failure t AbsOCL.Decl declaratorVarList -> failure t AbsOCL.DeclAcc declaratorVarList x typeSpecifier expression -> failure t AbsOCL.DVL idents -> failure t AbsOCL.DVLType idents simpleTypeSpecifier -> failure t AbsOCL.PCP expressions -> failure t AbsOCL.PCPConcrete expression pCPHelpers -> failure t AbsOCL.PCPDecl declarator expressions -> failure t AbsOCL.PCPNoDeclNoParam -> failure t AbsOCL.PCPBar expression -> failure t AbsOCL.PCPColon simpleTypeSpecifier -> failure t AbsOCL.PCPComma expression -> failure t AbsOCL.PCPIterate x typeSpecifier expression -> failure t AbsOCL.LitBoolFalse -> failure t AbsOCL.LitBoolTrue -> failure t AbsOCL.LitNum oCLNumber -> failure t AbsOCL.LitStr str -> failure t AbsOCL.STSpec pathName -> failure t AbsOCL.LCollection collectionKind collectionItems -> failure t AbsOCL.LCollectionEmpty collectionKind -> failure t AbsOCL.CI expression -> failure t AbsOCL.CIRange expression1 expression2 -> failure t AbsOCL.NumDouble d -> failure t AbsOCL.NumInt n -> failure t AbsOCL.LAnd -> failure t AbsOCL.LOr -> failure t AbsOCL.LXor -> failure t AbsOCL.Bag -> failure t AbsOCL.Collection -> failure t AbsOCL.Sequence -> failure t AbsOCL.Set -> failure t AbsOCL.EEq -> failure t AbsOCL.ENEq -> failure t AbsOCL.RGT -> failure t AbsOCL.RGTE -> failure t AbsOCL.RLT -> failure t AbsOCL.RLTE -> failure t AbsOCL.AAdd -> failure t AbsOCL.ASub -> failure t AbsOCL.MDiv -> failure t AbsOCL.MMult -> failure t AbsOCL.UMin -> failure t AbsOCL.UNot -> failure t AbsOCL.PArrow -> failure t AbsOCL.PDot -> failure t 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