Changeset 4463 for src/Pugs/Types
- Timestamp:
- 06/08/05 21:55:10 (4 years ago)
- svk:copy_cache_prev:
- 6052
- Location:
- src/Pugs/Types
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Types/Array.hs
r4270 r4463 251 251 array_deleteElem a _ = retConstError $ VStr $ show a 252 252 253 evalPerl5Sub:: String -> [PerlSV] -> Eval Val254 evalPerl5Subcode args = do253 perl5EvalApply :: String -> [PerlSV] -> Eval Val 254 perl5EvalApply code args = do 255 255 env <- ask 256 256 rv <- liftIO $ do … … 266 266 array_fetchVal sv idx = do 267 267 idxSV <- fromVal $ castV idx 268 evalPerl5Sub"sub { $_[0]->[$_[1]] }" [sv, idxSV]268 perl5EvalApply "sub { $_[0]->[$_[1]] }" [sv, idxSV] 269 269 array_clear sv = do 270 evalPerl5Sub"sub { undef @{$_[0]} }" [sv]270 perl5EvalApply "sub { undef @{$_[0]} }" [sv] 271 271 return () 272 272 array_storeVal sv idx val = do 273 273 idxSV <- fromVal $ castV idx 274 274 valSV <- fromVal val 275 evalPerl5Sub"sub { $_[0]->[$_[1]] = $_[2] }" [sv, idxSV, valSV]275 perl5EvalApply "sub { $_[0]->[$_[1]] = $_[2] }" [sv, idxSV, valSV] 276 276 return () 277 277 array_deleteElem sv idx = do 278 278 idxSV <- fromVal $ castV idx 279 evalPerl5Sub"sub { delete $_[0]->[$_[1]] }" [sv, idxSV]280 return () 279 perl5EvalApply "sub { delete $_[0]->[$_[1]] }" [sv, idxSV] 280 return () -
src/Pugs/Types/Hash.hs
r4102 r4463 122 122 hash_fetchVal sv key = do 123 123 keySV <- fromVal $ castV key 124 evalPerl5Sub"sub { $_[0]->{$_[1]} }" [sv, keySV]124 perl5EvalApply "sub { $_[0]->{$_[1]} }" [sv, keySV] 125 125 hash_clear sv = do 126 evalPerl5Sub"sub { undef %{$_[0]} }" [sv]126 perl5EvalApply "sub { undef %{$_[0]} }" [sv] 127 127 return () 128 128 hash_storeVal sv key val = do 129 129 keySV <- fromVal $ castV key 130 130 valSV <- fromVal val 131 evalPerl5Sub"sub { $_[0]->{$_[1]} = $_[2] }" [sv, keySV, valSV]131 perl5EvalApply "sub { $_[0]->{$_[1]} = $_[2] }" [sv, keySV, valSV] 132 132 return () 133 133 hash_fetchKeys sv = do 134 keysSV <- evalPerl5Sub"sub { join $/, keys %{$_[0]} }" [sv]134 keysSV <- perl5EvalApply "sub { join $/, keys %{$_[0]} }" [sv] 135 135 keysStr <- fromVal keysSV 136 136 return $ lines keysStr 137 137 hash_deleteElem sv key = do 138 138 keySV <- fromVal $ castV key 139 evalPerl5Sub"sub { delete $_[0]->{$_[1]} }" [sv, keySV]139 perl5EvalApply "sub { delete $_[0]->{$_[1]} }" [sv, keySV] 140 140 return () 141 141 hash_isEmpty sv = do 142 fromVal =<< evalPerl5Sub"sub { !!%{$_[0]} }" [sv]142 fromVal =<< perl5EvalApply "sub { !!%{$_[0]} }" [sv]
