----------------------------------------------------------------------------- -- | -- Module : ForSyDe.Deep.Backend.VHDL.FileIO -- Copyright : (c) ES Group, KTH/ICT/ES 2007-2013 -- License : BSD-style (see the file LICENSE) -- -- Maintainer : forsyde-dev@ict.kth.se -- Stability : experimental -- Portability : portable -- -- Functions working with files in the VHDL backend. -- ----------------------------------------------------------------------------- module ForSyDe.Deep.Backend.VHDL.FileIO (writeDesignFile) where import ForSyDe.Deep.Backend.VHDL.AST import ForSyDe.Deep.Backend.VHDL.Ppr() -- instances import qualified ForSyDe.Deep.Backend.Ppr as ForSyDePpr (ppr) import System.IO import Text.PrettyPrint.HughesPJ -- | Write a design file to a file in disk writeDesignFile :: DesignFile -> FilePath -> IO () writeDesignFile df fp = do handle <- openFile fp WriteMode hPutStrLn handle "-- Automatically generated by ForSyDe" hPutStr handle $ (renderStyle mystyle . ForSyDePpr.ppr) df hClose handle where mystyle = style{lineLength=80, ribbonsPerLine=1}