uuagc 0.9.17 → 0.9.18
raw patch · 7 files changed
+529/−480 lines, 7 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- src-derived/Code.hs +4/−0
- src-derived/GenerateCode.hs +234/−225
- src-derived/PrintCode.hs +26/−0
- src-derived/Transform.hs +262/−252
- src/Version.hs +1/−1
- uuagc.cabal +1/−1
- uuagc.cabal-for-ghc-6.6 +1/−1
src-derived/Code.hs view
@@ -207,12 +207,16 @@ child comps : {[String]} alternative UnboxedTupleLhs: child comps : {[String]}+ alternative Unwrap:+ child name : {String}+ child sub : Lhs -} data Lhs = Fun (String) (Exprs) | Pattern3 (Pattern) | Pattern3SM (Pattern) | TupleLhs ([String]) | UnboxedTupleLhs ([String]) + | Unwrap (String) (Lhs) -- Program ----------------------------------------------------- {- alternatives:
src-derived/GenerateCode.hs view
@@ -53,6 +53,14 @@ = maybe tp (\ctx -> CtxApp (map (\(n,ns) -> (getName n, ns)) ctx) tp) $ Map.lookup nt mp +unwrapSem :: Bool -> NontermIdent -> Expr -> Expr+unwrapSem False _ e = e+unwrapSem True nm e = Case e alts+ where alts = [CaseAlt left right]+ left = Fun (typeName nm 0) [SimpleExpr "x"]+ right = SimpleExpr "x"++ substSelf nt tp = case tp of NT t tps | t == _SELF -> Haskell (getName nt ++ " " ++ unwords tps) _ -> tp@@ -328,29 +336,29 @@ -- "GenerateCode.ag"(line 124, column 7) _nontsOallNts = _nontsIgathNts- -- "GenerateCode.ag"(line 621, column 7)+ -- "GenerateCode.ag"(line 631, column 7) _unfoldSemDom = \nt nr repl -> let (params, tp) = Map.findWithDefault (error ("No such semantic domain: " ++ show nt)) (nt, nr) _nontsIsemDomUnfoldGath replMap = Map.fromList (zip params repl) replace k = Map.findWithDefault ('@':k) k replMap in evalType replace tp- -- "GenerateCode.ag"(line 714, column 14)+ -- "GenerateCode.ag"(line 724, column 14) _nontsOwith_sig = typeSigs _lhsIoptions && _nontsIallTpsFound- -- "GenerateCode.ag"(line 721, column 15)+ -- "GenerateCode.ag"(line 731, column 15) _nontsOerrors = Seq.empty- -- "GenerateCode.ag"(line 785, column 17)+ -- "GenerateCode.ag"(line 795, column 17) _lhsOoutput = Program _nontsIchunks- -- "GenerateCode.ag"(line 838, column 14)+ -- "GenerateCode.ag"(line 848, column 14) _nontsOtypeSyns = typeSyns_- -- "GenerateCode.ag"(line 838, column 14)+ -- "GenerateCode.ag"(line 848, column 14) _nontsOderivings = derivings_- -- "GenerateCode.ag"(line 838, column 14)+ -- "GenerateCode.ag"(line 848, column 14) _nontsOwrappers = wrappers_ -- copy rule (up)@@ -480,19 +488,19 @@ _segIsemDom :: ([Decl]) _segIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _segIwrapDecls :: Decls- -- "GenerateCode.ag"(line 218, column 17)+ -- "GenerateCode.ag"(line 228, column 17) _segOnr = 0- -- "GenerateCode.ag"(line 594, column 18)+ -- "GenerateCode.ag"(line 604, column 18) _lhsOsemDom = Comment "semantic domain" : _segIsemDom- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = _segIcomments- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = _segIsemDomUnfoldGath- -- use rule "GenerateCode.ag"(line 687, column 52)+ -- use rule "GenerateCode.ag"(line 697, column 52) _lhsOwrapDecls = _segIwrapDecls -- copy rule (down)@@ -769,7 +777,7 @@ -- "GenerateCode.ag"(line 130, column 7) _lhsOgathNts = Set.singleton nt_- -- "GenerateCode.ag"(line 659, column 18)+ -- "GenerateCode.ag"(line 669, column 18) _semWrapper = let params' = map getName params_ inhAttrs = Map.toList inh_@@ -797,10 +805,10 @@ (Let _interIwrapDecls (App synNT synVars)) Set.empty Set.empty ]- -- "GenerateCode.ag"(line 734, column 18)+ -- "GenerateCode.ag"(line 744, column 18) _comment = Comment . unlines . map ind $ ( _interIcomments ++ ("alternatives:" : map ind _prodsIcomments) )- -- "GenerateCode.ag"(line 788, column 19)+ -- "GenerateCode.ag"(line 798, column 19) _lhsOchunks = [ Chunk (getName nt_) (Comment (getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-'))@@ -812,7 +820,7 @@ (if _lhsIo_sem then _prodsIdecls else []) (if _lhsIo_sem then _prodsIsemNames else []) ]- -- "GenerateCode.ag"(line 843, column 18)+ -- "GenerateCode.ag"(line 853, column 18) _dataDef = let params' = map getName params_ typeSyn tp = let theType =@@ -831,7 +839,7 @@ derivings = maybe [] (map getName . Set.toList) (Map.lookup nt_ _lhsIderivings) dataDef = Data (getName nt_) (map getName params_) _prodsIdataAlts (maybe False id _lhsIo_data) derivings in maybe dataDef typeSyn $ lookup nt_ _lhsItypeSyns- -- "GenerateCode.ag"(line 877, column 18)+ -- "GenerateCode.ag"(line 887, column 18) _cataFun = let appParams nm = TypeApp (SimpleType nm) (map SimpleType (map getName params_)) evalTp | null params_ = id@@ -914,13 +922,13 @@ in Comment "cata" : (if _lhsIo_sig then [tSig] else []) ++ maybe _prodsIcataAlts special (lookup nt_ _lhsItypeSyns)- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = _prodsIallTpsFound- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _prodsIerrors- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = _interIsemDomUnfoldGath -- copy rule (down)@@ -1218,19 +1226,19 @@ _tlIerrors :: (Seq Error) _tlIgathNts :: (Set NontermIdent) _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = _hdIallTpsFound && _tlIallTpsFound- -- use rule "GenerateCode.ag"(line 780, column 49)+ -- use rule "GenerateCode.ag"(line 790, column 49) _lhsOchunks = _hdIchunks ++ _tlIchunks- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors -- use rule "GenerateCode.ag"(line 126, column 47) _lhsOgathNts = _hdIgathNts `Set.union` _tlIgathNts- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath -- copy rule (down)@@ -1420,19 +1428,19 @@ _lhsOerrors :: (Seq Error) _lhsOgathNts :: (Set NontermIdent) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = True- -- use rule "GenerateCode.ag"(line 780, column 49)+ -- use rule "GenerateCode.ag"(line 790, column 49) _lhsOchunks = []- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = Seq.empty -- use rule "GenerateCode.ag"(line 126, column 47) _lhsOgathNts = Set.empty- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = Map.empty in ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath))) )@@ -1612,31 +1620,31 @@ -- "GenerateCode.ag"(line 98, column 7) _paramInstMap = Map.fromList [(nm, (extractNonterminal tp, tps)) | (nm,tp,_) <- children_, let tps = map cleanupArg $ nontermArgs tp, not (null tps) ]- -- "GenerateCode.ag"(line 214, column 18)+ -- "GenerateCode.ag"(line 224, column 18) _visitsOnr = 0- -- "GenerateCode.ag"(line 340, column 18)+ -- "GenerateCode.ag"(line 350, column 18) _visitsOchildren = children_- -- "GenerateCode.ag"(line 450, column 7)+ -- "GenerateCode.ag"(line 460, column 7) _visitsOinstVisitNrs = _visitsIgatherInstVisitNrs- -- "GenerateCode.ag"(line 749, column 17)+ -- "GenerateCode.ag"(line 759, column 17) _firstOrderChildren = filter (\(_,_,ho) -> not ho) children_- -- "GenerateCode.ag"(line 750, column 18)+ -- "GenerateCode.ag"(line 760, column 18) _lhsOcomments = ("alternative " ++ getName con_ ++ ":") : map ind ( map (\(x,y,_) -> makeLocalComment 14 "child" x (Just y)) _firstOrderChildren ++ _visitsIcomments )- -- "GenerateCode.ag"(line 869, column 17)+ -- "GenerateCode.ag"(line 879, column 17) _params = map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap- -- "GenerateCode.ag"(line 870, column 17)+ -- "GenerateCode.ag"(line 880, column 17) _lhsOdataAlt = DataAlt (conname _lhsIo_rename _lhsInt con_) (map (\(_,t,_) -> typeToHaskellString (Just _lhsInt) _params t) _firstOrderChildren )- -- "GenerateCode.ag"(line 969, column 17)+ -- "GenerateCode.ag"(line 979, column 17) _lhsOcataAlt = let lhs = Fun (cataname _lhsIprefix _lhsInt) [lhs_pat] lhs_pat = App (conname _lhsIo_rename _lhsInt con_)@@ -1648,16 +1656,16 @@ [SimpleExpr (locname nm)] argument (nm, _,_) = SimpleExpr (locname nm) in Decl lhs rhs Set.empty Set.empty- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = _visitsIallTpsFound- -- use rule "GenerateCode.ag"(line 781, column 44)+ -- use rule "GenerateCode.ag"(line 791, column 44) _lhsOdecls = _visitsIdecls- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _visitsIerrors- -- use rule "GenerateCode.ag"(line 985, column 61)+ -- use rule "GenerateCode.ag"(line 995, column 61) _lhsOsemNames = _visitsIsemNames -- copy rule (down)@@ -1925,25 +1933,25 @@ _tlIdecls :: Decls _tlIerrors :: (Seq Error) _tlIsemNames :: ([String])- -- "GenerateCode.ag"(line 865, column 17)+ -- "GenerateCode.ag"(line 875, column 17) _lhsOdataAlts = _hdIdataAlt : _tlIdataAlts- -- "GenerateCode.ag"(line 965, column 10)+ -- "GenerateCode.ag"(line 975, column 10) _lhsOcataAlts = _hdIcataAlt : _tlIcataAlts- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = _hdIallTpsFound && _tlIallTpsFound- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = _hdIcomments ++ _tlIcomments- -- use rule "GenerateCode.ag"(line 781, column 44)+ -- use rule "GenerateCode.ag"(line 791, column 44) _lhsOdecls = _hdIdecls ++ _tlIdecls- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors- -- use rule "GenerateCode.ag"(line 985, column 61)+ -- use rule "GenerateCode.ag"(line 995, column 61) _lhsOsemNames = _hdIsemNames ++ _tlIsemNames -- copy rule (down)@@ -2135,25 +2143,25 @@ _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOsemNames :: ([String])- -- "GenerateCode.ag"(line 866, column 17)+ -- "GenerateCode.ag"(line 876, column 17) _lhsOdataAlts = []- -- "GenerateCode.ag"(line 966, column 10)+ -- "GenerateCode.ag"(line 976, column 10) _lhsOcataAlts = []- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = True- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = []- -- use rule "GenerateCode.ag"(line 781, column 44)+ -- use rule "GenerateCode.ag"(line 791, column 44) _lhsOdecls = []- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = Seq.empty- -- use rule "GenerateCode.ag"(line 985, column 61)+ -- use rule "GenerateCode.ag"(line 995, column 61) _lhsOsemNames = [] in ( _lhsOallTpsFound,_lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOerrors,_lhsOsemNames))) )@@ -2357,15 +2365,15 @@ _lhsOdecls :: Decls _lhsOdefinedInsts :: ([Identifier]) _lhsOerrors :: (Seq Error)- -- "GenerateCode.ag"(line 181, column 18)+ -- "GenerateCode.ag"(line 182, column 18) _costCentreDescr = show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show name_ ++ ":" ++ show nt_ ++ ":" ++ show nr_- -- "GenerateCode.ag"(line 182, column 18)+ -- "GenerateCode.ag"(line 183, column 18) _addCostCentre = \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v- -- "GenerateCode.ag"(line 185, column 18)+ -- "GenerateCode.ag"(line 186, column 18) _decls = let lhsVars = map (attrname True name_) (Map.keys syn_) ++ if isLast_ then [] else [unwrap ++ funname name_ (nr_+1)]@@ -2374,74 +2382,74 @@ tuple = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars rhs = _addCostCentre $ App (funname name_ nr_) (map SimpleExpr rhsVars) in [Decl tuple rhs (Set.fromList lhsVars) (Set.fromList (funname name_ nr_ : rhsVars))]- -- "GenerateCode.ag"(line 261, column 7)+ -- "GenerateCode.ag"(line 271, column 7) _isSuperfluousHigherOrderIntra = _lhsInr <= Map.findWithDefault (-1) name_ _lhsIinstVisitNrs- -- "GenerateCode.ag"(line 275, column 8)+ -- "GenerateCode.ag"(line 285, column 8) _names = if _isSuperfluousHigherOrderIntra then [] else [funname name_ (nr_+1)]- -- "GenerateCode.ag"(line 279, column 8)+ -- "GenerateCode.ag"(line 289, column 8) _lhsOexprs = let wrap = if _lhsIo_newtypes then \x -> App (typeName nt_ (nr_ + 1)) [x] else id addType expr | null _instParams = expr | otherwise = TypedExpr expr (_lhsIunfoldSemDom nt_ (nr_+1) _instParams ) in map (wrap . addType . SimpleExpr) _names- -- "GenerateCode.ag"(line 291, column 7)+ -- "GenerateCode.ag"(line 301, column 7) _lhsOusedVars = Set.fromList _names- -- "GenerateCode.ag"(line 315, column 19)+ -- "GenerateCode.ag"(line 325, column 19) _mkTp = _evalTp . SimpleType . typeToHaskellString (Just nt_) _orgParams- -- "GenerateCode.ag"(line 316, column 19)+ -- "GenerateCode.ag"(line 326, column 19) _definedTps = [ TSig (attrname True name_ a) (_mkTp tp) | (a,tp) <- Map.toList syn_ ]- -- "GenerateCode.ag"(line 317, column 19)+ -- "GenerateCode.ag"(line 327, column 19) _nextTp = typeName nt_ (nr_+1)- -- "GenerateCode.ag"(line 318, column 19)+ -- "GenerateCode.ag"(line 328, column 19) _lhsOtSigs = (if isLast_ then id else (TSig (funname name_ (nr_+1)) (TypeApp (SimpleType _nextTp) (map SimpleType _instParams )) :)) _definedTps- -- "GenerateCode.ag"(line 320, column 19)+ -- "GenerateCode.ag"(line 330, column 19) _orgParams = map getName $ Map.findWithDefault [] nt_ _lhsIparamMap- -- "GenerateCode.ag"(line 321, column 19)+ -- "GenerateCode.ag"(line 331, column 19) _instParams = snd $ Map.findWithDefault (nt_,[]) name_ _lhsIparamInstMap- -- "GenerateCode.ag"(line 322, column 19)+ -- "GenerateCode.ag"(line 332, column 19) _replParamMap = Map.fromList (zip _orgParams _instParams )- -- "GenerateCode.ag"(line 323, column 19)+ -- "GenerateCode.ag"(line 333, column 19) _replace = \k -> Map.findWithDefault k k _replParamMap- -- "GenerateCode.ag"(line 324, column 19)+ -- "GenerateCode.ag"(line 334, column 19) _evalTp = if null _orgParams then id else evalType _replace- -- "GenerateCode.ag"(line 347, column 19)+ -- "GenerateCode.ag"(line 357, column 19) _lhsOtps = if _isSuperfluousHigherOrderIntra then [] else [NT (ntOfVisit nt_ (nr_+1)) _instParams ]- -- "GenerateCode.ag"(line 472, column 7)+ -- "GenerateCode.ag"(line 482, column 7) _lhsOdeclsAbove = []- -- "GenerateCode.ag"(line 485, column 7)+ -- "GenerateCode.ag"(line 495, column 7) _lhsObldBlocksFun = DeclBlock _lhsIdeclsAbove (head _decls )- -- use rule "GenerateCode.ag"(line 344, column 39)+ -- use rule "GenerateCode.ag"(line 354, column 39) _lhsOallTpsFound = True- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = [] -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = _decls- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = []- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = Seq.empty in ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars))) )@@ -2519,7 +2527,8 @@ _instDecls = [ Decl (Pattern3 (Alias _INST' inst (Underscore (getPos inst)) [])) ( let nm = fromJust $ inst `lookup` _instTypes- in case nm `Set.member` _lhsIallNts of+ in unwrapSem _lhsIo_newtypes (maybe nm id (deforestedNt nm))+ $ case nm `Set.member` _lhsIallNts of True -> App (cataname _lhsIprefix nm) [SimpleExpr instLocFieldName] False -> SimpleExpr instLocFieldName@@ -2529,28 +2538,28 @@ | inst <- _definedInsts , let instLocFieldName = attrname True _INST inst , let instSemFieldName = attrname False _INST' inst ]- -- "GenerateCode.ag"(line 156, column 12)+ -- "GenerateCode.ag"(line 157, column 12) _patDescr = if isIn_ then "_" else concat $ intersperse "," (map (\(f,a) -> show f ++ "." ++ show a) _patternIpatternAttributes)- -- "GenerateCode.ag"(line 159, column 12)+ -- "GenerateCode.ag"(line 160, column 12) _traceDescr = show nt_ ++ " :: " ++ show con_ ++ " :: " ++ _patDescr- -- "GenerateCode.ag"(line 161, column 12)+ -- "GenerateCode.ag"(line 162, column 12) _addTrace = \v -> if _lhsIo_traces then Trace _traceDescr v else v- -- "GenerateCode.ag"(line 164, column 12)+ -- "GenerateCode.ag"(line 165, column 12) _costCentreDescr = show nt_ ++ ":" ++ show con_ ++ ":" ++ _patDescr- -- "GenerateCode.ag"(line 165, column 12)+ -- "GenerateCode.ag"(line 166, column 12) _addCostCentre = \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v- -- "GenerateCode.ag"(line 168, column 12)+ -- "GenerateCode.ag"(line 169, column 12) _addLinePragma = \v -> let p = getPos name_ hasPos = line p > 0 && column p >= 0 && not (null (file p))@@ -2559,7 +2568,7 @@ $ LineExpr $ v else v- -- "GenerateCode.ag"(line 175, column 12)+ -- "GenerateCode.ag"(line 176, column 12) _decls = if hasCode_ then _originComment ( Decl (Pattern3 _patternIcopy) (_addTrace $ _addCostCentre $ _addLinePragma $ (TextExpr rhs_))@@ -2567,31 +2576,31 @@ (Set.fromList [attrname True fld nm | (fld,nm) <- Set.toList uses_]) : _instDecls ) else _instDecls- -- "GenerateCode.ag"(line 200, column 12)+ -- "GenerateCode.ag"(line 210, column 12) _definedInsts = if isIn_ then [] else _patternIdefinedInsts- -- "GenerateCode.ag"(line 270, column 12)+ -- "GenerateCode.ag"(line 280, column 12) _rulename = if field_ == _LOC && name_ `elem` _lhsIterminals then funname name_ 0 else attrname isIn_ field_ name_- -- "GenerateCode.ag"(line 273, column 12)+ -- "GenerateCode.ag"(line 283, column 12) _lhsOexprs = [SimpleExpr _rulename ]- -- "GenerateCode.ag"(line 289, column 7)+ -- "GenerateCode.ag"(line 299, column 7) _lhsOusedVars = Set.singleton _rulename- -- "GenerateCode.ag"(line 299, column 19)+ -- "GenerateCode.ag"(line 309, column 19) _mkTp = SimpleType . typeToHaskellString (Just _lhsInt) _orgParams- -- "GenerateCode.ag"(line 300, column 19)+ -- "GenerateCode.ag"(line 310, column 19) _lhsOtSigs = [ TSig (attrname False field attr) (_evalTp field $ _mkTp (fromJust tp)) | (field,attr,tp) <- Map.elems defines_, isJust tp ]- -- "GenerateCode.ag"(line 303, column 19)+ -- "GenerateCode.ag"(line 313, column 19) _orgParams = map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap- -- "GenerateCode.ag"(line 304, column 19)+ -- "GenerateCode.ag"(line 314, column 19) _evalTp = \field tp -> let orgFldParams = map getName $ Map.findWithDefault [] childNt _lhsIparamMap (childNt,instParams) = Map.findWithDefault (_lhsInt,[]) field _lhsIparamInstMap@@ -2602,34 +2611,34 @@ then tp else idEvalType tp else evalType replace tp- -- "GenerateCode.ag"(line 346, column 23)+ -- "GenerateCode.ag"(line 356, column 23) __tup3 = maybe ([],False) (\tp -> ([substSelf (fromJust childnt_) tp],True)) tp_- -- "GenerateCode.ag"(line 346, column 23)+ -- "GenerateCode.ag"(line 356, column 23) (_lhsOtps,_) = __tup3- -- "GenerateCode.ag"(line 346, column 23)+ -- "GenerateCode.ag"(line 356, column 23) (_,_lhsOallTpsFound) = __tup3- -- "GenerateCode.ag"(line 470, column 7)+ -- "GenerateCode.ag"(line 480, column 7) _lhsOdeclsAbove = _lhsIdeclsAbove ++ _decls- -- "GenerateCode.ag"(line 483, column 7)+ -- "GenerateCode.ag"(line 493, column 7) _lhsObldBlocksFun = id- -- "GenerateCode.ag"(line 725, column 12)+ -- "GenerateCode.ag"(line 735, column 12) _lhsOerrors = let nameOf (Alias _ _ _ pats@(_:_)) = Ident (show (map (\(Alias _ a _ _)->a) pats)) (getPos name_) nameOf _ = name_ in maybe (Seq.singleton (MissingTypeSig _lhsInt _lhsIcon (nameOf _patternIcopy))) (const Seq.empty) tp_- -- "GenerateCode.ag"(line 765, column 18)+ -- "GenerateCode.ag"(line 775, column 18) _lhsOcomments = [ makeLocalComment 11 _lhsIwhat name tp | (field,name,tp) <- Map.elems defines_, field == _LOC ] ++ [ makeLocalComment 11 "inst " name tp | (field,name,tp) <- Map.elems defines_, field == _INST ] -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = _decls- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _definedInsts ( _patternIcopy,_patternIdefinedInsts,_patternIpatternAttributes) =@@ -2742,24 +2751,24 @@ _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls _lhsOcomments :: ([String])- -- "GenerateCode.ag"(line 597, column 15)+ -- "GenerateCode.ag"(line 607, column 15) _tp = foldr Arr _synTps _inhTps- -- "GenerateCode.ag"(line 598, column 15)+ -- "GenerateCode.ag"(line 608, column 15) _inhTps = [SimpleType (typeToHaskellString (Just _lhsInt) _params tp) | tp <- Map.elems inh_]- -- "GenerateCode.ag"(line 599, column 15)+ -- "GenerateCode.ag"(line 609, column 15) _synTps = mkTupleType _lhsIo_unbox (null _inhTps ) ([SimpleType (typeToHaskellString (Just _lhsInt) _params tp) | tp <- Map.elems syn_] ++ _continuation )- -- "GenerateCode.ag"(line 600, column 15)+ -- "GenerateCode.ag"(line 610, column 15) _continuation = if _lhsIisLast then [] else [TypeApp (SimpleType (typeName _lhsInt (_lhsInr + 1))) (map (SimpleType . ('@':)) _params )]- -- "GenerateCode.ag"(line 603, column 15)+ -- "GenerateCode.ag"(line 613, column 15) _params = map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap- -- "GenerateCode.ag"(line 604, column 15)+ -- "GenerateCode.ag"(line 614, column 15) _lhsOsemDom = let name = typeName _lhsInt _lhsInr evalTp | null _params = id@@ -2767,10 +2776,10 @@ in if _lhsIo_newtypes then [ Code.NewType name _params name (evalTp _tp ) ] else [ Code.Type name _params (evalTp _tp ) ]- -- "GenerateCode.ag"(line 615, column 7)+ -- "GenerateCode.ag"(line 625, column 7) _lhsOsemDomUnfoldGath = Map.singleton (_lhsInt, _lhsInr) (_params , _tp )- -- "GenerateCode.ag"(line 689, column 15)+ -- "GenerateCode.ag"(line 699, column 15) _lhsOwrapDecls = let lhsVars = map (lhsname False) (Map.keys syn_) ++ if _lhsIisLast then [] else [unwrap ++ sem (_lhsInr+1)]@@ -2781,7 +2790,7 @@ sem 0 = var sem n = var ++ "_" ++ show n in [ Decl (mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars) (App (sem _lhsInr) rhs) (Set.fromList lhsVars) (Set.fromList rhsVars) ]- -- "GenerateCode.ag"(line 743, column 18)+ -- "GenerateCode.ag"(line 753, column 18) _lhsOcomments = let body = map ind (showsSegment (CSegment inh_ syn_)) in if null body@@ -2939,25 +2948,25 @@ _tlIsemDom :: ([Decl]) _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _tlIwrapDecls :: Decls- -- "GenerateCode.ag"(line 220, column 11)+ -- "GenerateCode.ag"(line 230, column 11) _tlOnr = _lhsInr + 1- -- "GenerateCode.ag"(line 233, column 12)+ -- "GenerateCode.ag"(line 243, column 12) _lhsOisNil = False- -- "GenerateCode.ag"(line 234, column 12)+ -- "GenerateCode.ag"(line 244, column 12) _hdOisLast = _tlIisNil- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = _hdIcomments ++ _tlIcomments- -- use rule "GenerateCode.ag"(line 592, column 50)+ -- use rule "GenerateCode.ag"(line 602, column 50) _lhsOsemDom = _hdIsemDom ++ _tlIsemDom- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath- -- use rule "GenerateCode.ag"(line 687, column 52)+ -- use rule "GenerateCode.ag"(line 697, column 52) _lhsOwrapDecls = _hdIwrapDecls ++ _tlIwrapDecls -- copy rule (down)@@ -3109,19 +3118,19 @@ _lhsOsemDom :: ([Decl]) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls- -- "GenerateCode.ag"(line 235, column 10)+ -- "GenerateCode.ag"(line 245, column 10) _lhsOisNil = True- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = []- -- use rule "GenerateCode.ag"(line 592, column 50)+ -- use rule "GenerateCode.ag"(line 602, column 50) _lhsOsemDom = []- -- use rule "GenerateCode.ag"(line 611, column 86)+ -- use rule "GenerateCode.ag"(line 621, column 86) _lhsOsemDomUnfoldGath = Map.empty- -- use rule "GenerateCode.ag"(line 687, column 52)+ -- use rule "GenerateCode.ag"(line 697, column 52) _lhsOwrapDecls = [] in ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))) )@@ -3386,28 +3395,28 @@ _intraItSigs :: ([Decl]) _intraItps :: ([Type]) _intraIusedVars :: (Set String)- -- "GenerateCode.ag"(line 244, column 13)+ -- "GenerateCode.ag"(line 254, column 13) _lhsOintra = _intraIexprs- -- "GenerateCode.ag"(line 245, column 13)+ -- "GenerateCode.ag"(line 255, column 13) _lhsOintraVars = _intraIusedVars- -- "GenerateCode.ag"(line 357, column 13)+ -- "GenerateCode.ag"(line 367, column 13) __tup4 = partition (\(_,_,ho) -> ho) _lhsIchildren- -- "GenerateCode.ag"(line 357, column 13)+ -- "GenerateCode.ag"(line 367, column 13) (_higherOrderChildren,_) = __tup4- -- "GenerateCode.ag"(line 357, column 13)+ -- "GenerateCode.ag"(line 367, column 13) (_,_firstOrderChildren) = __tup4- -- "GenerateCode.ag"(line 358, column 13)+ -- "GenerateCode.ag"(line 368, column 13) _funcname = seqSemname _lhsIprefix _lhsInt _lhsIcon _lhsInr- -- "GenerateCode.ag"(line 359, column 13)+ -- "GenerateCode.ag"(line 369, column 13) _nextVisitName = if _lhsIisLast then [] else [visitname _lhsIprefix _lhsInt (_lhsInr+1)]- -- "GenerateCode.ag"(line 360, column 13)+ -- "GenerateCode.ag"(line 370, column 13) _nextVisitDecl = let lhs = TupleLhs _nextVisitName rhs = App fun _lhsInextIntra@@ -3415,39 +3424,39 @@ in if _lhsIisLast then [] else [Decl lhs rhs (Set.fromList _nextVisitName) _lhsInextIntraVars]- -- "GenerateCode.ag"(line 366, column 13)+ -- "GenerateCode.ag"(line 376, column 13) _decls = _typeSigs ++ _vssIdecls ++ _nextVisitDecl- -- "GenerateCode.ag"(line 367, column 13)+ -- "GenerateCode.ag"(line 377, column 13) _vssOlastExpr = mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_) $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName- -- "GenerateCode.ag"(line 368, column 13)+ -- "GenerateCode.ag"(line 378, column 13) _intraOlastExpr = error "lastExpr: not used here"- -- "GenerateCode.ag"(line 369, column 13)+ -- "GenerateCode.ag"(line 379, column 13) _lastExprVars = map (lhsname False) (Map.keys syn_) ++ _nextVisitName- -- "GenerateCode.ag"(line 370, column 13)+ -- "GenerateCode.ag"(line 380, column 13) __tup5 = mkPartitionedFunction _funcname _o_case _nextVisitDecl _lastExprVars _vssIblockDecls- -- "GenerateCode.ag"(line 370, column 13)+ -- "GenerateCode.ag"(line 380, column 13) (_blockFunDecls,_) = __tup5- -- "GenerateCode.ag"(line 370, column 13)+ -- "GenerateCode.ag"(line 380, column 13) (_,_blockFirstFunCall) = __tup5- -- "GenerateCode.ag"(line 372, column 13)+ -- "GenerateCode.ag"(line 382, column 13) _costCentreDescr = "b" ++ ":" ++ show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show _lhsInr- -- "GenerateCode.ag"(line 373, column 13)+ -- "GenerateCode.ag"(line 383, column 13) _addCostCentre = \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v- -- "GenerateCode.ag"(line 377, column 13)+ -- "GenerateCode.ag"(line 387, column 13) _params = map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap- -- "GenerateCode.ag"(line 378, column 13)+ -- "GenerateCode.ag"(line 388, column 13) _semFun = let lhs = Fun _funcname lhs_args lhs_args = if _lhsInr == 0 then map field _firstOrderChildren else _intraIexprs@@ -3474,10 +3483,10 @@ then \x -> App (typeName _lhsInt _lhsInr) [x] else id in Decl lhs rhs Set.empty Set.empty- -- "GenerateCode.ag"(line 408, column 13)+ -- "GenerateCode.ag"(line 418, column 13) _tsig = TSig _funcname _semType- -- "GenerateCode.ag"(line 409, column 13)+ -- "GenerateCode.ag"(line 419, column 13) _semType = let argType (NT tp tps) r | tp /= _SELF = typeAppStrs (sdtype tp) tps `Arr` r | tp == _SELF = error "GenerateCode: found an intra-type with type SELF, which should have been prevented by CRule.tps"@@ -3488,7 +3497,7 @@ if _lhsInr == 0 then foldr argType (typeAppStrs (sdtype _lhsInt ) _params ) (map (\(_,t,_) -> t) _firstOrderChildren ) else foldr argType (typeAppStrs (typeName _lhsInt _lhsInr) _params ) _intraItps- -- "GenerateCode.ag"(line 420, column 13)+ -- "GenerateCode.ag"(line 430, column 13) _lhsOdecls = ( if _lhsIwith_sig then [_tsig, _semFun]@@ -3498,45 +3507,45 @@ then _blockFunDecls else [] )- -- "GenerateCode.ag"(line 428, column 13)+ -- "GenerateCode.ag"(line 438, column 13) _typeSigs = if _lhsIo_sig && not _o_case then _vssItSigs else []- -- "GenerateCode.ag"(line 431, column 13)+ -- "GenerateCode.ag"(line 441, column 13) _o_case = _lhsIo_case && ordered_ && not (hasPragma _lhsIallPragmas _lhsInt _lhsIcon _NOCASE)- -- "GenerateCode.ag"(line 432, column 13)+ -- "GenerateCode.ag"(line 442, column 13) _o_splitsems = ordered_ && _lhsIo_splitsems- -- "GenerateCode.ag"(line 454, column 7)+ -- "GenerateCode.ag"(line 464, column 7) _lhsOgatherInstVisitNrs = Map.fromList [(i,_lhsInr) | i <- _vssIdefinedInsts]- -- "GenerateCode.ag"(line 465, column 7)+ -- "GenerateCode.ag"(line 475, column 7) _vssOdeclsAbove = []- -- "GenerateCode.ag"(line 466, column 7)+ -- "GenerateCode.ag"(line 476, column 7) _intraOdeclsAbove = error "declsAbove: not used here"- -- "GenerateCode.ag"(line 712, column 13)+ -- "GenerateCode.ag"(line 722, column 13) _lhsOallTpsFound = _intraIallTpsFound- -- "GenerateCode.ag"(line 723, column 13)+ -- "GenerateCode.ag"(line 733, column 13) _lhsOerrors = _intraIerrors- -- "GenerateCode.ag"(line 756, column 18)+ -- "GenerateCode.ag"(line 766, column 18) _lhsOcomments = let body = map ind (_vssIcomments ++ _intraIcomments) in if null body then [] else ("visit " ++ show _lhsInr ++ ":") : body- -- "GenerateCode.ag"(line 760, column 18)+ -- "GenerateCode.ag"(line 770, column 18) _vssOwhat = "local"- -- "GenerateCode.ag"(line 761, column 18)+ -- "GenerateCode.ag"(line 771, column 18) _intraOwhat = "intra"- -- "GenerateCode.ag"(line 995, column 7)+ -- "GenerateCode.ag"(line 1005, column 7) _lhsOsemNames = [_funcname ] -- copy rule (down)@@ -3942,43 +3951,43 @@ _tlIintraVars :: (Set String) _tlIisNil :: Bool _tlIsemNames :: ([String])- -- "GenerateCode.ag"(line 216, column 11)+ -- "GenerateCode.ag"(line 226, column 11) _tlOnr = _lhsInr + 1- -- "GenerateCode.ag"(line 229, column 12)+ -- "GenerateCode.ag"(line 239, column 12) _lhsOisNil = False- -- "GenerateCode.ag"(line 230, column 12)+ -- "GenerateCode.ag"(line 240, column 12) _hdOisLast = _tlIisNil- -- "GenerateCode.ag"(line 247, column 12)+ -- "GenerateCode.ag"(line 257, column 12) _hdOnextIntra = _tlIintra- -- "GenerateCode.ag"(line 248, column 12)+ -- "GenerateCode.ag"(line 258, column 12) _hdOnextIntraVars = _tlIintraVars- -- "GenerateCode.ag"(line 249, column 12)+ -- "GenerateCode.ag"(line 259, column 12) _lhsOintra = _hdIintra- -- "GenerateCode.ag"(line 250, column 12)+ -- "GenerateCode.ag"(line 260, column 12) _lhsOintraVars = _hdIintraVars- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = _hdIallTpsFound && _tlIallTpsFound- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = _hdIcomments ++ _tlIcomments- -- use rule "GenerateCode.ag"(line 355, column 33)+ -- use rule "GenerateCode.ag"(line 365, column 33) _lhsOdecls = _hdIdecls ++ _tlIdecls- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors- -- use rule "GenerateCode.ag"(line 447, column 44)+ -- use rule "GenerateCode.ag"(line 457, column 44) _lhsOgatherInstVisitNrs = _hdIgatherInstVisitNrs `Map.union` _tlIgatherInstVisitNrs- -- use rule "GenerateCode.ag"(line 985, column 61)+ -- use rule "GenerateCode.ag"(line 995, column 61) _lhsOsemNames = _hdIsemNames ++ _tlIsemNames -- copy rule (down)@@ -4211,31 +4220,31 @@ _lhsOerrors :: (Seq Error) _lhsOgatherInstVisitNrs :: (Map Identifier Int) _lhsOsemNames :: ([String])- -- "GenerateCode.ag"(line 231, column 10)+ -- "GenerateCode.ag"(line 241, column 10) _lhsOisNil = True- -- "GenerateCode.ag"(line 251, column 10)+ -- "GenerateCode.ag"(line 261, column 10) _lhsOintra = []- -- "GenerateCode.ag"(line 252, column 10)+ -- "GenerateCode.ag"(line 262, column 10) _lhsOintraVars = Set.empty- -- use rule "GenerateCode.ag"(line 706, column 39)+ -- use rule "GenerateCode.ag"(line 716, column 39) _lhsOallTpsFound = True- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = []- -- use rule "GenerateCode.ag"(line 355, column 33)+ -- use rule "GenerateCode.ag"(line 365, column 33) _lhsOdecls = []- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = Seq.empty- -- use rule "GenerateCode.ag"(line 447, column 44)+ -- use rule "GenerateCode.ag"(line 457, column 44) _lhsOgatherInstVisitNrs = Map.empty- -- use rule "GenerateCode.ag"(line 985, column 61)+ -- use rule "GenerateCode.ag"(line 995, column 61) _lhsOsemNames = [] in ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames))) )@@ -4314,25 +4323,25 @@ _nextIcallExpr :: Expr _nextIdecls :: ([Decl]) _nextIfreeVars :: ([String])- -- "GenerateCode.ag"(line 544, column 7)+ -- "GenerateCode.ag"(line 554, column 7) _nextOblockNr = _lhsIblockNr + 1- -- "GenerateCode.ag"(line 549, column 7)+ -- "GenerateCode.ag"(line 559, column 7) _lambdaName = _lhsIprefix ++ "_block" ++ show _lhsIblockNr- -- "GenerateCode.ag"(line 550, column 7)+ -- "GenerateCode.ag"(line 560, column 7) _pragmaDecl = PragmaDecl ("NOINLINE " ++ _lambdaName )- -- "GenerateCode.ag"(line 551, column 7)+ -- "GenerateCode.ag"(line 561, column 7) _lhsOcallExpr = App _lambdaName (map SimpleExpr _freeVars )- -- "GenerateCode.ag"(line 555, column 7)+ -- "GenerateCode.ag"(line 565, column 7) _freeVars = freevars _nextIfreeVars (visit_ : defs_)- -- "GenerateCode.ag"(line 562, column 7)+ -- "GenerateCode.ag"(line 572, column 7) _decl = mkBlockLambda _lhsIoptCase _lambdaName _freeVars (defs_ ++ [visit_]) _nextIcallExpr- -- "GenerateCode.ag"(line 563, column 7)+ -- "GenerateCode.ag"(line 573, column 7) _lhsOdecls = (if _lhsIblockNr > 1 then [_pragmaDecl ] else []) ++ [_decl ] ++ _nextIdecls -- copy rule (from local)@@ -4365,19 +4374,19 @@ (let _lhsOcallExpr :: Expr _lhsOdecls :: ([Decl]) _lhsOfreeVars :: ([String])- -- "GenerateCode.ag"(line 549, column 7)+ -- "GenerateCode.ag"(line 559, column 7) _lambdaName = _lhsIprefix ++ "_block" ++ show _lhsIblockNr- -- "GenerateCode.ag"(line 550, column 7)+ -- "GenerateCode.ag"(line 560, column 7) _pragmaDecl = PragmaDecl ("NOINLINE " ++ _lambdaName )- -- "GenerateCode.ag"(line 551, column 7)+ -- "GenerateCode.ag"(line 561, column 7) _lhsOcallExpr = App _lambdaName (map SimpleExpr _freeVars )- -- "GenerateCode.ag"(line 553, column 7)+ -- "GenerateCode.ag"(line 563, column 7) _freeVars = freevars _lhsIlastExprVars (defs_ ++ _lhsInextVisitDecls)- -- "GenerateCode.ag"(line 560, column 7)+ -- "GenerateCode.ag"(line 570, column 7) _lhsOdecls = [ mkBlockLambda _lhsIoptCase _lambdaName _freeVars (defs_ ++ _lhsInextVisitDecls) result_ ] -- copy rule (from local)@@ -4436,13 +4445,13 @@ _blocksIcallExpr :: Expr _blocksIdecls :: ([Decl]) _blocksIfreeVars :: ([String])- -- "GenerateCode.ag"(line 535, column 7)+ -- "GenerateCode.ag"(line 545, column 7) _lhsOlambdas = _blocksIdecls- -- "GenerateCode.ag"(line 536, column 7)+ -- "GenerateCode.ag"(line 546, column 7) _lhsOfirstCall = _blocksIcallExpr- -- "GenerateCode.ag"(line 541, column 7)+ -- "GenerateCode.ag"(line 551, column 7) _blocksOblockNr = 1 -- copy rule (down)@@ -4533,10 +4542,10 @@ _partsIcopy :: Patterns _partsIdefinedInsts :: ([Identifier]) _partsIpatternAttributes :: ([(Identifier, Identifier)])- -- "GenerateCode.ag"(line 197, column 11)+ -- "GenerateCode.ag"(line 207, column 11) _lhsOdefinedInsts = (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts- -- "GenerateCode.ag"(line 205, column 7)+ -- "GenerateCode.ag"(line 215, column 7) _lhsOpatternAttributes = (field_,attr_) : (_patIpatternAttributes ++ _partsIpatternAttributes) -- self rule@@ -4560,10 +4569,10 @@ _patsIcopy :: Patterns _patsIdefinedInsts :: ([Identifier]) _patsIpatternAttributes :: ([(Identifier, Identifier)])- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _patsIdefinedInsts- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = _patsIpatternAttributes -- self rule@@ -4584,10 +4593,10 @@ _patIcopy :: Pattern _patIdefinedInsts :: ([Identifier]) _patIpatternAttributes :: ([(Identifier, Identifier)])- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _patIdefinedInsts- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = _patIpatternAttributes -- self rule@@ -4609,10 +4618,10 @@ _patsIcopy :: Patterns _patsIdefinedInsts :: ([Identifier]) _patsIpatternAttributes :: ([(Identifier, Identifier)])- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _patsIdefinedInsts- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = _patsIpatternAttributes -- self rule@@ -4630,10 +4639,10 @@ (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = []- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = [] -- self rule@@ -4689,10 +4698,10 @@ _tlIcopy :: Patterns _tlIdefinedInsts :: ([Identifier]) _tlIpatternAttributes :: ([(Identifier, Identifier)])- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _hdIdefinedInsts ++ _tlIdefinedInsts- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = _hdIpatternAttributes ++ _tlIpatternAttributes -- self rule@@ -4711,10 +4720,10 @@ (T_Patterns (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Patterns- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = []- -- use rule "GenerateCode.ag"(line 202, column 47)+ -- use rule "GenerateCode.ag"(line 212, column 47) _lhsOpatternAttributes = [] -- self rule@@ -4957,34 +4966,34 @@ _tlItSigs :: ([Decl]) _tlItps :: ([Type]) _tlIusedVars :: (Set String)- -- "GenerateCode.ag"(line 476, column 7)+ -- "GenerateCode.ag"(line 486, column 7) _lhsOblockDecls = _hdIbldBlocksFun _tlIblockDecls- -- use rule "GenerateCode.ag"(line 344, column 39)+ -- use rule "GenerateCode.ag"(line 354, column 39) _lhsOallTpsFound = _hdIallTpsFound && _tlIallTpsFound- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = _hdIcomments ++ _tlIcomments -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = _hdIdecls ++ _tlIdecls- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = _hdIdefinedInsts ++ _tlIdefinedInsts- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors- -- use rule "GenerateCode.ag"(line 268, column 34)+ -- use rule "GenerateCode.ag"(line 278, column 34) _lhsOexprs = _hdIexprs ++ _tlIexprs- -- use rule "GenerateCode.ag"(line 297, column 33)+ -- use rule "GenerateCode.ag"(line 307, column 33) _lhsOtSigs = _hdItSigs ++ _tlItSigs- -- use rule "GenerateCode.ag"(line 343, column 31)+ -- use rule "GenerateCode.ag"(line 353, column 31) _lhsOtps = _hdItps ++ _tlItps- -- use rule "GenerateCode.ag"(line 286, column 37)+ -- use rule "GenerateCode.ag"(line 296, column 37) _lhsOusedVars = _hdIusedVars `Set.union` _tlIusedVars -- copy rule (up)@@ -5229,34 +5238,34 @@ _lhsOtps :: ([Type]) _lhsOusedVars :: (Set String) _lhsOdeclsAbove :: ([Decl])- -- "GenerateCode.ag"(line 478, column 7)+ -- "GenerateCode.ag"(line 488, column 7) _lhsOblockDecls = DeclTerminator _lhsIdeclsAbove _lhsIlastExpr- -- use rule "GenerateCode.ag"(line 344, column 39)+ -- use rule "GenerateCode.ag"(line 354, column 39) _lhsOallTpsFound = True- -- use rule "GenerateCode.ag"(line 738, column 52)+ -- use rule "GenerateCode.ag"(line 748, column 52) _lhsOcomments = [] -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = []- -- use rule "GenerateCode.ag"(line 195, column 55)+ -- use rule "GenerateCode.ag"(line 205, column 55) _lhsOdefinedInsts = []- -- use rule "GenerateCode.ag"(line 719, column 32)+ -- use rule "GenerateCode.ag"(line 729, column 32) _lhsOerrors = Seq.empty- -- use rule "GenerateCode.ag"(line 268, column 34)+ -- use rule "GenerateCode.ag"(line 278, column 34) _lhsOexprs = []- -- use rule "GenerateCode.ag"(line 297, column 33)+ -- use rule "GenerateCode.ag"(line 307, column 33) _lhsOtSigs = []- -- use rule "GenerateCode.ag"(line 343, column 31)+ -- use rule "GenerateCode.ag"(line 353, column 31) _lhsOtps = []- -- use rule "GenerateCode.ag"(line 286, column 37)+ -- use rule "GenerateCode.ag"(line 296, column 37) _lhsOusedVars = Set.empty -- copy rule (chain)
src-derived/PrintCode.hs view
@@ -1409,6 +1409,9 @@ local hasStrictVars : _ local strictGuard : _ local addStrictGuard : _+ alternative Unwrap:+ child name : {String}+ child sub : Lhs -} -- cata sem_Lhs :: Lhs ->@@ -1423,6 +1426,8 @@ (sem_Lhs_TupleLhs _comps ) sem_Lhs !(UnboxedTupleLhs _comps ) = (sem_Lhs_UnboxedTupleLhs _comps )+sem_Lhs !(Unwrap _name _sub ) =+ (sem_Lhs_Unwrap _name (sem_Lhs _sub ) ) -- semantic domain newtype T_Lhs = T_Lhs (Bool -> Bool ->@@ -1553,6 +1558,27 @@ (case (_addStrictGuard $ ppUnboxedTuple _lhsInested (map (_addBang . text) comps_)) of { !_lhsOpp -> ( _lhsOpp) }) }) }) }) })) )+sem_Lhs_Unwrap :: String ->+ T_Lhs ->+ T_Lhs +sem_Lhs_Unwrap !name_ !(T_Lhs sub_ ) =+ (T_Lhs (\ (!_lhsIisDeclOfLet)+ (!_lhsInested)+ (!_lhsIoptions)+ (!_lhsIoutputfile) ->+ (case (_lhsIoutputfile) of+ { !_subOoutputfile ->+ (case (_lhsIoptions) of+ { !_subOoptions ->+ (case (_lhsInested) of+ { !_subOnested ->+ (case (_lhsIisDeclOfLet) of+ { !_subOisDeclOfLet ->+ (case ((sub_ _subOisDeclOfLet _subOnested _subOoptions _subOoutputfile )) of+ { ( !_subIpp) ->+ (case (pp_parens (name_ >#< _subIpp)) of+ { !_lhsOpp ->+ ( _lhsOpp) }) }) }) }) }) })) ) -- Pattern ----------------------------------------------------- {- visit 0:
src-derived/Transform.hs view
@@ -135,9 +135,10 @@ else (TypeSig ide typ:sigs, errs) in foldr checkSig ([],Seq.empty) sis -checkInsts :: Set NontermIdent -> Map NontermIdent (Map ConstructorIdent [SigInfo]) -> NontermIdent -> ConstructorIdent -> [Identifier] -> InstsAndErrors-checkInsts allNts sigMap nt con+checkInsts :: Set NontermIdent -> Map NontermIdent (Map ConstructorIdent [SigInfo]) -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> NontermIdent -> ConstructorIdent -> [Identifier] -> InstsAndErrors+checkInsts allNts sigMap fieldMap nt con = foldr (\inst (insts, errs) ->+ checkDup inst insts errs $ maybe (insts, Seq.singleton (MissingInstSig nt con inst) >< errs) (\info@(_, NT nm _) -> case nm `Set.member` allNts of True -> (info : insts, errs)@@ -155,6 +156,15 @@ findSig name = do tp@(NT _ _) <- lookup name sigs return (name, tp)+ + checkDup name insts errs e+ = let fields = Map.findWithDefault [] con $ Map.findWithDefault Map.empty nt fieldMap+ walk [] = Nothing+ walk ((i,_): fs) | i == name = Just name+ | otherwise = walk fs+ in case walk fields of+ Just occ -> (insts, Seq.singleton (DupChild nt con name occ) >< errs)+ Nothing -> e checkUniques :: Map NontermIdent (Attributes, Attributes) -> NontermIdent -> ConstructorIdent -> [UniqueInfo] -> UniquesAndErrors checkUniques allAttrs nt con uniques@@ -487,7 +497,7 @@ Map.mapWithKey (Map.mapWithKey . (checkSigs )) _allSigs -- "Transform.ag"(line 268, column 10) _allInstsErrs =- Map.mapWithKey (Map.mapWithKey . (checkInsts _allNonterminals _allSigs )) _allInsts+ Map.mapWithKey (Map.mapWithKey . (checkInsts _allNonterminals _allSigs _allFields )) _allInsts -- "Transform.ag"(line 269, column 10) _allUniquesErrs = Map.mapWithKey (Map.mapWithKey . (checkUniques _allAttrDecls )) _allUniques@@ -548,22 +558,22 @@ -- "Transform.ag"(line 305, column 10) _lhsOerrors = _elemsIerrors >< _errs1 >< _errs2 >< _errs3 >< _errs4 >< _errs5 >< _errs6 >< _errs7 >< _errs8- -- "Transform.ag"(line 455, column 10)+ -- "Transform.ag"(line 465, column 10) _allNonterminals = _elemsIcollectedNames `Set.difference` _elemsIcollectedSetNames- -- "Transform.ag"(line 475, column 8)+ -- "Transform.ag"(line 485, column 8) _elemsOallConstructors = _elemsIcollectedConstructorsMap- -- "Transform.ag"(line 548, column 8)+ -- "Transform.ag"(line 558, column 8) _elemsOdefSets = Map.fromList (map (\x->(x,(Set.singleton x, Set.empty))) (Set.toList _allNonterminals ))- -- "Transform.ag"(line 549, column 8)+ -- "Transform.ag"(line 559, column 8) _elemsOdefinedSets = Map.map fst _elemsIdefSets- -- "Transform.ag"(line 801, column 8)+ -- "Transform.ag"(line 811, column 8) _elemsOattrDecls = Map.empty- -- "Transform.ag"(line 840, column 9)+ -- "Transform.ag"(line 850, column 9) _allAttrDecls = if withSelf _lhsIoptions then foldr addSelf _elemsIattrDecls (Set.toList _allNonterminals )@@ -571,10 +581,10 @@ -- use rule "Transform.ag"(line 44, column 19) _lhsOblocks = _elemsIblocks- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = _elemsImoduleDecl- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = _elemsIpragmas -- copy rule (from local)@@ -810,16 +820,16 @@ (let _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String))) _lhsOerrors :: (Seq Error) _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))- -- "Transform.ag"(line 809, column 15)+ -- "Transform.ag"(line 819, column 15) __tup1 = checkAttrs _lhsIallFields (Set.toList _lhsInts) _inherited _synthesized _lhsIattrDecls- -- "Transform.ag"(line 809, column 15)+ -- "Transform.ag"(line 819, column 15) (_attrDecls,_) = __tup1- -- "Transform.ag"(line 809, column 15)+ -- "Transform.ag"(line 819, column 15) (_,_errors) = __tup1- -- "Transform.ag"(line 811, column 15)+ -- "Transform.ag"(line 821, column 15) __tup2 = let splitAttrs xs = unzip [ ((n,makeType _lhsIallNonterminals t),(n,ud)) | (n,t,ud) <- xs@@ -829,16 +839,16 @@ (syn,uses2) = splitAttrs syn_ isUse (n,(e1,e2,_)) = not (null e1 || null e2) in (inh++chn,chn++syn, Map.fromList (Prelude.filter isUse (uses1++uses2)))- -- "Transform.ag"(line 811, column 15)+ -- "Transform.ag"(line 821, column 15) (_inherited,_,_) = __tup2- -- "Transform.ag"(line 811, column 15)+ -- "Transform.ag"(line 821, column 15) (_,_synthesized,_) = __tup2- -- "Transform.ag"(line 811, column 15)+ -- "Transform.ag"(line 821, column 15) (_,_,_useMap) = __tup2- -- "Transform.ag"(line 819, column 11)+ -- "Transform.ag"(line 829, column 11) _lhsOuseMap = Map.fromList (zip (Set.toList _lhsInts) (repeat _useMap)) -- use rule "Transform.ag"(line 42, column 19)@@ -893,7 +903,7 @@ (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent)) _lhsOcollectedConstructorNames :: (Set ConstructorIdent) _lhsOerrors :: (Seq Error)- -- "Transform.ag"(line 615, column 17)+ -- "Transform.ag"(line 625, column 17) _lhsOconstructors = \ds -> ds -- use rule "Transform.ag"(line 90, column 62)@@ -916,7 +926,7 @@ _set2IcollectedConstructorNames :: (Set ConstructorIdent) _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent)) _set2Ierrors :: (Seq Error)- -- "Transform.ag"(line 614, column 17)+ -- "Transform.ag"(line 624, column 17) _lhsOconstructors = \ds -> _set1Iconstructors ds `Set.difference` _set2Iconstructors ds -- use rule "Transform.ag"(line 90, column 62)@@ -936,10 +946,10 @@ (T_ConstructorSet (let _lhsOcollectedConstructorNames :: (Set ConstructorIdent) _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent)) _lhsOerrors :: (Seq Error)- -- "Transform.ag"(line 463, column 11)+ -- "Transform.ag"(line 473, column 11) _lhsOcollectedConstructorNames = Set.singleton name_- -- "Transform.ag"(line 612, column 17)+ -- "Transform.ag"(line 622, column 17) _lhsOconstructors = \ds -> Set.singleton name_ -- use rule "Transform.ag"(line 42, column 19)@@ -959,7 +969,7 @@ _set2IcollectedConstructorNames :: (Set ConstructorIdent) _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent)) _set2Ierrors :: (Seq Error)- -- "Transform.ag"(line 613, column 17)+ -- "Transform.ag"(line 623, column 17) _lhsOconstructors = \ds -> _set1Iconstructors ds `Set.union` _set2Iconstructors ds -- use rule "Transform.ag"(line 90, column 62)@@ -1158,15 +1168,15 @@ _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes)) _attrsIerrors :: (Seq Error) _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))- -- "Transform.ag"(line 761, column 7)+ -- "Transform.ag"(line 771, column 7) _lhsOctxCollect = if null ctx_ then Map.empty else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]- -- "Transform.ag"(line 805, column 10)+ -- "Transform.ag"(line 815, column 10) _attrsOnts = _namesInontSet- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -1199,31 +1209,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _namesIerrors Seq.>< _attrsIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = _attrsIuseMap- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (up)@@ -1315,26 +1325,26 @@ -- "Transform.ag"(line 163, column 10) _altsOnts = _namesInontSet- -- "Transform.ag"(line 469, column 11)+ -- "Transform.ag"(line 479, column 11) _lhsOcollectedConstructorsMap = Map.fromList [ (n, _altsIcollectedConstructorNames) | n <- Set.toList _namesInontSet ]- -- "Transform.ag"(line 738, column 7)+ -- "Transform.ag"(line 748, column 7) _lhsOparamsCollect = if null params_ then Map.empty else Map.fromList [(nt, params_) | nt <- Set.toList _namesInontSet]- -- "Transform.ag"(line 761, column 7)+ -- "Transform.ag"(line 771, column 7) _lhsOctxCollect = if null ctx_ then Map.empty else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]- -- "Transform.ag"(line 804, column 10)+ -- "Transform.ag"(line 814, column 10) _attrsOnts = _namesInontSet- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -1364,28 +1374,28 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _namesIerrors Seq.>< _attrsIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = _attrsIuseMap- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (up)@@ -1466,10 +1476,10 @@ _setIcollectedNames :: (Set Identifier) _setIerrors :: (Seq Error) _setInontSet :: (Set NontermIdent)- -- "Transform.ag"(line 789, column 14)+ -- "Transform.ag"(line 799, column 14) _lhsOderivings = Map.fromList [(nt,Set.fromList classes_) | nt <- Set.toList _setInontSet]- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -1502,31 +1512,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _setIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -1583,10 +1593,10 @@ _lhsOwrappers :: (Set NontermIdent) _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes)) _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))- -- "Transform.ag"(line 947, column 7)+ -- "Transform.ag"(line 957, column 7) _lhsOmoduleDecl = Just (name_, exports_, imports_)- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -1619,31 +1629,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -1687,7 +1697,7 @@ _lhsOwrappers :: (Set NontermIdent) _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes)) _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))- -- "Transform.ag"(line 633, column 13)+ -- "Transform.ag"(line 643, column 13) _lhsOpragmas = let mk n o = case getName n of "gencatas" -> o { folds = True }@@ -1729,7 +1739,7 @@ "nonewtypes" -> o { newtypes = False } _ -> o in \o -> foldr mk o names_- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -1762,31 +1772,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -1860,15 +1870,15 @@ -- "Transform.ag"(line 164, column 10) _altsOnts = _namesInontSet- -- "Transform.ag"(line 761, column 7)+ -- "Transform.ag"(line 771, column 7) _lhsOctxCollect = if null ctx_ then Map.empty else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]- -- "Transform.ag"(line 806, column 10)+ -- "Transform.ag"(line 816, column 10) _attrsOnts = _namesInontSet- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = _altsIattrOrderCollect -- use rule "Transform.ag"(line 44, column 19)@@ -1901,31 +1911,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = _altsIcollectedUniques- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _namesIerrors Seq.>< _attrsIerrors Seq.>< _altsIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = _altsIsemPragmasCollect- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = _attrsIuseMap- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (up)@@ -2006,10 +2016,10 @@ _setIcollectedNames :: (Set Identifier) _setIerrors :: (Seq Error) _setInontSet :: (Set NontermIdent)- -- "Transform.ag"(line 446, column 10)+ -- "Transform.ag"(line 456, column 10) _lhsOcollectedSetNames = Set.singleton name_- -- "Transform.ag"(line 553, column 13)+ -- "Transform.ag"(line 563, column 13) __tup3 = let allUsedNames = Set.unions [ maybe (Set.singleton n) snd@@ -2021,19 +2031,19 @@ | otherwise = (_setInontSet, Seq.empty) (res, e2) = checkDuplicate DupSet name_ (nontSet,Set.insert name_ allUsedNames) _lhsIdefSets in (res, e1 Seq.>< e2)- -- "Transform.ag"(line 553, column 13)+ -- "Transform.ag"(line 563, column 13) (_defSets2,_) = __tup3- -- "Transform.ag"(line 553, column 13)+ -- "Transform.ag"(line 563, column 13) (_,_errs) = __tup3- -- "Transform.ag"(line 563, column 9)+ -- "Transform.ag"(line 573, column 9) _lhsOdefSets = _defSets2- -- "Transform.ag"(line 563, column 9)+ -- "Transform.ag"(line 573, column 9) _lhsOerrors = _errs >< _setIerrors- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -2063,31 +2073,31 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -2157,7 +2167,7 @@ -- "Transform.ag"(line 182, column 10) _lhsOblocks = Map.singleton _blockInfo _blockValue- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 150, column 32)@@ -2187,34 +2197,34 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -2264,10 +2274,10 @@ -- "Transform.ag"(line 235, column 10) _lhsOcollectedFields = map (\(x,y)->(name_, x, y)) _expanded- -- "Transform.ag"(line 449, column 11)+ -- "Transform.ag"(line 459, column 11) _lhsOcollectedNames = Set.singleton name_- -- "Transform.ag"(line 503, column 11)+ -- "Transform.ag"(line 513, column 11) _expanded = case _argType of List tp -> [(Ident "Cons" pos_, [(Ident "hd" pos_, tp)@@ -2298,7 +2308,7 @@ , (Ident "Nil" pos_, []) ] Tuple xs -> [(Ident "Tuple" pos_, xs)]- -- "Transform.ag"(line 532, column 11)+ -- "Transform.ag"(line 542, column 11) _argType = case type_ of Maybe tp -> Maybe ( makeType _lhsIallNonterminals tp)@@ -2307,20 +2317,20 @@ Tuple xs -> Tuple [(f,makeType _lhsIallNonterminals tp) | (f,tp) <- xs] Map tp1 tp2 -> Map ( makeType _lhsIallNonterminals tp1) (makeType _lhsIallNonterminals tp2) IntMap tp -> IntMap ( makeType _lhsIallNonterminals tp)- -- "Transform.ag"(line 539, column 11)+ -- "Transform.ag"(line 549, column 11) _lhsOtypeSyns = [(name_,_argType)]- -- "Transform.ag"(line 744, column 7)+ -- "Transform.ag"(line 754, column 7) _lhsOparamsCollect = if null params_ then Map.empty else Map.singleton name_ params_- -- "Transform.ag"(line 767, column 7)+ -- "Transform.ag"(line 777, column 7) _lhsOctxCollect = if null ctx_ then Map.empty else Map.singleton name_ ctx_- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -2347,25 +2357,25 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -2415,10 +2425,10 @@ _setIcollectedNames :: (Set Identifier) _setIerrors :: (Seq Error) _setInontSet :: (Set NontermIdent)- -- "Transform.ag"(line 624, column 13)+ -- "Transform.ag"(line 634, column 13) _lhsOwrappers = _setInontSet- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -2451,28 +2461,28 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _setIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15)@@ -2653,7 +2663,7 @@ _tlItypeSyns :: TypeSyns _tlIuseMap :: (Map NontermIdent (Map Identifier (String,String,String))) _tlIwrappers :: (Set NontermIdent)- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect -- use rule "Transform.ag"(line 44, column 19)@@ -2686,34 +2696,34 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = _hdIcollectedUniques ++ _tlIcollectedUniques- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = _hdIctxCollect `mergeCtx` _tlIctxCollect- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = _hdIderivings `mergeDerivings` _tlIderivings -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = _hdImoduleDecl `mplus` _tlImoduleDecl- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = _hdIparamsCollect `mergeParams` _tlIparamsCollect- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = _hdIpragmas . _tlIpragmas- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = _hdItypeSyns ++ _tlItypeSyns -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = _hdIuseMap `merge` _tlIuseMap- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = _hdIwrappers `Set.union` _tlIwrappers -- copy rule (up)@@ -2801,7 +2811,7 @@ _lhsOwrappers :: (Set NontermIdent) _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes)) _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 44, column 19)@@ -2834,34 +2844,34 @@ -- use rule "Transform.ag"(line 149, column 32) _lhsOcollectedUniques = []- -- use rule "Transform.ag"(line 757, column 34)+ -- use rule "Transform.ag"(line 767, column 34) _lhsOctxCollect = Map.empty- -- use rule "Transform.ag"(line 782, column 33)+ -- use rule "Transform.ag"(line 792, column 33) _lhsOderivings = Map.empty -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 943, column 37)+ -- use rule "Transform.ag"(line 953, column 37) _lhsOmoduleDecl = mzero- -- use rule "Transform.ag"(line 734, column 37)+ -- use rule "Transform.ag"(line 744, column 37) _lhsOparamsCollect = Map.empty- -- use rule "Transform.ag"(line 630, column 34)+ -- use rule "Transform.ag"(line 640, column 34) _lhsOpragmas = id- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty- -- use rule "Transform.ag"(line 490, column 32)+ -- use rule "Transform.ag"(line 500, column 32) _lhsOtypeSyns = [] -- use rule "Transform.ag"(line 134, column 15) _lhsOuseMap = Map.empty- -- use rule "Transform.ag"(line 621, column 32)+ -- use rule "Transform.ag"(line 631, column 32) _lhsOwrappers = Set.empty -- copy rule (chain)@@ -2940,7 +2950,7 @@ (let _lhsOnontSet :: (Set NontermIdent) _lhsOcollectedNames :: (Set Identifier) _lhsOerrors :: (Seq Error)- -- "Transform.ag"(line 567, column 16)+ -- "Transform.ag"(line 577, column 16) _lhsOnontSet = _lhsIallNonterminals -- use rule "Transform.ag"(line 83, column 50)@@ -2972,7 +2982,7 @@ _set2IcollectedNames :: (Set Identifier) _set2Ierrors :: (Seq Error) _set2InontSet :: (Set NontermIdent)- -- "Transform.ag"(line 573, column 16)+ -- "Transform.ag"(line 583, column 16) _lhsOnontSet = Set.difference _set1InontSet _set2InontSet -- use rule "Transform.ag"(line 83, column 50)@@ -3026,7 +3036,7 @@ _set2IcollectedNames :: (Set Identifier) _set2Ierrors :: (Seq Error) _set2InontSet :: (Set NontermIdent)- -- "Transform.ag"(line 572, column 16)+ -- "Transform.ag"(line 582, column 16) _lhsOnontSet = Set.intersection _set1InontSet _set2InontSet -- use rule "Transform.ag"(line 83, column 50)@@ -3067,18 +3077,18 @@ (let _lhsOcollectedNames :: (Set Identifier) _lhsOerrors :: (Seq Error) _lhsOnontSet :: (Set NontermIdent)- -- "Transform.ag"(line 452, column 14)+ -- "Transform.ag"(line 462, column 14) _lhsOcollectedNames = Set.singleton name_- -- "Transform.ag"(line 568, column 20)+ -- "Transform.ag"(line 578, column 20) __tup4 = case Map.lookup name_ _lhsIdefinedSets of Nothing -> (Set.empty, Seq.singleton (UndefNont name_)) Just set -> (set, Seq.empty)- -- "Transform.ag"(line 568, column 20)+ -- "Transform.ag"(line 578, column 20) (_nontSet,_) = __tup4- -- "Transform.ag"(line 568, column 20)+ -- "Transform.ag"(line 578, column 20) (_,_errors) = __tup4 -- use rule "Transform.ag"(line 42, column 19)@@ -3098,11 +3108,11 @@ (let _lhsOnontSet :: (Set NontermIdent) _lhsOerrors :: (Seq Error) _lhsOcollectedNames :: (Set Identifier)- -- "Transform.ag"(line 574, column 16)+ -- "Transform.ag"(line 584, column 16) _lhsOnontSet = let table = flattenDatas _lhsIallFields in path table from_ to_- -- "Transform.ag"(line 576, column 16)+ -- "Transform.ag"(line 586, column 16) _lhsOerrors = let check name | Set.member name _lhsIallNonterminals = Seq.empty@@ -3134,7 +3144,7 @@ _set2IcollectedNames :: (Set Identifier) _set2Ierrors :: (Seq Error) _set2InontSet :: (Set NontermIdent)- -- "Transform.ag"(line 571, column 16)+ -- "Transform.ag"(line 581, column 16) _lhsOnontSet = Set.union _set1InontSet _set2InontSet -- use rule "Transform.ag"(line 83, column 50)@@ -3246,16 +3256,16 @@ _partsIdefinedAttrs :: ([AttrName]) _partsIdefinedInsts :: ([Identifier]) _partsIpatunder :: ([AttrName]->Patterns)- -- "Transform.ag"(line 919, column 11)+ -- "Transform.ag"(line 929, column 11) _lhsOdefinedAttrs = (field_, attr_) : _patIdefinedAttrs- -- "Transform.ag"(line 920, column 11)+ -- "Transform.ag"(line 930, column 11) _lhsOpatunder = \us -> if ((field_,attr_) `elem` us) then Underscore noPos else _copy- -- "Transform.ag"(line 921, column 11)+ -- "Transform.ag"(line 931, column 11) _lhsOdefinedInsts = (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts- -- "Transform.ag"(line 936, column 16)+ -- "Transform.ag"(line 946, column 16) _lhsOstpos = getPos field_ -- self rule@@ -3282,16 +3292,16 @@ _patsIdefinedAttrs :: ([AttrName]) _patsIdefinedInsts :: ([Identifier]) _patsIpatunder :: ([AttrName]->Patterns)- -- "Transform.ag"(line 923, column 12)+ -- "Transform.ag"(line 933, column 12) _lhsOpatunder = \us -> Constr name_ (_patsIpatunder us)- -- "Transform.ag"(line 934, column 16)+ -- "Transform.ag"(line 944, column 16) _lhsOstpos = getPos name_- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = _patsIdefinedAttrs- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _patsIdefinedInsts -- self rule@@ -3316,13 +3326,13 @@ _patIdefinedInsts :: ([Identifier]) _patIpatunder :: ([AttrName]->Pattern) _patIstpos :: Pos- -- "Transform.ag"(line 925, column 17)+ -- "Transform.ag"(line 935, column 17) _lhsOpatunder = \us -> Irrefutable (_patIpatunder us)- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = _patIdefinedAttrs- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _patIdefinedInsts -- self rule@@ -3350,16 +3360,16 @@ _patsIdefinedAttrs :: ([AttrName]) _patsIdefinedInsts :: ([Identifier]) _patsIpatunder :: ([AttrName]->Patterns)- -- "Transform.ag"(line 924, column 13)+ -- "Transform.ag"(line 934, column 13) _lhsOpatunder = \us -> Product pos_ (_patsIpatunder us)- -- "Transform.ag"(line 935, column 16)+ -- "Transform.ag"(line 945, column 16) _lhsOstpos = pos_- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = _patsIdefinedAttrs- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _patsIdefinedInsts -- self rule@@ -3379,16 +3389,16 @@ _lhsOdefinedAttrs :: ([AttrName]) _lhsOdefinedInsts :: ([Identifier]) _lhsOcopy :: Pattern- -- "Transform.ag"(line 922, column 16)+ -- "Transform.ag"(line 932, column 16) _lhsOpatunder = \us -> _copy- -- "Transform.ag"(line 937, column 16)+ -- "Transform.ag"(line 947, column 16) _lhsOstpos = pos_- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = [] -- self rule@@ -3449,13 +3459,13 @@ _tlIdefinedAttrs :: ([AttrName]) _tlIdefinedInsts :: ([Identifier]) _tlIpatunder :: ([AttrName]->Patterns)- -- "Transform.ag"(line 929, column 10)+ -- "Transform.ag"(line 939, column 10) _lhsOpatunder = \us -> (_hdIpatunder us) : (_tlIpatunder us)- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = _hdIdefinedAttrs ++ _tlIdefinedAttrs- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _hdIdefinedInsts ++ _tlIdefinedInsts -- self rule@@ -3475,13 +3485,13 @@ _lhsOdefinedAttrs :: ([AttrName]) _lhsOdefinedInsts :: ([Identifier]) _lhsOcopy :: Patterns- -- "Transform.ag"(line 928, column 9)+ -- "Transform.ag"(line 938, column 9) _lhsOpatunder = \us -> []- -- use rule "Transform.ag"(line 914, column 42)+ -- use rule "Transform.ag"(line 924, column 42) _lhsOdefinedAttrs = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = [] -- self rule@@ -3562,25 +3572,25 @@ _rulesIruleInfos :: ([RuleInfo]) _rulesIsigInfos :: ([SigInfo]) _rulesIuniqueInfos :: ([UniqueInfo])- -- "Transform.ag"(line 678, column 7)+ -- "Transform.ag"(line 688, column 7) _pragmaNames = Set.fromList _rulesIpragmaNamesCollect- -- "Transform.ag"(line 679, column 7)+ -- "Transform.ag"(line 689, column 7) _lhsOsemPragmasCollect = foldr pragmaMapUnion Map.empty [ pragmaMapSingle nt con _pragmaNames | (nt, conset, _) <- _coninfo , con <- Set.toList conset ]- -- "Transform.ag"(line 707, column 7)+ -- "Transform.ag"(line 717, column 7) _attrOrders = [ orderMapSingle nt con _rulesIorderDepsCollect | (nt, conset, _) <- _coninfo , con <- Set.toList conset ]- -- "Transform.ag"(line 713, column 7)+ -- "Transform.ag"(line 723, column 7) _lhsOattrOrderCollect = foldr orderMapUnion Map.empty _attrOrders- -- "Transform.ag"(line 857, column 12)+ -- "Transform.ag"(line 867, column 12) _coninfo = [ (nt, conset, conkeys) | nt <- Set.toList _lhsInts@@ -3588,40 +3598,40 @@ , let conkeys = Set.fromList (Map.keys conmap) , let conset = _constructorSetIconstructors conkeys ]- -- "Transform.ag"(line 864, column 12)+ -- "Transform.ag"(line 874, column 12) _lhsOerrors = Seq.fromList [ UndefAlt nt con | (nt, conset, conkeys) <- _coninfo , con <- Set.toList (Set.difference conset conkeys) ]- -- "Transform.ag"(line 869, column 12)+ -- "Transform.ag"(line 879, column 12) _lhsOcollectedRules = [ (nt,con,r) | (nt, conset, _) <- _coninfo , con <- Set.toList conset , r <- _rulesIruleInfos ]- -- "Transform.ag"(line 875, column 12)+ -- "Transform.ag"(line 885, column 12) _lhsOcollectedSigs = [ (nt,con,ts) | (nt, conset, _) <- _coninfo , con <- Set.toList conset , ts <- _rulesIsigInfos ]- -- "Transform.ag"(line 882, column 12)+ -- "Transform.ag"(line 892, column 12) _lhsOcollectedInsts = [ (nt,con,_rulesIdefinedInsts) | (nt, conset, _) <- _coninfo , con <- Set.toList conset ]- -- "Transform.ag"(line 888, column 12)+ -- "Transform.ag"(line 898, column 12) _lhsOcollectedUniques = [ (nt,con,_rulesIuniqueInfos) | (nt, conset, _) <- _coninfo , con <- Set.toList conset ]- -- "Transform.ag"(line 894, column 12)+ -- "Transform.ag"(line 904, column 12) _lhsOcollectedAugments = [ (nt, con, _rulesIaugmentInfos) | (nt, conset, _) <- _coninfo@@ -3710,7 +3720,7 @@ _tlIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]) _tlIerrors :: (Seq Error) _tlIsemPragmasCollect :: PragmaMap- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect -- use rule "Transform.ag"(line 150, column 32)@@ -3731,7 +3741,7 @@ -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = _hdIerrors Seq.>< _tlIerrors- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect -- copy rule (down)@@ -3770,7 +3780,7 @@ _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]) _lhsOerrors :: (Seq Error) _lhsOsemPragmasCollect :: PragmaMap- -- use rule "Transform.ag"(line 702, column 55)+ -- use rule "Transform.ag"(line 712, column 55) _lhsOattrOrderCollect = Map.empty -- use rule "Transform.ag"(line 150, column 32)@@ -3791,7 +3801,7 @@ -- use rule "Transform.ag"(line 42, column 19) _lhsOerrors = Seq.empty- -- use rule "Transform.ag"(line 674, column 56)+ -- use rule "Transform.ag"(line 684, column 56) _lhsOsemPragmasCollect = Map.empty in ( _lhsOattrOrderCollect,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))) )@@ -3865,28 +3875,28 @@ _lhsOruleInfos :: ([RuleInfo]) _lhsOsigInfos :: ([SigInfo]) _lhsOuniqueInfos :: ([UniqueInfo])- -- "Transform.ag"(line 719, column 7)+ -- "Transform.ag"(line 729, column 7) _dependency = [ Dependency b a | b <- before_, a <- after_ ]- -- "Transform.ag"(line 720, column 7)+ -- "Transform.ag"(line 730, column 7) _lhsOorderDepsCollect = Set.fromList _dependency- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )@@ -3901,25 +3911,25 @@ _lhsOruleInfos :: ([RuleInfo]) _lhsOsigInfos :: ([SigInfo]) _lhsOuniqueInfos :: ([UniqueInfo])- -- "Transform.ag"(line 910, column 17)+ -- "Transform.ag"(line 920, column 17) _lhsOaugmentInfos = [ (ident_, rhs_) ]- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )@@ -3940,25 +3950,25 @@ _patternIdefinedInsts :: ([Identifier]) _patternIpatunder :: ([AttrName]->Pattern) _patternIstpos :: Pos- -- "Transform.ag"(line 901, column 10)+ -- "Transform.ag"(line 911, column 10) _lhsOruleInfos = [ (_patternIpatunder, rhs_, _patternIdefinedAttrs, owrt_, show _patternIstpos) ]- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _patternIdefinedInsts- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] ( _patternIcopy,_patternIdefinedAttrs,_patternIdefinedInsts,_patternIpatunder,_patternIstpos) =@@ -3974,25 +3984,25 @@ _lhsOruleInfos :: ([RuleInfo]) _lhsOsigInfos :: ([SigInfo]) _lhsOuniqueInfos :: ([UniqueInfo])- -- "Transform.ag"(line 688, column 7)+ -- "Transform.ag"(line 698, column 7) _lhsOpragmaNamesCollect = names_- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )@@ -4007,25 +4017,25 @@ _lhsOpragmaNamesCollect :: ([Identifier]) _lhsOruleInfos :: ([RuleInfo]) _lhsOuniqueInfos :: ([UniqueInfo])- -- "Transform.ag"(line 904, column 14)+ -- "Transform.ag"(line 914, column 14) _lhsOsigInfos = [ (ident_, tp_) ]- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )@@ -4040,25 +4050,25 @@ _lhsOpragmaNamesCollect :: ([Identifier]) _lhsOruleInfos :: ([RuleInfo]) _lhsOsigInfos :: ([SigInfo])- -- "Transform.ag"(line 907, column 16)+ -- "Transform.ag"(line 917, column 16) _lhsOuniqueInfos = [ (ident_, ref_) ]- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )@@ -4120,25 +4130,25 @@ _tlIruleInfos :: ([RuleInfo]) _tlIsigInfos :: ([SigInfo]) _tlIuniqueInfos :: ([UniqueInfo])- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = _hdIaugmentInfos ++ _tlIaugmentInfos- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = _hdIdefinedInsts ++ _tlIdefinedInsts- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = _hdIorderDepsCollect `Set.union` _tlIorderDepsCollect- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = _hdIpragmaNamesCollect ++ _tlIpragmaNamesCollect- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = _hdIruleInfos ++ _tlIruleInfos- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = _hdIsigInfos ++ _tlIsigInfos- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = _hdIuniqueInfos ++ _tlIuniqueInfos ( _hdIaugmentInfos,_hdIdefinedInsts,_hdIorderDepsCollect,_hdIpragmaNamesCollect,_hdIruleInfos,_hdIsigInfos,_hdIuniqueInfos) =@@ -4155,25 +4165,25 @@ _lhsOruleInfos :: ([RuleInfo]) _lhsOsigInfos :: ([SigInfo]) _lhsOuniqueInfos :: ([UniqueInfo])- -- use rule "Transform.ag"(line 852, column 40)+ -- use rule "Transform.ag"(line 862, column 40) _lhsOaugmentInfos = []- -- use rule "Transform.ag"(line 913, column 55)+ -- use rule "Transform.ag"(line 923, column 55) _lhsOdefinedInsts = []- -- use rule "Transform.ag"(line 715, column 44)+ -- use rule "Transform.ag"(line 725, column 44) _lhsOorderDepsCollect = Set.empty- -- use rule "Transform.ag"(line 684, column 46)+ -- use rule "Transform.ag"(line 694, column 46) _lhsOpragmaNamesCollect = []- -- use rule "Transform.ag"(line 849, column 40)+ -- use rule "Transform.ag"(line 859, column 40) _lhsOruleInfos = []- -- use rule "Transform.ag"(line 850, column 40)+ -- use rule "Transform.ag"(line 860, column 40) _lhsOsigInfos = []- -- use rule "Transform.ag"(line 851, column 40)+ -- use rule "Transform.ag"(line 861, column 40) _lhsOuniqueInfos = [] in ( _lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos)) )
src/Version.hs view
@@ -1,4 +1,4 @@ module Version where banner :: String -banner = "Attribute Grammar compiler / HUT project. Version 0.9.17" +banner = "Attribute Grammar compiler / HUT project. Version 0.9.18"
uuagc.cabal view
@@ -1,7 +1,7 @@ cabal-version: >=1.2 build-type: Simple name: uuagc-version: 0.9.17+version: 0.9.18 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.17+version: 0.9.18 license: GPL license-file: LICENSE maintainer: Arie Middelkoop <ariem@cs.uu.nl>