[project @ 2003-12-10 14:15:16 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / ParsePkgConf.y
index 62813d3..beb6e54 100644 (file)
@@ -5,8 +5,10 @@ module ParsePkgConf( loadPackageConfig ) where
 
 import Packages  ( PackageConfig(..), defaultPackageConfig )
 import Lexer
+import CmdLineOpts
 import FastString
 import StringBuffer
+import ErrUtils  ( mkLocMessage )
 import SrcLoc
 import Outputable
 import Panic     ( GhcException(..) )
@@ -15,20 +17,20 @@ import EXCEPTION ( throwDyn )
 }
 
 %token
- '{'           { T _ _ ITocurly }
- '}'           { T _ _ ITccurly }
- '['           { T _ _ ITobrack }
- ']'           { T _ _ ITcbrack }
- ','           { T _ _ ITcomma }
- '='           { T _ _ ITequal }
- VARID         { T _ _ (ITvarid    $$) }
- CONID         { T _ _ (ITconid    $$) }
- STRING                { T _ _ (ITstring   $$) }
+ '{'           { L _ ITocurly }
+ '}'           { L _ ITccurly }
+ '['           { L _ ITobrack }
+ ']'           { L _ ITcbrack }
+ ','           { L _ ITcomma }
+ '='           { L _ ITequal }
+ VARID         { L _ (ITvarid    $$) }
+ CONID         { L _ (ITconid    $$) }
+ STRING                { L _ (ITstring   $$) }
 
 %monad { P } { >>= } { return }
-%lexer { lexer } { T _ _ ITeof }
+%lexer { lexer } { L _ ITeof }
 %name parse
-%tokentype { Token }
+%tokentype { Located Token }
 %%
 
 pkgconf :: { [ PackageConfig ] }
@@ -96,14 +98,9 @@ loadPackageConfig :: FilePath -> IO [PackageConfig]
 loadPackageConfig conf_filename = do
    buf <- hGetStringBuffer conf_filename
    let loc  = mkSrcLoc (mkFastString conf_filename) 1 0
-       exts = ExtFlags {glasgowExtsEF = False,
-                       ffiEF         = False,
-                       arrowsEF      = False,
-                       withEF        = False,
-                       parrEF        = False}
-   case unP parse (mkPState buf loc exts) of
-       PFailed l1 l2 err -> do
-            throwDyn (InstallationError (showPFailed l1 l2 err))
+   case unP parse (mkPState buf loc defaultDynFlags) of
+       PFailed span err -> 
+           throwDyn (InstallationError (showSDoc (mkLocMessage span err)))
 
        POk _ pkg_details -> do
            return pkg_details