Changeset 4655 for src/Pugs/Embed.hs

Show
Ignore:
Timestamp:
06/14/05 23:42:15 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
6394
Message:

* PAST compileation and PIR emission, phase 1, works! Try this,

which generates, according to Leo, "100% correct" PIR:

% ./pugs -C PIR -e 'say "Hello, World!"'
% parrot dump.ast
Hello, World!

* Also because it's now a Proper Compiler, we have this now:

% ./pugs -C PIR -e '"Hello, World!"'
*** Literal value used in constant expression: VStr "Hello, World!"

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Embed.hs

    r3934 r4655  
    2323 
    2424evalEmbedded :: String -> String -> IO () 
    25 evalEmbedded "Parrot"  code = do 
    26     evalParrot code 
     25evalEmbedded "Pir" = evalParrot 
     26evalEmbedded "PIR" = evalParrot 
     27evalEmbedded "Parrot" = evalParrot 
    2728{- evalEmbedded "Haskell" code = do 
    2829    evalHaskell code 
    2930    return () -} 
    30 evalEmbedded "Perl5" code = do 
     31evalEmbedded "Perl5" = \code -> do 
    3132    interp <- initPerl5 "" (Nothing :: Maybe ()) 
    3233    evalPerl5 code nullSV 0 
    3334    freePerl5 interp 
    34 evalEmbedded s _ = fail $ "Cannot evaluate in " ++ s 
     35evalEmbedded s = const . fail $ "Cannot evaluate in " ++ s