[project @ 1998-11-13 19:34:33 by sof]
authorsof <unknown>
Fri, 13 Nov 1998 19:34:34 +0000 (19:34 +0000)
committersof <unknown>
Fri, 13 Nov 1998 19:34:34 +0000 (19:34 +0000)
Allow 'foreign import' calling conv. to be optional

ghc/compiler/parser/hsparser.y
ghc/compiler/reader/ReadPrefix.lhs

index 8a691fd..30bfa6f 100644 (file)
@@ -555,6 +555,8 @@ callconv: STDCALL   { $$ = CALLCONV_STDCALL;  }
        | C_CALL        { $$ = CALLCONV_CCALL;    }
        | PASCAL        { $$ = CALLCONV_PASCAL;   }
        | FASTCALL      { $$ = CALLCONV_FASTCALL; }
+/* If you leave out the specification of a calling convention, you'll get C's. */
+        | /*empty*/     { $$ = CALLCONV_CCALL;    }
        ;
 
 ext_name: STRING       { $$ = mkjust(lsing($1)); }
index 33ef93b..8024e08 100644 (file)
@@ -608,7 +608,7 @@ wlkBinding binding
          wlkHsType ty                             `thenUgn` \ h_ty ->
          wlkExtName ext_name                      `thenUgn` \ h_ext_name ->
          rdCallConv cconv                         `thenUgn` \ h_cconv ->
-         rdImpExp imp_exp (cvFlag unsafe_flag)    `thenUgn` \ h_imp_exp ->
+         rdForKind imp_exp (cvFlag unsafe_flag)    `thenUgn` \ h_imp_exp ->
          returnUgn (RdrForeignDecl (ForeignDecl h_id h_imp_exp h_ty h_ext_name h_cconv src_loc))
 
       a_sig_we_hope ->
@@ -967,8 +967,9 @@ rdCallConv x = returnUgn x
 rdForKind :: Int -> Bool -> UgnM ForKind
 rdForKind 0 isUnsafe = -- foreign import
   returnUgn (FoImport isUnsafe)
-rdImpExp 1 _ = -- foreign export
+rdForKind 1 _ = -- foreign export
   returnUgn FoExport
-rdImpExp 2 _ = -- foreign label
+rdForKind 2 _ = -- foreign label
   returnUgn FoLabel
+
 \end{code}