haskell-src-exts-1.1.4: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printerContentsIndex
Language.Haskell.Exts.Annotated.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 L)
parseModuleWithMode :: ParseMode -> String -> ParseResult (Module L)
parseModuleWithComments :: ParseMode -> String -> ParseResult (Module L, [Comment])
parseExp :: String -> ParseResult (Exp L)
parseExpWithMode :: ParseMode -> String -> ParseResult (Exp L)
parseExpWithComments :: ParseMode -> String -> ParseResult (Exp L, [Comment])
parsePat :: String -> ParseResult (Pat L)
parsePatWithMode :: ParseMode -> String -> ParseResult (Pat L)
parsePatWithComments :: ParseMode -> String -> ParseResult (Pat L, [Comment])
parseDecl :: String -> ParseResult (Decl L)
parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl L)
parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl L, [Comment])
parseType :: String -> ParseResult (Type L)
parseTypeWithMode :: ParseMode -> String -> ParseResult (Type L)
parseTypeWithComments :: ParseMode -> String -> ParseResult (Type L, [Comment])
getTopPragmas :: String -> ParseResult [OptionPragma L]
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
SrcInfo loc => Parseable (Pat loc)
SrcInfo loc => Parseable (Exp loc)
SrcInfo loc => Parseable (Type loc)
SrcInfo loc => Parseable (Decl loc)
SrcInfo loc => Parseable (Module loc)
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 L)
Parse of a string, which should contain a complete Haskell module.
parseModuleWithMode :: ParseMode -> String -> ParseResult (Module L)
Parse of a string containing a complete Haskell module, using an explicit mode.
parseModuleWithComments :: ParseMode -> String -> ParseResult (Module L, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Expressions
parseExp :: String -> ParseResult (Exp L)
Parse of a string containing a Haskell expression.
parseExpWithMode :: ParseMode -> String -> ParseResult (Exp L)
Parse of a string containing a Haskell expression, using an explicit mode.
parseExpWithComments :: ParseMode -> String -> ParseResult (Exp L, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Patterns
parsePat :: String -> ParseResult (Pat L)
Parse of a string containing a Haskell pattern.
parsePatWithMode :: ParseMode -> String -> ParseResult (Pat L)
Parse of a string containing a Haskell pattern, using an explicit mode.
parsePatWithComments :: ParseMode -> String -> ParseResult (Pat L, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Declarations
parseDecl :: String -> ParseResult (Decl L)
Parse of a string containing a Haskell top-level declaration.
parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl L)
Parse of a string containing a Haskell top-level declaration, using an explicit mode.
parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl L, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Types
parseType :: String -> ParseResult (Type L)
Parse of a string containing a Haskell type.
parseTypeWithMode :: ParseMode -> String -> ParseResult (Type L)
Parse of a string containing a Haskell type, using an explicit mode.
parseTypeWithComments :: ParseMode -> String -> ParseResult (Type L, [Comment])
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Option pragmas
getTopPragmas :: String -> ParseResult [OptionPragma L]
Partial parse of a string starting with a series of top-level option pragmas.
Produced by Haddock version 2.4.2