Changeset 2750
- Timestamp:
- 05/05/05 22:20:07 (4 years ago)
- svk:copy_cache_prev:
- 4271
- Location:
- src
- Files:
-
- 3 modified
-
Main.hs (modified) (2 diffs)
-
Pugs/Embed.hs (modified) (2 diffs)
-
Pugs/Run/Args.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Main.hs
r2725 r2750 65 65 run ("-c":file:_) = readFile file >>= doCheck file 66 66 67 run ("-C":backend:"-e":prog:_) = doCompile backend "-e" prog 68 run ("-C":backend:file:_) = readFile file >>= doCompile backend file 67 run ("-C":backend:"-e":prog:_) = doCompileDump backend "-e" prog 68 run ("-C":backend:file:_) = readFile file >>= doCompileDump backend file 69 70 run ("-B":backend:"-e":prog:_) = doCompileRun backend "-e" prog 71 run ("-B":backend:file:_) = readFile file >>= doCompileRun backend file 72 69 73 run ("--external":mod:"-e":prog:_) = doExternal mod "-e" prog 70 74 run ("--external":mod:file:_) = readFile file >>= doExternal mod file … … 130 134 putStrLn str 131 135 132 doCompile :: [Char] -> FilePath -> String -> IO ()136 doCompile :: [Char] -> FilePath -> String -> IO String 133 137 doCompile backend = doParseWith $ \env _ -> do 134 138 globRef <- liftSTM $ do 135 139 glob <- readTVar $ envGlobal env 136 140 newTVar $ userDefined glob 137 str <- compile backend env{ envGlobal = globRef } 141 compile backend env{ envGlobal = globRef } 142 143 doCompileDump :: [Char] -> FilePath -> String -> IO () 144 doCompileDump backend file prog = do 145 str <- doCompile backend file prog 138 146 writeFile "dump.ast" str 147 148 doCompileRun :: [Char] -> FilePath -> String -> IO () 149 doCompileRun backend file prog = do 150 str <- doCompile backend file prog 151 evalEmbedded backend str 139 152 140 153 doParseWith :: (Env -> FilePath -> IO a) -> FilePath -> String -> IO a -
src/Pugs/Embed.hs
r2725 r2750 14 14 module Pugs.Embed.Haskell, 15 15 module Pugs.Embed.Parrot, 16 evalEmbedded 16 17 -- module Pugs.Embed.Ponie, 17 18 ) where … … 21 22 -- import Pugs.Embed.Ponie 22 23 24 evalEmbedded "Parrot" code = do 25 evalParrot code 26 evalEmbedded "Haskell" code = do 27 evalHaskell code 28 return () 29 evalEmbedded "Perl5" code = do 30 interp <- initPerl5 "" 31 evalPerl5 code 32 freePerl5 interp 33 evalEmbedded s _ = fail $ "Cannot evaluate in " ++ s -
src/Pugs/Run/Args.hs
r2078 r2750 59 59 longOptions = [("--help", "-h"), ("--version", "-v")] 60 60 composable = "cdlnpw" 61 withParam = ["e", "C", "I", "M", "V:"]61 withParam = words "e C B I M V:" 62 62 prefixOpt opt = msum $ map (findArg opt) withParam 63 63 findArg arg prefix = do … … 93 93 argRank(Switch 'c') = 3 94 94 argRank(Opt "-C" _) = 4 95 argRank(Opt "-B" _) = 4 95 96 argRank(Opt "--external" _) = 5 96 97 argRank(Opt "-M" _) = 98 … … 110 111 gatherArgs("-M":mod:rest) = [Opt "-M" mod] ++ gatherArgs(rest) 111 112 gatherArgs("-C":backend:rest) = [Opt "-C" backend] ++ gatherArgs(rest) 113 gatherArgs("-B":backend:rest) = [Opt "-B" backend] ++ gatherArgs(rest) 112 114 gatherArgs("-V:":item:rest) = [Opt "-V:" item] ++ gatherArgs(rest) 113 115 gatherArgs(('-':[]):xs) = [File "-"] ++ gatherArgs(xs)
