-- 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.5.0 module Language.Haskell.GHC.HappyParser fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs))) fullImport :: P (LImportDecl GhcPs) fullDeclaration :: P (OrdList (LHsDecl GhcPs)) fullExpression :: P (LHsExpr GhcPs) fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs))) fullModule :: P (Located HsModule) 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 GhcPs (LHsExpr GhcPs))) parserImport :: Parser (LImportDecl GhcPs) parserDeclaration :: Parser (OrdList (LHsDecl GhcPs)) parserTypeSignature :: Parser (Located (OrdList (LHsDecl GhcPs))) parserModule :: Parser (Located HsModule) parserExpression :: Parser (LHsExpr GhcPs) parsePragmasIntoDynFlags :: DynFlags -> FilePath -> String -> IO (Maybe DynFlags) -- | 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.Classes.Eq Language.Haskell.GHC.Parser.StringLoc instance GHC.Show.Show Language.Haskell.GHC.Parser.StringLoc 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.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)