uuagc 0.9.33 → 0.9.34
raw patch · 8 files changed
+529/−401 lines, 8 files
Files
- src-derived/AG2AspectAG.hs +519/−392
- src-derived/GenerateCode.hs +2/−2
- src-derived/PrintCode.hs +2/−2
- src/Ag.hs +1/−1
- src/Scanner.hs +2/−1
- src/Version.hs +1/−1
- uuagc.cabal +1/−1
- uuagc.cabal-for-ghc-6.6 +1/−1
src-derived/AG2AspectAG.hs view
@@ -4,6 +4,8 @@ module AG2AspectAG where {-# LINE 7 "AG2AspectAG.ag" #-} +import Options+ import Data.Char import Data.List import qualified Data.Map as Map@@ -16,7 +18,7 @@ import AbstractSyntax import TokenDef import CommonTypes-{-# LINE 20 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 22 "../src-derived/AG2AspectAG.hs" #-} {-# LINE 2 "./AbstractSyntax.ag" #-} @@ -26,27 +28,27 @@ import Patterns (Pattern(..),Patterns) import Expression (Expression(..)) import CommonTypes-{-# LINE 30 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 32 "../src-derived/AG2AspectAG.hs" #-} {-# LINE 2 "./Patterns.ag" #-} -- Patterns.ag imports import UU.Scanner.Position(Pos) import CommonTypes (ConstructorIdent,Identifier)-{-# LINE 37 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 39 "../src-derived/AG2AspectAG.hs" #-} {-# LINE 2 "./Expression.ag" #-} import UU.Scanner.Position(Pos) import HsToken-{-# LINE 43 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 45 "../src-derived/AG2AspectAG.hs" #-} {-# LINE 2 "./HsToken.ag" #-} import CommonTypes import UU.Scanner.Position(Pos)-{-# LINE 49 "../src-derived/AG2AspectAG.hs" #-}-{-# LINE 22 "AG2AspectAG.ag" #-}+{-# LINE 51 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 24 "AG2AspectAG.ag" #-} pragmaAspectAG = pp "{-# LANGUAGE EmptyDataDecls, NoMonomorphismRestriction , TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts #-}" @@ -56,11 +58,21 @@ pp "import Data.HList.TypeEqGeneric1" >-< pp "import Data.HList.TypeCastGeneric1" -{-# LINE 60 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 62 "../src-derived/AG2AspectAG.hs" #-} -{-# LINE 142 "AG2AspectAG.ag" #-}+{-# LINE 108 "AG2AspectAG.ag" #-} +prodName :: Bool -> PP_Doc -> PP_Doc -> PP_Doc+prodName rename ppNt ppCon | rename = ppCon+ | otherwise = ppListSep "" "" "_" [ppNt, ppCon] +++{-# LINE 72 "../src-derived/AG2AspectAG.hs" #-}++{-# LINE 177 "AG2AspectAG.ag" #-}++ defAtts = pp "data Att_inh; att_inh = proxy :: Proxy Att_inh" >-< pp "data Att_syn; att_syn = proxy :: Proxy Att_syn" >-< pp "data Att_loc; att_loc = proxy :: Proxy Att_loc" @@ -80,9 +92,9 @@ defLocalAtts ppNt ppProd total (actual+1) ls defLocalAtts _ _ _ _ [] = empty -{-# LINE 84 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 96 "../src-derived/AG2AspectAG.hs" #-} -{-# LINE 235 "AG2AspectAG.ag" #-}+{-# LINE 270 "AG2AspectAG.ag" #-} defInhRule ppNt prod ch rules chids locals = @@ -186,11 +198,12 @@ StrToken value _ -> pp $ show value Err mesg _ -> pp $ " ***" ++ mesg ++ "*** " -{-# LINE 190 "../src-derived/AG2AspectAG.hs" #-}+{-# LINE 202 "../src-derived/AG2AspectAG.hs" #-} -- Child ------------------------------------------------------- {- visit 0: inherited attributes:+ o_rename : Bool ppNt : PP_Doc ppProd : PP_Doc synthesized attributes:@@ -213,16 +226,17 @@ sem_Child (Child _name _tp _inh _syn _virtual ) = (sem_Child_Child _name _tp _inh _syn _virtual ) -- semantic domain-newtype T_Child = T_Child (PP_Doc ->+newtype T_Child = T_Child (Bool -> PP_Doc ->+ PP_Doc -> ( ([(Identifier,Type)]),([(Identifier,PP_Doc)]),([PP_Doc]),PP_Doc,PP_Doc))-data Inh_Child = Inh_Child {ppNt_Inh_Child :: PP_Doc,ppProd_Inh_Child :: PP_Doc}+data Inh_Child = Inh_Child {o_rename_Inh_Child :: Bool,ppNt_Inh_Child :: PP_Doc,ppProd_Inh_Child :: PP_Doc} data Syn_Child = Syn_Child {idCL_Syn_Child :: ([(Identifier,Type)]),ppCSF_Syn_Child :: ([(Identifier,PP_Doc)]),ppDL_Syn_Child :: ([PP_Doc]),ppL_Syn_Child :: PP_Doc,ppR_Syn_Child :: PP_Doc} wrap_Child :: T_Child -> Inh_Child -> Syn_Child -wrap_Child (T_Child sem ) (Inh_Child _lhsIppNt _lhsIppProd ) =- (let ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR) = sem _lhsIppNt _lhsIppProd +wrap_Child (T_Child sem ) (Inh_Child _lhsIo_rename _lhsIppNt _lhsIppProd ) =+ (let ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR) = sem _lhsIo_rename _lhsIppNt _lhsIppProd in (Syn_Child _lhsOidCL _lhsOppCSF _lhsOppDL _lhsOppL _lhsOppR )) sem_Child_Child :: Identifier -> Type ->@@ -231,24 +245,25 @@ (Maybe (Maybe Type)) -> T_Child sem_Child_Child name_ tp_ inh_ syn_ virtual_ =- (T_Child (\ _lhsIppNt+ (T_Child (\ _lhsIo_rename+ _lhsIppNt _lhsIppProd -> (let _lhsOppDL :: ([PP_Doc]) _lhsOppL :: PP_Doc _lhsOppR :: PP_Doc _lhsOidCL :: ([(Identifier,Type)]) _lhsOppCSF :: ([(Identifier,PP_Doc)])- -- "AG2AspectAG.ag"(line 93, column 25)+ -- "AG2AspectAG.ag"(line 128, column 25) _lhsOppDL =- ({-# LINE 93 "AG2AspectAG.ag" #-}+ ({-# LINE 128 "AG2AspectAG.ag" #-} case virtual_ of Nothing -> let chName = ppListSep "" "" "_" [pp name_, _lhsIppNt, _lhsIppProd] in [ chName >|< pp " :: " >|< ppShow tp_ ] otherwise -> []- {-# LINE 249 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 118, column 25)+ {-# LINE 264 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 153, column 25) _lhsOppL =- ({-# LINE 118 "AG2AspectAG.ag" #-}+ ({-# LINE 153 "AG2AspectAG.ag" #-} let chName = ppListSep "" "" "_" [pp name_, _lhsIppNt, _lhsIppProd] in pp "data Ch_" >|< chName >|< pp "; " >|< pp "ch_" >|< chName >|< pp " = proxy :: " >|<@@ -256,24 +271,24 @@ Nothing -> pp "Proxy " >|< pp "(Ch_" >|< chName >|< ", " >|< ppShow tp_ >|< pp ")" otherwise -> pp "SemType " >|< ppShow tp_ >|< pp " nt => Proxy " >|< pp "(Ch_" >|< chName >|< pp ", nt)"- {-# LINE 260 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 196, column 25)+ {-# LINE 275 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 231, column 25) _lhsOppR =- ({-# LINE 196 "AG2AspectAG.ag" #-}+ ({-# LINE 231 "AG2AspectAG.ag" #-} let chName = ppListSep "" "" "_" [pp name_, _lhsIppNt, _lhsIppProd] in pp name_ >|< " <- at ch_" >|< chName- {-# LINE 266 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 227, column 25)+ {-# LINE 281 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 262, column 25) _lhsOidCL =- ({-# LINE 227 "AG2AspectAG.ag" #-}+ ({-# LINE 262 "AG2AspectAG.ag" #-} [ (name_, case (stripPrefix "T_" (show tp_)) of Nothing -> tp_ Just t -> NT (Ident t undefined) [] ) ]- {-# LINE 274 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 389, column 25)+ {-# LINE 289 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 433, column 25) _lhsOppCSF =- ({-# LINE 389 "AG2AspectAG.ag" #-}+ ({-# LINE 433 "AG2AspectAG.ag" #-} let ppProd = ppListSep "" "" "_" [_lhsIppNt,_lhsIppProd] ppChi = ppListSep "" "" "_" [pp "ch", pp name_, ppProd]@@ -283,12 +298,13 @@ in case virtual_ of Nothing -> [(name_, ppChi >|< pp " .=. (" >|< semC >|< pp ") .*. ")] otherwise -> []- {-# LINE 287 "AG2AspectAG.hs" #-})+ {-# LINE 302 "AG2AspectAG.hs" #-}) in ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR))) ) -- Children ---------------------------------------------------- {- visit 0: inherited attributes:+ o_rename : Bool ppNt : PP_Doc ppProd : PP_Doc synthesized attributes:@@ -309,30 +325,34 @@ sem_Children list = (Prelude.foldr sem_Children_Cons sem_Children_Nil (Prelude.map sem_Child list) ) -- semantic domain-newtype T_Children = T_Children (PP_Doc ->+newtype T_Children = T_Children (Bool -> PP_Doc ->+ PP_Doc -> ( ([(Identifier,Type)]),([(Identifier,PP_Doc)]),([PP_Doc]),PP_Doc,PP_Doc))-data Inh_Children = Inh_Children {ppNt_Inh_Children :: PP_Doc,ppProd_Inh_Children :: PP_Doc}+data Inh_Children = Inh_Children {o_rename_Inh_Children :: Bool,ppNt_Inh_Children :: PP_Doc,ppProd_Inh_Children :: PP_Doc} data Syn_Children = Syn_Children {idCL_Syn_Children :: ([(Identifier,Type)]),ppCSF_Syn_Children :: ([(Identifier,PP_Doc)]),ppDL_Syn_Children :: ([PP_Doc]),ppL_Syn_Children :: PP_Doc,ppR_Syn_Children :: PP_Doc} wrap_Children :: T_Children -> Inh_Children -> Syn_Children -wrap_Children (T_Children sem ) (Inh_Children _lhsIppNt _lhsIppProd ) =- (let ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR) = sem _lhsIppNt _lhsIppProd +wrap_Children (T_Children sem ) (Inh_Children _lhsIo_rename _lhsIppNt _lhsIppProd ) =+ (let ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR) = sem _lhsIo_rename _lhsIppNt _lhsIppProd in (Syn_Children _lhsOidCL _lhsOppCSF _lhsOppDL _lhsOppL _lhsOppR )) sem_Children_Cons :: T_Child -> T_Children -> T_Children sem_Children_Cons (T_Child hd_ ) (T_Children tl_ ) =- (T_Children (\ _lhsIppNt+ (T_Children (\ _lhsIo_rename+ _lhsIppNt _lhsIppProd -> (let _lhsOppDL :: ([PP_Doc]) _lhsOidCL :: ([(Identifier,Type)]) _lhsOppCSF :: ([(Identifier,PP_Doc)]) _lhsOppL :: PP_Doc _lhsOppR :: PP_Doc+ _hdOo_rename :: Bool _hdOppNt :: PP_Doc _hdOppProd :: PP_Doc+ _tlOo_rename :: Bool _tlOppNt :: PP_Doc _tlOppProd :: PP_Doc _hdIidCL :: ([(Identifier,Type)])@@ -345,90 +365,101 @@ _tlIppDL :: ([PP_Doc]) _tlIppL :: PP_Doc _tlIppR :: PP_Doc- -- "AG2AspectAG.ag"(line 89, column 33)+ -- "AG2AspectAG.ag"(line 124, column 33) _lhsOppDL =- ({-# LINE 89 "AG2AspectAG.ag" #-}+ ({-# LINE 124 "AG2AspectAG.ag" #-} _hdIppDL ++ _tlIppDL- {-# LINE 353 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 225, column 31)+ {-# LINE 373 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 260, column 31) _lhsOidCL =- ({-# LINE 225 "AG2AspectAG.ag" #-}+ ({-# LINE 260 "AG2AspectAG.ag" #-} _hdIidCL ++ _tlIidCL- {-# LINE 358 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 385, column 34)+ {-# LINE 378 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 429, column 34) _lhsOppCSF =- ({-# LINE 385 "AG2AspectAG.ag" #-}+ ({-# LINE 429 "AG2AspectAG.ag" #-} _hdIppCSF ++ _tlIppCSF- {-# LINE 363 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 383 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} _hdIppL >-< _tlIppL- {-# LINE 368 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 388 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} _hdIppR >-< _tlIppR- {-# LINE 373 "AG2AspectAG.hs" #-})+ {-# LINE 393 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _hdOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 398 "AG2AspectAG.hs" #-})+ -- copy rule (down) _hdOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 378 "AG2AspectAG.hs" #-})+ {-# LINE 403 "AG2AspectAG.hs" #-}) -- copy rule (down) _hdOppProd =- ({-# LINE 53 "AG2AspectAG.ag" #-}+ ({-# LINE 81 "AG2AspectAG.ag" #-} _lhsIppProd- {-# LINE 383 "AG2AspectAG.hs" #-})+ {-# LINE 408 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _tlOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 413 "AG2AspectAG.hs" #-})+ -- copy rule (down) _tlOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 388 "AG2AspectAG.hs" #-})+ {-# LINE 418 "AG2AspectAG.hs" #-}) -- copy rule (down) _tlOppProd =- ({-# LINE 53 "AG2AspectAG.ag" #-}+ ({-# LINE 81 "AG2AspectAG.ag" #-} _lhsIppProd- {-# LINE 393 "AG2AspectAG.hs" #-})+ {-# LINE 423 "AG2AspectAG.hs" #-}) ( _hdIidCL,_hdIppCSF,_hdIppDL,_hdIppL,_hdIppR) =- hd_ _hdOppNt _hdOppProd + hd_ _hdOo_rename _hdOppNt _hdOppProd ( _tlIidCL,_tlIppCSF,_tlIppDL,_tlIppL,_tlIppR) =- tl_ _tlOppNt _tlOppProd + tl_ _tlOo_rename _tlOppNt _tlOppProd in ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR))) ) sem_Children_Nil :: T_Children sem_Children_Nil =- (T_Children (\ _lhsIppNt+ (T_Children (\ _lhsIo_rename+ _lhsIppNt _lhsIppProd -> (let _lhsOppDL :: ([PP_Doc]) _lhsOidCL :: ([(Identifier,Type)]) _lhsOppCSF :: ([(Identifier,PP_Doc)]) _lhsOppL :: PP_Doc _lhsOppR :: PP_Doc- -- "AG2AspectAG.ag"(line 90, column 33)+ -- "AG2AspectAG.ag"(line 125, column 33) _lhsOppDL =- ({-# LINE 90 "AG2AspectAG.ag" #-}+ ({-# LINE 125 "AG2AspectAG.ag" #-} []- {-# LINE 412 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 225, column 31)+ {-# LINE 443 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 260, column 31) _lhsOidCL =- ({-# LINE 225 "AG2AspectAG.ag" #-}+ ({-# LINE 260 "AG2AspectAG.ag" #-} []- {-# LINE 417 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 385, column 34)+ {-# LINE 448 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 429, column 34) _lhsOppCSF =- ({-# LINE 385 "AG2AspectAG.ag" #-}+ ({-# LINE 429 "AG2AspectAG.ag" #-} []- {-# LINE 422 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 453 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} empty- {-# LINE 427 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 458 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} empty- {-# LINE 432 "AG2AspectAG.hs" #-})+ {-# LINE 463 "AG2AspectAG.hs" #-}) in ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppR))) ) -- Expression -------------------------------------------------- {-@@ -467,15 +498,17 @@ (T_Expression (\ _lhsIppNt _lhsIppProd -> (let _lhsOppRE :: (Identifier -> [(Identifier,Type)] -> [Identifier] -> PP_Doc)- -- "AG2AspectAG.ag"(line 221, column 25)+ -- "AG2AspectAG.ag"(line 256, column 25) _lhsOppRE =- ({-# LINE 221 "AG2AspectAG.ag" #-}+ ({-# LINE 256 "AG2AspectAG.ag" #-} rhsRule _lhsIppNt _lhsIppProd tks_- {-# LINE 475 "AG2AspectAG.hs" #-})+ {-# LINE 506 "AG2AspectAG.hs" #-}) in ( _lhsOppRE))) ) -- Grammar ----------------------------------------------------- {- visit 0:+ inherited attribute:+ options : Options synthesized attribute: pp : PP_Doc alternatives:@@ -500,14 +533,15 @@ sem_Grammar (Grammar _typeSyns _useMap _derivings _wrappers _nonts _pragmas _manualAttrOrderMap _paramMap _contextMap _uniqueMap _augmentsMap _aroundsMap _mergeMap ) = (sem_Grammar_Grammar _typeSyns _useMap _derivings _wrappers (sem_Nonterminals _nonts ) _pragmas _manualAttrOrderMap _paramMap _contextMap _uniqueMap _augmentsMap _aroundsMap _mergeMap ) -- semantic domain-newtype T_Grammar = T_Grammar (( PP_Doc))-data Inh_Grammar = Inh_Grammar {}+newtype T_Grammar = T_Grammar (Options ->+ ( PP_Doc))+data Inh_Grammar = Inh_Grammar {options_Inh_Grammar :: Options} data Syn_Grammar = Syn_Grammar {pp_Syn_Grammar :: PP_Doc} wrap_Grammar :: T_Grammar -> Inh_Grammar -> Syn_Grammar -wrap_Grammar (T_Grammar sem ) (Inh_Grammar ) =- (let ( _lhsOpp) = sem +wrap_Grammar (T_Grammar sem ) (Inh_Grammar _lhsIoptions ) =+ (let ( _lhsOpp) = sem _lhsIoptions in (Syn_Grammar _lhsOpp )) sem_Grammar_Grammar :: TypeSyns -> UseMap ->@@ -524,39 +558,59 @@ (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) -> T_Grammar sem_Grammar_Grammar typeSyns_ useMap_ derivings_ wrappers_ (T_Nonterminals nonts_ ) pragmas_ manualAttrOrderMap_ paramMap_ contextMap_ uniqueMap_ augmentsMap_ aroundsMap_ mergeMap_ =- (T_Grammar (let _lhsOpp :: PP_Doc- _nontsOderivs :: Derivings- _nontsOtSyns :: TypeSyns- _nontsIppA :: PP_Doc- _nontsIppD :: PP_Doc- _nontsIppL :: PP_Doc- _nontsIppNtL :: PP_Doc- _nontsIppR :: PP_Doc- _nontsIppS :: PP_Doc- _nontsIppW :: PP_Doc- -- "AG2AspectAG.ag"(line 36, column 25)- _lhsOpp =- ({-# LINE 36 "AG2AspectAG.ag" #-}- pp "-- datatypes" >-< _nontsIppD >-<- pp "-- labels" >-< _nontsIppL >-<- pp "-- attributes" >-< defAtts >-< _nontsIppA >-<- pp "-- rules" >-< pp "listNt = " >|< _nontsIppNtL >-< _nontsIppR >-<- pp "-- semantic functions" >-< _nontsIppS >-<- pp "-- wrappers" >-< _nontsIppW- {-# LINE 547 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 63, column 25)- _nontsOderivs =- ({-# LINE 63 "AG2AspectAG.ag" #-}- derivings_- {-# LINE 552 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 102, column 34)- _nontsOtSyns =- ({-# LINE 102 "AG2AspectAG.ag" #-}- typeSyns_- {-# LINE 557 "AG2AspectAG.hs" #-})- ( _nontsIppA,_nontsIppD,_nontsIppL,_nontsIppNtL,_nontsIppR,_nontsIppS,_nontsIppW) =- nonts_ _nontsOderivs _nontsOtSyns - in ( _lhsOpp)) )+ (T_Grammar (\ _lhsIoptions ->+ (let _nontsOo_rename :: Bool+ _lhsOpp :: PP_Doc+ _nontsOderivs :: Derivings+ _nontsOtSyns :: TypeSyns+ _nontsIppA :: PP_Doc+ _nontsIppCata :: PP_Doc+ _nontsIppD :: PP_Doc+ _nontsIppL :: PP_Doc+ _nontsIppNtL :: PP_Doc+ _nontsIppR :: PP_Doc+ _nontsIppSF :: PP_Doc+ _nontsIppW :: PP_Doc+ -- "AG2AspectAG.ag"(line 39, column 14)+ _nontsOo_rename =+ ({-# LINE 39 "AG2AspectAG.ag" #-}+ rename _lhsIoptions+ {-# LINE 579 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 46, column 25)+ _lhsOpp =+ ({-# LINE 46 "AG2AspectAG.ag" #-}+ (if dataTypes _lhsIoptions+ then pp "-- datatypes" >-< _nontsIppD >-<+ pp "-- labels" >-< _nontsIppL+ else empty)+ >-<+ (if folds _lhsIoptions+ then pp "-- attributes" >-< defAtts >-< _nontsIppA >-<+ pp "-- rules" >-< pp "listNt = " >|< _nontsIppNtL >-< _nontsIppR >-<+ pp "-- catas" >-< _nontsIppCata+ else empty)+ >-<+ (if semfuns _lhsIoptions+ then pp "-- semantic functions" >-< _nontsIppSF+ else empty)+ >-<+ (if wrappers _lhsIoptions+ then pp "-- wrappers" >-< _nontsIppW+ else empty)+ {-# LINE 601 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 91, column 25)+ _nontsOderivs =+ ({-# LINE 91 "AG2AspectAG.ag" #-}+ derivings_+ {-# LINE 606 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 137, column 34)+ _nontsOtSyns =+ ({-# LINE 137 "AG2AspectAG.ag" #-}+ typeSyns_+ {-# LINE 611 "AG2AspectAG.hs" #-})+ ( _nontsIppA,_nontsIppCata,_nontsIppD,_nontsIppL,_nontsIppNtL,_nontsIppR,_nontsIppSF,_nontsIppW) =+ nonts_ _nontsOderivs _nontsOo_rename _nontsOtSyns + in ( _lhsOpp))) ) -- HsToken ----------------------------------------------------- {- alternatives:@@ -710,14 +764,16 @@ visit 0: inherited attributes: derivs : Derivings+ o_rename : Bool tSyns : TypeSyns synthesized attributes: ppA : PP_Doc+ ppCata : PP_Doc ppD : PP_Doc ppL : PP_Doc ppNtL : PP_Doc ppR : PP_Doc- ppS : PP_Doc+ ppSF : PP_Doc ppW : PP_Doc alternatives: alternative Nonterminal:@@ -734,16 +790,17 @@ (sem_Nonterminal_Nonterminal _nt _params _inh _syn (sem_Productions _prods ) ) -- semantic domain newtype T_Nonterminal = T_Nonterminal (Derivings ->+ Bool -> TypeSyns ->- ( PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc))-data Inh_Nonterminal = Inh_Nonterminal {derivs_Inh_Nonterminal :: Derivings,tSyns_Inh_Nonterminal :: TypeSyns}-data Syn_Nonterminal = Syn_Nonterminal {ppA_Syn_Nonterminal :: PP_Doc,ppD_Syn_Nonterminal :: PP_Doc,ppL_Syn_Nonterminal :: PP_Doc,ppNtL_Syn_Nonterminal :: PP_Doc,ppR_Syn_Nonterminal :: PP_Doc,ppS_Syn_Nonterminal :: PP_Doc,ppW_Syn_Nonterminal :: PP_Doc}+ ( PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc))+data Inh_Nonterminal = Inh_Nonterminal {derivs_Inh_Nonterminal :: Derivings,o_rename_Inh_Nonterminal :: Bool,tSyns_Inh_Nonterminal :: TypeSyns}+data Syn_Nonterminal = Syn_Nonterminal {ppA_Syn_Nonterminal :: PP_Doc,ppCata_Syn_Nonterminal :: PP_Doc,ppD_Syn_Nonterminal :: PP_Doc,ppL_Syn_Nonterminal :: PP_Doc,ppNtL_Syn_Nonterminal :: PP_Doc,ppR_Syn_Nonterminal :: PP_Doc,ppSF_Syn_Nonterminal :: PP_Doc,ppW_Syn_Nonterminal :: PP_Doc} wrap_Nonterminal :: T_Nonterminal -> Inh_Nonterminal -> Syn_Nonterminal -wrap_Nonterminal (T_Nonterminal sem ) (Inh_Nonterminal _lhsIderivs _lhsItSyns ) =- (let ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppS,_lhsOppW) = sem _lhsIderivs _lhsItSyns - in (Syn_Nonterminal _lhsOppA _lhsOppD _lhsOppL _lhsOppNtL _lhsOppR _lhsOppS _lhsOppW ))+wrap_Nonterminal (T_Nonterminal sem ) (Inh_Nonterminal _lhsIderivs _lhsIo_rename _lhsItSyns ) =+ (let ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW) = sem _lhsIderivs _lhsIo_rename _lhsItSyns + in (Syn_Nonterminal _lhsOppA _lhsOppCata _lhsOppD _lhsOppL _lhsOppNtL _lhsOppR _lhsOppSF _lhsOppW )) sem_Nonterminal_Nonterminal :: NontermIdent -> ([Identifier]) -> Attributes ->@@ -752,6 +809,7 @@ T_Nonterminal sem_Nonterminal_Nonterminal nt_ params_ inh_ syn_ (T_Productions prods_ ) = (T_Nonterminal (\ _lhsIderivs+ _lhsIo_rename _lhsItSyns -> (let _prodsOppNt :: PP_Doc _lhsOppD :: PP_Doc@@ -759,88 +817,103 @@ _lhsOppA :: PP_Doc _lhsOppNtL :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc+ _lhsOppCata :: PP_Doc+ _lhsOppSF :: PP_Doc _lhsOppW :: PP_Doc+ _prodsOo_rename :: Bool _prodsIppA :: PP_Doc+ _prodsIppCata :: PP_Doc _prodsIppDL :: ([PP_Doc]) _prodsIppL :: PP_Doc _prodsIppR :: PP_Doc- _prodsIppS :: PP_Doc _prodsIppSF :: PP_Doc- -- "AG2AspectAG.ag"(line 50, column 25)+ -- "AG2AspectAG.ag"(line 78, column 25) _prodsOppNt =- ({-# LINE 50 "AG2AspectAG.ag" #-}+ ({-# LINE 78 "AG2AspectAG.ag" #-} pp nt_- {-# LINE 775 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 69, column 25)+ {-# LINE 835 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 97, column 25) _lhsOppD =- ({-# LINE 69 "AG2AspectAG.ag" #-}+ ({-# LINE 97 "AG2AspectAG.ag" #-} case (lookup nt_ _lhsItSyns) of Nothing -> pp "data " >|< pp nt_ >|< " = " >|< vlist_sep " | " _prodsIppDL >-< case (Map.lookup nt_ _lhsIderivs) of Just ntds -> pp " deriving " >|< (ppListSep "(" ")" ", " $ Set.elems ntds) Nothing -> empty Just tp -> pp "type " >|< pp nt_ >|< " = " >|< ppShow tp- {-# LINE 785 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 113, column 25)+ {-# LINE 845 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 148, column 25) _lhsOppL =- ({-# LINE 113 "AG2AspectAG.ag" #-}+ ({-# LINE 148 "AG2AspectAG.ag" #-} pp "nt_" >|< pp nt_ >|< " = proxy :: Proxy " >|< pp nt_ >-< _prodsIppL- {-# LINE 791 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 135, column 25)+ {-# LINE 851 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 170, column 25) _lhsOppA =- ({-# LINE 135 "AG2AspectAG.ag" #-}+ ({-# LINE 170 "AG2AspectAG.ag" #-} defTAtt "inh" (pp nt_) inh_ >-< defTAtt "syn" (pp nt_) syn_ >-< _prodsIppA- {-# LINE 798 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 180, column 25)+ {-# LINE 858 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 215, column 25) _lhsOppNtL =- ({-# LINE 180 "AG2AspectAG.ag" #-}+ ({-# LINE 215 "AG2AspectAG.ag" #-} pp "nt_" >|< pp nt_ >|< pp " .*. "- {-# LINE 803 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 187, column 25)+ {-# LINE 863 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 222, column 25) _lhsOppR =- ({-# LINE 187 "AG2AspectAG.ag" #-}+ ({-# LINE 222 "AG2AspectAG.ag" #-} pp "----" >|< pp nt_ >-< _prodsIppR- {-# LINE 808 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 347, column 25)- _lhsOppS =- ({-# LINE 347 "AG2AspectAG.ag" #-}+ {-# LINE 868 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 382, column 25)+ _lhsOppCata =+ ({-# LINE 382 "AG2AspectAG.ag" #-} let ppNt = pp nt_ in pp "----" >|< ppNt >-<+ _prodsIppCata+ {-# LINE 875 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 403, column 25)+ _lhsOppSF =+ ({-# LINE 403 "AG2AspectAG.ag" #-}+ let ppNt = pp nt_+ in pp "----" >|< ppNt >-< pp "type T_" >|< ppNt >|< pp " = " >|< pp "(Record (HCons (LVPair (Proxy Att_inh) Inh_" >|< ppNt >|< pp ") HNil)) -> " >|< pp "(Record (HCons (LVPair (Proxy Att_syn) Syn_" >|< ppNt >|< pp ") HNil))" >-< pp "instance SemType T_" >|< ppNt >|< pp " " >|< ppNt >-<- _prodsIppS >-< pp "-- sem_" >|< ppNt >|< pp " :: " >|< ppNt >|< pp " -> T_" >|< ppNt >-< _prodsIppSF- {-# LINE 821 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 406, column 25)+ {-# LINE 887 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 450, column 25) _lhsOppW =- ({-# LINE 406 "AG2AspectAG.ag" #-}+ ({-# LINE 450 "AG2AspectAG.ag" #-} pp "wrap_" >|< pp nt_ >|< pp " sem _inh = " >-< pp " let (Record (HCons _syn HNil)) = sem (att_inh .=. _inh .*. emptyRecord)" >|< pp " in (valueLVPair _syn)"- {-# LINE 828 "AG2AspectAG.hs" #-})- ( _prodsIppA,_prodsIppDL,_prodsIppL,_prodsIppR,_prodsIppS,_prodsIppSF) =- prods_ _prodsOppNt - in ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppS,_lhsOppW))) )+ {-# LINE 894 "AG2AspectAG.hs" #-})+ -- copy rule (down)+ _prodsOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 899 "AG2AspectAG.hs" #-})+ ( _prodsIppA,_prodsIppCata,_prodsIppDL,_prodsIppL,_prodsIppR,_prodsIppSF) =+ prods_ _prodsOo_rename _prodsOppNt + in ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW))) ) -- Nonterminals ------------------------------------------------ {- visit 0: inherited attributes: derivs : Derivings+ o_rename : Bool tSyns : TypeSyns synthesized attributes: ppA : PP_Doc+ ppCata : PP_Doc ppD : PP_Doc ppL : PP_Doc ppNtL : PP_Doc ppR : PP_Doc- ppS : PP_Doc+ ppSF : PP_Doc ppW : PP_Doc alternatives: alternative Cons:@@ -855,154 +928,183 @@ (Prelude.foldr sem_Nonterminals_Cons sem_Nonterminals_Nil (Prelude.map sem_Nonterminal list) ) -- semantic domain newtype T_Nonterminals = T_Nonterminals (Derivings ->+ Bool -> TypeSyns ->- ( PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc))-data Inh_Nonterminals = Inh_Nonterminals {derivs_Inh_Nonterminals :: Derivings,tSyns_Inh_Nonterminals :: TypeSyns}-data Syn_Nonterminals = Syn_Nonterminals {ppA_Syn_Nonterminals :: PP_Doc,ppD_Syn_Nonterminals :: PP_Doc,ppL_Syn_Nonterminals :: PP_Doc,ppNtL_Syn_Nonterminals :: PP_Doc,ppR_Syn_Nonterminals :: PP_Doc,ppS_Syn_Nonterminals :: PP_Doc,ppW_Syn_Nonterminals :: PP_Doc}+ ( PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc))+data Inh_Nonterminals = Inh_Nonterminals {derivs_Inh_Nonterminals :: Derivings,o_rename_Inh_Nonterminals :: Bool,tSyns_Inh_Nonterminals :: TypeSyns}+data Syn_Nonterminals = Syn_Nonterminals {ppA_Syn_Nonterminals :: PP_Doc,ppCata_Syn_Nonterminals :: PP_Doc,ppD_Syn_Nonterminals :: PP_Doc,ppL_Syn_Nonterminals :: PP_Doc,ppNtL_Syn_Nonterminals :: PP_Doc,ppR_Syn_Nonterminals :: PP_Doc,ppSF_Syn_Nonterminals :: PP_Doc,ppW_Syn_Nonterminals :: PP_Doc} wrap_Nonterminals :: T_Nonterminals -> Inh_Nonterminals -> Syn_Nonterminals -wrap_Nonterminals (T_Nonterminals sem ) (Inh_Nonterminals _lhsIderivs _lhsItSyns ) =- (let ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppS,_lhsOppW) = sem _lhsIderivs _lhsItSyns - in (Syn_Nonterminals _lhsOppA _lhsOppD _lhsOppL _lhsOppNtL _lhsOppR _lhsOppS _lhsOppW ))+wrap_Nonterminals (T_Nonterminals sem ) (Inh_Nonterminals _lhsIderivs _lhsIo_rename _lhsItSyns ) =+ (let ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW) = sem _lhsIderivs _lhsIo_rename _lhsItSyns + in (Syn_Nonterminals _lhsOppA _lhsOppCata _lhsOppD _lhsOppL _lhsOppNtL _lhsOppR _lhsOppSF _lhsOppW )) sem_Nonterminals_Cons :: T_Nonterminal -> T_Nonterminals -> T_Nonterminals sem_Nonterminals_Cons (T_Nonterminal hd_ ) (T_Nonterminals tl_ ) = (T_Nonterminals (\ _lhsIderivs+ _lhsIo_rename _lhsItSyns -> (let _lhsOppA :: PP_Doc+ _lhsOppCata :: PP_Doc _lhsOppD :: PP_Doc _lhsOppL :: PP_Doc _lhsOppNtL :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc+ _lhsOppSF :: PP_Doc _lhsOppW :: PP_Doc _hdOderivs :: Derivings+ _hdOo_rename :: Bool _hdOtSyns :: TypeSyns _tlOderivs :: Derivings+ _tlOo_rename :: Bool _tlOtSyns :: TypeSyns _hdIppA :: PP_Doc+ _hdIppCata :: PP_Doc _hdIppD :: PP_Doc _hdIppL :: PP_Doc _hdIppNtL :: PP_Doc _hdIppR :: PP_Doc- _hdIppS :: PP_Doc+ _hdIppSF :: PP_Doc _hdIppW :: PP_Doc _tlIppA :: PP_Doc+ _tlIppCata :: PP_Doc _tlIppD :: PP_Doc _tlIppL :: PP_Doc _tlIppNtL :: PP_Doc _tlIppR :: PP_Doc- _tlIppS :: PP_Doc+ _tlIppSF :: PP_Doc _tlIppW :: PP_Doc- -- use rule "AG2AspectAG.ag"(line 132, column 64)+ -- use rule "AG2AspectAG.ag"(line 167, column 64) _lhsOppA =- ({-# LINE 132 "AG2AspectAG.ag" #-}+ ({-# LINE 167 "AG2AspectAG.ag" #-} _hdIppA >-< _tlIppA- {-# LINE 904 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 66, column 52)+ {-# LINE 984 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 379, column 67)+ _lhsOppCata =+ ({-# LINE 379 "AG2AspectAG.ag" #-}+ _hdIppCata >-< _tlIppCata+ {-# LINE 989 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 94, column 52) _lhsOppD =- ({-# LINE 66 "AG2AspectAG.ag" #-}+ ({-# LINE 94 "AG2AspectAG.ag" #-} _hdIppD >-< _tlIppD- {-# LINE 909 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 994 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} _hdIppL >-< _tlIppL- {-# LINE 914 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 177, column 44)+ {-# LINE 999 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 212, column 44) _lhsOppNtL =- ({-# LINE 177 "AG2AspectAG.ag" #-}+ ({-# LINE 212 "AG2AspectAG.ag" #-} _hdIppNtL >|< _tlIppNtL- {-# LINE 919 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 1004 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} _hdIppR >-< _tlIppR- {-# LINE 924 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 344, column 64)- _lhsOppS =- ({-# LINE 344 "AG2AspectAG.ag" #-}- _hdIppS >-< _tlIppS- {-# LINE 929 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 403, column 42)+ {-# LINE 1009 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 400, column 66)+ _lhsOppSF =+ ({-# LINE 400 "AG2AspectAG.ag" #-}+ _hdIppSF >-< _tlIppSF+ {-# LINE 1014 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 447, column 42) _lhsOppW =- ({-# LINE 403 "AG2AspectAG.ag" #-}+ ({-# LINE 447 "AG2AspectAG.ag" #-} _hdIppW >-< _tlIppW- {-# LINE 934 "AG2AspectAG.hs" #-})+ {-# LINE 1019 "AG2AspectAG.hs" #-}) -- copy rule (down) _hdOderivs =- ({-# LINE 60 "AG2AspectAG.ag" #-}+ ({-# LINE 88 "AG2AspectAG.ag" #-} _lhsIderivs- {-# LINE 939 "AG2AspectAG.hs" #-})+ {-# LINE 1024 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _hdOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 1029 "AG2AspectAG.hs" #-})+ -- copy rule (down) _hdOtSyns =- ({-# LINE 99 "AG2AspectAG.ag" #-}+ ({-# LINE 134 "AG2AspectAG.ag" #-} _lhsItSyns- {-# LINE 944 "AG2AspectAG.hs" #-})+ {-# LINE 1034 "AG2AspectAG.hs" #-}) -- copy rule (down) _tlOderivs =- ({-# LINE 60 "AG2AspectAG.ag" #-}+ ({-# LINE 88 "AG2AspectAG.ag" #-} _lhsIderivs- {-# LINE 949 "AG2AspectAG.hs" #-})+ {-# LINE 1039 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _tlOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 1044 "AG2AspectAG.hs" #-})+ -- copy rule (down) _tlOtSyns =- ({-# LINE 99 "AG2AspectAG.ag" #-}+ ({-# LINE 134 "AG2AspectAG.ag" #-} _lhsItSyns- {-# LINE 954 "AG2AspectAG.hs" #-})- ( _hdIppA,_hdIppD,_hdIppL,_hdIppNtL,_hdIppR,_hdIppS,_hdIppW) =- hd_ _hdOderivs _hdOtSyns - ( _tlIppA,_tlIppD,_tlIppL,_tlIppNtL,_tlIppR,_tlIppS,_tlIppW) =- tl_ _tlOderivs _tlOtSyns - in ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppS,_lhsOppW))) )+ {-# LINE 1049 "AG2AspectAG.hs" #-})+ ( _hdIppA,_hdIppCata,_hdIppD,_hdIppL,_hdIppNtL,_hdIppR,_hdIppSF,_hdIppW) =+ hd_ _hdOderivs _hdOo_rename _hdOtSyns + ( _tlIppA,_tlIppCata,_tlIppD,_tlIppL,_tlIppNtL,_tlIppR,_tlIppSF,_tlIppW) =+ tl_ _tlOderivs _tlOo_rename _tlOtSyns + in ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW))) ) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil = (T_Nonterminals (\ _lhsIderivs+ _lhsIo_rename _lhsItSyns -> (let _lhsOppA :: PP_Doc+ _lhsOppCata :: PP_Doc _lhsOppD :: PP_Doc _lhsOppL :: PP_Doc _lhsOppNtL :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc+ _lhsOppSF :: PP_Doc _lhsOppW :: PP_Doc- -- use rule "AG2AspectAG.ag"(line 132, column 64)+ -- use rule "AG2AspectAG.ag"(line 167, column 64) _lhsOppA =- ({-# LINE 132 "AG2AspectAG.ag" #-}+ ({-# LINE 167 "AG2AspectAG.ag" #-} empty- {-# LINE 975 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 66, column 52)+ {-# LINE 1072 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 379, column 67)+ _lhsOppCata =+ ({-# LINE 379 "AG2AspectAG.ag" #-}+ empty+ {-# LINE 1077 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 94, column 52) _lhsOppD =- ({-# LINE 66 "AG2AspectAG.ag" #-}+ ({-# LINE 94 "AG2AspectAG.ag" #-} empty- {-# LINE 980 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 1082 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} empty- {-# LINE 985 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 177, column 44)+ {-# LINE 1087 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 212, column 44) _lhsOppNtL =- ({-# LINE 177 "AG2AspectAG.ag" #-}+ ({-# LINE 212 "AG2AspectAG.ag" #-} pp "hNil"- {-# LINE 990 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 1092 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} empty- {-# LINE 995 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 344, column 64)- _lhsOppS =- ({-# LINE 344 "AG2AspectAG.ag" #-}+ {-# LINE 1097 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 400, column 66)+ _lhsOppSF =+ ({-# LINE 400 "AG2AspectAG.ag" #-} empty- {-# LINE 1000 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 403, column 42)+ {-# LINE 1102 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 447, column 42) _lhsOppW =- ({-# LINE 403 "AG2AspectAG.ag" #-}+ ({-# LINE 447 "AG2AspectAG.ag" #-} empty- {-# LINE 1005 "AG2AspectAG.hs" #-})- in ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppS,_lhsOppW))) )+ {-# LINE 1107 "AG2AspectAG.hs" #-})+ in ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW))) ) -- Pattern ----------------------------------------------------- {- visit 0:@@ -1070,21 +1172,21 @@ _patIcopy :: Pattern _patIinfo :: ((Identifier, Identifier)) _partsIcopy :: Patterns - -- "AG2AspectAG.ag"(line 204, column 25)+ -- "AG2AspectAG.ag"(line 239, column 25) _lhsOinfo =- ({-# LINE 204 "AG2AspectAG.ag" #-}+ ({-# LINE 239 "AG2AspectAG.ag" #-} (field_, attr_)- {-# LINE 1078 "AG2AspectAG.hs" #-})+ {-# LINE 1180 "AG2AspectAG.hs" #-}) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Alias field_ attr_ _patIcopy _partsIcopy- {-# LINE 1083 "AG2AspectAG.hs" #-})+ {-# LINE 1185 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1088 "AG2AspectAG.hs" #-})+ {-# LINE 1190 "AG2AspectAG.hs" #-}) ( _patIcopy,_patIinfo) = pat_ ( _partsIcopy) =@@ -1097,21 +1199,21 @@ (T_Pattern (let _lhsOinfo :: ((Identifier, Identifier)) _lhsOcopy :: Pattern _patsIcopy :: Patterns - -- "AG2AspectAG.ag"(line 205, column 25)+ -- "AG2AspectAG.ag"(line 240, column 25) _lhsOinfo =- ({-# LINE 205 "AG2AspectAG.ag" #-}+ ({-# LINE 240 "AG2AspectAG.ag" #-} error "Pattern Constr undefined!!"- {-# LINE 1105 "AG2AspectAG.hs" #-})+ {-# LINE 1207 "AG2AspectAG.hs" #-}) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Constr name_ _patsIcopy- {-# LINE 1110 "AG2AspectAG.hs" #-})+ {-# LINE 1212 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1115 "AG2AspectAG.hs" #-})+ {-# LINE 1217 "AG2AspectAG.hs" #-}) ( _patsIcopy) = pats_ in ( _lhsOcopy,_lhsOinfo)) )@@ -1126,17 +1228,17 @@ _copy = ({-# LINE 23 "./Patterns.ag" #-} Irrefutable _patIcopy- {-# LINE 1130 "AG2AspectAG.hs" #-})+ {-# LINE 1232 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1135 "AG2AspectAG.hs" #-})+ {-# LINE 1237 "AG2AspectAG.hs" #-}) -- copy rule (up) _lhsOinfo =- ({-# LINE 202 "AG2AspectAG.ag" #-}+ ({-# LINE 237 "AG2AspectAG.ag" #-} _patIinfo- {-# LINE 1140 "AG2AspectAG.hs" #-})+ {-# LINE 1242 "AG2AspectAG.hs" #-}) ( _patIcopy,_patIinfo) = pat_ in ( _lhsOcopy,_lhsOinfo)) )@@ -1147,21 +1249,21 @@ (T_Pattern (let _lhsOinfo :: ((Identifier, Identifier)) _lhsOcopy :: Pattern _patsIcopy :: Patterns - -- "AG2AspectAG.ag"(line 206, column 25)+ -- "AG2AspectAG.ag"(line 241, column 25) _lhsOinfo =- ({-# LINE 206 "AG2AspectAG.ag" #-}+ ({-# LINE 241 "AG2AspectAG.ag" #-} error "Pattern Product undefined!!"- {-# LINE 1155 "AG2AspectAG.hs" #-})+ {-# LINE 1257 "AG2AspectAG.hs" #-}) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Product pos_ _patsIcopy- {-# LINE 1160 "AG2AspectAG.hs" #-})+ {-# LINE 1262 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1165 "AG2AspectAG.hs" #-})+ {-# LINE 1267 "AG2AspectAG.hs" #-}) ( _patsIcopy) = pats_ in ( _lhsOcopy,_lhsOinfo)) )@@ -1170,21 +1272,21 @@ sem_Pattern_Underscore pos_ = (T_Pattern (let _lhsOinfo :: ((Identifier, Identifier)) _lhsOcopy :: Pattern - -- "AG2AspectAG.ag"(line 207, column 25)+ -- "AG2AspectAG.ag"(line 242, column 25) _lhsOinfo =- ({-# LINE 207 "AG2AspectAG.ag" #-}+ ({-# LINE 242 "AG2AspectAG.ag" #-} error "Pattern Underscore undefined!!"- {-# LINE 1178 "AG2AspectAG.hs" #-})+ {-# LINE 1280 "AG2AspectAG.hs" #-}) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Underscore pos_- {-# LINE 1183 "AG2AspectAG.hs" #-})+ {-# LINE 1285 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1188 "AG2AspectAG.hs" #-})+ {-# LINE 1290 "AG2AspectAG.hs" #-}) in ( _lhsOcopy,_lhsOinfo)) ) -- Patterns ---------------------------------------------------- {-@@ -1228,12 +1330,12 @@ _copy = ({-# LINE 23 "./Patterns.ag" #-} (:) _hdIcopy _tlIcopy- {-# LINE 1232 "AG2AspectAG.hs" #-})+ {-# LINE 1334 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1237 "AG2AspectAG.hs" #-})+ {-# LINE 1339 "AG2AspectAG.hs" #-}) ( _hdIcopy,_hdIinfo) = hd_ ( _tlIcopy) =@@ -1246,24 +1348,25 @@ _copy = ({-# LINE 23 "./Patterns.ag" #-} []- {-# LINE 1250 "AG2AspectAG.hs" #-})+ {-# LINE 1352 "AG2AspectAG.hs" #-}) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy- {-# LINE 1255 "AG2AspectAG.hs" #-})+ {-# LINE 1357 "AG2AspectAG.hs" #-}) in ( _lhsOcopy)) ) -- Production -------------------------------------------------- {- visit 0:- inherited attribute:+ inherited attributes:+ o_rename : Bool ppNt : PP_Doc synthesized attributes: ppA : PP_Doc+ ppCata : PP_Doc ppD : PP_Doc ppL : PP_Doc ppR : PP_Doc- ppS : PP_Doc ppSF : PP_Doc alternatives: alternative Production:@@ -1278,31 +1381,34 @@ sem_Production (Production _con _children _rules _typeSigs ) = (sem_Production_Production _con (sem_Children _children ) (sem_Rules _rules ) (sem_TypeSigs _typeSigs ) ) -- semantic domain-newtype T_Production = T_Production (PP_Doc ->+newtype T_Production = T_Production (Bool ->+ PP_Doc -> ( PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc,PP_Doc))-data Inh_Production = Inh_Production {ppNt_Inh_Production :: PP_Doc}-data Syn_Production = Syn_Production {ppA_Syn_Production :: PP_Doc,ppD_Syn_Production :: PP_Doc,ppL_Syn_Production :: PP_Doc,ppR_Syn_Production :: PP_Doc,ppS_Syn_Production :: PP_Doc,ppSF_Syn_Production :: PP_Doc}+data Inh_Production = Inh_Production {o_rename_Inh_Production :: Bool,ppNt_Inh_Production :: PP_Doc}+data Syn_Production = Syn_Production {ppA_Syn_Production :: PP_Doc,ppCata_Syn_Production :: PP_Doc,ppD_Syn_Production :: PP_Doc,ppL_Syn_Production :: PP_Doc,ppR_Syn_Production :: PP_Doc,ppSF_Syn_Production :: PP_Doc} wrap_Production :: T_Production -> Inh_Production -> Syn_Production -wrap_Production (T_Production sem ) (Inh_Production _lhsIppNt ) =- (let ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppR,_lhsOppS,_lhsOppSF) = sem _lhsIppNt - in (Syn_Production _lhsOppA _lhsOppD _lhsOppL _lhsOppR _lhsOppS _lhsOppSF ))+wrap_Production (T_Production sem ) (Inh_Production _lhsIo_rename _lhsIppNt ) =+ (let ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppR,_lhsOppSF) = sem _lhsIo_rename _lhsIppNt + in (Syn_Production _lhsOppA _lhsOppCata _lhsOppD _lhsOppL _lhsOppR _lhsOppSF )) sem_Production_Production :: ConstructorIdent -> T_Children -> T_Rules -> T_TypeSigs -> T_Production sem_Production_Production con_ (T_Children children_ ) (T_Rules rules_ ) (T_TypeSigs typeSigs_ ) =- (T_Production (\ _lhsIppNt ->+ (T_Production (\ _lhsIo_rename+ _lhsIppNt -> (let _childrenOppProd :: PP_Doc _rulesOppProd :: PP_Doc _lhsOppD :: PP_Doc _lhsOppA :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc+ _lhsOppCata :: PP_Doc _lhsOppSF :: PP_Doc _lhsOppL :: PP_Doc+ _childrenOo_rename :: Bool _childrenOppNt :: PP_Doc _rulesOppNt :: PP_Doc _childrenIidCL :: ([(Identifier,Type)])@@ -1312,89 +1418,95 @@ _childrenIppR :: PP_Doc _rulesIlocals :: ([Identifier]) _rulesIppRL :: ([((Identifier,Identifier),[(Identifier,Type)] -> [Identifier] -> PP_Doc)])- -- "AG2AspectAG.ag"(line 56, column 25)+ -- "AG2AspectAG.ag"(line 84, column 25) _childrenOppProd =- ({-# LINE 56 "AG2AspectAG.ag" #-}+ ({-# LINE 84 "AG2AspectAG.ag" #-} pp con_- {-# LINE 1320 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 57, column 25)+ {-# LINE 1426 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 85, column 25) _rulesOppProd =- ({-# LINE 57 "AG2AspectAG.ag" #-}+ ({-# LINE 85 "AG2AspectAG.ag" #-} pp con_- {-# LINE 1325 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 78, column 25)+ {-# LINE 1431 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 106, column 25) _lhsOppD =- ({-# LINE 78 "AG2AspectAG.ag" #-}- let prodName = ppListSep "" "" "_" [_lhsIppNt, pp con_]- in prodName >|< ppListSep " {" "}" ", " _childrenIppDL- {-# LINE 1331 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 140, column 25)+ ({-# LINE 106 "AG2AspectAG.ag" #-}+ let ppProd = prodName _lhsIo_rename _lhsIppNt (pp con_)+ in ppProd >|< ppListSep " {" "}" ", " _childrenIppDL+ {-# LINE 1437 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 175, column 25) _lhsOppA =- ({-# LINE 140 "AG2AspectAG.ag" #-}+ ({-# LINE 175 "AG2AspectAG.ag" #-} defLocalAtts _lhsIppNt (pp con_) (length _rulesIlocals) 1 $ sort _rulesIlocals- {-# LINE 1336 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 190, column 25)+ {-# LINE 1442 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 225, column 25) _lhsOppR =- ({-# LINE 190 "AG2AspectAG.ag" #-}+ ({-# LINE 225 "AG2AspectAG.ag" #-} defInstRules _lhsIppNt con_ _childrenIppR _rulesIppRL _childrenIidCL _rulesIlocals >-< defLocRule _lhsIppNt con_ _childrenIppR _rulesIppRL _childrenIidCL _rulesIlocals >-< defInhRule _lhsIppNt con_ _childrenIppR _rulesIppRL _childrenIidCL _rulesIlocals >-< defSynRule _lhsIppNt con_ _childrenIppR _rulesIppRL _childrenIidCL _rulesIlocals- {-# LINE 1344 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 359, column 25)- _lhsOppS =- ({-# LINE 359 "AG2AspectAG.ag" #-}+ {-# LINE 1450 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 389, column 25)+ _lhsOppCata =+ ({-# LINE 389 "AG2AspectAG.ag" #-} let ppProd = ppListSep "" "" "_" [_lhsIppNt, pp con_] in pp "asp_" >|< ppProd >|< pp " = inh_" >|< ppProd >|< pp " `ext` syn_" >|< ppProd >|< pp " `ext` loc_" >|< ppProd >|< pp " `ext` inst_" >|< ppProd >-< pp "sem_" >|< ppProd >|< pp " = knit asp_" >|< ppProd- {-# LINE 1354 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 370, column 25)+ {-# LINE 1460 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 414, column 25) _lhsOppSF =- ({-# LINE 370 "AG2AspectAG.ag" #-}+ ({-# LINE 414 "AG2AspectAG.ag" #-} let chi = _childrenIppCSF ppProd = ppListSep "" "" "_" [_lhsIppNt,pp con_] ppPattern = case (show con_) of "Cons" -> ppParams (ppListSep "" "" " : ") "Nil" -> pp "[]"- otherwise -> ppProd >|< pp " " >|< (ppParams ppSpaced)+ otherwise -> prodName _lhsIo_rename _lhsIppNt (pp con_) >|< pp " " >|< (ppParams ppSpaced) ppParams f = f $ map (((>|<) (pp "_")) . fst) chi in pp "sem_" >|< _lhsIppNt >|< pp " (" >|< ppPattern >|< ") = sem_" >|< ppProd >|< pp " (" >|< map snd chi >|< pp "emptyRecord)"- {-# LINE 1367 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 1473 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} _childrenIppL- {-# LINE 1372 "AG2AspectAG.hs" #-})+ {-# LINE 1478 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _childrenOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 1483 "AG2AspectAG.hs" #-})+ -- copy rule (down) _childrenOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1377 "AG2AspectAG.hs" #-})+ {-# LINE 1488 "AG2AspectAG.hs" #-}) -- copy rule (down) _rulesOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1382 "AG2AspectAG.hs" #-})+ {-# LINE 1493 "AG2AspectAG.hs" #-}) ( _childrenIidCL,_childrenIppCSF,_childrenIppDL,_childrenIppL,_childrenIppR) =- children_ _childrenOppNt _childrenOppProd + children_ _childrenOo_rename _childrenOppNt _childrenOppProd ( _rulesIlocals,_rulesIppRL) = rules_ _rulesOppNt _rulesOppProd - in ( _lhsOppA,_lhsOppD,_lhsOppL,_lhsOppR,_lhsOppS,_lhsOppSF))) )+ in ( _lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppL,_lhsOppR,_lhsOppSF))) ) -- Productions ------------------------------------------------- {- visit 0:- inherited attribute:+ inherited attributes:+ o_rename : Bool ppNt : PP_Doc synthesized attributes: ppA : PP_Doc+ ppCata : PP_Doc ppDL : [PP_Doc] ppL : PP_Doc ppR : PP_Doc- ppS : PP_Doc ppSF : PP_Doc alternatives: alternative Cons:@@ -1408,126 +1520,141 @@ sem_Productions list = (Prelude.foldr sem_Productions_Cons sem_Productions_Nil (Prelude.map sem_Production list) ) -- semantic domain-newtype T_Productions = T_Productions (PP_Doc ->- ( PP_Doc,([PP_Doc]),PP_Doc,PP_Doc,PP_Doc,PP_Doc))-data Inh_Productions = Inh_Productions {ppNt_Inh_Productions :: PP_Doc}-data Syn_Productions = Syn_Productions {ppA_Syn_Productions :: PP_Doc,ppDL_Syn_Productions :: ([PP_Doc]),ppL_Syn_Productions :: PP_Doc,ppR_Syn_Productions :: PP_Doc,ppS_Syn_Productions :: PP_Doc,ppSF_Syn_Productions :: PP_Doc}+newtype T_Productions = T_Productions (Bool ->+ PP_Doc ->+ ( PP_Doc,PP_Doc,([PP_Doc]),PP_Doc,PP_Doc,PP_Doc))+data Inh_Productions = Inh_Productions {o_rename_Inh_Productions :: Bool,ppNt_Inh_Productions :: PP_Doc}+data Syn_Productions = Syn_Productions {ppA_Syn_Productions :: PP_Doc,ppCata_Syn_Productions :: PP_Doc,ppDL_Syn_Productions :: ([PP_Doc]),ppL_Syn_Productions :: PP_Doc,ppR_Syn_Productions :: PP_Doc,ppSF_Syn_Productions :: PP_Doc} wrap_Productions :: T_Productions -> Inh_Productions -> Syn_Productions -wrap_Productions (T_Productions sem ) (Inh_Productions _lhsIppNt ) =- (let ( _lhsOppA,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppS,_lhsOppSF) = sem _lhsIppNt - in (Syn_Productions _lhsOppA _lhsOppDL _lhsOppL _lhsOppR _lhsOppS _lhsOppSF ))+wrap_Productions (T_Productions sem ) (Inh_Productions _lhsIo_rename _lhsIppNt ) =+ (let ( _lhsOppA,_lhsOppCata,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppSF) = sem _lhsIo_rename _lhsIppNt + in (Syn_Productions _lhsOppA _lhsOppCata _lhsOppDL _lhsOppL _lhsOppR _lhsOppSF )) sem_Productions_Cons :: T_Production -> T_Productions -> T_Productions sem_Productions_Cons (T_Production hd_ ) (T_Productions tl_ ) =- (T_Productions (\ _lhsIppNt ->+ (T_Productions (\ _lhsIo_rename+ _lhsIppNt -> (let _lhsOppDL :: ([PP_Doc]) _lhsOppA :: PP_Doc+ _lhsOppCata :: PP_Doc _lhsOppL :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc _lhsOppSF :: PP_Doc+ _hdOo_rename :: Bool _hdOppNt :: PP_Doc+ _tlOo_rename :: Bool _tlOppNt :: PP_Doc _hdIppA :: PP_Doc+ _hdIppCata :: PP_Doc _hdIppD :: PP_Doc _hdIppL :: PP_Doc _hdIppR :: PP_Doc- _hdIppS :: PP_Doc _hdIppSF :: PP_Doc _tlIppA :: PP_Doc+ _tlIppCata :: PP_Doc _tlIppDL :: ([PP_Doc]) _tlIppL :: PP_Doc _tlIppR :: PP_Doc- _tlIppS :: PP_Doc _tlIppSF :: PP_Doc- -- "AG2AspectAG.ag"(line 85, column 33)+ -- "AG2AspectAG.ag"(line 120, column 33) _lhsOppDL =- ({-# LINE 85 "AG2AspectAG.ag" #-}+ ({-# LINE 120 "AG2AspectAG.ag" #-} _hdIppD : _tlIppDL- {-# LINE 1451 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 132, column 64)+ {-# LINE 1567 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 167, column 64) _lhsOppA =- ({-# LINE 132 "AG2AspectAG.ag" #-}+ ({-# LINE 167 "AG2AspectAG.ag" #-} _hdIppA >-< _tlIppA- {-# LINE 1456 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 1572 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 379, column 67)+ _lhsOppCata =+ ({-# LINE 379 "AG2AspectAG.ag" #-}+ _hdIppCata >-< _tlIppCata+ {-# LINE 1577 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} _hdIppL >-< _tlIppL- {-# LINE 1461 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 1582 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} _hdIppR >-< _tlIppR- {-# LINE 1466 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 344, column 64)- _lhsOppS =- ({-# LINE 344 "AG2AspectAG.ag" #-}- _hdIppS >-< _tlIppS- {-# LINE 1471 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 368, column 41)+ {-# LINE 1587 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 400, column 66) _lhsOppSF =- ({-# LINE 368 "AG2AspectAG.ag" #-}+ ({-# LINE 400 "AG2AspectAG.ag" #-} _hdIppSF >-< _tlIppSF- {-# LINE 1476 "AG2AspectAG.hs" #-})+ {-# LINE 1592 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _hdOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 1597 "AG2AspectAG.hs" #-})+ -- copy rule (down) _hdOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1481 "AG2AspectAG.hs" #-})+ {-# LINE 1602 "AG2AspectAG.hs" #-}) -- copy rule (down)+ _tlOo_rename =+ ({-# LINE 37 "AG2AspectAG.ag" #-}+ _lhsIo_rename+ {-# LINE 1607 "AG2AspectAG.hs" #-})+ -- copy rule (down) _tlOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1486 "AG2AspectAG.hs" #-})- ( _hdIppA,_hdIppD,_hdIppL,_hdIppR,_hdIppS,_hdIppSF) =- hd_ _hdOppNt - ( _tlIppA,_tlIppDL,_tlIppL,_tlIppR,_tlIppS,_tlIppSF) =- tl_ _tlOppNt - in ( _lhsOppA,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppS,_lhsOppSF))) )+ {-# LINE 1612 "AG2AspectAG.hs" #-})+ ( _hdIppA,_hdIppCata,_hdIppD,_hdIppL,_hdIppR,_hdIppSF) =+ hd_ _hdOo_rename _hdOppNt + ( _tlIppA,_tlIppCata,_tlIppDL,_tlIppL,_tlIppR,_tlIppSF) =+ tl_ _tlOo_rename _tlOppNt + in ( _lhsOppA,_lhsOppCata,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppSF))) ) sem_Productions_Nil :: T_Productions sem_Productions_Nil =- (T_Productions (\ _lhsIppNt ->+ (T_Productions (\ _lhsIo_rename+ _lhsIppNt -> (let _lhsOppDL :: ([PP_Doc]) _lhsOppA :: PP_Doc+ _lhsOppCata :: PP_Doc _lhsOppL :: PP_Doc _lhsOppR :: PP_Doc- _lhsOppS :: PP_Doc _lhsOppSF :: PP_Doc- -- "AG2AspectAG.ag"(line 86, column 33)+ -- "AG2AspectAG.ag"(line 121, column 33) _lhsOppDL =- ({-# LINE 86 "AG2AspectAG.ag" #-}+ ({-# LINE 121 "AG2AspectAG.ag" #-} []- {-# LINE 1505 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 132, column 64)+ {-# LINE 1632 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 167, column 64) _lhsOppA =- ({-# LINE 132 "AG2AspectAG.ag" #-}+ ({-# LINE 167 "AG2AspectAG.ag" #-} empty- {-# LINE 1510 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 110, column 79)+ {-# LINE 1637 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 379, column 67)+ _lhsOppCata =+ ({-# LINE 379 "AG2AspectAG.ag" #-}+ empty+ {-# LINE 1642 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 145, column 79) _lhsOppL =- ({-# LINE 110 "AG2AspectAG.ag" #-}+ ({-# LINE 145 "AG2AspectAG.ag" #-} empty- {-# LINE 1515 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 184, column 79)+ {-# LINE 1647 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 219, column 79) _lhsOppR =- ({-# LINE 184 "AG2AspectAG.ag" #-}- empty- {-# LINE 1520 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 344, column 64)- _lhsOppS =- ({-# LINE 344 "AG2AspectAG.ag" #-}+ ({-# LINE 219 "AG2AspectAG.ag" #-} empty- {-# LINE 1525 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 368, column 41)+ {-# LINE 1652 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 400, column 66) _lhsOppSF =- ({-# LINE 368 "AG2AspectAG.ag" #-}+ ({-# LINE 400 "AG2AspectAG.ag" #-} empty- {-# LINE 1530 "AG2AspectAG.hs" #-})- in ( _lhsOppA,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppS,_lhsOppSF))) )+ {-# LINE 1657 "AG2AspectAG.hs" #-})+ in ( _lhsOppA,_lhsOppCata,_lhsOppDL,_lhsOppL,_lhsOppR,_lhsOppSF))) ) -- Rule -------------------------------------------------------- {- visit 0:@@ -1580,28 +1707,28 @@ _patternIcopy :: Pattern _patternIinfo :: ((Identifier, Identifier)) _rhsIppRE :: (Identifier -> [(Identifier,Type)] -> [Identifier] -> PP_Doc)- -- "AG2AspectAG.ag"(line 170, column 25)+ -- "AG2AspectAG.ag"(line 205, column 25) _lhsOlocals =- ({-# LINE 170 "AG2AspectAG.ag" #-}+ ({-# LINE 205 "AG2AspectAG.ag" #-} if (show (fst _patternIinfo) == "loc") then [ snd _patternIinfo ] else [ ]- {-# LINE 1590 "AG2AspectAG.hs" #-})- -- "AG2AspectAG.ag"(line 217, column 33)+ {-# LINE 1717 "AG2AspectAG.hs" #-})+ -- "AG2AspectAG.ag"(line 252, column 33) _lhsOppRL =- ({-# LINE 217 "AG2AspectAG.ag" #-}+ ({-# LINE 252 "AG2AspectAG.ag" #-} [ (_patternIinfo, defRule _lhsIppNt _patternIinfo _rhsIppRE) ]- {-# LINE 1595 "AG2AspectAG.hs" #-})+ {-# LINE 1722 "AG2AspectAG.hs" #-}) -- copy rule (down) _rhsOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1600 "AG2AspectAG.hs" #-})+ {-# LINE 1727 "AG2AspectAG.hs" #-}) -- copy rule (down) _rhsOppProd =- ({-# LINE 53 "AG2AspectAG.ag" #-}+ ({-# LINE 81 "AG2AspectAG.ag" #-} _lhsIppProd- {-# LINE 1605 "AG2AspectAG.hs" #-})+ {-# LINE 1732 "AG2AspectAG.hs" #-}) ( _patternIcopy,_patternIinfo) = pattern_ ( _rhsIppRE) =@@ -1655,36 +1782,36 @@ _hdIppRL :: ([((Identifier,Identifier),[(Identifier,Type)] -> [Identifier] -> PP_Doc)]) _tlIlocals :: ([Identifier]) _tlIppRL :: ([((Identifier,Identifier),[(Identifier,Type)] -> [Identifier] -> PP_Doc)])- -- "AG2AspectAG.ag"(line 213, column 33)+ -- "AG2AspectAG.ag"(line 248, column 33) _lhsOppRL =- ({-# LINE 213 "AG2AspectAG.ag" #-}+ ({-# LINE 248 "AG2AspectAG.ag" #-} _hdIppRL ++ _tlIppRL- {-# LINE 1663 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 166, column 30)+ {-# LINE 1790 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 201, column 30) _lhsOlocals =- ({-# LINE 166 "AG2AspectAG.ag" #-}+ ({-# LINE 201 "AG2AspectAG.ag" #-} _hdIlocals ++ _tlIlocals- {-# LINE 1668 "AG2AspectAG.hs" #-})+ {-# LINE 1795 "AG2AspectAG.hs" #-}) -- copy rule (down) _hdOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1673 "AG2AspectAG.hs" #-})+ {-# LINE 1800 "AG2AspectAG.hs" #-}) -- copy rule (down) _hdOppProd =- ({-# LINE 53 "AG2AspectAG.ag" #-}+ ({-# LINE 81 "AG2AspectAG.ag" #-} _lhsIppProd- {-# LINE 1678 "AG2AspectAG.hs" #-})+ {-# LINE 1805 "AG2AspectAG.hs" #-}) -- copy rule (down) _tlOppNt =- ({-# LINE 47 "AG2AspectAG.ag" #-}+ ({-# LINE 75 "AG2AspectAG.ag" #-} _lhsIppNt- {-# LINE 1683 "AG2AspectAG.hs" #-})+ {-# LINE 1810 "AG2AspectAG.hs" #-}) -- copy rule (down) _tlOppProd =- ({-# LINE 53 "AG2AspectAG.ag" #-}+ ({-# LINE 81 "AG2AspectAG.ag" #-} _lhsIppProd- {-# LINE 1688 "AG2AspectAG.hs" #-})+ {-# LINE 1815 "AG2AspectAG.hs" #-}) ( _hdIlocals,_hdIppRL) = hd_ _hdOppNt _hdOppProd ( _tlIlocals,_tlIppRL) =@@ -1696,16 +1823,16 @@ _lhsIppProd -> (let _lhsOppRL :: ([((Identifier,Identifier),[(Identifier,Type)] -> [Identifier] -> PP_Doc)]) _lhsOlocals :: ([Identifier])- -- "AG2AspectAG.ag"(line 214, column 33)+ -- "AG2AspectAG.ag"(line 249, column 33) _lhsOppRL =- ({-# LINE 214 "AG2AspectAG.ag" #-}+ ({-# LINE 249 "AG2AspectAG.ag" #-} []- {-# LINE 1704 "AG2AspectAG.hs" #-})- -- use rule "AG2AspectAG.ag"(line 166, column 30)+ {-# LINE 1831 "AG2AspectAG.hs" #-})+ -- use rule "AG2AspectAG.ag"(line 201, column 30) _lhsOlocals =- ({-# LINE 166 "AG2AspectAG.ag" #-}+ ({-# LINE 201 "AG2AspectAG.ag" #-} []- {-# LINE 1709 "AG2AspectAG.hs" #-})+ {-# LINE 1836 "AG2AspectAG.hs" #-}) in ( _lhsOlocals,_lhsOppRL))) ) -- TypeSig ----------------------------------------------------- {-
src-derived/GenerateCode.hs view
@@ -3169,7 +3169,7 @@ ++ if isLast_ then [] else [unwrap ++ funname c (nr_+1)] rhsVars = [ locname c ++ "_comp" | c <- cs ] fun = locname c ++ "_merge"- rhs' = App "merge" [App fun (map SimpleExpr rhsVars)]+ rhs' = App fun (map SimpleExpr rhsVars) in [Resume _lhsIo_monadic (typeName nt_ nr_) tuple' rhs'] in (outDecls ++ outMerged)@@ -3685,7 +3685,7 @@ _tp = ({-# LINE 708 "GenerateCode.ag" #-} if _altSemForm- then TypeApp (SimpleType "Closure") [SimpleType "EvalInfo", _indexExpr ]+ then TypeApp (SimpleType "Child") [SimpleType "EvalInfo", _indexExpr ] else foldr Arr _synTps _inhTps {-# LINE 3691 "GenerateCode.hs" #-}) -- "GenerateCode.ag"(line 711, column 15)
src-derived/PrintCode.hs view
@@ -1209,7 +1209,7 @@ { !_leftOisDeclOfLet -> (case (({-# LINE 129 "PrintCode.ag" #-} if breadthFirstStrict _lhsIoptions- then "strictEval"+ then "stepwiseEval" else "lazyEval" {-# LINE 1215 "PrintCode.hs" #-})) of { !_strat ->@@ -2033,7 +2033,7 @@ { ( !_bodyIpp) -> (case (({-# LINE 205 "PrintCode.ag" #-} if breadthFirst _lhsIoptions- then "Closure" >#< pp_parens ( "\\" >|<+ then "Child" >#< pp_parens ( "\\" >|< pp_parens (nt_ >|< "_Inh" >#< ppTuple False (map _addBang _argsIpps)) >#< "->" >-< indent 2 (_strictParams `ppMultiSeqV` _bodyIpp))
src/Ag.hs view
@@ -83,7 +83,7 @@ dump2 = GrammarDump.wrap_Grammar (GrammarDump.sem_Grammar grammar2 ) GrammarDump.Inh_Grammar dump3 = CGrammarDump.wrap_CGrammar (CGrammarDump.sem_CGrammar grammar3 ) CGrammarDump.Inh_CGrammar - aspectAG = AspectAGDump.wrap_Grammar (AspectAGDump.sem_Grammar grammar2 ) AspectAGDump.Inh_Grammar --marcos+ aspectAG = AspectAGDump.wrap_Grammar (AspectAGDump.sem_Grammar grammar2 ) AspectAGDump.Inh_Grammar {AspectAGDump.options_Inh_Grammar = flags'} --marcos outputVisage = VisageDump.wrap_VisageGrammar (VisageDump.sem_VisageGrammar grammarV) VisageDump.Inh_VisageGrammar aterm = VisageDump.aterm_Syn_VisageGrammar outputVisage
src/Scanner.hs view
@@ -50,7 +50,8 @@ scan :: Lexer Token scan p [] = Nothing - scan p ('-':'-':xs) = let (com,rest) = span (/= '\n') xs + scan p ('-':'-':xs) | null xs || not (head xs `elem` "<>!?#@:%$^&") + = let (com,rest) = span (/= '\n') xs in advc' (2+length com) p scan rest scan p ('{':'-':xs) = advc' 2 p (ncomment scan) xs scan p ('{' :xs) = advc' 1 p codescrap xs
src/Version.hs view
@@ -1,4 +1,4 @@ module Version where banner :: String -banner = "Attribute Grammar compiler / HUT project. Version 0.9.33" +banner = "Attribute Grammar compiler / HUT project. Version 0.9.34"
uuagc.cabal view
@@ -1,7 +1,7 @@ cabal-version: >=1.2 build-type: Simple name: uuagc-version: 0.9.33+version: 0.9.34 license: GPL license-file: LICENSE maintainer: Arie Middelkoop <ariem@cs.uu.nl>
uuagc.cabal-for-ghc-6.6 view
@@ -1,5 +1,5 @@ name: uuagc-version: 0.9.33+version: 0.9.34 license: GPL license-file: LICENSE maintainer: Arie Middelkoop <ariem@cs.uu.nl>