Changeset 3443 for src/Pugs/Monads.hs
- Timestamp:
- 05/19/05 17:57:17 (4 years ago)
- svk:copy_cache_prev:
- 5016
- Files:
-
- 1 modified
-
src/Pugs/Monads.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Monads.hs
r3291 r3443 147 147 env <- ask 148 148 exitRec <- genSubs env "&?BLOCK_EXIT" $ escSub esc 149 enterLex exitRec action149 local (\e -> e{ envOuter = Just env }) $ enterLex exitRec action 150 150 where 151 151 escSub esc env = mkPrim … … 176 176 blockRec <- genSym "&?BLOCK" (codeRef (orig sub)) 177 177 return $ \e -> e 178 { envLexical = combine [blockRec] 178 { envOuter = Just env 179 , envLexical = combine [blockRec] 179 180 (subPad sub `unionPads` envLexical env) } 180 181 | otherwise = do … … 185 186 callerRec <- genSubs env "&?CALLER_CONTINUATION" (ccSub cc) 186 187 return $ \e -> e 187 { envLexical = combine (concat [subRec, callerRec]) (subPad sub) } 188 { envLexical = combine (concat [subRec, callerRec]) (subPad sub) 189 , envOuter = maybe Nothing envOuter (subEnv sub) 190 } 188 191 ccSub cc env = mkPrim 189 192 { subName = "CALLER_CONTINUATION"
