Changeset 2577 for src/Main.hs

Show
Ignore:
Timestamp:
05/01/05 14:44:30 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
4052
Message:

* Lexical pad is now carried around in interactive shell.

Reported by iblech

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Main.hs

    r2560 r2577  
    195195    makeProper exp = case exp of 
    196196        Val err@(VError _ _) -> fail $ pretty err 
    197 {- 
    198         Stmts stmts@((_,pos):_) | not (runOptSeparately opts) -> do 
    199             let withDump = stmts ++ [(Syn "env" [], pos)] 
    200             return $ Stmts withDump 
    201 -} 
    202         _ | not (runOptSeparately opts) -> do 
    203             -- let pos = SourcePos "<interactive>" 0 0 
    204             return $ Stmts exp (Syn "env" []) 
    205         _ -> return exp 
     197        _ | runOptSeparately opts -> return exp 
     198        _ -> return $ makeDumpEnv exp 
     199    -- XXX Generalize this into structural folding 
     200    makeDumpEnv (Stmts x exp)   = Stmts x   $ makeDumpEnv exp 
     201    makeDumpEnv (Cxt x exp)     = Cxt x     $ makeDumpEnv exp 
     202    makeDumpEnv (Pad x y exp)   = Pad x y   $ makeDumpEnv exp 
     203    makeDumpEnv (Sym x y exp)   = Sym x y   $ makeDumpEnv exp 
     204    makeDumpEnv (Pos x exp)     = Pos x     $ makeDumpEnv exp 
     205    makeDumpEnv (Parens exp)    = Parens    $ makeDumpEnv exp 
     206    makeDumpEnv exp = Stmts exp (Syn "env" []) 
    206207    handler err = if not (isUserError err) then ioError err else do 
    207208        putStrLn "Internal error while running expression:"