Language.Haskell.Exts.Annotated.ExactPrint

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

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

Language.Haskell.Exts.Annotated.ExactPrint

Description

Exact-printer for Haskell abstract syntax. The input is a (semi-concrete) abstract syntax tree, annotated with exact source information to enable printing the tree exactly as it was parsed.

Synopsis

- exactPrint :: ExactP ast => ast SrcSpanInfo -> [Comment] -> String
- class Annotated ast => ExactP ast

# Documentation

exactPrint :: ExactP ast => ast SrcSpanInfo -> [Comment] -> String

Print an AST exactly as specified by the annotations on the nodes in the tree.

class Annotated ast => ExactP ast

Minimal complete definition

exactP

Instances

ExactP Alt |
ExactP FieldUpdate |
ExactP QualStmt |
ExactP Stmt |
ExactP PatField |
ExactP RPat |
ExactP RPatOp |
ExactP PXAttr |
ExactP Pat |
ExactP WarningText |
ExactP RuleVar |
ExactP Rule |
ExactP Activation |
ExactP Overlap |
ExactP ModulePragma |
ExactP CallConv |
ExactP Safety |
ExactP Splice |
ExactP Bracket |
ExactP XAttr |
ExactP XName |
ExactP Exp |
ExactP Sign |
ExactP Literal |
ExactP Asst |
ExactP Context |
ExactP FunDep |
ExactP Kind |
ExactP TyVarBind |
ExactP Promoted |
ExactP Type |
ExactP GuardedRhs |
ExactP Rhs |
ExactP BangType |
ExactP InstDecl |
ExactP ClassDecl |
ExactP GadtDecl |
ExactP FieldDecl |
ExactP ConDecl |
ExactP QualConDecl |
ExactP Match |
ExactP IPBind |
ExactP Binds |
ExactP Deriving |
ExactP InstHead |
ExactP InstRule |
ExactP DeclHead |
ExactP DataOrNew |
ExactP Role |
ExactP BooleanFormula |
ExactP Annotation |
ExactP TypeEqn |
ExactP Decl |
ExactP Assoc |
ExactP ImportSpec |
ExactP ImportSpecList |
ExactP ImportDecl |
ExactP Namespace |
ExactP ExportSpec |
ExactP ExportSpecList |
ExactP ModuleHead |
ExactP Module |
ExactP CName |
ExactP Op |
ExactP QOp |
ExactP IPName |
ExactP Name |
ExactP QName |
ExactP SpecialCon |
ExactP ModuleName |