-- 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 :: AbsProlog.Database -> Result transDatabase x = case x of AbsProlog.Db clauses -> failure x transClause :: AbsProlog.Clause -> Result transClause x = case x of AbsProlog.Directive predicates -> failure x AbsProlog.Fact predicate -> failure x AbsProlog.Rule predicate predicates -> failure x transPredicate :: AbsProlog.Predicate -> Result transPredicate x = case x of AbsProlog.APred atom -> failure x AbsProlog.CPred atom terms -> failure x transTerm :: AbsProlog.Term -> 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 :: AbsProlog.Atom -> Result transAtom x = case x of AbsProlog.Atm lIdent -> failure x AbsProlog.EAtm x -> failure x transVar :: AbsProlog.Var -> Result transVar x = case x of AbsProlog.A wild -> failure x AbsProlog.V uIdent -> failure x transList :: AbsProlog.List -> 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