Portability | portable |
---|---|
Stability | stable |
Maintainer | Niklas Broberg, niklas.broberg@chalmers.se |
Safe Haskell | None |
Parser for Haskell with extensions.
- class Parseable ast where
- parse :: String -> ParseResult ast
- parseWithMode :: ParseMode -> String -> ParseResult ast
- parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])
- data ParseMode = ParseMode {}
- 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])
- parseStmt :: String -> ParseResult Stmt
- parseStmtWithMode :: ParseMode -> String -> ParseResult Stmt
- parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt, [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 [ModulePragma]
General parsing
class Parseable ast whereSource
Class to reuse the parse function at many different types.
parse :: String -> ParseResult astSource
Parse a string with default mode.
parseWithMode :: ParseMode -> String -> ParseResult astSource
Parse a string with an explicit mode.
parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])Source
Parse a string with an explicit mode, returning all comments along the AST
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
.
ParseMode | |
|
defaultParseMode :: ParseModeSource
Default parameters for a parse.
The default is an unknown filename,
no extensions (i.e. Haskell 98),
don't ignore LANGUAGE pragmas, do ignore LINE pragmas,
and be aware of fixities from the Prelude
.
data ParseResult a Source
The result of a parse.
ParseOk a | The parse succeeded, yielding a value. |
ParseFailed SrcLoc String | The parse failed at the specified source location, with an error message. |
Monad ParseResult | |
Functor ParseResult | |
Applicative ParseResult | |
Show a => Show (ParseResult a) | |
Monoid m => Monoid (ParseResult m) |
fromParseResult :: ParseResult a -> aSource
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 ModuleSource
Parse of a string, which should contain a complete Haskell module.
parseModuleWithMode :: ParseMode -> String -> ParseResult ModuleSource
Parse of a string containing a complete Haskell module, using an explicit mode.
parseModuleWithComments :: ParseMode -> String -> ParseResult (Module, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Expressions
parseExp :: String -> ParseResult ExpSource
Parse of a string containing a Haskell expression.
parseExpWithMode :: ParseMode -> String -> ParseResult ExpSource
Parse of a string containing a Haskell expression, using an explicit mode.
parseExpWithComments :: ParseMode -> String -> ParseResult (Exp, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Statements
parseStmt :: String -> ParseResult StmtSource
Parse of a string containing a Haskell type.
parseStmtWithMode :: ParseMode -> String -> ParseResult StmtSource
Parse of a string containing a Haskell type, using an explicit mode.
parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Patterns
parsePat :: String -> ParseResult PatSource
Parse of a string containing a Haskell pattern.
parsePatWithMode :: ParseMode -> String -> ParseResult PatSource
Parse of a string containing a Haskell pattern, using an explicit mode.
parsePatWithComments :: ParseMode -> String -> ParseResult (Pat, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Declarations
parseDecl :: String -> ParseResult DeclSource
Parse of a string containing a Haskell top-level declaration.
parseDeclWithMode :: ParseMode -> String -> ParseResult DeclSource
Parse of a string containing a Haskell top-level declaration, using an explicit mode.
parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
Types
parseType :: String -> ParseResult TypeSource
Parse of a string containing a Haskell type.
parseTypeWithMode :: ParseMode -> String -> ParseResult TypeSource
Parse of a string containing a Haskell type, using an explicit mode.
parseTypeWithComments :: ParseMode -> String -> ParseResult (Type, [Comment])Source
Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.