diff options
author | Jasper Van der Jeugt <m@jaspervdj.be> | 2013-08-20 19:28:23 +0200 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2013-08-20 19:28:23 +0200 |
commit | 2188b248a37157ba1f5c35a8674890ed80d0a3ef (patch) | |
tree | 7a3300fe23de7f8abe515e995a81c1f6265ef12a /src | |
parent | 9b0822bc65f9d702f9591ad339a8384ac23c8537 (diff) | |
download | stylish-haskell-2188b248a37157ba1f5c35a8674890ed80d0a3ef.tar.gz |
Bump HSE dependency to 1.14.*0.5.8.0
Diffstat (limited to 'src')
-rw-r--r-- | src/Language/Haskell/Stylish/Parse.hs | 39 |
1 files changed, 12 insertions, 27 deletions
diff --git a/src/Language/Haskell/Stylish/Parse.hs b/src/Language/Haskell/Stylish/Parse.hs index d9e0c9b..ac5aafb 100644 --- a/src/Language/Haskell/Stylish/Parse.hs +++ b/src/Language/Haskell/Stylish/Parse.hs @@ -36,43 +36,28 @@ dropBom str = str -------------------------------------------------------------------------------- --- | If --- --- > {-# LANGUAGE Haskell2010 #-} --- --- is specified, we need to add a number of extra extensions -addHaskell2010Extensions :: [H.Extension] -> [H.Extension] -addHaskell2010Extensions exts - -- For some reason Haskell2010 is not supported yet in haskell-src-exts - | H.UnknownExtension "Haskell2010" `elem` exts = exts ++ extra - | otherwise = exts - where - extra = - [ H.PatternGuards - , H.RelaxedPolyRec - , H.EmptyDataDecls - , H.ForeignFunctionInterface - , H.UnknownExtension "NoNPlusKPatterns" -- Not supported yet in HSE - ] - - --------------------------------------------------------------------------------- -- | Abstraction over HSE's parsing parseModule :: Extensions -> Maybe FilePath -> String -> Either String Module parseModule extraExts mfp string = do -- Determine the extensions: those specified in the file and the extra ones - let noBom = dropBom string - extraExts' = map H.classifyExtension extraExts - fileExts = fromMaybe [] $ H.readExtensions noBom - exts = addHaskell2010Extensions $ fileExts ++ extraExts' + let noBom = dropBom string + extraExts' = map H.classifyExtension extraExts + (lang, fileExts) = fromMaybe (Nothing, []) $ H.readExtensions noBom + exts = fileExts ++ extraExts' -- Parsing options... fp = fromMaybe "<unknown>" mfp mode = H.defaultParseMode - {H.extensions = exts, H.fixities = Nothing} + { H.extensions = exts + , H.fixities = Nothing + , H.baseLanguage = case lang of + Nothing -> H.baseLanguage H.defaultParseMode + Just l -> l + } -- Preprocessing - noCpp = if H.CPP `elem` exts then unCpp noBom else noBom + noCpp = + if H.EnableExtension H.CPP `elem` exts then unCpp noBom else noBom case H.parseModuleWithComments mode noCpp of H.ParseOk md -> return md |