-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelProlog where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsProlog type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transIdent :: AbsProlog.Ident -> Result transIdent x = case x of AbsProlog.Ident string -> failure x transUIdent :: AbsProlog.UIdent -> Result transUIdent x = case x of AbsProlog.UIdent string -> failure x transLIdent :: AbsProlog.LIdent -> Result transLIdent x = case x of AbsProlog.LIdent string -> failure x transWild :: AbsProlog.Wild -> Result transWild x = case x of AbsProlog.Wild string -> failure x transDatabase :: Show a => AbsProlog.Database' a -> Result transDatabase x = case x of AbsProlog.Db _ clauses -> failure x transClause :: Show a => AbsProlog.Clause' a -> Result transClause x = case x of AbsProlog.Directive _ predicates -> failure x AbsProlog.Fact _ predicate -> failure x AbsProlog.Rule _ predicate predicates -> failure x transPredicate :: Show a => AbsProlog.Predicate' a -> Result transPredicate x = case x of AbsProlog.APred _ atom -> failure x AbsProlog.CPred _ atom terms -> failure x transTerm :: Show a => AbsProlog.Term' a -> Result transTerm x = case x of AbsProlog.Complex _ atom terms -> failure x AbsProlog.TAtom _ atom -> failure x AbsProlog.TList _ list -> failure x AbsProlog.VarT _ var -> failure x transAtom :: Show a => AbsProlog.Atom' a -> Result transAtom x = case x of AbsProlog.Atm _ lIdent -> failure x AbsProlog.EAtm _ x -> failure x transVar :: Show a => AbsProlog.Var' a -> Result transVar x = case x of AbsProlog.A _ wild -> failure x AbsProlog.V _ uIdent -> failure x transList :: Show a => AbsProlog.List' a -> Result transList x = case x of AbsProlog.Cons _ terms list -> failure x AbsProlog.ConsV _ terms var -> failure x AbsProlog.Empty _ -> failure x AbsProlog.Enum _ terms -> failure x