-- UUAGC 0.9.42.0 (src-ag/PrintErrorMessages.ag) module PrintErrorMessages where {-# LINE 4 "./src-ag/PrintErrorMessages.ag" #-} import Pretty import UU.Scanner.Position(Pos(..), noPos) import ErrorMessages import Options import Data.List(mapAccumL,intersect,(\\)) import GrammarInfo import qualified Control.Monad.Error.Class as Err {-# LINE 15 "dist/build/PrintErrorMessages.hs" #-} {-# LINE 2 "./src-ag/ErrorMessages.ag" #-} import UU.Scanner.Position(Pos) import Pretty import CodeSyntax import CommonTypes {-# LINE 23 "dist/build/PrintErrorMessages.hs" #-} {-# LINE 15 "./src-ag/PrintErrorMessages.ag" #-} instance Err.Error Error where noMsg = Err.strMsg "error" strMsg = CustomError False noPos . pp {-# LINE 29 "dist/build/PrintErrorMessages.hs" #-} {-# LINE 22 "./src-ag/PrintErrorMessages.ag" #-} isError :: Options -> Error -> Bool isError opts (ParserError _ _ _ ) = True isError opts (DupAlt _ _ _ ) = False isError opts (DupSynonym _ _ ) = False isError opts (DupSet _ _ ) = False isError opts (DupInhAttr _ _ _ ) = True isError opts (DupSynAttr _ _ _ ) = True isError opts (DupChild _ _ _ _ ) = False isError opts (DupRule _ _ _ _ _) = True isError opts (DupSig _ _ _ ) = False isError opts (UndefNont _ ) = True isError opts (UndefAlt _ _ ) = True isError opts (UndefChild _ _ _ ) = True isError opts (MissingRule _ _ _ _ ) = False isError opts (SuperfluousRule _ _ _ _ ) = False isError opts (UndefLocal _ _ _ ) = True isError opts (ChildAsLocal _ _ _ ) = False isError opts (UndefAttr _ _ _ _ _) = True isError opts (CyclicSet _ ) = True isError opts (CustomError w _ _ ) = not w isError opts (LocalCirc _ _ _ _ _) = cycleIsDangerous opts isError opts (InstCirc _ _ _ _ _) = cycleIsDangerous opts isError opts (DirectCirc _ _ _ ) = cycleIsDangerous opts isError opts (InducedCirc _ _ _ ) = cycleIsDangerous opts isError opts (MissingTypeSig _ _ _ ) = False isError opts (MissingInstSig _ _ _ ) = True isError opts (DupUnique _ _ _ ) = False isError opts (MissingUnique _ _ ) = True isError opts (MissingSyn _ _ ) = True isError opts (MissingNamedRule _ _ _) = True isError opts (DupRuleName _ _ _) = True isError opts (HsParseError _ _) = True isError opts (Cyclic _ _ _) = True isError opts (IncompatibleVisitKind _ _ _ _) = True isError opts (IncompatibleRuleKind _ _) = True isError opts (IncompatibleAttachKind _ _) = True cycleIsDangerous :: Options -> Bool cycleIsDangerous opts = any ($ opts) [ wignore, bangpats, cases, strictCases, stricterCases, strictSems, withCycle ] {-# LINE 73 "dist/build/PrintErrorMessages.hs" #-} {-# LINE 550 "./src-ag/PrintErrorMessages.ag" #-} toWidth n xs | k-< indent 4 (vlist (map text path2)) >-< text "and back: " >-< indent 4 (vlist (map text path1)) attrText inh syn = if inh == syn then "threaded attribute " ++ getName inh else "inherited attribute " ++ getName inh ++ " and synthesized attribute " ++getName syn showLineNr :: Int -> String showLineNr i | i==(-1) = "CR" | otherwise = show i showAttrDef f a | f == _LHS = "synthesized attribute " ++ getName a | f == _LOC = "local attribute " ++ getName a | f == _INST = "inst attribute " ++ getName a | otherwise = "inherited attribute " ++ getName a ++ " of field " ++ getName f showAttrUse f a | f == _LHS = "inherited attribute " ++ getName a | f == _LOC = "local attribute " ++ getName a | f == _INST = "inst attribute " ++ getName a | otherwise = "synthesized attribute " ++ getName a ++ " of field " ++ getName f ppAttr f a = text (getName f++"."++getName a) ppAttrUse f a = "@" >|< ppAttr f a {-# LINE 111 "dist/build/PrintErrorMessages.hs" #-} {-# LINE 588 "./src-ag/PrintErrorMessages.ag" #-} infixr 5 +#+ (+#+) :: String -> String -> String (+#+) s t = s ++ " " ++ t infixr 5 +.+ (+.+) :: Identifier -> Identifier -> String (+.+) s t = getName s ++ "." ++ getName t wfill = fill . addSpaces. concat . map words where addSpaces (x:xs) = x:map addSpace xs addSpaces [] = [] addSpace [x] | x `elem` ".,;:!?" = [x] addSpace xs = ' ':xs ppError :: Bool -- class of the error, True:error False:warning -> Pos -- source position -> PP_Doc -- error message -> PP_Doc -- pattern -> PP_Doc -- help, more info -> PP_Doc -- action taken by AG -> Bool -- verbose? show help and action? -> PP_Doc ppError isError pos mesg pat hlp act verbose = let position = case pos of Pos l c f | l >= 0 -> f >|< ":" >|< show l >|< ":" >|< show c | otherwise -> pp "uuagc" tp = if isError then "error" else "warning" header = position >|< ":" >#< tp >|< ":" >#< mesg pattern = "pattern :" >#< pat help = "help :" >#< hlp action = "action :" >#< act in if verbose then vlist [text "",header,pattern,help,action] else header {- -- old error reporting code = let cl = if isError then "ERROR" else "Warning" position = case pos of (Pos l c f) | l >= 0 -> f >|< ": line " >|< show l >|< ", column " >|< show c | otherwise -> empty header = "*** UU.AG" >#< cl >#< position >#< "***" message = "problem :" >#< mesg pattern = "pattern :" >#< pat help = "help :" >#< hlp action = "action :" >#< act in if verbose then vlist [text "",header,message,pattern,help,action] else vlist [text "",header,message] -} showPos = show . getPos ppInterface inter = wfill ["interface:", show inter] {-# LINE 172 "dist/build/PrintErrorMessages.hs" #-} -- Error ------------------------------------------------------- {- visit 0: inherited attributes: options : Options verbose : Bool synthesized attributes: me : Error pp : PP_Doc alternatives: alternative ParserError: child pos : {Pos} child problem : {String} child action : {String} visit 0: local me : _ alternative HsParseError: child pos : {Pos} child msg : {String} visit 0: local me : _ alternative DupAlt: child nt : {NontermIdent} child con : {ConstructorIdent} child occ1 : {ConstructorIdent} visit 0: local me : _ alternative DupSynonym: child nt : {NontermIdent} child occ1 : {NontermIdent} visit 0: local me : _ alternative DupSet: child name : {NontermIdent} child occ1 : {NontermIdent} visit 0: local me : _ alternative DupInhAttr: child nt : {NontermIdent} child attr : {Identifier} child occ1 : {Identifier} visit 0: local me : _ alternative DupSynAttr: child nt : {NontermIdent} child attr : {Identifier} child occ1 : {Identifier} visit 0: local me : _ alternative DupChild: child nt : {NontermIdent} child con : {ConstructorIdent} child name : {Identifier} child occ1 : {Identifier} visit 0: local me : _ alternative DupRule: child nt : {NontermIdent} child con : {ConstructorIdent} child field : {Identifier} child attr : {Identifier} child occ1 : {Identifier} visit 0: local me : _ alternative DupRuleName: child nt : {NontermIdent} child con : {ConstructorIdent} child nm : {Identifier} visit 0: local me : _ alternative DupSig: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} visit 0: local me : _ alternative UndefNont: child nt : {NontermIdent} visit 0: local me : _ alternative UndefAlt: child nt : {NontermIdent} child con : {ConstructorIdent} visit 0: local me : _ alternative UndefChild: child nt : {NontermIdent} child con : {ConstructorIdent} child name : {Identifier} visit 0: local me : _ alternative MissingRule: child nt : {NontermIdent} child con : {ConstructorIdent} child field : {Identifier} child attr : {Identifier} visit 0: local me : _ alternative MissingNamedRule: child nt : {NontermIdent} child con : {Identifier} child name : {Identifier} visit 0: local me : _ alternative SuperfluousRule: child nt : {NontermIdent} child con : {ConstructorIdent} child field : {Identifier} child attr : {Identifier} visit 0: local me : _ alternative UndefLocal: child nt : {NontermIdent} child con : {ConstructorIdent} child var : {Identifier} visit 0: local me : _ alternative ChildAsLocal: child nt : {NontermIdent} child con : {ConstructorIdent} child var : {Identifier} visit 0: local me : _ alternative UndefAttr: child nt : {NontermIdent} child con : {ConstructorIdent} child field : {Identifier} child attr : {Identifier} child isOut : {Bool} visit 0: local me : _ alternative Cyclic: child nt : {NontermIdent} child mbCon : {Maybe ConstructorIdent} child verts : {[String]} visit 0: local me : _ alternative CyclicSet: child name : {Identifier} visit 0: local me : _ alternative CustomError: child isWarning : {Bool} child pos : {Pos} child mesg : {PP_Doc} visit 0: local me : _ alternative LocalCirc: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} child o_visit : {Bool} child path : {[String]} visit 0: local me : _ alternative InstCirc: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} child o_visit : {Bool} child path : {[String]} visit 0: local me : _ alternative DirectCirc: child nt : {NontermIdent} child o_visit : {Bool} child cyclic : {[((Identifier,Identifier),[String],[String])]} visit 0: local me : _ alternative InducedCirc: child nt : {NontermIdent} child cinter : {CInterface} child cyclic : {[((Identifier,Identifier),[String],[String])]} visit 0: local me : _ alternative MissingTypeSig: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} visit 0: local me : _ alternative MissingInstSig: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} visit 0: local me : _ alternative DupUnique: child nt : {NontermIdent} child con : {ConstructorIdent} child attr : {Identifier} visit 0: local me : _ alternative MissingUnique: child nt : {NontermIdent} child attr : {Identifier} visit 0: local me : _ alternative MissingSyn: child nt : {NontermIdent} child attr : {Identifier} visit 0: local me : _ alternative IncompatibleVisitKind: child child : {Identifier} child vis : {VisitIdentifier} child from : {VisitKind} child to : {VisitKind} visit 0: local me : _ alternative IncompatibleRuleKind: child rule : {Identifier} child kind : {VisitKind} visit 0: local me : _ alternative IncompatibleAttachKind: child child : {Identifier} child kind : {VisitKind} visit 0: local me : _ -} -- cata sem_Error :: Error -> T_Error sem_Error (ParserError _pos _problem _action) = (sem_Error_ParserError _pos _problem _action) sem_Error (HsParseError _pos _msg) = (sem_Error_HsParseError _pos _msg) sem_Error (DupAlt _nt _con _occ1) = (sem_Error_DupAlt _nt _con _occ1) sem_Error (DupSynonym _nt _occ1) = (sem_Error_DupSynonym _nt _occ1) sem_Error (DupSet _name _occ1) = (sem_Error_DupSet _name _occ1) sem_Error (DupInhAttr _nt _attr _occ1) = (sem_Error_DupInhAttr _nt _attr _occ1) sem_Error (DupSynAttr _nt _attr _occ1) = (sem_Error_DupSynAttr _nt _attr _occ1) sem_Error (DupChild _nt _con _name _occ1) = (sem_Error_DupChild _nt _con _name _occ1) sem_Error (DupRule _nt _con _field _attr _occ1) = (sem_Error_DupRule _nt _con _field _attr _occ1) sem_Error (DupRuleName _nt _con _nm) = (sem_Error_DupRuleName _nt _con _nm) sem_Error (DupSig _nt _con _attr) = (sem_Error_DupSig _nt _con _attr) sem_Error (UndefNont _nt) = (sem_Error_UndefNont _nt) sem_Error (UndefAlt _nt _con) = (sem_Error_UndefAlt _nt _con) sem_Error (UndefChild _nt _con _name) = (sem_Error_UndefChild _nt _con _name) sem_Error (MissingRule _nt _con _field _attr) = (sem_Error_MissingRule _nt _con _field _attr) sem_Error (MissingNamedRule _nt _con _name) = (sem_Error_MissingNamedRule _nt _con _name) sem_Error (SuperfluousRule _nt _con _field _attr) = (sem_Error_SuperfluousRule _nt _con _field _attr) sem_Error (UndefLocal _nt _con _var) = (sem_Error_UndefLocal _nt _con _var) sem_Error (ChildAsLocal _nt _con _var) = (sem_Error_ChildAsLocal _nt _con _var) sem_Error (UndefAttr _nt _con _field _attr _isOut) = (sem_Error_UndefAttr _nt _con _field _attr _isOut) sem_Error (Cyclic _nt _mbCon _verts) = (sem_Error_Cyclic _nt _mbCon _verts) sem_Error (CyclicSet _name) = (sem_Error_CyclicSet _name) sem_Error (CustomError _isWarning _pos _mesg) = (sem_Error_CustomError _isWarning _pos _mesg) sem_Error (LocalCirc _nt _con _attr _o_visit _path) = (sem_Error_LocalCirc _nt _con _attr _o_visit _path) sem_Error (InstCirc _nt _con _attr _o_visit _path) = (sem_Error_InstCirc _nt _con _attr _o_visit _path) sem_Error (DirectCirc _nt _o_visit _cyclic) = (sem_Error_DirectCirc _nt _o_visit _cyclic) sem_Error (InducedCirc _nt _cinter _cyclic) = (sem_Error_InducedCirc _nt _cinter _cyclic) sem_Error (MissingTypeSig _nt _con _attr) = (sem_Error_MissingTypeSig _nt _con _attr) sem_Error (MissingInstSig _nt _con _attr) = (sem_Error_MissingInstSig _nt _con _attr) sem_Error (DupUnique _nt _con _attr) = (sem_Error_DupUnique _nt _con _attr) sem_Error (MissingUnique _nt _attr) = (sem_Error_MissingUnique _nt _attr) sem_Error (MissingSyn _nt _attr) = (sem_Error_MissingSyn _nt _attr) sem_Error (IncompatibleVisitKind _child _vis _from _to) = (sem_Error_IncompatibleVisitKind _child _vis _from _to) sem_Error (IncompatibleRuleKind _rule _kind) = (sem_Error_IncompatibleRuleKind _rule _kind) sem_Error (IncompatibleAttachKind _child _kind) = (sem_Error_IncompatibleAttachKind _child _kind) -- semantic domain newtype T_Error = T_Error (Options -> Bool -> ( Error,PP_Doc)) data Inh_Error = Inh_Error {options_Inh_Error :: Options,verbose_Inh_Error :: Bool} data Syn_Error = Syn_Error {me_Syn_Error :: Error,pp_Syn_Error :: PP_Doc} wrap_Error :: T_Error -> Inh_Error -> Syn_Error wrap_Error (T_Error sem) (Inh_Error _lhsIoptions _lhsIverbose) = (let ( _lhsOme,_lhsOpp) = sem _lhsIoptions _lhsIverbose in (Syn_Error _lhsOme _lhsOpp)) sem_Error_ParserError :: Pos -> String -> String -> T_Error sem_Error_ParserError pos_ problem_ action_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 89, column 21) _lhsOpp = ({-# LINE 89 "./src-ag/PrintErrorMessages.ag" #-} let mesg = text ("parser expecting " ++ problem_) pat = text "" help = text "" act = text action_ in ppError (isError _lhsIoptions _me) pos_ mesg pat help act _lhsIverbose {-# LINE 496 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} ParserError pos_ problem_ action_ {-# LINE 502 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 508 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_HsParseError :: Pos -> String -> T_Error sem_Error_HsParseError pos_ msg_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 95, column 21) _lhsOpp = ({-# LINE 95 "./src-ag/PrintErrorMessages.ag" #-} ppError True pos_ (text msg_) (text "") (text "") (text "Correct the syntax of the Haskell code.") _lhsIverbose {-# LINE 523 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} HsParseError pos_ msg_ {-# LINE 529 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 535 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupAlt :: NontermIdent -> ConstructorIdent -> ConstructorIdent -> T_Error sem_Error_DupAlt nt_ con_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 97, column 21) _lhsOpp = ({-# LINE 97 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Repeated definition for alternative", getName con_ ,"of nonterminal", getName nt_, "." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Other definition:", (showPos con_),"."] pat = "DATA" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< "...") >-< indent 2 ("|" >#< getName con_ >#< "...") help = wfill ["The nonterminal",getName nt_,"has more than one alternative that" ,"is labelled with the constructor name",getName con_,"." ,"You should either rename or remove enough of them to make all" ,"constructors of",getName nt_,"uniquely named." ] act = wfill [ "The first alternative of name",getName con_ ,"you have given for nonterminal",getName nt_ ,"is considered valid. All other alternatives have been discarded." ] in ppError (isError _lhsIoptions _me) (getPos con_) mesg pat help act _lhsIverbose {-# LINE 568 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupAlt nt_ con_ occ1_ {-# LINE 574 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 580 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupSynonym :: NontermIdent -> NontermIdent -> T_Error sem_Error_DupSynonym nt_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 119, column 21) _lhsOpp = ({-# LINE 119 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Definition of type synonym", getName nt_, "clashes with another" ,"type synonym." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Type synonym :" , (showPos nt_),"."] pat = "DATA" >#< getName nt_ >-< indent 2 ("|" >#< "...") >-< "TYPE" >#< getName nt_ >#< "=" >#< "..." help = wfill ["A type synonym with name", getName nt_ ,"has been given while there already is TYPE" ,"definition with the same name." ,"You should either rename or remove the type synonym." ] act = wfill [ "The clashing type synonym will be ignored." ] in ppError (isError _lhsIoptions _me) (getPos nt_) mesg pat help act _lhsIverbose {-# LINE 610 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupSynonym nt_ occ1_ {-# LINE 616 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 622 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupSet :: NontermIdent -> NontermIdent -> T_Error sem_Error_DupSet name_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 136, column 21) _lhsOpp = ({-# LINE 136 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Definition of nonterminal set", getName name_, "clashes with another" ,"set, a type synonym or a data definition." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Set definition:" , (showPos name_),"."] pat = "SET" >#< getName name_ >#< "=" >#< "..." >-< "SET" >#< getName name_ >#< "=" >#< "..." help = wfill ["A nonterminal set with name", getName name_ ,"has been given while there already is a SET, DATA, or TYPE" ,"definition with the same name." ,"You should either rename or remove the nonterminal set." ] act = wfill [ "The clashing nonterminal set will be ignored." ] in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose {-# LINE 651 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupSet name_ occ1_ {-# LINE 657 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 663 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupInhAttr :: NontermIdent -> Identifier -> Identifier -> T_Error sem_Error_DupInhAttr nt_ attr_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 152, column 21) _lhsOpp = ({-# LINE 152 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Repeated declaration of inherited attribute", getName attr_ , "of nonterminal", getName nt_, "." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Other definition:", (showPos attr_),"."] pat = "ATTR" >#< getName nt_ >#< "[" >#< getName attr_ >|< ":...," >#< getName attr_ >|< ":... | | ]" help = wfill ["The identifier" , getName attr_ ,"has been declared" ,"as an inherited (or chained) attribute for nonterminal" ,getName nt_ , "more than once, with possibly different types." ,"Delete all but one or rename them to make them unique." ] act = wfill ["One declaration with its corresponding type is considered valid." ,"All others have been discarded. The generated program will probably not run." ] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 694 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupInhAttr nt_ attr_ occ1_ {-# LINE 700 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 706 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupSynAttr :: NontermIdent -> Identifier -> Identifier -> T_Error sem_Error_DupSynAttr nt_ attr_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 171, column 21) _lhsOpp = ({-# LINE 171 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Repeated declaration of synthesized attribute", getName attr_ , "of nonterminal", getName nt_, "." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Other definition:", (showPos attr_),"."] pat = "ATTR" >#< getName nt_ >#< "[ | |" >#< getName attr_ >|< ":...," >#< getName attr_ >|< ":... ]" help = wfill ["The identifier" , getName attr_ ,"has been declared" ,"as a synthesized (or chained) attribute for nonterminal" ,getName nt_ , "more than once, with possibly different types." ,"Delete all but one or rename them to make them unique." ] act = wfill ["One declaration with its corresponding type is considered valid." ,"All others have been discarded. The generated program will probably not run." ] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 737 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupSynAttr nt_ attr_ occ1_ {-# LINE 743 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 749 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupChild :: NontermIdent -> ConstructorIdent -> Identifier -> Identifier -> T_Error sem_Error_DupChild nt_ con_ name_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 190, column 21) _lhsOpp = ({-# LINE 190 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Repeated declaration for field", getName name_, "of alternative" ,getName con_, "of nonterminal", getName nt_, "." ] >-< wfill ["First definition:", (showPos occ1_),"."] >-< wfill ["Other definition:", (showPos name_),"."] pat = "DATA" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< (getName name_ >|< ":..." >-< getName name_ >|< ":...")) help = wfill ["The alternative" ,getName con_ , "of nonterminal" ,getName nt_ ,"has more than one field that is named" , getName name_ ++ ". Possibly they have different types." ,"You should either rename or remove enough of them to make all fields of" ,getName con_ , "for nonterminal " , getName nt_ , "uniquely named." ] act = wfill ["The last declaration with its corresponding type is considered valid." ,"All others have been discarded." ] in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose {-# LINE 782 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupChild nt_ con_ name_ occ1_ {-# LINE 788 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 794 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupRule :: NontermIdent -> ConstructorIdent -> Identifier -> Identifier -> Identifier -> T_Error sem_Error_DupRule nt_ con_ field_ attr_ occ1_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 210, column 21) _lhsOpp = ({-# LINE 210 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["At constructor",getName con_, "of nonterminal", getName nt_, "there are two or more rules for" ,showAttrDef field_ attr_,"." ] >-< wfill ["First rule:", (showPos occ1_),"."] >-< wfill ["Other rule:", (showPos attr_),"."] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr field_ attr_ >#< "= ...") >-< indent 2 ("|" >#< getName con_ >#< ppAttr field_ attr_ >#< "= ...") help = wfill ["In the rules for alternative" , getName con_ , "of nonterminal" , getName nt_ ,", there is more than one rule for the" , showAttrDef field_ attr_ ,". You should either rename or remove enough of them to make all rules for alternative" ,getName con_ , "of nonterminal " ,getName nt_ , "uniquely named." ] act = wfill ["The last rule given is considered valid. All others have been discarded."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 826 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupRule nt_ con_ field_ attr_ occ1_ {-# LINE 832 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 838 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupRuleName :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_DupRuleName nt_ con_ nm_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 228, column 21) _lhsOpp = ({-# LINE 228 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["At constructor",getName con_, "of nonterminal", getName nt_, "there are two or more rule names for" ,show nm_,"." ] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< show nm_ >#< ": ... = ...") >-< indent 2 ("|" >#< getName con_ >#< show nm_ >#< ": ... = ...") help = wfill ["In the rules for alternative" , getName con_ , "of nonterminal" , getName nt_ ,", there is more than one rule name " , show nm_ ,". You should either rename or remove enough of them." ] act = wfill ["Compilation cannot continue."] in ppError (isError _lhsIoptions _me) (getPos nm_) mesg pat help act _lhsIverbose {-# LINE 865 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupRuleName nt_ con_ nm_ {-# LINE 871 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 877 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupSig :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_DupSig nt_ con_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 243, column 21) _lhsOpp = ({-# LINE 243 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["At constructor",getName con_, "of nonterminal", getName nt_, "there are two or more typesignatures for" ,showAttrDef _LOC attr_,"." ] >-< wfill ["First signature:", (showPos attr_),"."] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr _LOC attr_ >#< "= ...") >-< indent 2 ("|" >#< getName con_ >#< ppAttr _LOC attr_ >#< "= ...") help = wfill ["In the rules for alternative" , getName con_ , "of nonterminal" , getName nt_ ,", there is more than one rule for the" , showAttrDef _LOC attr_ ,". You should remove enough of them to make all typesignatures for alternative" ,getName con_ , "of nonterminal " ,getName nt_ , "unique." ] act = wfill ["The last typesignature given is considered valid. All others have been discarded."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 906 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupSig nt_ con_ attr_ {-# LINE 912 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 918 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_UndefNont :: NontermIdent -> T_Error sem_Error_UndefNont nt_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 260, column 21) _lhsOpp = ({-# LINE 260 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Nonterminal", getName nt_, "is not defined." ] pat = "DATA" >#< getName nt_ >#< "..." help = wfill ["There are attributes and/or rules for nonterminal" , getName nt_ ,", but there is no definition" , "for" ,getName nt_, ". Maybe you misspelled it? Otherwise insert a definition." ] act = wfill ["Everything regarding the unknown nonterminal has been ignored."] in ppError (isError _lhsIoptions _me) (getPos nt_) mesg pat help act _lhsIverbose {-# LINE 939 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} UndefNont nt_ {-# LINE 945 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 951 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_UndefAlt :: NontermIdent -> ConstructorIdent -> T_Error sem_Error_UndefAlt nt_ con_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 270, column 21) _lhsOpp = ({-# LINE 270 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Constructor", getName con_, "of nonterminal" ,getName nt_, "is not defined." ] pat = "DATA" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< "...") help = wfill ["There are rules for alternative", getName con_ , "of nonterminal" ,getName nt_ ,", but there is no definition for this alternative in the definitions of the" ,"nonterminal" , getName nt_, ". Maybe you misspelled it? Otherwise insert a definition." ] act = wfill ["All rules for the unknown alternative have been ignored."] in ppError (isError _lhsIoptions _me) (getPos con_) mesg pat help act _lhsIverbose {-# LINE 975 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} UndefAlt nt_ con_ {-# LINE 981 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 987 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_UndefChild :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_UndefChild nt_ con_ name_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 282, column 21) _lhsOpp = ({-# LINE 282 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Constructor", getName con_, "of nonterminal" ,getName nt_ , "does not have a nontrivial field named", getName name_ , "." ] pat = "SEM" >#< nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr name_ (identifier "") >#< "= ...") help = wfill ["There are rules that define or use attributes of field" , getName name_ ,"in alternative" , getName con_ , "of nonterminal" , getName nt_ ,", but there is no field with AG-type in the definition of the alternative." ,"Maybe you misspelled it? Otherwise insert the field into the definition," ,"or change its type from an HS-type to an AG-type." ] act = wfill ["All rules for the unknown field have been ignored."] in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose {-# LINE 1015 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} UndefChild nt_ con_ name_ {-# LINE 1021 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1027 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingRule :: NontermIdent -> ConstructorIdent -> Identifier -> Identifier -> T_Error sem_Error_MissingRule nt_ con_ field_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 297, column 21) _lhsOpp = ({-# LINE 297 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Missing rule for", showAttrDef field_ attr_ , "in alternative" , getName con_ , "of nonterminal",getName nt_ ,"." ] pat = "SEM" >#< nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr field_ attr_ >#< "= ...") help = wfill ["The", showAttrDef field_ attr_, "in alternative", getName con_ , "of nonterminal", getName nt_, "is missing and cannot be inferred" ,"by a copy rule, so you should add an appropriate rule." ] act = wfill ["The value of the attribute has been set to undefined."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1054 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingRule nt_ con_ field_ attr_ {-# LINE 1060 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1066 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingNamedRule :: NontermIdent -> Identifier -> Identifier -> T_Error sem_Error_MissingNamedRule nt_ con_ name_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 310, column 23) _lhsOpp = ({-# LINE 310 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Missing rule name ", show name_ , "in alternative" , getName con_ , "of nonterminal",getName nt_ ,"." ] pat = "SEM" >#< nt_ >-< indent 2 ("|" >#< getName con_ >#< show name_ >#< ": ... = ...") help = wfill ["There is a dependency on a rule with name ", show name_ , "in alternative" , getName con_ , "of nonterminal",getName nt_ ,", but no rule has been defined with this name. Maybe you misspelled it?" ] act = wfill ["Compilation cannot continue."] in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose {-# LINE 1091 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingNamedRule nt_ con_ name_ {-# LINE 1097 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1103 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_SuperfluousRule :: NontermIdent -> ConstructorIdent -> Identifier -> Identifier -> T_Error sem_Error_SuperfluousRule nt_ con_ field_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 322, column 21) _lhsOpp = ({-# LINE 322 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Rule for non-existing", showAttrDef field_ attr_ , "at alternative" , getName con_ , "of nonterminal",getName nt_, "." ] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr field_ attr_ >#< "= ...") help = wfill ["There is a rule for" , showAttrDef field_ attr_ , "in the definitions for alternative" , getName con_ ,"of nonterminal" , getName nt_, ", but this attribute does not exist. Maybe you misspelled it?" ,"Otherwise either remove the rule or add an appropriate attribute definition." ] act = wfill ["The rule has been ignored."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1130 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} SuperfluousRule nt_ con_ field_ attr_ {-# LINE 1136 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1142 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_UndefLocal :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_UndefLocal nt_ con_ var_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 336, column 21) _lhsOpp = ({-# LINE 336 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Undefined local variable or field",getName var_, "at constructor" , getName con_ , "of nonterminal",getName nt_, "." ] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ". = " >#< "..." >#< "@" >|< getName var_ >#< "..." ) help = wfill ["A rule in the definitions for alternative" , getName con_ ,"of nonterminal" , getName nt_ , "contains a local variable or field name that is not defined. " ,"Maybe you misspelled it?" ,"Otherwise either remove the rule or add an appropriate definition." ] act = wfill ["The generated program will not run."] in ppError (isError _lhsIoptions _me) (getPos var_) mesg pat help act _lhsIverbose {-# LINE 1170 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} UndefLocal nt_ con_ var_ {-# LINE 1176 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1182 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_ChildAsLocal :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_ChildAsLocal nt_ con_ var_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 351, column 21) _lhsOpp = ({-# LINE 351 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Nontrivial field ",getName var_, "is used as local at constructor" , getName con_ , "of nonterminal",getName nt_, "." ] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< "... = " >#< "..." >#< "@" >|< getName var_ >#< "..." ) help = wfill ["A rule in the definitions for alternative" , getName con_ ,"of nonterminal" , getName nt_ , "contains a nontrivial field name", getName var_, "." ,"You should use @", getName var_, ".self instead, where self is a SELF-attribute." ] act = wfill ["The generated program probably contains a type error or has undefined variables."] in ppError (isError _lhsIoptions _me) (getPos var_) mesg pat help act _lhsIverbose {-# LINE 1209 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} ChildAsLocal nt_ con_ var_ {-# LINE 1215 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1221 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_UndefAttr :: NontermIdent -> ConstructorIdent -> Identifier -> Identifier -> Bool -> T_Error sem_Error_UndefAttr nt_ con_ field_ attr_ isOut_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 365, column 21) _lhsOpp = ({-# LINE 365 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Undefined" , if isOut_ then showAttrDef field_ attr_ else showAttrUse field_ attr_ , "at constructor" , getName con_ , "of nonterminal",getName nt_, "." ] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ". = " >#< "..." >#< ppAttrUse field_ attr_ >#< "...") help = wfill ["A rule in the definitions for alternative" , getName con_ ,"of nonterminal" ,getName nt_ , "contains an attribute that is not defined" ,"Maybe you misspelled it?" ,"Otherwise either remove the rule or add an appropriate attribute definition." ] act = wfill ["The generated program will not run."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1255 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} UndefAttr nt_ con_ field_ attr_ isOut_ {-# LINE 1261 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1267 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_Cyclic :: NontermIdent -> (Maybe ConstructorIdent) -> ([String]) -> T_Error sem_Error_Cyclic nt_ mbCon_ verts_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 393, column 21) _lhsOpp = ({-# LINE 393 "./src-ag/PrintErrorMessages.ag" #-} let pos = getPos nt_ mesg = text "Circular dependency for nonterminal" >#< getName nt_ >#< ( case mbCon_ of Nothing -> empty Just con -> text "and constructor" >#< con ) >#< ( case verts_ of v : _ -> text "including vertex" >#< text v _ -> empty ) pat = text "cyclic rule definition" help = hlist (text "The following attributes are all cyclic: " : map text verts_) act = wfill ["code cannot be generated until the cycle is removed."] in ppError (isError _lhsIoptions _me) pos mesg pat help act False {-# LINE 1296 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} Cyclic nt_ mbCon_ verts_ {-# LINE 1302 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1308 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_CyclicSet :: Identifier -> T_Error sem_Error_CyclicSet name_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 384, column 21) _lhsOpp = ({-# LINE 384 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Cyclic definition for nonterminal set", getName name_] pat = "SET" >#< getName name_ >#< "=" >#< "..." >#< getName name_ >#< "..." help = wfill ["The defintion for a nonterminal set named" , getName name_ ,"directly or indirectly refers to itself." ,"Adapt the definition of the nonterminal set, to remove the cyclic dependency." ] act = wfill ["The nonterminal set", getName name_, "is considered to be empty."] in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose {-# LINE 1329 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} CyclicSet name_ {-# LINE 1335 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1341 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_CustomError :: Bool -> Pos -> PP_Doc -> T_Error sem_Error_CustomError isWarning_ pos_ mesg_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 408, column 21) _lhsOpp = ({-# LINE 408 "./src-ag/PrintErrorMessages.ag" #-} let pat = text "unknown" help = wfill ["not available."] act = wfill ["unknown"] in ppError (isError _lhsIoptions _me) pos_ mesg_ pat help act False {-# LINE 1360 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} CustomError isWarning_ pos_ mesg_ {-# LINE 1366 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1372 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_LocalCirc :: NontermIdent -> ConstructorIdent -> Identifier -> Bool -> ([String]) -> T_Error sem_Error_LocalCirc nt_ con_ attr_ o_visit_ path_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 413, column 21) _lhsOpp = ({-# LINE 413 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Circular dependency for local attribute", getName attr_ , "of alternative", getName con_, "of nonterminal", getName nt_] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< "loc." >|< getName attr_ >#< "=" >#< "..." >#< "@loc." >|< getName attr_ >#< "...") help = if null path_ then text "the definition is directly circular" else hlist ("The following attributes are involved in the cycle:": path_) act | o_visit_ = text "An unoptimized version was generated. It might hang when run." | otherwise = text "The generated program might hang when run." in ppError (isError _lhsIoptions _me) (getPos (attr_)) mesg pat help act _lhsIverbose {-# LINE 1400 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} LocalCirc nt_ con_ attr_ o_visit_ path_ {-# LINE 1406 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1412 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_InstCirc :: NontermIdent -> ConstructorIdent -> Identifier -> Bool -> ([String]) -> T_Error sem_Error_InstCirc nt_ con_ attr_ o_visit_ path_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 425, column 21) _lhsOpp = ({-# LINE 425 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Circular dependency for inst attribute", getName attr_ , "of alternative", getName con_, "of nonterminal", getName nt_] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< "inst." >|< getName attr_ >#< "=" >#< "..." >#< "@s." >#< "...") help = if null path_ then text "the definition is directly circular" else hlist ("The following attributes are involved in the cycle:": path_) act | o_visit_ = text "An unoptimized version was generated. It might hang when run." | otherwise = text "The generated program might hang when run." in ppError (isError _lhsIoptions _me) (getPos (attr_)) mesg pat help act _lhsIverbose {-# LINE 1440 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} InstCirc nt_ con_ attr_ o_visit_ path_ {-# LINE 1446 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1452 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DirectCirc :: NontermIdent -> Bool -> ([((Identifier,Identifier),[String],[String])]) -> T_Error sem_Error_DirectCirc nt_ o_visit_ cyclic_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 437, column 21) _lhsOpp = ({-# LINE 437 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["In nonterminal", getName nt_, "synthesized and inherited attributes are mutually dependent" ] >-< vlist (map showEdge cyclic_) pat = text "" help = vlist (map showEdgeLong cyclic_) act | o_visit_ = text "An unoptimized version was generated. It might hang when run." | otherwise = text "The generated program might hang when run." in ppError (isError _lhsIoptions _me) noPos mesg pat help act _lhsIverbose {-# LINE 1474 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DirectCirc nt_ o_visit_ cyclic_ {-# LINE 1480 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1486 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_InducedCirc :: NontermIdent -> CInterface -> ([((Identifier,Identifier),[String],[String])]) -> T_Error sem_Error_InducedCirc nt_ cinter_ cyclic_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 445, column 21) _lhsOpp = ({-# LINE 445 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["After scheduling, in nonterminal", getName nt_, "synthesized and inherited attributes have an INDUCED mutual dependency" ] >-< vlist (map showEdge cyclic_) pat = text "" showInter (CInterface segs) = concat (snd (mapAccumL (\i c -> (i+1,("visit " ++ show i) : map ind (showsSegment c))) 0 segs)) help = vlist (("Interface for nonterminal " ++ getName nt_ ++ ":") : map ind (showInter cinter_)) >-< vlist (map showEdgeLong cyclic_) act = text "An unoptimized version was generated. It might hang when run." in ppError (isError _lhsIoptions _me) noPos mesg pat help act _lhsIverbose {-# LINE 1509 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} InducedCirc nt_ cinter_ cyclic_ {-# LINE 1515 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1521 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingTypeSig :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_MissingTypeSig nt_ con_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 454, column 21) _lhsOpp = ({-# LINE 454 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Type signature needed, but not found for", showAttrDef _LOC attr_ , "in alternative" , getName con_ , "of nonterminal",getName nt_ ,"." ]>-< wfill ["Location:", (showPos attr_),"."] pat = "SEM" >#< nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr _LOC attr_ >#< ": ...") help = wfill ["The", showAttrDef _LOC attr_, "in alternative", getName con_ ,"of nonterminal", getName nt_, "is needed in two separate visits to", getName nt_ ,"so its type is needed to generate type signatures." ,"Please supply its type." ] act = wfill ["The type signatures of semantic functions are not generated."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1549 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingTypeSig nt_ con_ attr_ {-# LINE 1555 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1561 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingInstSig :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_MissingInstSig nt_ con_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 468, column 21) _lhsOpp = ({-# LINE 468 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Type signature needed, but not found for", showAttrDef _INST attr_ , "in alternative" , getName con_ , "of nonterminal",getName nt_ ,"." ]>-< wfill ["Location:", (showPos attr_),"."] pat = "SEM" >#< nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr _INST attr_ >#< ": ...") help = wfill ["The", showAttrDef _INST attr_, "in alternative", getName con_ ,"of nonterminal", getName nt_, "is a non-terminal attribute, so " ,"its type is needed to attribute its value." ,"Please supply its type." ] act = wfill ["It is not possible to proceed without this signature."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1589 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingInstSig nt_ con_ attr_ {-# LINE 1595 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1601 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_DupUnique :: NontermIdent -> ConstructorIdent -> Identifier -> T_Error sem_Error_DupUnique nt_ con_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 498, column 21) _lhsOpp = ({-# LINE 498 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["At constructor",getName con_, "of nonterminal", getName nt_, "there are two or more unique-attribute signatures for" ,showAttrDef _LOC attr_,"." ] >-< wfill ["First signature:", (showPos attr_),"."] pat = "SEM" >#< getName nt_ >-< indent 2 ("|" >#< getName con_ >#< ppAttr _LOC attr_ >#< " : UNIQUEREF ...") >-< indent 2 ("|" >#< getName con_ >#< ppAttr _LOC attr_ >#< " : UNIQUEREF ...") help = wfill ["In the rules for alternative" , getName con_ , "of nonterminal" , getName nt_ ,", there is more than one unique-attribute signature for the" , showAttrDef _LOC attr_ ,". You should remove enough of them to make all unique-signatures for alternative" ,getName con_ , "of nonterminal " ,getName nt_ , "unique." ] act = wfill ["Unpredicatable sharing of unique numbers may occur."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1630 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} DupUnique nt_ con_ attr_ {-# LINE 1636 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1642 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingUnique :: NontermIdent -> Identifier -> T_Error sem_Error_MissingUnique nt_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 482, column 21) _lhsOpp = ({-# LINE 482 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Missing unique counter (chained attribute)" , getName attr_ , "at nonterminal" , getName nt_, "." ] pat = "ATTR" >#< getName nt_ >#< "[ |" >#< getName attr_ >#< " : ... | ]" help = wfill ["A unique attribute signature in a constructor for nonterminal" , getName nt_ , "refers to an unique counter (chained attribute) named " , getName attr_ ,"Maybe you misspelled it?" ,"Otherwise either remove the signature or add an appropriate attribute definition." ] act = wfill ["It is not possible to proceed without this declaration."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1670 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingUnique nt_ attr_ {-# LINE 1676 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1682 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_MissingSyn :: NontermIdent -> Identifier -> T_Error sem_Error_MissingSyn nt_ attr_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 515, column 20) _lhsOpp = ({-# LINE 515 "./src-ag/PrintErrorMessages.ag" #-} let mesg = wfill ["Missing synthesized attribute" , getName attr_ , "at nonterminal" , getName nt_, "." ] pat = "ATTR" >#< getName nt_ >#< "[ | | " >#< getName attr_ >#< " : ... ]" help = wfill ["An augment rule for a constructor for nonterminal" , getName nt_ , "refers to a synthesized attribute named " , getName attr_ ,"Maybe you misspelled it?" ,"Otherwise add an appropriate attribute definition." ] act = wfill ["It is not possible to proceed without this declaration."] in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose {-# LINE 1710 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} MissingSyn nt_ attr_ {-# LINE 1716 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1722 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleVisitKind :: Identifier -> VisitIdentifier -> VisitKind -> VisitKind -> T_Error sem_Error_IncompatibleVisitKind child_ vis_ from_ to_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 531, column 20) _lhsOpp = ({-# LINE 531 "./src-ag/PrintErrorMessages.ag" #-} let mesg = "visit" >#< vis_ >#< "of child" >#< child_ >#< " with kind" >#< show to_ >#< " cannot be called from a visit with kind " >#< show from_ pat = empty help = empty act = text "It is not possible to proceed without fixing this kind error." in ppError (isError _lhsIoptions _me) (getPos child_) mesg pat help act _lhsIverbose {-# LINE 1743 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} IncompatibleVisitKind child_ vis_ from_ to_ {-# LINE 1749 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1755 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleRuleKind :: Identifier -> VisitKind -> T_Error sem_Error_IncompatibleRuleKind rule_ kind_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 537, column 20) _lhsOpp = ({-# LINE 537 "./src-ag/PrintErrorMessages.ag" #-} let mesg = "rule" >#< rule_ >#< "cannot be called from a visit with kind " >#< show kind_ pat = empty help = empty act = text "It is not possible to proceed without fixing this kind error." in ppError (isError _lhsIoptions _me) (getPos rule_) mesg pat help act _lhsIverbose {-# LINE 1774 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} IncompatibleRuleKind rule_ kind_ {-# LINE 1780 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1786 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleAttachKind :: Identifier -> VisitKind -> T_Error sem_Error_IncompatibleAttachKind child_ kind_ = (T_Error (\ _lhsIoptions _lhsIverbose -> (let _lhsOpp :: PP_Doc _lhsOme :: Error -- "./src-ag/PrintErrorMessages.ag"(line 544, column 20) _lhsOpp = ({-# LINE 544 "./src-ag/PrintErrorMessages.ag" #-} let mesg = "child" >#< child_ >#< "cannot be called from a visit with kind " >#< show kind_ pat = empty help = empty act = text "It is not possible to proceed without fixing this kind error." in ppError (isError _lhsIoptions _me) (getPos child_) mesg pat help act _lhsIverbose {-# LINE 1805 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _me = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} IncompatibleAttachKind child_ kind_ {-# LINE 1811 "dist/build/PrintErrorMessages.hs" #-} ) -- self rule _lhsOme = ({-# LINE 71 "./src-ag/PrintErrorMessages.ag" #-} _me {-# LINE 1817 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOme,_lhsOpp)))) -- Errors ------------------------------------------------------ {- visit 0: inherited attributes: dups : [String] options : Options synthesized attribute: pp : PP_Doc alternatives: alternative Cons: child hd : Error child tl : Errors visit 0: local verbose : _ local str : _ alternative Nil: visit 0: local verbose : _ -} -- cata sem_Errors :: Errors -> T_Errors sem_Errors list = (Prelude.foldr sem_Errors_Cons sem_Errors_Nil (Prelude.map sem_Error list)) -- semantic domain newtype T_Errors = T_Errors (([String]) -> Options -> ( PP_Doc)) data Inh_Errors = Inh_Errors {dups_Inh_Errors :: ([String]),options_Inh_Errors :: Options} data Syn_Errors = Syn_Errors {pp_Syn_Errors :: PP_Doc} wrap_Errors :: T_Errors -> Inh_Errors -> Syn_Errors wrap_Errors (T_Errors sem) (Inh_Errors _lhsIdups _lhsIoptions) = (let ( _lhsOpp) = sem _lhsIdups _lhsIoptions in (Syn_Errors _lhsOpp)) sem_Errors_Cons :: T_Error -> T_Errors -> T_Errors sem_Errors_Cons (T_Error hd_) (T_Errors tl_) = (T_Errors (\ _lhsIdups _lhsIoptions -> (let _lhsOpp :: PP_Doc _tlOdups :: ([String]) _hdOoptions :: Options _hdOverbose :: Bool _tlOoptions :: Options _hdIme :: Error _hdIpp :: PP_Doc _tlIpp :: PP_Doc -- "./src-ag/PrintErrorMessages.ag"(line 78, column 8) _verbose = ({-# LINE 78 "./src-ag/PrintErrorMessages.ag" #-} verbose _lhsIoptions {-# LINE 1874 "dist/build/PrintErrorMessages.hs" #-} ) -- "./src-ag/PrintErrorMessages.ag"(line 79, column 11) _str = ({-# LINE 79 "./src-ag/PrintErrorMessages.ag" #-} disp _hdIpp 5000 "" {-# LINE 1880 "dist/build/PrintErrorMessages.hs" #-} ) -- "./src-ag/PrintErrorMessages.ag"(line 81, column 11) _lhsOpp = ({-# LINE 81 "./src-ag/PrintErrorMessages.ag" #-} if _str `elem` _lhsIdups then _tlIpp else _hdIpp >-< _tlIpp {-# LINE 1888 "dist/build/PrintErrorMessages.hs" #-} ) -- "./src-ag/PrintErrorMessages.ag"(line 84, column 11) _tlOdups = ({-# LINE 84 "./src-ag/PrintErrorMessages.ag" #-} _str : _lhsIdups {-# LINE 1894 "dist/build/PrintErrorMessages.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 70 "./src-ag/PrintErrorMessages.ag" #-} _lhsIoptions {-# LINE 1900 "dist/build/PrintErrorMessages.hs" #-} ) -- copy rule (from local) _hdOverbose = ({-# LINE 70 "./src-ag/PrintErrorMessages.ag" #-} _verbose {-# LINE 1906 "dist/build/PrintErrorMessages.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 74 "./src-ag/PrintErrorMessages.ag" #-} _lhsIoptions {-# LINE 1912 "dist/build/PrintErrorMessages.hs" #-} ) ( _hdIme,_hdIpp) = hd_ _hdOoptions _hdOverbose ( _tlIpp) = tl_ _tlOdups _tlOoptions in ( _lhsOpp)))) sem_Errors_Nil :: T_Errors sem_Errors_Nil = (T_Errors (\ _lhsIdups _lhsIoptions -> (let _lhsOpp :: PP_Doc -- "./src-ag/PrintErrorMessages.ag"(line 78, column 8) _verbose = ({-# LINE 78 "./src-ag/PrintErrorMessages.ag" #-} verbose _lhsIoptions {-# LINE 1928 "dist/build/PrintErrorMessages.hs" #-} ) -- "./src-ag/PrintErrorMessages.ag"(line 85, column 11) _lhsOpp = ({-# LINE 85 "./src-ag/PrintErrorMessages.ag" #-} text "" {-# LINE 1934 "dist/build/PrintErrorMessages.hs" #-} ) in ( _lhsOpp))))