root/src/Pugs/Embed.hs

Revision 22340, 1.1 kB (checked in by pmurias, 2 weeks ago)

[pugs] a better error message if smop embedding is not configured

  • Property svn:mime-type set to text/plain; charset=UTF-8
  • Property svn:eol-style set to native
Line 
1{-# OPTIONS_GHC -fglasgow-exts -cpp #-}
2
3{-|
4    Embedded interpreters.
5
6>   As Beren looked into her eyes
7>   Within the shadows of her hair,
8>   The trembling starlight of the skies
9>   He saw there mirrored shimmering...
10-}
11
12module Pugs.Embed (
13    module Pugs.Embed.Perl5,
14    module Pugs.Embed.Haskell,
15    module Pugs.Embed.Pugs,
16    evalEmbedded
17    -- module Pugs.Embed.Ponie,
18) where
19import Pugs.Embed.Perl5
20import Pugs.Embed.Haskell
21import Pugs.Embed.Pugs
22#ifdef PUGS_HAVE_SMOP
23import Pugs.Embed.M0ld
24#endif
25
26evalEmbedded :: String -> String -> IO ()
27-- evalEmbedded "Pir" = evalParrot
28-- evalEmbedded "PIR" = evalParrot
29-- evalEmbedded "Parrot" = evalParrot
30evalEmbedded "Pugs" = evalPugs
31{- evalEmbedded "Haskell" code = do
32    evalHaskell code
33    return () -}
34evalEmbedded "Perl5" = \code -> do
35    interp <- initPerl5 "" Nothing
36    evalPerl5 code nullEnv 0
37    freePerl5 interp
38#ifdef PUGS_HAVE_SMOP
39evalEmbedded "M0ld" = evalM0ld
40#else
41evalEmbedded "M0ld" = \code -> putStrLn "smop embedding is disabled use ./Setup configure --user --flags=SMOP"
42#endif
43evalEmbedded s = const . fail $ "Cannot evaluate in " ++ s
Note: See TracBrowser for help on using the browser.