ghc-parser 0.2.2.0 → 0.2.3.0
raw patch · 3 files changed
+77/−14 lines, 3 filesdep ~ghc
Dependency ranges changed: ghc
Files
- generic-src/Language/Haskell/GHC/Parser.hs +30/−10
- ghc-parser.cabal +7/−4
- src-9.0/Language/Haskell/GHC/HappyParser.hs +40/−0
generic-src/Language/Haskell/GHC/Parser.hs view
@@ -28,24 +28,36 @@ import Data.List (intercalate, findIndex, isInfixOf) import Data.Char (isAlphaNum) +#if MIN_VERSION_ghc(9,0,0)+import GHC.Data.Bag+import GHC.Driver.Session (parseDynamicFilePragma)+import GHC.Data.FastString+import GHC.Parser.Header (getOptions)+import GHC.Parser.Lexer hiding (buffer)+import GHC.Data.OrdList+import GHC.Utils.Panic (handleGhcException)+import qualified GHC.Types.SrcLoc as SrcLoc+import GHC.Data.StringBuffer hiding (len)+#else import Bag import DynFlags (parseDynamicFilePragma)+import FastString+import HeaderInfo (getOptions)+import Lexer hiding (buffer)+import OrdList+import Panic (handleGhcException)+import qualified SrcLoc as SrcLoc+import StringBuffer hiding (len)+#endif #if MIN_VERSION_ghc(8,10,0) #else import ErrUtils hiding (ErrMsg) #endif-import FastString #if MIN_VERSION_ghc(8,4,0) import GHC hiding (Located, Parsed, parser) #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) import qualified Language.Haskell.GHC.HappyParser as Parse @@ -115,9 +127,10 @@ #endif parserTypeSignature = Parser Parse.fullTypeSignature -#if MIN_VERSION_ghc(8,4,0)+#if MIN_VERSION_ghc(9,0,0)+parserModule :: Parser (SrcLoc.Located HsModule)+#elif MIN_VERSION_ghc(8,4,0) parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))- #else parserModule :: Parser (SrcLoc.Located (HsModule RdrName)) #endif@@ -136,7 +149,14 @@ toParseOut $ unP parser parseState where toParseOut :: ParseResult a -> ParseOutput a-#if MIN_VERSION_ghc(8,10,0)+#if MIN_VERSION_ghc(9,0,0)+ toParseOut (PFailed pstate) =+ let realSpan = SrcLoc.psRealSpan $ last_loc pstate+ errMsg = printErrorBag $ snd $ (messages pstate) flags+ ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan+ col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan+ in Failure errMsg $ Loc ln col+#elif MIN_VERSION_ghc(8,10,0) toParseOut (PFailed pstate) = let realSpan = last_loc pstate errMsg = printErrorBag $ snd $ (messages pstate) flags
ghc-parser.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: ghc-parser-version: 0.2.2.0+version: 0.2.3.0 synopsis: Haskell source parser from GHC. -- description: homepage: https://github.com/gibiansky/IHaskell@@ -14,7 +14,7 @@ category: Language build-type: Simple -- extra-source-files:-cabal-version: >=1.16+cabal-version: 1.16 library build-tools: happy, cpphs@@ -24,7 +24,7 @@ -- other-modules: -- other-extensions: build-depends: base >=4.9 && < 5,- ghc >=8.0 && <8.11+ ghc >=8.0 && <9.1 if impl(ghc >= 8.0) && impl(ghc < 8.4) hs-source-dirs: generic-src src-8.0@@ -32,7 +32,10 @@ if impl(ghc >= 8.4) && impl(ghc < 8.10) hs-source-dirs: generic-src src-8.4 else- hs-source-dirs: generic-src src-8.10+ if impl(ghc >= 8.10) && impl(ghc < 9.0)+ hs-source-dirs: generic-src src-8.10+ else+ hs-source-dirs: generic-src src-9.0 default-language: Haskell2010
+ src-9.0/Language/Haskell/GHC/HappyParser.hs view
@@ -0,0 +1,40 @@+module Language.Haskell.GHC.HappyParser+ ( fullStatement+ , fullImport+ , fullDeclaration+ , fullExpression+ , fullTypeSignature+ , fullModule+ ) where++import GHC.Parser+import GHC.Types.SrcLoc++-- compiler/hsSyn+import GHC.Hs++-- compiler/utils+import GHC.Data.OrdList++-- compiler/parser+import GHC.Parser.Lexer++import GHC.Parser.PostProcess (runECP_P)++fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))+fullStatement = parseStmt++fullImport :: P (LImportDecl GhcPs)+fullImport = parseImport++fullDeclaration :: P (OrdList (LHsDecl GhcPs))+fullDeclaration = fmap unitOL parseDeclaration++fullExpression :: P (LHsExpr GhcPs)+fullExpression = runECP_P =<< parseExpression++fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))+fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature++fullModule :: P (Located HsModule)+fullModule = parseModule