From d9d7ceaa9f77c3d44a51405b71bb9fd4a44b6588 Mon Sep 17 00:00:00 2001 From: igloo Date: Fri, 15 Aug 2003 15:53:01 +0000 Subject: [PATCH] [project @ 2003-08-15 15:53:00 by igloo] Add support for splicing in foreign exports. --- ghc/compiler/hsSyn/Convert.lhs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 -- 1.7.10.4