%
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1996
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
\section[PrefixToHS]{Support routines for converting ``prefix form'' to Haskell abstract syntax}
cvBinds,
cvMonoBindsAndSigs,
cvMatches,
- cvOtherDecls
+ cvOtherDecls,
+ cvForeignDecls -- HACK
+
) where
#include "HsVersions.h"
import PrefixSyn -- and various syntaxen.
import HsSyn
import RdrHsSyn
-import HsPragmas ( noGenPragmas, noClassOpPragmas )
import BasicTypes ( RecFlag(..) )
import SrcLoc ( mkSrcLoc )
RdrMatch_Guards ln b c gd_exps d -> (c,d, map (cvGRHS sf ln) gd_exps)
cvGRHS :: SrcFile -> SrcLine -> ([RdrNameStmt], RdrNameHsExpr) -> RdrNameGRHS
-cvGRHS sf sl (g, e) = GRHS g e (mkSrcLoc sf sl)
+cvGRHS sf sl (g, e) = GRHS (g ++ [ExprStmt e locn]) locn
+ where
+ locn = mkSrcLoc sf sl
\end{code}
%************************************************************************
go acc (RdrDefaultDecl d) = DefD d : acc
go acc other = acc
-- Ignore value bindings
+
+cvForeignDecls :: RdrBinding -> [RdrNameHsDecl]
+cvForeignDecls b = go [] b
+ where
+ go acc (RdrAndBindings b1 b2) = go (go acc b1) b2
+ go acc (RdrForeignDecl d) = ForD d : acc
+ go acc other = acc
+
\end{code}