Show
Ignore:
Timestamp:
05/25/05 05:35:18 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5385
Message:

* string and integer parameter passing.

Files:
1 modified

Legend:

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

    r3859 r3863  
    1010type PerlSV = () 
    1111 
     12constFail :: a -> IO b 
     13constFail = const $ fail "perl5 not embedded" 
     14 
    1215initPerl5 :: String -> IO PerlInterpreter 
    1316initPerl5 _ = return () 
    14  
    15 evalPerl5 :: String -> IO PerlSV 
    16 evalPerl5 _ = fail "perl5 not embedded" 
    1717 
    1818freePerl5 :: PerlInterpreter -> IO () 
    1919freePerl5 _ = return () 
    2020 
     21evalPerl5 :: String -> IO PerlSV 
     22evalPerl5 = constFail 
     23 
    2124svToVStr :: PerlSV -> IO String 
    22 svToVStr _ = fail "perl5 not embedded" 
     25svToVStr = constFail 
     26 
     27vstrToSV :: String -> IO PerlSV 
     28vstrToSV = constFail 
     29 
     30vintToSV :: Integer -> IO PerlSV 
     31vintToSV = constFail 
    2332 
    2433callPerl5 :: String -> [PerlSV] -> IO PerlSV 
    25 callPerl5 _ _ = fail "perl5 not embedded" 
     34callPerl5 _ = constFail 
    2635 
    2736#else 
     
    5362foreign import ccall "perl5.h perl5_SvPV" 
    5463    perl5_SvPV :: PerlSV -> IO CString 
     64foreign import ccall "perl5.h perl5_newSVpv" 
     65    perl5_newSVpv :: CString -> IO PerlSV 
     66foreign import ccall "perl5.h perl5_newSViv" 
     67    perl5_newSViv :: CInt -> IO PerlSV 
    5568foreign import ccall "perl5.h perl5_call" 
    5669    perl5_call :: CString -> CInt -> Ptr PerlSV -> IO PerlSV 
     
    6679svToVStr :: PerlSV -> IO String 
    6780svToVStr sv = peekCString =<< perl5_SvPV sv 
     81 
     82vstrToSV :: String -> IO PerlSV 
     83vstrToSV str = withCString str perl5_newSVpv  
     84 
     85vintToSV :: Integer -> IO PerlSV 
     86vintToSV int = perl5_newSViv (fromIntegral int) 
    6887 
    6988callPerl5 :: String -> [PerlSV] -> IO PerlSV