packages feed

uuagc 0.9.33 → 0.9.34

raw patch · 8 files changed

+529/−401 lines, 8 files

Files

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>