|
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 | |
|---|
| 12 | module 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 |
|---|
| 19 | import Pugs.Embed.Perl5 |
|---|
| 20 | import Pugs.Embed.Haskell |
|---|
| 21 | import Pugs.Embed.Pugs |
|---|
| 22 | #ifdef PUGS_HAVE_SMOP |
|---|
| 23 | import Pugs.Embed.M0ld |
|---|
| 24 | #endif |
|---|
| 25 | |
|---|
| 26 | evalEmbedded :: String -> String -> IO () |
|---|
| 27 | -- evalEmbedded "Pir" = evalParrot |
|---|
| 28 | -- evalEmbedded "PIR" = evalParrot |
|---|
| 29 | -- evalEmbedded "Parrot" = evalParrot |
|---|
| 30 | evalEmbedded "Pugs" = evalPugs |
|---|
| 31 | {- evalEmbedded "Haskell" code = do |
|---|
| 32 | evalHaskell code |
|---|
| 33 | return () -} |
|---|
| 34 | evalEmbedded "Perl5" = \code -> do |
|---|
| 35 | interp <- initPerl5 "" Nothing |
|---|
| 36 | evalPerl5 code nullEnv 0 |
|---|
| 37 | freePerl5 interp |
|---|
| 38 | #ifdef PUGS_HAVE_SMOP |
|---|
| 39 | evalEmbedded "M0ld" = evalM0ld |
|---|
| 40 | #else |
|---|
| 41 | evalEmbedded "M0ld" = \code -> putStrLn "smop embedding is disabled use ./Setup configure --user --flags=SMOP" |
|---|
| 42 | #endif |
|---|
| 43 | evalEmbedded s = const . fail $ "Cannot evaluate in " ++ s |
|---|