Language.Haskell.Exts.Annotated

haskell-src-exts-1.14.0.1: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer

Copyright | (c) Niklas Broberg 2004-2009
License | BSD-style (see the file LICENSE.txt)
Maintainer | Niklas Broberg, d00nibro@chalmers.se
Stability | stable
Portability | portable
Safe Haskell | None
Language | Haskell98

Language.Haskell.Exts.Annotated

Contents

- Re-exported modules
- Parsing of Haskell source files
- Parsing of Haskell source elements,
- Read extensions declared in LANGUAGE pragmas

Description

An umbrella module for the various functionality of the package. Also provides some convenient functionality for dealing directly with source files.

Synopsis

- module Language.Haskell.Exts.Annotated.Syntax
- module Language.Haskell.Exts.Annotated.Build
- module Language.Haskell.Exts.Parser
- module Language.Haskell.Exts.Lexer
- module Language.Haskell.Exts.Pretty
- module Language.Haskell.Exts.Annotated.Fixity
- module Language.Haskell.Exts.Annotated.ExactPrint
- module Language.Haskell.Exts.SrcLoc
- module Language.Haskell.Exts.Comments
- module Language.Haskell.Exts.Extension
- parseFile :: FilePath -> IO (ParseResult (Module SrcSpanInfo))
- parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
- parseFileWithExts :: [Extension] -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
- parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))
- parseFileContents :: String -> ParseResult (Module SrcSpanInfo)
- parseFileContentsWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
- parseFileContentsWithExts :: [Extension] -> String -> ParseResult (Module SrcSpanInfo)
- parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
- parseModule :: String -> ParseResult (Module SrcSpanInfo)
- parseModuleWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
- parseModuleWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
- parseExp :: String -> ParseResult (Exp SrcSpanInfo)
- parseExpWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo)
- parseExpWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment])
- parseStmt :: String -> ParseResult (Stmt SrcSpanInfo)
- parseStmtWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo)
- parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment])
- parsePat :: String -> ParseResult (Pat SrcSpanInfo)
- parsePatWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo)
- parsePatWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment])
- parseDecl :: String -> ParseResult (Decl SrcSpanInfo)
- parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo)
- parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment])
- parseType :: String -> ParseResult (Type SrcSpanInfo)
- parseTypeWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo)
- parseTypeWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment])
- readExtensions :: String -> Maybe (Maybe Language, [Extension])

# Re-exported modules

module Language.Haskell.Exts.Annotated.Syntax

module Language.Haskell.Exts.Annotated.Build

module Language.Haskell.Exts.Parser

module Language.Haskell.Exts.Lexer

module Language.Haskell.Exts.Pretty

module Language.Haskell.Exts.Annotated.Fixity

module Language.Haskell.Exts.Annotated.ExactPrint

module Language.Haskell.Exts.SrcLoc

module Language.Haskell.Exts.Comments

module Language.Haskell.Exts.Extension

# Parsing of Haskell source files

parseFile :: FilePath -> IO (ParseResult (Module SrcSpanInfo))

Parse a source file on disk, using the default parse mode.

parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo))

Parse a source file on disk, supplying a custom parse mode.

parseFileWithExts :: [Extension] -> FilePath -> IO (ParseResult (Module SrcSpanInfo))

Parse a source file on disk, with an extra set of extensions to know about on top of what the file itself declares.

parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))

parseFileContents :: String -> ParseResult (Module SrcSpanInfo)

Parse a source file from a string using the default parse mode.

parseFileContentsWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)

Parse a source file from a string using a custom parse mode.

parseFileContentsWithExts :: [Extension] -> String -> ParseResult (Module SrcSpanInfo)

Parse a source file from a string, with an extra set of extensions to know about on top of what the file itself declares.

parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])

# Parsing of Haskell source elements,

parseModule :: String -> ParseResult (Module SrcSpanInfo)

Parse of a string, which should contain a complete Haskell module.

parseModuleWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)

Parse of a string containing a complete Haskell module, using an explicit mode.

parseModuleWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

parseExp :: String -> ParseResult (Exp SrcSpanInfo)

Parse of a string containing a Haskell expression.

parseExpWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo)

Parse of a string containing a Haskell expression, using an explicit mode.

parseExpWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

parseStmt :: String -> ParseResult (Stmt SrcSpanInfo)

Parse of a string containing a Haskell statement.

parseStmtWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo)

Parse of a string containing a Haskell type, using an explicit mode.

parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

parsePat :: String -> ParseResult (Pat SrcSpanInfo)

Parse of a string containing a Haskell pattern.

parsePatWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo)

Parse of a string containing a Haskell pattern, using an explicit mode.

parsePatWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

parseDecl :: String -> ParseResult (Decl SrcSpanInfo)

Parse of a string containing a Haskell top-level declaration.

parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo)

Parse of a string containing a Haskell top-level declaration, using an explicit mode.

parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

parseType :: String -> ParseResult (Type SrcSpanInfo)

Parse of a string containing a Haskell type.

parseTypeWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo)

Parse of a string containing a Haskell type, using an explicit mode.

parseTypeWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment])

Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.

# Read extensions declared in LANGUAGE pragmas

readExtensions :: String -> Maybe (Maybe Language, [Extension])

Gather the extensions declared in LANGUAGE pragmas at the top of the file. Returns `Nothing` if the parse of the pragmas fails.