module GFCC.Skel where -- Haskell module generated by the BNF converter import GFCC.Abs import GFCC.ErrM type Result = Err String failure :: Show a => a -> Result failure x = Bad $ "Undefined case: " ++ show x transTree :: Tree c -> Result transTree t = case t of Grm header abstract concretes -> failure t Hdr cid cids -> failure t Abs absdefs -> failure t Cnc cid cncdefs -> failure t Fun cid type' exp -> failure t Lin cid term -> failure t Typ cids cid -> failure t Tr atom exps -> failure t AC cid -> failure t AS str -> failure t AI n -> failure t AF d -> failure t AM -> failure t R terms -> failure t P term0 term1 -> failure t S terms -> failure t K tokn -> failure t V n -> failure t C n -> failure t F cid -> failure t FV terms -> failure t W str term -> failure t RP term0 term1 -> failure t TM -> failure t KS str -> failure t KP strs variants -> failure t Var strs0 strs1 -> failure t CId str -> failure t transGrammar :: Grammar -> Result transGrammar t = case t of Grm header abstract concretes -> failure t transHeader :: Header -> Result transHeader t = case t of Hdr cid cids -> failure t transAbstract :: Abstract -> Result transAbstract t = case t of Abs absdefs -> failure t transConcrete :: Concrete -> Result transConcrete t = case t of Cnc cid cncdefs -> failure t transAbsDef :: AbsDef -> Result transAbsDef t = case t of Fun cid type' exp -> failure t transCncDef :: CncDef -> Result transCncDef t = case t of Lin cid term -> failure t transType :: Type -> Result transType t = case t of Typ cids cid -> failure t transExp :: Exp -> Result transExp t = case t of Tr atom exps -> failure t transAtom :: Atom -> Result transAtom t = case t of AC cid -> failure t AS str -> failure t AI n -> failure t AF d -> failure t AM -> failure t transTerm :: Term -> Result transTerm t = case t of R terms -> failure t P term0 term1 -> failure t S terms -> failure t K tokn -> failure t V n -> failure t C n -> failure t F cid -> failure t FV terms -> failure t W str term -> failure t RP term0 term1 -> failure t TM -> failure t transTokn :: Tokn -> Result transTokn t = case t of KS str -> failure t KP strs variants -> failure t transVariant :: Variant -> Result transVariant t = case t of Var strs0 strs1 -> failure t transCId :: CId -> Result transCId t = case t of CId str -> failure t