-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelLBNF where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsLBNF type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transIdent :: AbsLBNF.Ident -> Result transIdent x = case x of AbsLBNF.Ident string -> failure x transGrammar :: Show a => AbsLBNF.Grammar' a -> Result transGrammar x = case x of AbsLBNF.MkGrammar _ defs -> failure x transDef :: Show a => AbsLBNF.Def' a -> Result transDef x = case x of AbsLBNF.Coercions _ x n -> failure x AbsLBNF.Comment _ str -> failure x AbsLBNF.Comments _ str1 str2 -> failure x AbsLBNF.Entryp _ idents -> failure x AbsLBNF.Internal _ label cat items -> failure x AbsLBNF.Layout _ strings -> failure x AbsLBNF.LayoutStop _ strings -> failure x AbsLBNF.LayoutTop _ -> failure x AbsLBNF.PosToken _ x reg -> failure x AbsLBNF.Rule _ label cat items -> failure x AbsLBNF.Rules _ x rHSs -> failure x AbsLBNF.Separator _ minimumSize cat str -> failure x AbsLBNF.Terminator _ minimumSize cat str -> failure x AbsLBNF.Token _ x reg -> failure x transItem :: Show a => AbsLBNF.Item' a -> Result transItem x = case x of AbsLBNF.NTerminal _ cat -> failure x AbsLBNF.Terminal _ str -> failure x transCat :: Show a => AbsLBNF.Cat' a -> Result transCat x = case x of AbsLBNF.IdCat _ x -> failure x AbsLBNF.ListCat _ cat -> failure x transLabel :: Show a => AbsLBNF.Label' a -> Result transLabel x = case x of AbsLBNF.LabF _ labelId1 labelId2 -> failure x AbsLBNF.LabNoP _ labelId -> failure x AbsLBNF.LabP _ labelId profItems -> failure x AbsLBNF.LabPF _ labelId1 labelId2 profItems -> failure x transLabelId :: Show a => AbsLBNF.LabelId' a -> Result transLabelId x = case x of AbsLBNF.Id _ x -> failure x AbsLBNF.ListCons _ -> failure x AbsLBNF.ListE _ -> failure x AbsLBNF.ListOne _ -> failure x AbsLBNF.Wild _ -> failure x transProfItem :: Show a => AbsLBNF.ProfItem' a -> Result transProfItem x = case x of AbsLBNF.ProfIt _ intLists integers -> failure x transIntList :: Show a => AbsLBNF.IntList' a -> Result transIntList x = case x of AbsLBNF.Ints _ integers -> failure x transRHS :: Show a => AbsLBNF.RHS' a -> Result transRHS x = case x of AbsLBNF.MkRHS _ items -> failure x transMinimumSize :: Show a => AbsLBNF.MinimumSize' a -> Result transMinimumSize x = case x of AbsLBNF.MEmpty _ -> failure x AbsLBNF.MNonempty _ -> failure x transReg :: Show a => AbsLBNF.Reg' a -> Result transReg x = case x of AbsLBNF.RAlt _ reg1 reg2 -> failure x AbsLBNF.RAlts _ str -> failure x AbsLBNF.RAny _ -> failure x AbsLBNF.RChar _ c -> failure x AbsLBNF.RDigit _ -> failure x AbsLBNF.REps _ -> failure x AbsLBNF.RLetter _ -> failure x AbsLBNF.RLower _ -> failure x AbsLBNF.RMinus _ reg1 reg2 -> failure x AbsLBNF.ROpt _ reg -> failure x AbsLBNF.RPlus _ reg -> failure x AbsLBNF.RSeq _ reg1 reg2 -> failure x AbsLBNF.RSeqs _ str -> failure x AbsLBNF.RStar _ reg -> failure x AbsLBNF.RUpper _ -> failure x