-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell source parser from GHC. -- -- Haskell source parser from GHC. @package ghc-parser @version 0.2.0.2 module Language.Haskell.GHC.HappyParser fullStatement :: P (Maybe (LStmt RdrName (LHsExpr RdrName))) fullImport :: P (LImportDecl RdrName) fullDeclaration :: P (OrdList (LHsDecl RdrName)) fullExpression :: P (LHsExpr RdrName) fullTypeSignature :: P (Located (OrdList (LHsDecl RdrName))) fullModule :: P (Located (HsModule RdrName)) module Language.Haskell.GHC.Parser -- | Run a GHC parser on a string. Return success or failure with -- associated information for both. runParser :: DynFlags -> Parser a -> String -> ParseOutput a -- | A line number in an input string. type LineNumber = Int -- | A column number in an input string. type ColumnNumber = Int -- | An error message string. type ErrMsg = String -- | A location in an input string. data StringLoc Loc :: LineNumber -> ColumnNumber -> StringLoc -- | Output from running a parser. data ParseOutput a -- | Parser failed with given error message and location. Failure :: ErrMsg -> StringLoc -> ParseOutput a -- | Parser succeeded with an output. Parsed :: a -> ParseOutput a -- | Partial parser succeeded with an output. Partial :: a -> (String, String) -> ParseOutput a data Parser a -- | Store locations along with a value. data Located a Located :: LineNumber -> a -> Located a [line] :: Located a -> LineNumber [unloc] :: Located a -> a parserStatement :: Parser Maybe LStmt RdrName LHsExpr RdrName parserImport :: Parser LImportDecl RdrName parserDeclaration :: Parser OrdList LHsDecl RdrName parserTypeSignature :: Parser Located OrdList LHsDecl RdrName parserModule :: Parser Located HsModule RdrName parserExpression :: Parser LHsExpr RdrName -- | Drop comments from Haskell source. Simply gets rid of them, does not -- replace them in any way. removeComments :: String -> String -- | Split an input string into chunks based on indentation. A chunk is a -- line and all lines immediately following that are indented beyond the -- indentation of the first line. This parses Haskell layout rules -- properly, and allows using multiline expressions via indentation. -- -- Quasiquotes are allowed via a post-processing step. layoutChunks :: String -> [Located String] instance GHC.Base.Functor Language.Haskell.GHC.Parser.Located instance GHC.Show.Show a => GHC.Show.Show (Language.Haskell.GHC.Parser.Located a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Haskell.GHC.Parser.Located a) instance GHC.Show.Show a => GHC.Show.Show (Language.Haskell.GHC.Parser.ParseOutput a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Haskell.GHC.Parser.ParseOutput a) instance GHC.Classes.Eq Language.Haskell.GHC.Parser.StringLoc instance GHC.Show.Show Language.Haskell.GHC.Parser.StringLoc