Changeset 16375

Show
Ignore:
Timestamp:
05/17/07 23:38:23 (18 months ago)
Author:
audreyt
Message:

* Reclose the MAIN code as well.

Location:
src/Pugs
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Eval.hs

    r16373 r16375  
    413413reduceSyn :: String -> [Exp] -> Eval Val 
    414414 
    415 reduceSyn "" [] = do  
     415reduceSyn "" [Syn "block" [Val (VCode code)]] = do  
    416416    -- Reclose all global pads! 
    417417    glob <- asks envGlobal 
     
    420420        pad'    <- reclosePad pad 
    421421        writeMPad glob pad' 
    422         return undef 
     422        fmap VCode (recloseCode code) 
    423423 
    424424reduceSyn "()" [exp] = reduce exp 
     
    468468    started         <- if isCompileTime env then return Nothing else fmap Just (stm $ newTVar False) 
    469469    inner           <- clonePad (subInnerPad sub)  
    470     (lpads, outer)  <- cloneLexPads (envLexPads env) 
     470--  (lpads, outer)  <- cloneLexPads (envLexPads env) 
    471471    return $ VCode sub 
    472472        { subCont       = cont 
    473         , subOuterPads  = lpads 
     473--      , subOuterPads  = lpads 
    474474        , subInnerPad   = inner 
    475475--      , subLexical    = outer `mappend` inner  
  • src/Pugs/Monads.hs

    r16374 r16375  
    2222    enterFrame, assertFrame, emptyFrames, 
    2323 
    24     reclosePad, 
     24    reclosePad, recloseCode, 
    2525     
    2626    MaybeT, runMaybeT, 
  • src/Pugs/Parser/Program.hs

    r16374 r16375  
    189189 
    190190    -- Force a reclose-pad evaluation here by way of unsafeEvalExp. 
    191     unsafeEvalExp $ Syn "" [] 
     191    main' <- unsafeEvalExp $ Syn "" [unwrap main] 
    192192 
    193193    env' <- getRuleEnv 
    194194    return $ env' 
    195         { envBody       = App main Nothing [] -- _Var "@*ARGS"] 
     195        { envBody       = App (Syn "block" [main']) Nothing [] -- _Var "@*ARGS"] 
    196196        , envPackage    = envPackage env 
    197197        }