Changeset 8820 for src/Pugs.hs
- Timestamp:
- 01/28/06 02:09:07 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs.hs
r8491 r8820 313 313 doRunSingle menv opts prog = (`catch` handler) $ do 314 314 exp <- makeProper =<< parse 315 if exp == Noop then return () else do 315 316 env <- theEnv 316 317 rv <- runImperatively env (evaluate exp) … … 344 345 else print 345 346 makeProper exp = case exp of 346 Val err@(VError _ _) -> fail $ pretty err 347 Val err@(VError (VStr msg) _) 348 | runOptShowPretty opts -> do 349 -- , "\nunexpected end of input" `isPrefixOf` msg -> do 350 cont <- readline "....> " 351 case cont of 352 Just line -> do 353 doRunSingle menv opts (prog ++ ('\n':line)) 354 return Noop 355 _ -> fail $ pretty err 356 Val err@VError{} -> fail $ pretty err 347 357 _ | runOptSeparately opts -> return exp 348 358 _ -> return $ makeDumpEnv exp … … 353 363 makeDumpEnv (Sym x y exp) = Sym x y $ makeDumpEnv exp 354 364 makeDumpEnv exp = Stmts exp (Syn "env" []) 355 handler err = if not (isUserError err) then ioError err elsedo365 handler err | isUserError err = do 356 366 putStrLn "Internal error while running expression:" 357 367 putStrLn $ ioeGetErrorString err 368 | otherwise = ioError err 358 369 359 370 runImperatively :: TVar Env -> Eval Val -> IO Val
