Changeset 2750

Show
Ignore:
Timestamp:
05/05/05 22:20:07 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
4271
Message:

* pugs -BParrot examples/mandel.p6

Location:
src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • src/Main.hs

    r2725 r2750  
    6565run ("-c":file:_)               = readFile file >>= doCheck file 
    6666 
    67 run ("-C":backend:"-e":prog:_)           = doCompile backend "-e" prog 
    68 run ("-C":backend:file:_)                = readFile file >>= doCompile backend file 
     67run ("-C":backend:"-e":prog:_)           = doCompileDump backend "-e" prog 
     68run ("-C":backend:file:_)                = readFile file >>= doCompileDump backend file 
     69 
     70run ("-B":backend:"-e":prog:_)           = doCompileRun backend "-e" prog 
     71run ("-B":backend:file:_)                = readFile file >>= doCompileRun backend file 
     72 
    6973run ("--external":mod:"-e":prog:_)    = doExternal mod "-e" prog 
    7074run ("--external":mod:file:_)         = readFile file >>= doExternal mod file 
     
    130134    putStrLn str 
    131135 
    132 doCompile :: [Char] -> FilePath -> String -> IO () 
     136doCompile :: [Char] -> FilePath -> String -> IO String 
    133137doCompile backend = doParseWith $ \env _ -> do 
    134138    globRef <- liftSTM $ do 
    135139        glob <- readTVar $ envGlobal env 
    136140        newTVar $ userDefined glob 
    137     str     <- compile backend env{ envGlobal = globRef } 
     141    compile backend env{ envGlobal = globRef } 
     142 
     143doCompileDump :: [Char] -> FilePath -> String -> IO () 
     144doCompileDump backend file prog = do 
     145    str <- doCompile backend file prog 
    138146    writeFile "dump.ast" str 
     147 
     148doCompileRun :: [Char] -> FilePath -> String -> IO () 
     149doCompileRun backend file prog = do 
     150    str <- doCompile backend file prog 
     151    evalEmbedded backend str 
    139152 
    140153doParseWith :: (Env -> FilePath -> IO a) -> FilePath -> String -> IO a 
  • src/Pugs/Embed.hs

    r2725 r2750  
    1414    module Pugs.Embed.Haskell, 
    1515    module Pugs.Embed.Parrot, 
     16    evalEmbedded 
    1617    -- module Pugs.Embed.Ponie, 
    1718) where 
     
    2122-- import Pugs.Embed.Ponie 
    2223 
     24evalEmbedded "Parrot"  code = do 
     25    evalParrot code 
     26evalEmbedded "Haskell" code = do 
     27    evalHaskell code 
     28    return () 
     29evalEmbedded "Perl5" code = do 
     30    interp <- initPerl5 "" 
     31    evalPerl5 code 
     32    freePerl5 interp 
     33evalEmbedded s _ = fail $ "Cannot evaluate in " ++ s 
  • src/Pugs/Run/Args.hs

    r2078 r2750  
    5959longOptions = [("--help", "-h"), ("--version", "-v")] 
    6060composable = "cdlnpw" 
    61 withParam = ["e", "C", "I", "M", "V:"] 
     61withParam = words "e C B I M V:" 
    6262prefixOpt opt = msum $ map (findArg opt) withParam 
    6363findArg arg prefix = do 
     
    9393argRank(Switch 'c')         = 3 
    9494argRank(Opt "-C" _)         = 4 
     95argRank(Opt "-B" _)         = 4 
    9596argRank(Opt "--external" _) = 5 
    9697argRank(Opt "-M" _)         = 98 
     
    110111gatherArgs("-M":mod:rest)         = [Opt "-M" mod] ++ gatherArgs(rest) 
    111112gatherArgs("-C":backend:rest)     = [Opt "-C" backend] ++ gatherArgs(rest) 
     113gatherArgs("-B":backend:rest)     = [Opt "-B" backend] ++ gatherArgs(rest) 
    112114gatherArgs("-V:":item:rest)       = [Opt "-V:" item] ++ gatherArgs(rest) 
    113115gatherArgs(('-':[]):xs)           = [File "-"] ++ gatherArgs(xs)