Copyright | (c) The GHC Team, 1997-2000 (c) Niklas Broberg, 2004-2012 |
---|---|
License | BSD-style (see the file LICENSE.txt) |
Maintainer | Niklas Broberg, niklas.broberg@chalmers.se |
Stability | stable |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
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 where Source
Class to reuse the parse function at many different types.
parse :: String -> ParseResult ast Source
Parse a string with default mode.
parseWithMode :: ParseMode -> String -> ParseResult ast Source
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 :: ParseMode Source
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 -> a Source
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 Source
Parse of a string, which should contain a complete Haskell module.
parseModuleWithMode :: ParseMode -> String -> ParseResult Module Source
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 Exp Source
Parse of a string containing a Haskell expression.
parseExpWithMode :: ParseMode -> String -> ParseResult Exp Source
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 Stmt Source
Parse of a string containing a Haskell type.
parseStmtWithMode :: ParseMode -> String -> ParseResult Stmt Source
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 Pat Source
Parse of a string containing a Haskell pattern.
parsePatWithMode :: ParseMode -> String -> ParseResult Pat Source
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 Decl Source
Parse of a string containing a Haskell top-level declaration.
parseDeclWithMode :: ParseMode -> String -> ParseResult Decl Source
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 Type Source
Parse of a string containing a Haskell type.
parseTypeWithMode :: ParseMode -> String -> ParseResult Type Source
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.
Option pragmas
getTopPragmas :: String -> ParseResult [ModulePragma] Source