ghc-parser 0.2.1.0 → 0.2.2.0
raw patch · 3 files changed
+67/−7 lines, 3 filesdep ~ghc
Dependency ranges changed: ghc
Files
- generic-src/Language/Haskell/GHC/Parser.hs +21/−4
- ghc-parser.cabal +6/−3
- src-8.10/Language/Haskell/GHC/HappyParser.hs +40/−0
generic-src/Language/Haskell/GHC/Parser.hs view
@@ -30,7 +30,10 @@ import Bag import DynFlags (parseDynamicFilePragma)+#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)@@ -133,23 +136,37 @@ toParseOut $ unP parser parseState where toParseOut :: ParseResult a -> ParseOutput a-#if MIN_VERSION_ghc(8,4,0)+#if MIN_VERSION_ghc(8,10,0)+ toParseOut (PFailed pstate) =+ let realSpan = 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,4,0) toParseOut (PFailed _ spn@(RealSrcSpan realSpan) err) =+ let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err+ ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan+ col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan+ in Failure errMsg $ Loc ln col #else toParseOut (PFailed spn@(RealSrcSpan realSpan) err) =-#endif let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan in Failure errMsg $ Loc ln col+#endif -#if MIN_VERSION_ghc(8,4,0)+#if MIN_VERSION_ghc(8,10,0)+#elif MIN_VERSION_ghc(8,4,0) toParseOut (PFailed _ spn err) =+ let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err+ in Failure errMsg $ Loc 0 0 #else toParseOut (PFailed spn err) =-#endif let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err in Failure errMsg $ Loc 0 0+#endif toParseOut (POk _parseState result) = Parsed result
ghc-parser.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: ghc-parser-version: 0.2.1.0+version: 0.2.2.0 synopsis: Haskell source parser from GHC. -- description: homepage: https://github.com/gibiansky/IHaskell@@ -24,12 +24,15 @@ -- other-modules: -- other-extensions: build-depends: base >=4.9 && < 5,- ghc >=8.0 && <8.9+ ghc >=8.0 && <8.11 if impl(ghc >= 8.0) && impl(ghc < 8.4) hs-source-dirs: generic-src src-8.0 else- hs-source-dirs: generic-src src-8.4+ 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 default-language: Haskell2010
+ src-8.10/Language/Haskell/GHC/HappyParser.hs view
@@ -0,0 +1,40 @@+module Language.Haskell.GHC.HappyParser+ ( fullStatement+ , fullImport+ , fullDeclaration+ , fullExpression+ , fullTypeSignature+ , fullModule+ ) where++import Parser+import SrcLoc++-- compiler/hsSyn+import GHC.Hs++-- compiler/utils+import OrdList++-- compiler/parser+import Lexer++import RdrHsSyn (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 GhcPs))+fullModule = parseModule