Changeset 16487 for src/Pugs/Prim.hs
- Timestamp:
- 05/21/07 21:40:31 (18 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Prim.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim.hs
r16379 r16487 379 379 return $ VBool True 380 380 op1 "die" = \v -> do 381 pos <- asks envPos382 381 v' <- fromVal $! v 383 retShift $! VError (errmsg $! v') [pos] 382 env <- ask 383 retShift $! VError (errmsg $! v') (collectPos (Just env)) 384 384 where 385 385 errmsg VUndef = VStr "Died" … … 389 389 errmsg (VList [x]) = x 390 390 errmsg x = x 391 collectPos Nothing = [] 392 collectPos (Just env) = (envPos env:collectPos (envCaller env)) 391 393 op1 "warn" = \v -> do 392 394 strs <- fromVal v 393 395 errh <- readVar $ cast "$*ERR" 394 pos <- asks envPos395 op2 "IO::say" errh $ VList [ VStr $ pretty (VError (errmsg strs) [pos]) ]396 env <- ask 397 op2 "IO::say" errh $ VList [ VStr $ pretty (VError (errmsg strs) (collectPos (Just env))) ] 396 398 where 397 399 errmsg "" = VStr "Warning: something's wrong" 398 400 errmsg x = VStr x 401 collectPos Nothing = [] 402 collectPos (Just env) = (envPos env:collectPos (envCaller env)) 399 403 op1 "fail" = op1 "fail_" -- XXX - to be replaced by Prelude later 400 404 op1 "fail_" = \v -> do
