haskell-src-exts-1.1.4: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printerContentsIndex
Language.Haskell.Exts.Parser
Portabilityportable
Stabilitystable
MaintainerNiklas Broberg, d00nibro@chalmers.se
Contents
General parsing
Parsing of specific AST elements
Modules
Expressions
Patterns
Declarations
Types
Option pragmas
Description
Synopsis
class Parseable ast where
parse :: String -> ParseResult ast
parseWithMode :: ParseMode -> String -> ParseResult ast
parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])
data ParseMode = ParseMode {
parseFilename :: String
extensions :: [Extension]
ignoreLanguagePragmas :: Bool
fixities :: [Fixity]
}
defaultParseMode :: ParseMode
data ParseResult a
= ParseOk a
| ParseFailed SrcLoc String
fromParseResult :: ParseResult a -> a
parseModule :: String -> ParseResult Module
parseModuleWithMode :: ParseMode -> String -> ParseResult Module
parseModuleWithComments :: ParseMode -> String -> ParseResult (Module, [Comment])
parseExp :: String -> ParseResult Exp
parseExpWithMode :: ParseMode -> String -> ParseResult Exp
parseExpWithComments :: ParseMode -> String -> ParseResult (Exp, [Comment])
parsePat :: String -> ParseResult Pat
parsePatWithMode :: ParseMode -> String -> ParseResult Pat
parsePatWithComments :: ParseMode -> String -> ParseResult (Pat, [Comment])
parseDecl :: String -> ParseResult Decl
parseDeclWithMode :: ParseMode -> String -> ParseResult Decl
parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl, [Comment])
parseType :: String -> ParseResult Type
parseTypeWithMode :: ParseMode -> String -> ParseResult Type
parseTypeWithComments :: ParseMode -> String -> ParseResult (Type, [Comment])
getTopPragmas :: String -> ParseResult [OptionPragma]
General parsing
class Parseable ast where
Class to reuse the parse function at many different types.
Methods
parse :: String -> ParseResult ast
Parse a string with default mode.
parseWithMode :: ParseMode -> String -> ParseResult ast
Parse a string with an explicit mode.
parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])
Parse a string with an explicit mode, returning all comments along the AST
show/hide Instances
data ParseMode
Static parameters governing a parse. Note that the various parse functions in Language.Haskell.Exts.Parser never look at LANGUAGE pragmas, regardless of what the ignoreLanguagePragmas flag is set to. Only the various parseFile functions in Language.Haskell.Exts will act on it, when set to False.
Constructors
ParseMode
parseFilename :: Stringoriginal name of the file being parsed
extensions :: [Extension]list of extensions enabled for parsing
ignoreLanguagePragmas :: Boolif True, the parser won't care about further extensions in LANGUAGE pragmas in source files
fixities :: [Fixity]list of fixities to be aware of
defaultParseMode :: ParseMode
Default parameters for a parse. The default is an unknown filename, no extensions (i.e. Haskell 98), don't ignore LANGUAGE pragmas, and be aware of fixities from the Prelude.
data ParseResult a
The result of a parse.
Constructors
ParseOk aThe parse succeeded, yielding a value.
ParseFailed SrcLoc StringThe parse failed at the specified source location, with an error message.
show/hide Instances
fromParseResult :: ParseResult a -> a
Retrieve the result of a successful parse, throwing an error if the parse is actually not successful.
Parsing of specific AST elements
Modules
parseModule :: String -> ParseResult Module
Parse of a string, which should contain a complete Haskell module.
parseModuleWithMode :: ParseMode -> String -> ParseResult Module
Parse of a string containing a complete Haskell module, using an explicit mode.
parseModuleWithComments :: ParseMode -> String -> ParseResult (Module, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Expressions
parseExp :: String -> ParseResult Exp
Parse of a string containing a Haskell expression.
parseExpWithMode :: ParseMode -> String -> ParseResult Exp
Parse of a string containing a Haskell expression, using an explicit mode.
parseExpWithComments :: ParseMode -> String -> ParseResult (Exp, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Patterns
parsePat :: String -> ParseResult Pat
Parse of a string containing a Haskell pattern.
parsePatWithMode :: ParseMode -> String -> ParseResult Pat
Parse of a string containing a Haskell pattern, using an explicit mode.
parsePatWithComments :: ParseMode -> String -> ParseResult (Pat, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Declarations
parseDecl :: String -> ParseResult Decl
Parse of a string containing a Haskell top-level declaration.
parseDeclWithMode :: ParseMode -> String -> ParseResult Decl
Parse of a string containing a Haskell top-level declaration, using an explicit mode.
parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Types
parseType :: String -> ParseResult Type
Parse of a string containing a Haskell type.
parseTypeWithMode :: ParseMode -> String -> ParseResult Type
Parse of a string containing a Haskell type, using an explicit mode.
parseTypeWithComments :: ParseMode -> String -> ParseResult (Type, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Option pragmas
getTopPragmas :: String -> ParseResult [OptionPragma]
Partial parse of a string starting with a series of top-level option pragmas.
Produced by Haddock version 2.4.2