diff --git a/generic-src/Language/Haskell/GHC/Parser.hs b/generic-src/Language/Haskell/GHC/Parser.hs
--- a/generic-src/Language/Haskell/GHC/Parser.hs
+++ b/generic-src/Language/Haskell/GHC/Parser.hs
@@ -18,6 +18,7 @@
   parserTypeSignature,
   parserModule,
   parserExpression,
+  parsePragmasIntoDynFlags,
 
   -- Haskell string preprocessing.
   removeComments,
@@ -28,6 +29,7 @@
 import Data.Char (isAlphaNum)
 
 import Bag
+import DynFlags (parseDynamicFilePragma)
 import ErrUtils hiding (ErrMsg)
 import FastString
 #if MIN_VERSION_ghc(8,4,0)
@@ -35,8 +37,10 @@
 #else
 import GHC hiding (Located, parser)
 #endif
+import HeaderInfo (getOptions)
 import Lexer hiding (buffer)
 import OrdList
+import Panic (handleGhcException)
 import qualified SrcLoc as SrcLoc
 import StringBuffer hiding (len)
 
@@ -152,6 +156,21 @@
 
     -- Convert the bag of errors into an error string.
     printErrorBag bag = joinLines . map show $ bagToList bag
+
+-- Taken from http://blog.shaynefletcher.org/2019/06/have-ghc-parsing-respect-dynamic-pragmas.html
+parsePragmasIntoDynFlags :: DynFlags -> FilePath -> String -> IO (Maybe DynFlags)
+parsePragmasIntoDynFlags flags filepath str =
+  catchErrors $ do
+    let opts = getOptions flags (stringToStringBuffer str) filepath
+    (flags', _, _) <- parseDynamicFilePragma flags opts
+    return $ Just flags'
+  where
+    catchErrors :: IO (Maybe DynFlags) -> IO (Maybe DynFlags)
+    catchErrors act =
+      handleGhcException reportErr (handleSourceError reportErr act)
+    reportErr e = do
+      putStrLn $ "error : " ++ show e
+      return Nothing
 
 -- Not the same as 'unlines', due to trailing \n
 joinLines :: [String] -> String
diff --git a/ghc-parser.cabal b/ghc-parser.cabal
--- a/ghc-parser.cabal
+++ b/ghc-parser.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                ghc-parser
-version:             0.2.0.3
+version:             0.2.1.0
 synopsis:            Haskell source parser from GHC.
 -- description:
 homepage:            https://github.com/gibiansky/IHaskell
@@ -24,7 +24,7 @@
   -- other-modules:
   -- other-extensions:
   build-depends:       base                 >=4.9 && < 5,
-                       ghc                  >=8.0 && <8.7
+                       ghc                  >=8.0 && <8.9
 
   if impl(ghc >= 8.0) && impl(ghc < 8.4)
     hs-source-dirs:    generic-src src-8.0
