Changeset 3948 for src/Pugs/Run/Perl5.hs

Show
Ignore:
Timestamp:
05/27/05 04:03:10 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* method.t all pass!

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Run/Perl5.hs

    r3945 r3948  
    1818 
    1919foreign export ccall "pugs_Apply" 
    20     pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PugsVal 
     20    pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PerlSV 
    2121 
    2222foreign export ccall "pugs_ValToSv" 
     
    6060    mkVal val 
    6161 
    62 pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PugsVal 
     62pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PerlSV 
    6363pugs_apply subPtr invPtr argsPtr = do 
    6464    -- print "DEREF #0" 
     
    6666    -- print "DEREF #1" 
    6767    sub     <- deVal subPtr 
    68     -- print "DEREF #2" 
     68    -- print ("DEREF #2", sub) 
    6969    inv     <- deValMaybe invPtr 
    7070    -- print ("DEREF #3", inv) 
     
    7575            _           -> Val sub 
    7676    val <- runEvalIO env $ evalExp (App subExp (fmap Val inv) (map Val args)) 
    77     mkVal val 
     77    case val of 
     78        PerlSV sv   -> return sv 
     79        VStr str    -> vstrToSV str 
     80        VBool bool  -> vintToSV (fromEnum bool) 
     81        VInt int    -> vintToSV int 
     82        VRat rat    -> vnumToSV rat 
     83        VNum num    -> vnumToSV num 
     84        _           -> mkValRef val 
    7885 
    7986deVal :: PugsVal -> IO Val