hurdle-0.1.0: src/Hurdle/DefOutput.hs
{-# OPTIONS -Wall #-}
--------------------------------------------------------------------------------
-- |
-- Module : Hurdle.DefOutput
-- Copyright : (c) Stephen Tetley 2009
-- License : BSD3
--
-- Maintainer : Stephen Tetley <stephen.tetley@gmail.com>
-- Stability : highly unstable
-- Portability :
--
-- Print in .def format
--
--------------------------------------------------------------------------------
module Hurdle.DefOutput where
import Hurdle.Datatypes
import Text.PrettyPrint.HughesPJ
printDef :: Image -> IO ()
printDef = putStr . defText
defText :: Image -> String
defText = renderStyle (Style PageMode 80 1.5) . defs
defs :: Image -> Doc
defs a = text "LIBRARY" <+> text (ed_dll_name $ image_export_data a)
$+$ text "EXPORTS"
$+$ outputExports ( image_export_data a)
outputExports :: ExportData -> Doc
outputExports = vcat . map text . ed_name_table