packages feed

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