KiCS-debugger-0.1.0: biosphere/src/Curry/Module/TransformationDependencies.lcurry
Debug Transformation of Dependencies
====================================
This module provides the transformation of all dependencies of a Curry module.
Imports
-------
> import Make
> import System
> import Directory
> import FlatCurryGoodies
> import FileGoodies
> import List
> import Maybe
> import Distribution (getStdLibDir)
> import Transformation
> import TransformationDebugInfo (outputFile)
Interface
=========
> main = do
> params <- parseArgs
> libdir <- getStdLibDir
> maybe done mayCreateDirectory (output params)
> transformProgs libdir params
> mayCreateDirectory :: String -> IO ()
> mayCreateDirectory dir = do
> ex <- doesDirectoryExist dir
> unless ex (createDirectory dir)
Transforms all dependencies of Flat Curry file with given file name without suffix ".curry" or ".lcurry".
> transformProgs libdir p =
> make (quiet p) (modulename p)
> (testTransformNecessary libdir (quiet p) (output p))
> (\ dir _ prog -> transformFlatCurry (quiet p) (output p) dir prog Nothing)
Implementation
==============
> testTransformNecessary libdir qu out path modu = do
> ob <- obsolete qu
> (\ dir m -> outputFile dir out m)
> (map renameFile [\n -> "../" ++ n ++ ".hs.include", (++".fcy")])
> (\_ -> return ()) path modu
> if isJust ob || isJust out || not (isPrefixOf libdir path)
> then return ob
> else do unless qu (putStrLn $ modu ++ " is a standard library")
> return (Just ())
> renameFile = replaceFileName