[project @ 2001-05-24 13:59:09 by simonpj]
authorsimonpj <unknown>
Thu, 24 May 2001 13:59:12 +0000 (13:59 +0000)
committersimonpj <unknown>
Thu, 24 May 2001 13:59:12 +0000 (13:59 +0000)
commitcbdeae8fc8a1c72d20d89241acae8a313214b51c
tree2bde25b0907554080b9ee1e92446f575f87e04eb
parentf70aaa982380a9d210ca136983eb62e7b35062c7
[project @ 2001-05-24 13:59:09 by simonpj]
------------------------------------------------------
More stuff towards generalising 'foreign' declarations
------------------------------------------------------

This is the second step towards generalising 'foreign' declarations to
handle langauges other than C.  Now I can handle

  foreign import dotnet type T
  foreign import dotnet "void Foo.Baz.f( T )" f :: T -> IO ()

** WARNING **
I believe that all the foreign stuff for C should
work exactly as before, but I have not tested it
thoroughly.  Sven, Manuel, Marcin: please give it a
whirl and compare old with new output.

Lots of fiddling around with data types.  The main changes are

* HsDecls.lhs
The ForeignDecl type and its friends
Note also the ForeignType constructor to TyClDecl

* ForeignCall.lhs
Here's where the stuff that survives right through
compilation lives

* TcForeign.lhs DsForeign.lhs
Substantial changes driven by the new data types

* Parser.y ParseIface.y RnSource
Just what you'd expect
28 files changed:
ghc/compiler/absCSyn/AbsCUtils.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/deSugar/DsCCall.lhs
ghc/compiler/deSugar/DsForeign.lhs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/nativeGen/StixPrim.lhs
ghc/compiler/parser/Lex.lhs
ghc/compiler/parser/ParseUtil.lhs
ghc/compiler/parser/Parser.y
ghc/compiler/prelude/ForeignCall.lhs
ghc/compiler/prelude/TysPrim.lhs
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/RnHsSyn.lhs
ghc/compiler/rename/RnIfaces.lhs
ghc/compiler/rename/RnNames.lhs
ghc/compiler/rename/RnSource.lhs
ghc/compiler/typecheck/TcEnv.lhs
ghc/compiler/typecheck/TcForeign.lhs
ghc/compiler/typecheck/TcHsSyn.lhs
ghc/compiler/typecheck/TcInstDcls.lhs
ghc/compiler/typecheck/TcModule.lhs
ghc/compiler/typecheck/TcTyClsDecls.lhs
ghc/compiler/typecheck/TcTyDecls.lhs
ghc/compiler/types/PprType.lhs
ghc/compiler/types/TyCon.lhs
ghc/compiler/types/Type.lhs