language-Modula2-0.1.4: Parser, pretty-printer, and more for the Modula-2 programming language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Modula2.Pretty

Description

This module exports the instances of the Pretty type class necessary for printing of a Modula-2 abstract syntax tree.

Orphan instances

Oberon Language Source # 
Instance details

Associated Types

type WithAlternative Language = (x :: Type -> (Type -> Type) -> (Type -> Type) -> Type) #

Methods

moduleUnit :: forall f l' (f' :: Type -> Type). Ident -> [Import Language] -> f (Block l' l' f' f') -> Module Language l' f' f #

moduleImport :: Maybe Ident -> Ident -> Import Language #

qualIdent :: Ident -> Ident -> QualIdent Language #

getQualIdentNames :: QualIdent Language -> Maybe (Ident, Ident) #

exported :: Ident -> IdentDef Language #

forwardDeclaration :: forall l' f (f' :: Type -> Type). IdentDef l' -> Maybe (f (FormalParameters l' l' f' f')) -> Declaration Language l' f' f #

procedureHeading :: forall l' f (f' :: Type -> Type). Bool -> IdentDef l' -> Maybe (f (FormalParameters l' l' f' f')) -> ProcedureHeading Language l' f' f #

arrayType :: forall f l' (f' :: Type -> Type). [f (ConstExpression l' l' f' f')] -> f (Type l' l' f' f') -> Type Language l' f' f #

recordType :: forall l' f (f' :: Type -> Type). Maybe (BaseType l') -> [f (FieldList l' l' f' f')] -> Type Language l' f' f #

withStatement :: forall f l' (f' :: Type -> Type). f (WithAlternative l' l' f' f') -> Statement Language l' f' f #

withAlternative :: forall l' f (f' :: Type -> Type). QualIdent l' -> QualIdent l' -> f (StatementSequence l' l' f' f') -> WithAlternative Language l' f' f #

is :: forall f l' (f' :: Type -> Type). f (Expression l' l' f' f') -> QualIdent l' -> Expression Language l' f' f #

set :: forall f l' (f' :: Type -> Type). [f (Element l' l' f' f')] -> Expression Language l' f' f #

typeGuard :: forall f l' (f' :: Type -> Type). f (Designator l' l' f' f') -> QualIdent l' -> Designator Language l' f' f #

Pretty (IdentDef l) => Pretty (Export l) Source # 
Instance details

Methods

pretty :: Export l -> Doc ann #

prettyList :: [Export l] -> Doc ann #

Pretty (IdentDef l) Source # 
Instance details

Methods

pretty :: IdentDef l -> Doc ann #

prettyList :: [IdentDef l] -> Doc ann #

Pretty (IdentDef l) => Pretty (Import l) Source # 
Instance details

Methods

pretty :: Import l -> Doc ann #

prettyList :: [Import l] -> Doc ann #

Pretty (QualIdent l) Source # 
Instance details

Methods

pretty :: QualIdent l -> Doc ann #

prettyList :: [QualIdent l] -> Doc ann #

(Pretty (Precedence (Expression l l Identity Identity)), Pretty (Value l l Identity Identity), Pretty (Expression l l Identity Identity), Pretty (Element l l Identity Identity), Pretty (Designator l l Identity Identity), Pretty (QualIdent l)) => Pretty (Precedence (Expression Language l Identity Identity)) Source # 
Instance details

(Pretty (QualIdent l), Pretty (Designator l l Identity Identity), Pretty (Expression l l Identity Identity)) => Pretty (Designator Language l Identity Identity) Source # 
Instance details

(Pretty (Precedence (Expression l l Identity Identity)), Pretty (Value l l Identity Identity), Pretty (Expression l l Identity Identity), Pretty (Element l l Identity Identity), Pretty (Designator l l Identity Identity), Pretty (QualIdent l)) => Pretty (Expression Language l Identity Identity) Source # 
Instance details

(Pretty (IdentDef l), Pretty (QualIdent l), Pretty (Type l l Identity Identity), Pretty (Value l l Identity Identity), Pretty (FieldList l l Identity Identity), Pretty (Variant l l Identity Identity)) => Pretty (FieldList Language l Identity Identity) Source # 
Instance details

(Pretty (Priority l l Identity Identity), Pretty (Export l), Pretty (Import l), Pretty (Declaration l l Identity Identity), Pretty (Definition l l Identity Identity), Pretty (Block l l Identity Identity)) => Pretty (Module λ l Identity Identity) Source # 
Instance details

Methods

pretty :: Module λ l Identity Identity -> Doc ann #

prettyList :: [Module λ l Identity Identity] -> Doc ann #

(Pretty (IdentDef l), Pretty (FormalParameters l l Identity Identity), Pretty (Type l l Identity Identity)) => Pretty (ProcedureHeading l l Identity Identity) Source # 
Instance details

(Pretty (ConstExpression l l Identity Identity), Pretty (Designator l l Identity Identity), Pretty (Case l l Identity Identity), Pretty (ConditionalBranch l l Identity Identity), Pretty (WithAlternative l l Identity Identity), Pretty (StatementSequence l l Identity Identity)) => Pretty (Statement Language l Identity Identity) Source # 
Instance details

(Pretty (IdentDef l), Pretty (FormalParameters l l Identity Identity), Pretty (FieldList l l Identity Identity), Pretty (ConstExpression l l Identity Identity), Pretty (Type l l Identity Identity), Pretty (BaseType l)) => Pretty (Type Language l Identity Identity) Source # 
Instance details

(Pretty (CaseLabels l l Identity Identity), Pretty (FieldList l l Identity Identity)) => Pretty (Variant λ l Identity Identity) Source # 
Instance details

Methods

pretty :: Variant λ l Identity Identity -> Doc ann #

prettyList :: [Variant λ l Identity Identity] -> Doc ann #

Pretty (Value l l Identity Identity) => Pretty (Value Language l Identity Identity) Source # 
Instance details

(Nameable l, Pretty (IdentDef l), Pretty (Export l), Pretty (Import l), Pretty (Type l l Identity Identity), Pretty (Declaration l l Identity Identity), Pretty (Expression l l Identity Identity), Pretty (FormalParameters l l Identity Identity), Pretty (ProcedureHeading l l Identity Identity), Pretty (Block l l Identity Identity)) => Pretty (Declaration 'False Language l Identity Identity) Source # 
Instance details

(Nameable l, Pretty (IdentDef l), Pretty (Export l), Pretty (Import l), Pretty (Type l l Identity Identity), Pretty (Declaration l l Identity Identity), Pretty (Expression l l Identity Identity), Pretty (FormalParameters l l Identity Identity), Pretty (ProcedureHeading l l Identity Identity), Pretty (Block l l Identity Identity)) => Pretty (Declaration 'True Language l Identity Identity) Source # 
Instance details