The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
{-# OPTIONS_GHC -fglasgow-exts -cpp #-}

{-|
    Embedded interpreters.

>   As Beren looked into her eyes
>   Within the shadows of her hair,
>   The trembling starlight of the skies
>   He saw there mirrored shimmering...
-}

module Pugs.Embed (
    module Pugs.Embed.Perl5,
    module Pugs.Embed.Haskell,
    module Pugs.Embed.Parrot,
    evalEmbedded
    -- module Pugs.Embed.Ponie,
) where
import Pugs.Embed.Perl5
import Pugs.Embed.Haskell
import Pugs.Embed.Parrot
-- import Pugs.Embed.Ponie

evalEmbedded :: String -> String -> IO ()
evalEmbedded "Parrot"  code = do
    evalParrot code
{- evalEmbedded "Haskell" code = do
    evalHaskell code
    return () -}
evalEmbedded "Perl5" code = do
    interp <- initPerl5 "" (Nothing :: Maybe ())
    evalPerl5 code nullSV 0
    freePerl5 interp
evalEmbedded s _ = fail $ "Cannot evaluate in " ++ s