-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | An implementation of the C99 AST that strictly follows the
--   standard.
--   
--   This package contains an implementation of the C99 AST as described in
--   http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.
--   Sticking closely to this standard assures us that the program we deal
--   with is a valid C99 program.
--   
--   Additionally the library comes with a pretty printer.
--   
--   The package does not come with handy wrapper and utility functions to
--   write a C99 program, it just contains the bare AST. It is highly
--   recommended to use the wrapper provided by 'language-c99-simple' and
--   'language-c99-util' for writing programs.
@package language-c99
@version 0.2.0

module Language.C99.AST
data PreprocToken
PreprocHeader :: HeaderName -> PreprocToken
PreprocIdent :: Ident -> PreprocToken
PreprocNumber :: PPNumber -> PreprocToken
PreprocChar :: CharConst -> PreprocToken
PreprocString :: StringLit -> PreprocToken
PreprocPunc :: Punc -> PreprocToken
PreprocNoneWhite :: PreprocToken
data Ident
IdentBase :: IdentNonDigit -> Ident
IdentConsNonDigit :: Ident -> IdentNonDigit -> Ident
IdentCons :: Ident -> Digit -> Ident
data IdentNonDigit
IdentNonDigit :: NonDigit -> IdentNonDigit
IdentNonDigitUniv :: UnivCharName -> IdentNonDigit
data NonDigit
NDUnderscore :: NonDigit
NDa :: NonDigit
NDA :: NonDigit
NDb :: NonDigit
NDB :: NonDigit
NDc :: NonDigit
NDC :: NonDigit
NDd :: NonDigit
NDD :: NonDigit
NDe :: NonDigit
NDE :: NonDigit
NDf :: NonDigit
NDF :: NonDigit
NDg :: NonDigit
NDG :: NonDigit
NDh :: NonDigit
NDH :: NonDigit
NDi :: NonDigit
NDI :: NonDigit
NDj :: NonDigit
NDJ :: NonDigit
NDk :: NonDigit
NDK :: NonDigit
NDl :: NonDigit
NDL :: NonDigit
NDm :: NonDigit
NDM :: NonDigit
NDn :: NonDigit
NDN :: NonDigit
NDo :: NonDigit
NDO :: NonDigit
NDp :: NonDigit
NDP :: NonDigit
NDq :: NonDigit
NDQ :: NonDigit
NDr :: NonDigit
NDR :: NonDigit
NDs :: NonDigit
NDS :: NonDigit
NDt :: NonDigit
NDT :: NonDigit
NDu :: NonDigit
NDU :: NonDigit
NDv :: NonDigit
NDV :: NonDigit
NDw :: NonDigit
NDW :: NonDigit
NDx :: NonDigit
NDX :: NonDigit
NDy :: NonDigit
NDY :: NonDigit
NDz :: NonDigit
NDZ :: NonDigit
data Digit
DZero :: Digit
DOne :: Digit
DTwo :: Digit
DThree :: Digit
DFour :: Digit
DFive :: Digit
DSix :: Digit
DSeven :: Digit
DEight :: Digit
DNine :: Digit
data UnivCharName
UnivCharName1 :: HexQuad -> UnivCharName
UnivCharName2 :: HexQuad -> HexQuad -> UnivCharName
data HexQuad
HexQuad :: HexDigit -> HexDigit -> HexDigit -> HexDigit -> HexQuad
data Const
ConstInt :: IntConst -> Const
ConstFloat :: FloatConst -> Const
ConstEnum :: EnumConst -> Const
ConstChar :: CharConst -> Const
data IntConst
IntDec :: DecConst -> Maybe IntSuffix -> IntConst
IntOc :: OcConst -> Maybe IntSuffix -> IntConst
IntHex :: HexConst -> Maybe IntSuffix -> IntConst
data DecConst
DecBase :: NonZeroDigit -> DecConst
DecCons :: DecConst -> Digit -> DecConst
data OcConst
Oc0 :: OcConst
OcCons :: OcConst -> OcDigit -> OcConst
data HexConst
HexBase :: HexPrefix -> HexDigit -> HexConst
HexCons :: HexConst -> HexDigit -> HexConst
data HexPrefix
OX :: HexPrefix
data NonZeroDigit
NZOne :: NonZeroDigit
NZTwo :: NonZeroDigit
NZThree :: NonZeroDigit
NZFour :: NonZeroDigit
NZFive :: NonZeroDigit
NZSix :: NonZeroDigit
NZSeven :: NonZeroDigit
NZEight :: NonZeroDigit
NZNine :: NonZeroDigit
data OcDigit
OcZero :: OcDigit
OcOne :: OcDigit
OcTwo :: OcDigit
OcThree :: OcDigit
OcFour :: OcDigit
OcFive :: OcDigit
OcSix :: OcDigit
OcSeven :: OcDigit
data HexDigit
HexZero :: HexDigit
HexOne :: HexDigit
HexTwo :: HexDigit
HexThree :: HexDigit
HexFour :: HexDigit
HexFive :: HexDigit
HexSix :: HexDigit
HexSeven :: HexDigit
HexEight :: HexDigit
HexNine :: HexDigit
Hexa :: HexDigit
HexA :: HexDigit
Hexb :: HexDigit
HexB :: HexDigit
Hexc :: HexDigit
HexC :: HexDigit
Hexd :: HexDigit
HexD :: HexDigit
Hexe :: HexDigit
HexE :: HexDigit
Hexf :: HexDigit
HexF :: HexDigit
data IntSuffix
IntSuffixUnsignedLong :: UnsignedSuffix -> Maybe LongSuffix -> IntSuffix
IntSuffixUnsignedLongLong :: UnsignedSuffix -> LongLongSuffix -> IntSuffix
IntSuffixLong :: LongSuffix -> Maybe UnsignedSuffix -> IntSuffix
IntSuffixLongLong :: LongLongSuffix -> Maybe UnsignedSuffix -> IntSuffix
data UnsignedSuffix
U :: UnsignedSuffix
data LongSuffix
L :: LongSuffix
data LongLongSuffix
LL :: LongLongSuffix
data FloatConst
FloatDec :: DecFloatConst -> FloatConst
FloatHex :: HexFloatConst -> FloatConst
data DecFloatConst
DecFloatFrac :: FracConst -> Maybe ExpPart -> Maybe FloatSuffix -> DecFloatConst
DecFloatDigits :: DigitSeq -> ExpPart -> Maybe FloatSuffix -> DecFloatConst
data HexFloatConst
HexFloatFrac :: HexPrefix -> HexFracConst -> BinExpPart -> Maybe FloatSuffix -> HexFloatConst
HexFloatDigits :: HexPrefix -> HexDigitSeq -> BinExpPart -> Maybe FloatSuffix -> HexFloatConst
data FracConst
FracZero :: Maybe DigitSeq -> DigitSeq -> FracConst
Frac :: DigitSeq -> FracConst
data ExpPart
E :: Maybe Sign -> DigitSeq -> ExpPart
data Sign
SPlus :: Sign
SMinus :: Sign
data DigitSeq
DigitBase :: Digit -> DigitSeq
DigitCons :: DigitSeq -> Digit -> DigitSeq
data HexFracConst
HexFracZero :: Maybe HexDigitSeq -> HexDigitSeq -> HexFracConst
HexFrac :: HexDigitSeq -> HexFracConst
data BinExpPart
P :: Maybe Sign -> DigitSeq -> BinExpPart
data HexDigitSeq
HexDigitBase :: HexDigit -> HexDigitSeq
HexDigitCons :: HexDigitSeq -> HexDigit -> HexDigitSeq
data FloatSuffix
FF :: FloatSuffix
FL :: FloatSuffix
data EnumConst
Enum :: Ident -> EnumConst
data CharConst
Char :: CCharSeq -> CharConst
CharL :: CCharSeq -> CharConst
data CCharSeq
CCharBase :: CChar -> CCharSeq
CCharCons :: CCharSeq -> CChar -> CCharSeq
data CChar
CChar :: Char -> CChar
CCharEsc :: EscSeq -> CChar
data EscSeq
EscSimple :: SimpleEscSeq -> EscSeq
EscOc :: OcEscSeq -> EscSeq
EscHex :: HexEscSeq -> EscSeq
EscUniv :: UnivCharName -> EscSeq
data SimpleEscSeq
SEQuote :: SimpleEscSeq
SEDQuote :: SimpleEscSeq
SEQuestion :: SimpleEscSeq
SEBackSlash :: SimpleEscSeq
SEa :: SimpleEscSeq
SEb :: SimpleEscSeq
SEf :: SimpleEscSeq
SEn :: SimpleEscSeq
SEr :: SimpleEscSeq
SEt :: SimpleEscSeq
SEv :: SimpleEscSeq
data OcEscSeq
OcEsc1 :: OcDigit -> OcEscSeq
OcEsc2 :: OcDigit -> OcDigit -> OcEscSeq
OcEsc3 :: OcDigit -> OcDigit -> OcDigit -> OcEscSeq
data HexEscSeq
HexEscBase :: HexDigit -> HexEscSeq
HexEscCons :: HexEscSeq -> HexDigit -> HexEscSeq
data StringLit
StringLit :: Maybe SCharSeq -> StringLit
StringLitL :: Maybe SCharSeq -> StringLit
data SCharSeq
SCharBase :: SChar -> SCharSeq
SCharCons :: SCharSeq -> SChar -> SCharSeq
data SChar
SChar :: Char -> SChar
SCharEsc :: EscSeq -> SChar
data Punc
PuncSquareL :: Punc
PuncSquareR :: Punc
PuncParenL :: Punc
PuncParenR :: Punc
PuncBraceL :: Punc
PuncBraceR :: Punc
PuncDot :: Punc
PuncArrow :: Punc
PuncPlusPlus :: Punc
PuncMinMin :: Punc
PuncAmpersand :: Punc
PuncAsterisk :: Punc
PuncPlus :: Punc
PuncMin :: Punc
PuncTilde :: Punc
PuncExclamation :: Punc
PuncFSlash :: Punc
PuncPercent :: Punc
PuncShiftL :: Punc
PuncShiftR :: Punc
PuncLT :: Punc
PuncGT :: Punc
PuncLE :: Punc
PuncGE :: Punc
PuncEq :: Punc
PuncNEq :: Punc
PuncCaret :: Punc
PuncBar :: Punc
PuncDoubleAmpersand :: Punc
PuncDoubleBar :: Punc
PuncQuestion :: Punc
PuncColon :: Punc
PuncSemicolon :: Punc
PuncDots :: Punc
PuncAssign :: Punc
PuncAssignTimes :: Punc
PuncAssignDiv :: Punc
PuncAssignMod :: Punc
PuncAssignPlus :: Punc
PuncAssignMin :: Punc
PuncAssignShiftL :: Punc
PuncAssignShiftR :: Punc
PuncAssignAnd :: Punc
PuncAssignXOr :: Punc
PuncAssignOr :: Punc
PuncComma :: Punc
PuncHash :: Punc
PuncDoubleHash :: Punc
PuncDiSquareL :: Punc
PuncDiSquareR :: Punc
PuncDiBraceL :: Punc
PuncDiBraceR :: Punc
PuncDiHash :: Punc
PuncDiDoubleHash :: Punc
data HeaderName
HeaderGlobal :: HCharSeq -> HeaderName
HeaderLocal :: QCharSeq -> HeaderName
data HCharSeq
HCharBase :: HChar -> HCharSeq
HCharCons :: HCharSeq -> HChar -> HCharSeq
data HChar
HChar :: Char -> HChar
data QCharSeq
QCharBase :: QChar -> QCharSeq
QCharCons :: QCharSeq -> QChar -> QCharSeq
data QChar
QChar :: Char -> QChar
data PPNumber
PPDigit :: Digit -> PPNumber
PPDec :: Digit -> PPNumber
PPNum :: PPNumber -> Digit -> PPNumber
PPIdent :: PPNumber -> IdentNonDigit -> PPNumber
PPe :: PPNumber -> Sign -> PPNumber
PPE :: PPNumber -> Sign -> PPNumber
PPp :: PPNumber -> Sign -> PPNumber
PPP :: PPNumber -> Sign -> PPNumber
PPDot :: PPNumber -> PPNumber
data PrimExpr
PrimIdent :: Ident -> PrimExpr
PrimConst :: Const -> PrimExpr
PrimString :: StringLit -> PrimExpr
PrimExpr :: Expr -> PrimExpr
data PostfixExpr
PostfixPrim :: PrimExpr -> PostfixExpr
PostfixIndex :: PostfixExpr -> Expr -> PostfixExpr
PostfixFunction :: PostfixExpr -> Maybe ArgExprList -> PostfixExpr
PostfixDot :: PostfixExpr -> Ident -> PostfixExpr
PostfixArrow :: PostfixExpr -> Ident -> PostfixExpr
PostfixInc :: PostfixExpr -> PostfixExpr
PostfixDec :: PostfixExpr -> PostfixExpr
PostfixInits :: TypeName -> InitList -> PostfixExpr
data ArgExprList
ArgExprListBase :: AssignExpr -> ArgExprList
ArgExprListCons :: ArgExprList -> AssignExpr -> ArgExprList
data UnaryExpr
UnaryPostfix :: PostfixExpr -> UnaryExpr
UnaryInc :: UnaryExpr -> UnaryExpr
UnaryDec :: UnaryExpr -> UnaryExpr
UnaryOp :: UnaryOp -> CastExpr -> UnaryExpr
UnarySizeExpr :: UnaryExpr -> UnaryExpr
UnarySizeType :: TypeName -> UnaryExpr
data UnaryOp
UORef :: UnaryOp
UODeref :: UnaryOp
UOPlus :: UnaryOp
UOMin :: UnaryOp
UOBNot :: UnaryOp
UONot :: UnaryOp
data CastExpr
CastUnary :: UnaryExpr -> CastExpr
Cast :: TypeName -> CastExpr -> CastExpr
data MultExpr
MultCast :: CastExpr -> MultExpr
MultMult :: MultExpr -> CastExpr -> MultExpr
MultDiv :: MultExpr -> CastExpr -> MultExpr
MultMod :: MultExpr -> CastExpr -> MultExpr
data AddExpr
AddMult :: MultExpr -> AddExpr
AddPlus :: AddExpr -> MultExpr -> AddExpr
AddMin :: AddExpr -> MultExpr -> AddExpr
data ShiftExpr
ShiftAdd :: AddExpr -> ShiftExpr
ShiftLeft :: ShiftExpr -> AddExpr -> ShiftExpr
ShiftRight :: ShiftExpr -> AddExpr -> ShiftExpr
data RelExpr
RelShift :: ShiftExpr -> RelExpr
RelLT :: RelExpr -> ShiftExpr -> RelExpr
RelGT :: RelExpr -> ShiftExpr -> RelExpr
RelLE :: RelExpr -> ShiftExpr -> RelExpr
RelGE :: RelExpr -> ShiftExpr -> RelExpr
data EqExpr
EqRel :: RelExpr -> EqExpr
EqEq :: EqExpr -> RelExpr -> EqExpr
EqNEq :: EqExpr -> RelExpr -> EqExpr
data AndExpr
AndEq :: EqExpr -> AndExpr
And :: AndExpr -> EqExpr -> AndExpr
data XOrExpr
XOrAnd :: AndExpr -> XOrExpr
XOr :: XOrExpr -> AndExpr -> XOrExpr
data OrExpr
OrXOr :: XOrExpr -> OrExpr
Or :: OrExpr -> XOrExpr -> OrExpr
data LAndExpr
LAndOr :: OrExpr -> LAndExpr
LAnd :: LAndExpr -> OrExpr -> LAndExpr
data LOrExpr
LOrAnd :: LAndExpr -> LOrExpr
LOr :: LOrExpr -> LAndExpr -> LOrExpr
data CondExpr
CondLOr :: LOrExpr -> CondExpr
Cond :: LOrExpr -> Expr -> CondExpr -> CondExpr
data AssignExpr
AssignCond :: CondExpr -> AssignExpr
Assign :: UnaryExpr -> AssignOp -> AssignExpr -> AssignExpr
data AssignOp
AEq :: AssignOp
ATimes :: AssignOp
ADiv :: AssignOp
AMod :: AssignOp
AAdd :: AssignOp
ASub :: AssignOp
AShiftL :: AssignOp
AShiftR :: AssignOp
AAnd :: AssignOp
AXOr :: AssignOp
AOr :: AssignOp
data Expr
ExprAssign :: AssignExpr -> Expr
Expr :: Expr -> AssignExpr -> Expr
data ConstExpr
Const :: CondExpr -> ConstExpr
data Decln
Decln :: DeclnSpecs -> Maybe InitDeclrList -> Decln
data DeclnSpecs
DeclnSpecsStorage :: StorageClassSpec -> Maybe DeclnSpecs -> DeclnSpecs
DeclnSpecsType :: TypeSpec -> Maybe DeclnSpecs -> DeclnSpecs
DeclnSpecsQual :: TypeQual -> Maybe DeclnSpecs -> DeclnSpecs
DeclnSpecsFun :: FunSpec -> Maybe DeclnSpecs -> DeclnSpecs
data InitDeclrList
InitDeclrBase :: InitDeclr -> InitDeclrList
InitDeclrCons :: InitDeclrList -> InitDeclr -> InitDeclrList
data InitDeclr
InitDeclr :: Declr -> InitDeclr
InitDeclrInitr :: Declr -> Init -> InitDeclr
data StorageClassSpec
STypedef :: StorageClassSpec
SExtern :: StorageClassSpec
SStatic :: StorageClassSpec
SAuto :: StorageClassSpec
SRegister :: StorageClassSpec
data TypeSpec
TVoid :: TypeSpec
TChar :: TypeSpec
TShort :: TypeSpec
TInt :: TypeSpec
TLong :: TypeSpec
TFloat :: TypeSpec
TDouble :: TypeSpec
TSigned :: TypeSpec
TUnsigned :: TypeSpec
TBool :: TypeSpec
TComplex :: TypeSpec
TStructOrUnion :: StructOrUnionSpec -> TypeSpec
TEnum :: EnumSpec -> TypeSpec
TTypedef :: TypedefName -> TypeSpec
data StructOrUnionSpec
StructOrUnionDecln :: StructOrUnion -> Maybe Ident -> StructDeclnList -> StructOrUnionSpec
StructOrUnionForwDecln :: StructOrUnion -> Ident -> StructOrUnionSpec
data StructOrUnion
Struct :: StructOrUnion
Union :: StructOrUnion
data StructDeclnList
StructDeclnBase :: StructDecln -> StructDeclnList
StructDeclnCons :: StructDeclnList -> StructDecln -> StructDeclnList
data StructDecln
StructDecln :: SpecQualList -> StructDeclrList -> StructDecln
data SpecQualList
SpecQualType :: TypeSpec -> Maybe SpecQualList -> SpecQualList
SpecQualQual :: TypeQual -> Maybe SpecQualList -> SpecQualList
data StructDeclrList
StructDeclrBase :: StructDeclr -> StructDeclrList
StructDeclrCons :: StructDeclrList -> StructDeclr -> StructDeclrList
data StructDeclr
StructDeclr :: Declr -> StructDeclr
StructDeclrBit :: Maybe Declr -> ConstExpr -> StructDeclr
data EnumSpec
EnumSpec :: Maybe Ident -> EnumrList -> EnumSpec
EnumSpecForw :: Ident -> EnumSpec
data EnumrList
EnumrBase :: Enumr -> EnumrList
EnumrCons :: EnumrList -> Enumr -> EnumrList
data Enumr
Enumr :: EnumConst -> Enumr
EnumrInit :: EnumConst -> ConstExpr -> Enumr
data TypeQual
QConst :: TypeQual
QRestrict :: TypeQual
QVolatile :: TypeQual
data FunSpec
SpecInline :: FunSpec
data Declr
Declr :: Maybe Ptr -> DirectDeclr -> Declr
data DirectDeclr
DirectDeclrIdent :: Ident -> DirectDeclr
DirectDeclrDeclr :: Declr -> DirectDeclr
DirectDeclrArray1 :: DirectDeclr -> Maybe TypeQualList -> Maybe AssignExpr -> DirectDeclr
DirectDeclrArray2 :: DirectDeclr -> Maybe TypeQualList -> AssignExpr -> DirectDeclr
DirectDeclrArray3 :: DirectDeclr -> TypeQualList -> AssignExpr -> DirectDeclr
DirectDeclrArray4 :: DirectDeclr -> Maybe TypeQualList -> DirectDeclr
DirectDeclrFun1 :: DirectDeclr -> ParamTypeList -> DirectDeclr
DirectDeclrFun2 :: DirectDeclr -> Maybe IdentList -> DirectDeclr
data Ptr
PtrBase :: Maybe TypeQualList -> Ptr
PtrCons :: Maybe TypeQualList -> Ptr -> Ptr
data TypeQualList
TypeQualBase :: TypeQual -> TypeQualList
TypeQualCons :: TypeQualList -> TypeQual -> TypeQualList
data ParamTypeList
ParamTypeList :: ParamList -> ParamTypeList
ParamTypeListVar :: ParamList -> ParamTypeList
data ParamList
ParamBase :: ParamDecln -> ParamList
ParamCons :: ParamList -> ParamDecln -> ParamList
data ParamDecln
ParamDecln :: DeclnSpecs -> Declr -> ParamDecln
ParamDeclnAbstract :: DeclnSpecs -> Maybe DirectAbstractDeclr -> ParamDecln
data IdentList
IdentListBase :: Ident -> IdentList
IdentListCons :: IdentList -> Ident -> IdentList
data TypeName
TypeName :: SpecQualList -> Maybe AbstractDeclr -> TypeName
data AbstractDeclr
AbstractDeclr :: Ptr -> AbstractDeclr
AbstractDeclrDirect :: Maybe Ptr -> DirectAbstractDeclr -> AbstractDeclr
data DirectAbstractDeclr
DirectAbstractDeclr :: AbstractDeclr -> DirectAbstractDeclr
DirectAbstractDeclrArray1 :: Maybe DirectAbstractDeclr -> Maybe TypeQualList -> Maybe AssignExpr -> DirectAbstractDeclr
DirectAbstractDeclrArray2 :: Maybe DirectAbstractDeclr -> Maybe TypeQualList -> AssignExpr -> DirectAbstractDeclr
DirectAbstractDeclrArray3 :: Maybe DirectAbstractDeclr -> TypeQualList -> AssignExpr -> DirectAbstractDeclr
DirectAbstractDeclrArray4 :: Maybe DirectAbstractDeclr -> DirectAbstractDeclr
DirectAbstractDeclrFun :: Maybe DirectAbstractDeclr -> Maybe ParamTypeList -> DirectAbstractDeclr
data TypedefName
TypedefName :: Ident -> TypedefName
data Init
InitExpr :: AssignExpr -> Init
InitList :: InitList -> Init
data InitList
InitBase :: Maybe Design -> Init -> InitList
InitCons :: InitList -> Maybe Design -> Init -> InitList
data Design
Design :: DesigrList -> Design
data DesigrList
DesigrBase :: Desigr -> DesigrList
DesigrCons :: DesigrList -> Desigr -> DesigrList
data Desigr
DesigrConst :: ConstExpr -> Desigr
DesigrIdent :: Ident -> Desigr
data Stmt
StmtLabeled :: LabeledStmt -> Stmt
StmtCompound :: CompoundStmt -> Stmt
StmtExpr :: ExprStmt -> Stmt
StmtSelect :: SelectStmt -> Stmt
StmtIter :: IterStmt -> Stmt
StmtJump :: JumpStmt -> Stmt
data LabeledStmt
LabeledIdent :: Ident -> Stmt -> LabeledStmt
LabeledCase :: ConstExpr -> Stmt -> LabeledStmt
LabeledDefault :: Stmt -> LabeledStmt
data CompoundStmt
Compound :: Maybe BlockItemList -> CompoundStmt
data BlockItemList
BlockItemBase :: BlockItem -> BlockItemList
BlockItemCons :: BlockItemList -> BlockItem -> BlockItemList
data BlockItem
BlockItemDecln :: Decln -> BlockItem
BlockItemStmt :: Stmt -> BlockItem
data ExprStmt
ExprStmt :: Maybe Expr -> ExprStmt
data SelectStmt
SelectIf :: Expr -> Stmt -> SelectStmt
SelectIfElse :: Expr -> Stmt -> Stmt -> SelectStmt
SelectSwitch :: Expr -> Stmt -> SelectStmt
data IterStmt
IterWhile :: Expr -> Stmt -> IterStmt
IterDo :: Stmt -> Expr -> IterStmt
IterForUpdate :: Maybe Expr -> Maybe Expr -> Maybe Expr -> Stmt -> IterStmt
IterFor :: Decln -> Maybe Expr -> Maybe Expr -> Stmt -> IterStmt
data JumpStmt
JumpGoto :: Ident -> JumpStmt
JumpContinue :: JumpStmt
JumpBreak :: JumpStmt
JumpReturn :: Maybe Expr -> JumpStmt
data TransUnit
TransUnitBase :: ExtDecln -> TransUnit
TransUnitCons :: TransUnit -> ExtDecln -> TransUnit
data ExtDecln
ExtFun :: FunDef -> ExtDecln
ExtDecln :: Decln -> ExtDecln
data FunDef
FunDef :: DeclnSpecs -> Declr -> Maybe DeclnList -> CompoundStmt -> FunDef
data DeclnList
DeclnBase :: Decln -> DeclnList
DeclnCons :: DeclnList -> Decln -> DeclnList
data PreprocFile
PreprocFile :: Maybe Group -> PreprocFile
data Group
GroupBase :: GroupPart -> Group
GroupCons :: Group -> GroupPart -> Group
data GroupPart
GroupIf :: IfSection -> GroupPart
GroupControl :: ControlLine -> GroupPart
GroupText :: TextLine -> GroupPart
GroupNonDirective :: NonDirective -> GroupPart
data IfSection
IfSection :: IfGroup -> Maybe ElifGroups -> Maybe ElseGroup -> EndIfLine -> IfSection
data IfGroup
If :: ConstExpr -> NewLine -> Maybe Group -> IfGroup
IfDef :: Ident -> NewLine -> Maybe Group -> IfGroup
IfNDef :: Ident -> NewLine -> Maybe Group -> IfGroup
data ElifGroups
ElifBase :: ElifGroup -> ElifGroups
ElifCons :: ElifGroups -> ElifGroup -> ElifGroups
data ElifGroup
Elif :: ConstExpr -> NewLine -> Maybe Group -> ElifGroup
data ElseGroup
Else :: NewLine -> Maybe Group -> ElseGroup
data EndIfLine
EndIf :: NewLine -> EndIfLine
data ControlLine
Include :: PPTokens -> NewLine -> ControlLine
Define1 :: Ident -> ReplaceList -> NewLine -> ControlLine
Define2 :: Ident -> LParen -> Maybe IdentList -> ReplaceList -> NewLine -> ControlLine
Define3 :: Ident -> LParen -> ReplaceList -> NewLine -> ControlLine
Define4 :: Ident -> LParen -> IdentList -> ReplaceList -> NewLine -> ControlLine
Undef :: Ident -> NewLine -> ControlLine
Line :: PPTokens -> NewLine -> ControlLine
Error :: Maybe PPTokens -> NewLine -> ControlLine
Pragma :: Maybe PPTokens -> NewLine -> ControlLine
Hash :: NewLine -> ControlLine
data TextLine
TextLine :: Maybe PPTokens -> NewLine -> TextLine
data NonDirective
NonDirective :: PPTokens -> NewLine -> NonDirective
data LParen
LParen :: LParen
data ReplaceList
ReplaceList :: Maybe PPTokens -> ReplaceList
data PPTokens
PPTokensBase :: PreprocToken -> PPTokens
PPTokensCons :: PPTokens -> PreprocToken -> PPTokens
data NewLine
NewLine :: NewLine

module Language.C99

module Language.C99.Pretty
bin :: (Pretty a, Pretty b) => a -> String -> b -> Doc
class Pretty a
pretty :: Pretty a => a -> Doc
fheader :: DeclnSpecs -> Declr -> Maybe DeclnList -> Doc
instance Language.C99.Pretty.Pretty Language.C99.AST.AbstractDeclr
instance Language.C99.Pretty.Pretty Language.C99.AST.AddExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.AndExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.ArgExprList
instance Language.C99.Pretty.Pretty Language.C99.AST.AssignExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.AssignOp
instance Language.C99.Pretty.Pretty Language.C99.AST.BinExpPart
instance Language.C99.Pretty.Pretty Language.C99.AST.BlockItem
instance Language.C99.Pretty.Pretty Language.C99.AST.BlockItemList
instance Language.C99.Pretty.Pretty Language.C99.AST.CChar
instance Language.C99.Pretty.Pretty Language.C99.AST.CCharSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.CastExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.CharConst
instance Language.C99.Pretty.Pretty Language.C99.AST.CompoundStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.CondExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.Const
instance Language.C99.Pretty.Pretty Language.C99.AST.ConstExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.DecConst
instance Language.C99.Pretty.Pretty Language.C99.AST.DecFloatConst
instance Language.C99.Pretty.Pretty Language.C99.AST.Decln
instance Language.C99.Pretty.Pretty Language.C99.AST.DeclnList
instance Language.C99.Pretty.Pretty Language.C99.AST.DeclnSpecs
instance Language.C99.Pretty.Pretty Language.C99.AST.Declr
instance Language.C99.Pretty.Pretty Language.C99.AST.Design
instance Language.C99.Pretty.Pretty Language.C99.AST.Desigr
instance Language.C99.Pretty.Pretty Language.C99.AST.DesigrList
instance Language.C99.Pretty.Pretty Language.C99.AST.Digit
instance Language.C99.Pretty.Pretty Language.C99.AST.DigitSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.DirectAbstractDeclr
instance Language.C99.Pretty.Pretty Language.C99.AST.DirectDeclr
instance Language.C99.Pretty.Pretty Language.C99.AST.EnumConst
instance Language.C99.Pretty.Pretty Language.C99.AST.EnumSpec
instance Language.C99.Pretty.Pretty Language.C99.AST.Enumr
instance Language.C99.Pretty.Pretty Language.C99.AST.EnumrList
instance Language.C99.Pretty.Pretty Language.C99.AST.EqExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.EscSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.ExpPart
instance Language.C99.Pretty.Pretty Language.C99.AST.Expr
instance Language.C99.Pretty.Pretty Language.C99.AST.ExprStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.ExtDecln
instance Language.C99.Pretty.Pretty Language.C99.AST.FloatConst
instance Language.C99.Pretty.Pretty Language.C99.AST.FloatSuffix
instance Language.C99.Pretty.Pretty Language.C99.AST.FracConst
instance Language.C99.Pretty.Pretty Language.C99.AST.FunDef
instance Language.C99.Pretty.Pretty Language.C99.AST.FunSpec
instance Language.C99.Pretty.Pretty Language.C99.AST.HexConst
instance Language.C99.Pretty.Pretty Language.C99.AST.HexDigit
instance Language.C99.Pretty.Pretty Language.C99.AST.HexDigitSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.HexEscSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.HexFloatConst
instance Language.C99.Pretty.Pretty Language.C99.AST.HexFracConst
instance Language.C99.Pretty.Pretty Language.C99.AST.HexPrefix
instance Language.C99.Pretty.Pretty Language.C99.AST.HexQuad
instance Language.C99.Pretty.Pretty Language.C99.AST.Ident
instance Language.C99.Pretty.Pretty Language.C99.AST.IdentList
instance Language.C99.Pretty.Pretty Language.C99.AST.IdentNonDigit
instance Language.C99.Pretty.Pretty Language.C99.AST.Init
instance Language.C99.Pretty.Pretty Language.C99.AST.InitDeclr
instance Language.C99.Pretty.Pretty Language.C99.AST.InitDeclrList
instance Language.C99.Pretty.Pretty Language.C99.AST.InitList
instance Language.C99.Pretty.Pretty Language.C99.AST.IntConst
instance Language.C99.Pretty.Pretty Language.C99.AST.IntSuffix
instance Language.C99.Pretty.Pretty Language.C99.AST.IterStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.JumpStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.LAndExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.LOrExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.LabeledStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.LongLongSuffix
instance Language.C99.Pretty.Pretty Language.C99.AST.LongSuffix
instance Language.C99.Pretty.Pretty a => Language.C99.Pretty.Pretty (GHC.Internal.Maybe.Maybe a)
instance Language.C99.Pretty.Pretty Language.C99.AST.MultExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.NonDigit
instance Language.C99.Pretty.Pretty Language.C99.AST.NonZeroDigit
instance Language.C99.Pretty.Pretty Language.C99.AST.OcConst
instance Language.C99.Pretty.Pretty Language.C99.AST.OcDigit
instance Language.C99.Pretty.Pretty Language.C99.AST.OcEscSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.OrExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.ParamDecln
instance Language.C99.Pretty.Pretty Language.C99.AST.ParamList
instance Language.C99.Pretty.Pretty Language.C99.AST.ParamTypeList
instance Language.C99.Pretty.Pretty Language.C99.AST.PostfixExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.PrimExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.Ptr
instance Language.C99.Pretty.Pretty Language.C99.AST.RelExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.SChar
instance Language.C99.Pretty.Pretty Language.C99.AST.SCharSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.SelectStmt
instance Language.C99.Pretty.Pretty Language.C99.AST.ShiftExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.Sign
instance Language.C99.Pretty.Pretty Language.C99.AST.SimpleEscSeq
instance Language.C99.Pretty.Pretty Language.C99.AST.SpecQualList
instance Language.C99.Pretty.Pretty Language.C99.AST.Stmt
instance Language.C99.Pretty.Pretty Language.C99.AST.StorageClassSpec
instance Language.C99.Pretty.Pretty Language.C99.AST.StringLit
instance Language.C99.Pretty.Pretty Language.C99.AST.StructDecln
instance Language.C99.Pretty.Pretty Language.C99.AST.StructDeclnList
instance Language.C99.Pretty.Pretty Language.C99.AST.StructDeclr
instance Language.C99.Pretty.Pretty Language.C99.AST.StructDeclrList
instance Language.C99.Pretty.Pretty Language.C99.AST.StructOrUnion
instance Language.C99.Pretty.Pretty Language.C99.AST.StructOrUnionSpec
instance Language.C99.Pretty.Pretty Language.C99.AST.TransUnit
instance Language.C99.Pretty.Pretty Language.C99.AST.TypeName
instance Language.C99.Pretty.Pretty Language.C99.AST.TypeQual
instance Language.C99.Pretty.Pretty Language.C99.AST.TypeQualList
instance Language.C99.Pretty.Pretty Language.C99.AST.TypeSpec
instance Language.C99.Pretty.Pretty Language.C99.AST.TypedefName
instance Language.C99.Pretty.Pretty Language.C99.AST.UnaryExpr
instance Language.C99.Pretty.Pretty Language.C99.AST.UnaryOp
instance Language.C99.Pretty.Pretty Language.C99.AST.UnivCharName
instance Language.C99.Pretty.Pretty Language.C99.AST.UnsignedSuffix
instance Language.C99.Pretty.Pretty Language.C99.AST.XOrExpr
