From: igloo Date: Fri, 15 Aug 2003 15:53:01 +0000 (+0000) Subject: [project @ 2003-08-15 15:53:00 by igloo] X-Git-Tag: Approx_11550_changesets_converted~578 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d9d7ceaa9f77c3d44a51405b71bb9fd4a44b6588 [project @ 2003-08-15 15:53:00 by igloo] Add support for splicing in foreign exports. --- diff --git a/ghc/compiler/hsSyn/Convert.lhs b/ghc/compiler/hsSyn/Convert.lhs index a5f6994..ddc11ad 100644 --- a/ghc/compiler/hsSyn/Convert.lhs +++ b/ghc/compiler/hsSyn/Convert.lhs @@ -33,8 +33,10 @@ import TyCon ( DataConDetails(..) ) import Type ( Type ) import BasicTypes( Boxity(..), RecFlag(Recursive), NewOrData(..), StrictnessMark(..) ) -import ForeignCall ( Safety(..), CCallConv(..), CCallTarget(..) ) -import HsDecls ( CImportSpec(..), ForeignImport(..), ForeignDecl(..) ) +import ForeignCall ( Safety(..), CCallConv(..), CCallTarget(..), + CExportSpec(..)) +import HsDecls ( CImportSpec(..), ForeignImport(..), ForeignExport(..), + ForeignDecl(..) ) import FastString( FastString, mkFastString, nilFS ) import Char ( ord, isAscii, isAlphaNum, isAlpha ) import List ( partition ) @@ -120,6 +122,13 @@ cvt_top (ForeignD (ImportF callconv safety from nm typ)) Threadsafe -> PlaySafe True parsed = parse_ccall_impent nm from +cvt_top (ForeignD (ExportF callconv as nm typ)) + = let e = CExport (CExportStatic (mkFastString as) callconv') + in Left $ ForD (ForeignExport (vName nm) (cvtType typ) e False loc0) + where callconv' = case callconv of + CCall -> CCallConv + StdCall -> StdCallConv + parse_ccall_impent :: String -> String -> Maybe (FastString, CImportSpec) parse_ccall_impent nm s = case lex_ccall_impent s of