From 055c0d0d5a5bb0dc75904fe53df7f2e4f5732a8f Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 21 May 2008 09:26:44 +0000 Subject: GF/src is now for 2.9, and the new sources are in src-3.0 - keep it this way until the release of GF 3 --- src-2.9/Transfer/CompilerAPI.hs | 75 ----------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 src-2.9/Transfer/CompilerAPI.hs (limited to 'src-2.9/Transfer/CompilerAPI.hs') diff --git a/src-2.9/Transfer/CompilerAPI.hs b/src-2.9/Transfer/CompilerAPI.hs deleted file mode 100644 index 38cb58dd0..000000000 --- a/src-2.9/Transfer/CompilerAPI.hs +++ /dev/null @@ -1,75 +0,0 @@ -module Transfer.CompilerAPI where - -import Transfer.Syntax.Lex -import Transfer.Syntax.Par -import Transfer.Syntax.Print -import Transfer.Syntax.Abs -import Transfer.Syntax.Layout - -import Transfer.ErrM -import Transfer.SyntaxToCore - -import Transfer.PathUtil - -import Data.List -import System.Directory - - --- | Compile a source module file to a a code file. -compileFile :: [FilePath] -- ^ directories to look for imported modules in - -> FilePath -- ^ source module file - -> IO FilePath -- ^ path to the core file that was written -compileFile path f = do - ds <- loadModule path f - s <- compile ds - writeFile coreFile s - return coreFile - where coreFile = replaceFilenameSuffix f "trc" - --- | Compile a self-contained list of declarations to a core program. -compile :: Monad m => [Decl] -> m String -compile m = return (printTree $ declsToCore m) - --- | Load a source module file and all its dependencies. -loadModule :: [FilePath] -- ^ directories to look for imported modules in - -> FilePath -- ^ source module file - -> IO [Decl] -loadModule = loadModule_ [] - where - loadModule_ ms path f = - do - s <- readFile f - Module is ds <- case pModule (myLLexer s) of - Bad e -> fail $ "Parse error in " ++ f ++ ": " ++ e - Ok m -> return m - let load = [ i | Import (Ident i) <- is ] \\ ms - let path' = directoryOf f : path - files <- mapM (findFile path' . (++".tra")) load - dss <- mapM (loadModule_ (load++ms) path) files - return $ concat (dss++[ds]) - -myLLexer :: String -> [Token] -myLLexer = resolveLayout True . myLexer - --- | Find a file in one of the given directories. --- Fails if the file was not found. -findFile :: [FilePath] -- ^ directories to look in - -> FilePath -- ^ file name to find - -> IO FilePath -findFile path f = - do - mf <- findFileM path f - case mf of - Nothing -> fail $ f ++ " not found in path: " ++ show path - Just f' -> return f' - --- | Find a file in one of the given directories. -findFileM :: [FilePath] -- ^ directories to look in - -> FilePath -- ^ file name to find - -> IO (Maybe FilePath) -findFileM [] _ = return Nothing -findFileM (p:ps) f = - do - let f' = p ++ "/" ++ f - e <- doesFileExist f' - if e then return (Just f') else findFileM ps f -- cgit v1.2.3