lamb/Lamb.hs

26 lines
794 B
Haskell
Raw Normal View History

2013-10-20 22:55:30 +00:00
-- Driver for the Lamb programming language
-- Copyright (c) 2013 darkf
-- Licensed under the terms of the zlib license, see LICENSE for details
import System.Environment (getArgs)
import System.Directory (doesFileExist)
import System.FilePath (FilePath, splitExtension)
import Interp (evalFileV, initIO, Value(UnitV))
2013-10-20 22:55:30 +00:00
-- returns Nothing if all files exist, or Just path for the first one that doesn't
allExist :: [FilePath] -> IO (Maybe FilePath)
2013-10-20 22:55:30 +00:00
allExist [] = return Nothing
2013-10-26 01:16:19 +00:00
allExist ("-":xs) = allExist xs
2013-10-20 22:55:30 +00:00
allExist (x:xs) = do
exists <- doesFileExist x
if exists then allExist xs
else return $ Just x
main = do
args <- getArgs
exist <- allExist args
case exist of
Just file -> putStrLn $ "error: file " ++ file ++ " doesn't exist"
Nothing ->
initIO >>
2013-10-29 01:48:57 +00:00
mapM_ evalFileV args