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

Copyright(c) Niklas Broberg 2009
LicenseBSD-style (see the file LICENSE.txt)
MaintainerNiklas Broberg, d00nibro@chalmers.se
Stabilitystable
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

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

Documentation

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

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

class Annotated ast => ExactP ast Source

Minimal complete definition

exactP

Instances

ExactP Alt Source 

Methods

exactP :: Alt SrcSpanInfo -> EP ()

ExactP FieldUpdate Source 

Methods

exactP :: FieldUpdate SrcSpanInfo -> EP ()

ExactP QualStmt Source 

Methods

exactP :: QualStmt SrcSpanInfo -> EP ()

ExactP Stmt Source 

Methods

exactP :: Stmt SrcSpanInfo -> EP ()

ExactP PatField Source 

Methods

exactP :: PatField SrcSpanInfo -> EP ()

ExactP RPat Source 

Methods

exactP :: RPat SrcSpanInfo -> EP ()

ExactP RPatOp Source 

Methods

exactP :: RPatOp SrcSpanInfo -> EP ()

ExactP PXAttr Source 

Methods

exactP :: PXAttr SrcSpanInfo -> EP ()

ExactP Pat Source 

Methods

exactP :: Pat SrcSpanInfo -> EP ()

ExactP WarningText Source 

Methods

exactP :: WarningText SrcSpanInfo -> EP ()

ExactP RuleVar Source 

Methods

exactP :: RuleVar SrcSpanInfo -> EP ()

ExactP Rule Source 

Methods

exactP :: Rule SrcSpanInfo -> EP ()

ExactP Activation Source 

Methods

exactP :: Activation SrcSpanInfo -> EP ()

ExactP Overlap Source 

Methods

exactP :: Overlap SrcSpanInfo -> EP ()

ExactP ModulePragma Source 

Methods

exactP :: ModulePragma SrcSpanInfo -> EP ()

ExactP CallConv Source 

Methods

exactP :: CallConv SrcSpanInfo -> EP ()

ExactP Safety Source 

Methods

exactP :: Safety SrcSpanInfo -> EP ()

ExactP Splice Source 

Methods

exactP :: Splice SrcSpanInfo -> EP ()

ExactP Bracket Source 

Methods

exactP :: Bracket SrcSpanInfo -> EP ()

ExactP XAttr Source 

Methods

exactP :: XAttr SrcSpanInfo -> EP ()

ExactP XName Source 

Methods

exactP :: XName SrcSpanInfo -> EP ()

ExactP Exp Source 

Methods

exactP :: Exp SrcSpanInfo -> EP ()

ExactP Sign Source 

Methods

exactP :: Sign SrcSpanInfo -> EP ()

ExactP Literal Source 

Methods

exactP :: Literal SrcSpanInfo -> EP ()

ExactP Asst Source 

Methods

exactP :: Asst SrcSpanInfo -> EP ()

ExactP Context Source 

Methods

exactP :: Context SrcSpanInfo -> EP ()

ExactP FunDep Source 

Methods

exactP :: FunDep SrcSpanInfo -> EP ()

ExactP Kind Source 

Methods

exactP :: Kind SrcSpanInfo -> EP ()

ExactP TyVarBind Source 

Methods

exactP :: TyVarBind SrcSpanInfo -> EP ()

ExactP Promoted Source 

Methods

exactP :: Promoted SrcSpanInfo -> EP ()

ExactP Type Source 

Methods

exactP :: Type SrcSpanInfo -> EP ()

ExactP GuardedRhs Source 

Methods

exactP :: GuardedRhs SrcSpanInfo -> EP ()

ExactP Rhs Source 

Methods

exactP :: Rhs SrcSpanInfo -> EP ()

ExactP BangType Source 

Methods

exactP :: BangType SrcSpanInfo -> EP ()

ExactP InstDecl Source 

Methods

exactP :: InstDecl SrcSpanInfo -> EP ()

ExactP ClassDecl Source 

Methods

exactP :: ClassDecl SrcSpanInfo -> EP ()

ExactP GadtDecl Source 

Methods

exactP :: GadtDecl SrcSpanInfo -> EP ()

ExactP FieldDecl Source 

Methods

exactP :: FieldDecl SrcSpanInfo -> EP ()

ExactP ConDecl Source 

Methods

exactP :: ConDecl SrcSpanInfo -> EP ()

ExactP QualConDecl Source 

Methods

exactP :: QualConDecl SrcSpanInfo -> EP ()

ExactP Match Source 

Methods

exactP :: Match SrcSpanInfo -> EP ()

ExactP IPBind Source 

Methods

exactP :: IPBind SrcSpanInfo -> EP ()

ExactP Binds Source 

Methods

exactP :: Binds SrcSpanInfo -> EP ()

ExactP Deriving Source 

Methods

exactP :: Deriving SrcSpanInfo -> EP ()

ExactP InstHead Source 

Methods

exactP :: InstHead SrcSpanInfo -> EP ()

ExactP InstRule Source 

Methods

exactP :: InstRule SrcSpanInfo -> EP ()

ExactP DeclHead Source 

Methods

exactP :: DeclHead SrcSpanInfo -> EP ()

ExactP DataOrNew Source 

Methods

exactP :: DataOrNew SrcSpanInfo -> EP ()

ExactP Role Source 

Methods

exactP :: Role SrcSpanInfo -> EP ()

ExactP BooleanFormula Source 

Methods

exactP :: BooleanFormula SrcSpanInfo -> EP ()

ExactP Annotation Source 

Methods

exactP :: Annotation SrcSpanInfo -> EP ()

ExactP TypeEqn Source 

Methods

exactP :: TypeEqn SrcSpanInfo -> EP ()

ExactP Decl Source 

Methods

exactP :: Decl SrcSpanInfo -> EP ()

ExactP Assoc Source 

Methods

exactP :: Assoc SrcSpanInfo -> EP ()

ExactP ImportSpec Source 

Methods

exactP :: ImportSpec SrcSpanInfo -> EP ()

ExactP ImportSpecList Source 

Methods

exactP :: ImportSpecList SrcSpanInfo -> EP ()

ExactP ImportDecl Source 

Methods

exactP :: ImportDecl SrcSpanInfo -> EP ()

ExactP Namespace Source 

Methods

exactP :: Namespace SrcSpanInfo -> EP ()

ExactP ExportSpec Source 

Methods

exactP :: ExportSpec SrcSpanInfo -> EP ()

ExactP ExportSpecList Source 

Methods

exactP :: ExportSpecList SrcSpanInfo -> EP ()

ExactP ModuleHead Source 

Methods

exactP :: ModuleHead SrcSpanInfo -> EP ()

ExactP Module Source 

Methods

exactP :: Module SrcSpanInfo -> EP ()

ExactP CName Source 

Methods

exactP :: CName SrcSpanInfo -> EP ()

ExactP Op Source 

Methods

exactP :: Op SrcSpanInfo -> EP ()

ExactP QOp Source 

Methods

exactP :: QOp SrcSpanInfo -> EP ()

ExactP IPName Source 

Methods

exactP :: IPName SrcSpanInfo -> EP ()

ExactP Name Source 

Methods

exactP :: Name SrcSpanInfo -> EP ()

ExactP QName Source 

Methods

exactP :: QName SrcSpanInfo -> EP ()

ExactP SpecialCon Source 

Methods

exactP :: SpecialCon SrcSpanInfo -> EP ()

ExactP ModuleName Source 

Methods

exactP :: ModuleName SrcSpanInfo -> EP ()