language-c99-0.2.0: An implementation of the C99 AST that strictly follows the standard.

Safe Haskell | Safe-Inferred
Language | Haskell2010

Language.C99.AST

# Documentation

data PreprocToken Source #

Constructors

PreprocHeader HeaderName |
PreprocIdent Ident |
PreprocNumber PPNumber |
PreprocChar CharConst |
PreprocString StringLit |
PreprocPunc Punc |
PreprocNoneWhite |

data Ident Source #

Constructors

IdentBase IdentNonDigit |
IdentConsNonDigit Ident IdentNonDigit |
IdentCons Ident Digit |

#### Instances

Instances details

Pretty Ident Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Ident -> Doc Source #

data IdentNonDigit Source #

Constructors

IdentNonDigit NonDigit |
IdentNonDigitUniv UnivCharName |

#### Instances

Instances details

Pretty IdentNonDigit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: IdentNonDigit -> Doc Source #

data NonDigit Source #

Constructors

NDUnderscore |
NDa |
NDA |
NDb |
NDB |
NDc |
NDC |
NDd |
NDD |
NDe |
NDE |
NDf |
NDF |
NDg |
NDG |
NDh |
NDH |
NDi |
NDI |
NDj |
NDJ |
NDk |
NDK |
NDl |
NDL |
NDm |
NDM |
NDn |
NDN |
NDo |
NDO |
NDp |
NDP |
NDq |
NDQ |
NDr |
NDR |
NDs |
NDS |
NDt |
NDT |
NDu |
NDU |
NDv |
NDV |
NDw |
NDW |
NDx |
NDX |
NDy |
NDY |
NDz |
NDZ |

#### Instances

Instances details

Pretty NonDigit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: NonDigit -> Doc Source #

data Digit Source #

Constructors

DZero |
DOne |
DTwo |
DThree |
DFour |
DFive |
DSix |
DSeven |
DEight |
DNine |

#### Instances

Instances details

Pretty Digit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Digit -> Doc Source #

data UnivCharName Source #

Constructors

UnivCharName1 HexQuad |
UnivCharName2 HexQuad HexQuad |

#### Instances

Instances details

Pretty UnivCharName Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: UnivCharName -> Doc Source #

data HexQuad Source #

Constructors

HexQuad HexDigit HexDigit HexDigit HexDigit |

#### Instances

Instances details

Pretty HexQuad Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexQuad -> Doc Source #

data Const Source #

Constructors

ConstInt IntConst |
ConstFloat FloatConst |
ConstEnum EnumConst |
ConstChar CharConst |

#### Instances

Instances details

Pretty Const Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Const -> Doc Source #

data IntConst Source #

Constructors

IntDec DecConst (Maybe IntSuffix) |
IntOc OcConst (Maybe IntSuffix) |
IntHex HexConst (Maybe IntSuffix) |

#### Instances

Instances details

Pretty IntConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: IntConst -> Doc Source #

data DecConst Source #

Constructors

DecBase NonZeroDigit |
DecCons DecConst Digit |

#### Instances

Instances details

Pretty DecConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DecConst -> Doc Source #

data OcConst Source #

Constructors

Oc0 |
OcCons OcConst OcDigit |

#### Instances

Instances details

Pretty OcConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: OcConst -> Doc Source #

data HexConst Source #

Constructors

HexBase HexPrefix HexDigit |
HexCons HexConst HexDigit |

#### Instances

Instances details

Pretty HexConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexConst -> Doc Source #

data HexPrefix Source #

Constructors

OX |

#### Instances

Instances details

Pretty HexPrefix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexPrefix -> Doc Source #

data NonZeroDigit Source #

Constructors

NZOne |
NZTwo |
NZThree |
NZFour |
NZFive |
NZSix |
NZSeven |
NZEight |
NZNine |

#### Instances

Instances details

Pretty NonZeroDigit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: NonZeroDigit -> Doc Source #

data OcDigit Source #

Constructors

OcZero |
OcOne |
OcTwo |
OcThree |
OcFour |
OcFive |
OcSix |
OcSeven |

#### Instances

Instances details

Pretty OcDigit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: OcDigit -> Doc Source #

data HexDigit Source #

Constructors

HexZero |
HexOne |
HexTwo |
HexThree |
HexFour |
HexFive |
HexSix |
HexSeven |
HexEight |
HexNine |
Hexa |
HexA |
Hexb |
HexB |
Hexc |
HexC |
Hexd |
HexD |
Hexe |
HexE |
Hexf |
HexF |

#### Instances

Instances details

Pretty HexDigit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexDigit -> Doc Source #

data IntSuffix Source #

Constructors

IntSuffixUnsignedLong UnsignedSuffix (Maybe LongSuffix) |
IntSuffixUnsignedLongLong UnsignedSuffix LongLongSuffix |
IntSuffixLong LongSuffix (Maybe UnsignedSuffix) |
IntSuffixLongLong LongLongSuffix (Maybe UnsignedSuffix) |

#### Instances

Instances details

Pretty IntSuffix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: IntSuffix -> Doc Source #

data UnsignedSuffix Source #

Constructors

U |

#### Instances

Instances details

Pretty UnsignedSuffix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: UnsignedSuffix -> Doc Source #

data LongSuffix Source #

Constructors

L |

#### Instances

Instances details

Pretty LongSuffix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: LongSuffix -> Doc Source #

data LongLongSuffix Source #

Constructors

LL |

#### Instances

Instances details

Pretty LongLongSuffix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: LongLongSuffix -> Doc Source #

data FloatConst Source #

Constructors

FloatDec DecFloatConst |
FloatHex HexFloatConst |

#### Instances

Instances details

Pretty FloatConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: FloatConst -> Doc Source #

data DecFloatConst Source #

Constructors

DecFloatFrac FracConst (Maybe ExpPart) (Maybe FloatSuffix) |
DecFloatDigits DigitSeq ExpPart (Maybe FloatSuffix) |

#### Instances

Instances details

Pretty DecFloatConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DecFloatConst -> Doc Source #

data HexFloatConst Source #

Constructors

HexFloatFrac HexPrefix HexFracConst BinExpPart (Maybe FloatSuffix) |
HexFloatDigits HexPrefix HexDigitSeq BinExpPart (Maybe FloatSuffix) |

#### Instances

Instances details

Pretty HexFloatConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexFloatConst -> Doc Source #

data FracConst Source #

Constructors

FracZero (Maybe DigitSeq) DigitSeq |
Frac DigitSeq |

#### Instances

Instances details

Pretty FracConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: FracConst -> Doc Source #

data ExpPart Source #

Constructors

E (Maybe Sign) DigitSeq |

#### Instances

Instances details

Pretty ExpPart Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ExpPart -> Doc Source #

data Sign Source #

Constructors

SPlus |
SMinus |

#### Instances

Instances details

Pretty Sign Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Sign -> Doc Source #

data DigitSeq Source #

Constructors

DigitBase Digit |
DigitCons DigitSeq Digit |

#### Instances

Instances details

Pretty DigitSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DigitSeq -> Doc Source #

data HexFracConst Source #

Constructors

HexFracZero (Maybe HexDigitSeq) HexDigitSeq |
HexFrac HexDigitSeq |

#### Instances

Instances details

Pretty HexFracConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexFracConst -> Doc Source #

data BinExpPart Source #

Constructors

P (Maybe Sign) DigitSeq |

#### Instances

Instances details

Pretty BinExpPart Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: BinExpPart -> Doc Source #

data HexDigitSeq Source #

Constructors

HexDigitBase HexDigit |
HexDigitCons HexDigitSeq HexDigit |

#### Instances

Instances details

Pretty HexDigitSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexDigitSeq -> Doc Source #

data FloatSuffix Source #

Constructors

FF |
FL |

#### Instances

Instances details

Pretty FloatSuffix Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: FloatSuffix -> Doc Source #

data EnumConst Source #

Constructors

Enum Ident |

#### Instances

Instances details

Pretty EnumConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: EnumConst -> Doc Source #

data CharConst Source #

Constructors

Char CCharSeq |
CharL CCharSeq |

#### Instances

Instances details

Pretty CharConst Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CharConst -> Doc Source #

data CCharSeq Source #

Constructors

CCharBase CChar |
CCharCons CCharSeq CChar |

#### Instances

Instances details

Pretty CCharSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CCharSeq -> Doc Source #

data CChar Source #

Constructors

CChar Char |
CCharEsc EscSeq |

#### Instances

Instances details

Pretty CChar Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CChar -> Doc Source #

data EscSeq Source #

Constructors

EscSimple SimpleEscSeq |
EscOc OcEscSeq |
EscHex HexEscSeq |
EscUniv UnivCharName |

#### Instances

Instances details

Pretty EscSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: EscSeq -> Doc Source #

data SimpleEscSeq Source #

Constructors

SEQuote |
SEDQuote |
SEQuestion |
SEBackSlash |
SEa |
SEb |
SEf |
SEn |
SEr |
SEt |
SEv |

#### Instances

Instances details

Pretty SimpleEscSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: SimpleEscSeq -> Doc Source #

data OcEscSeq Source #

Constructors

OcEsc1 OcDigit |
OcEsc2 OcDigit OcDigit |
OcEsc3 OcDigit OcDigit OcDigit |

#### Instances

Instances details

Pretty OcEscSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: OcEscSeq -> Doc Source #

data HexEscSeq Source #

Constructors

HexEscBase HexDigit |
HexEscCons HexEscSeq HexDigit |

#### Instances

Instances details

Pretty HexEscSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: HexEscSeq -> Doc Source #

data StringLit Source #

Constructors

StringLit (Maybe SCharSeq) |
StringLitL (Maybe SCharSeq) |

#### Instances

Instances details

Pretty StringLit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StringLit -> Doc Source #

data SCharSeq Source #

Constructors

SCharBase SChar |
SCharCons SCharSeq SChar |

#### Instances

Instances details

Pretty SCharSeq Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: SCharSeq -> Doc Source #

data SChar Source #

Constructors

SChar Char |
SCharEsc EscSeq |

#### Instances

Instances details

Pretty SChar Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: SChar -> Doc Source #

data Punc Source #

Constructors

PuncSquareL |
PuncSquareR |
PuncParenL |
PuncParenR |
PuncBraceL |
PuncBraceR |
PuncDot |
PuncArrow |
PuncPlusPlus |
PuncMinMin |
PuncAmpersand |
PuncAsterisk |
PuncPlus |
PuncMin |
PuncTilde |
PuncExclamation |
PuncFSlash |
PuncPercent |
PuncShiftL |
PuncShiftR |
PuncLT |
PuncGT |
PuncLE |
PuncGE |
PuncEq |
PuncNEq |
PuncCaret |
PuncBar |
PuncDoubleAmpersand |
PuncDoubleBar |
PuncQuestion |
PuncColon |
PuncSemicolon |
PuncDots |
PuncAssign |
PuncAssignTimes |
PuncAssignDiv |
PuncAssignMod |
PuncAssignPlus |
PuncAssignMin |
PuncAssignShiftL |
PuncAssignShiftR |
PuncAssignAnd |
PuncAssignXOr |
PuncAssignOr |
PuncComma |
PuncHash |
PuncDoubleHash |
PuncDiSquareL |
PuncDiSquareR |
PuncDiBraceL |
PuncDiBraceR |
PuncDiHash |
PuncDiDoubleHash |

data HeaderName Source #

Constructors

HeaderGlobal HCharSeq |
HeaderLocal QCharSeq |

data HCharSeq Source #

Constructors

HCharBase HChar |
HCharCons HCharSeq HChar |

data HChar Source #

Constructors

HChar Char |

data QCharSeq Source #

Constructors

QCharBase QChar |
QCharCons QCharSeq QChar |

data QChar Source #

Constructors

QChar Char |

data PPNumber Source #

Constructors

PPDigit Digit |
PPDec Digit |
PPNum PPNumber Digit |
PPIdent PPNumber IdentNonDigit |
PPe PPNumber Sign |
PPE PPNumber Sign |
PPp PPNumber Sign |
PPP PPNumber Sign |
PPDot PPNumber |

data PrimExpr Source #

Constructors

PrimIdent Ident |
PrimConst Const |
PrimString StringLit |
PrimExpr Expr |

#### Instances

Instances details

Pretty PrimExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: PrimExpr -> Doc Source #

data PostfixExpr Source #

Constructors

PostfixPrim PrimExpr |
PostfixIndex PostfixExpr Expr |
PostfixFunction PostfixExpr (Maybe ArgExprList) |
PostfixDot PostfixExpr Ident |
PostfixArrow PostfixExpr Ident |
PostfixInc PostfixExpr |
PostfixDec PostfixExpr |
PostfixInits TypeName InitList |

#### Instances

Instances details

Pretty PostfixExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: PostfixExpr -> Doc Source #

data ArgExprList Source #

Constructors

ArgExprListBase AssignExpr |
ArgExprListCons ArgExprList AssignExpr |

#### Instances

Instances details

Pretty ArgExprList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ArgExprList -> Doc Source #

data UnaryExpr Source #

Constructors

UnaryPostfix PostfixExpr |
UnaryInc UnaryExpr |
UnaryDec UnaryExpr |
UnaryOp UnaryOp CastExpr |
UnarySizeExpr UnaryExpr |
UnarySizeType TypeName |

#### Instances

Instances details

Pretty UnaryExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: UnaryExpr -> Doc Source #

data UnaryOp Source #

Constructors

UORef |
UODeref |
UOPlus |
UOMin |
UOBNot |
UONot |

#### Instances

Instances details

Pretty UnaryOp Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: UnaryOp -> Doc Source #

data CastExpr Source #

Constructors

CastUnary UnaryExpr |
Cast TypeName CastExpr |

#### Instances

Instances details

Pretty CastExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CastExpr -> Doc Source #

data MultExpr Source #

Constructors

MultCast CastExpr |
MultMult MultExpr CastExpr |
MultDiv MultExpr CastExpr |
MultMod MultExpr CastExpr |

#### Instances

Instances details

Pretty MultExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: MultExpr -> Doc Source #

data AddExpr Source #

Constructors

AddMult MultExpr |
AddPlus AddExpr MultExpr |
AddMin AddExpr MultExpr |

#### Instances

Instances details

Pretty AddExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: AddExpr -> Doc Source #

data ShiftExpr Source #

Constructors

ShiftAdd AddExpr |
ShiftLeft ShiftExpr AddExpr |
ShiftRight ShiftExpr AddExpr |

#### Instances

Instances details

Pretty ShiftExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ShiftExpr -> Doc Source #

data RelExpr Source #

Constructors

RelShift ShiftExpr |
RelLT RelExpr ShiftExpr |
RelGT RelExpr ShiftExpr |
RelLE RelExpr ShiftExpr |
RelGE RelExpr ShiftExpr |

#### Instances

Instances details

Pretty RelExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: RelExpr -> Doc Source #

data EqExpr Source #

Constructors

EqRel RelExpr |
EqEq EqExpr RelExpr |
EqNEq EqExpr RelExpr |

#### Instances

Instances details

Pretty EqExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: EqExpr -> Doc Source #

data AndExpr Source #

Constructors

AndEq EqExpr |
And AndExpr EqExpr |

#### Instances

Instances details

Pretty AndExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: AndExpr -> Doc Source #

data XOrExpr Source #

Constructors

XOrAnd AndExpr |
XOr XOrExpr AndExpr |

#### Instances

Instances details

Pretty XOrExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: XOrExpr -> Doc Source #

data OrExpr Source #

Constructors

OrXOr XOrExpr |
Or OrExpr XOrExpr |

#### Instances

Instances details

Pretty OrExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: OrExpr -> Doc Source #

data LAndExpr Source #

Constructors

LAndOr OrExpr |
LAnd LAndExpr OrExpr |

#### Instances

Instances details

Pretty LAndExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: LAndExpr -> Doc Source #

data LOrExpr Source #

Constructors

LOrAnd LAndExpr |
LOr LOrExpr LAndExpr |

#### Instances

Instances details

Pretty LOrExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: LOrExpr -> Doc Source #

data CondExpr Source #

Constructors

CondLOr LOrExpr |
Cond LOrExpr Expr CondExpr |

#### Instances

Instances details

Pretty CondExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CondExpr -> Doc Source #

data AssignExpr Source #

Constructors

AssignCond CondExpr |
Assign UnaryExpr AssignOp AssignExpr |

#### Instances

Instances details

Pretty AssignExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: AssignExpr -> Doc Source #

data AssignOp Source #

Constructors

AEq |
ATimes |
ADiv |
AMod |
AAdd |
ASub |
AShiftL |
AShiftR |
AAnd |
AXOr |
AOr |

#### Instances

Instances details

Pretty AssignOp Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: AssignOp -> Doc Source #

data Expr Source #

Constructors

ExprAssign AssignExpr |
Expr Expr AssignExpr |

#### Instances

Instances details

Pretty Expr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Expr -> Doc Source #

data ConstExpr Source #

Constructors

Const CondExpr |

#### Instances

Instances details

Pretty ConstExpr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ConstExpr -> Doc Source #

data Decln Source #

Constructors

Decln DeclnSpecs (Maybe InitDeclrList) |

#### Instances

Instances details

Pretty Decln Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Decln -> Doc Source #

data DeclnSpecs Source #

Constructors

DeclnSpecsStorage StorageClassSpec (Maybe DeclnSpecs) |
DeclnSpecsType TypeSpec (Maybe DeclnSpecs) |
DeclnSpecsQual TypeQual (Maybe DeclnSpecs) |
DeclnSpecsFun FunSpec (Maybe DeclnSpecs) |

#### Instances

Instances details

Pretty DeclnSpecs Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DeclnSpecs -> Doc Source #

data InitDeclrList Source #

Constructors

InitDeclrBase InitDeclr |
InitDeclrCons InitDeclrList InitDeclr |

#### Instances

Instances details

Pretty InitDeclrList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: InitDeclrList -> Doc Source #

data InitDeclr Source #

Constructors

InitDeclr Declr |
InitDeclrInitr Declr Init |

#### Instances

Instances details

Pretty InitDeclr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: InitDeclr -> Doc Source #

data StorageClassSpec Source #

Constructors

STypedef |
SExtern |
SStatic |
SAuto |
SRegister |

#### Instances

Instances details

Pretty StorageClassSpec Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StorageClassSpec -> Doc Source #

data TypeSpec Source #

Constructors

TVoid |
TChar |
TShort |
TInt |
TLong |
TFloat |
TDouble |
TSigned |
TUnsigned |
TBool |
TComplex |
TStructOrUnion StructOrUnionSpec |
TEnum EnumSpec |
TTypedef TypedefName |

#### Instances

Instances details

Pretty TypeSpec Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TypeSpec -> Doc Source #

data StructOrUnionSpec Source #

Constructors

StructOrUnionDecln StructOrUnion (Maybe Ident) StructDeclnList |
StructOrUnionForwDecln StructOrUnion Ident |

#### Instances

Instances details

Pretty StructOrUnionSpec Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructOrUnionSpec -> Doc Source #

data StructOrUnion Source #

Constructors

Struct |
Union |

#### Instances

Instances details

Pretty StructOrUnion Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructOrUnion -> Doc Source #

data StructDeclnList Source #

Constructors

StructDeclnBase StructDecln |
StructDeclnCons StructDeclnList StructDecln |

#### Instances

Instances details

Pretty StructDeclnList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructDeclnList -> Doc Source #

data StructDecln Source #

Constructors

StructDecln SpecQualList StructDeclrList |

#### Instances

Instances details

Pretty StructDecln Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructDecln -> Doc Source #

data SpecQualList Source #

Constructors

SpecQualType TypeSpec (Maybe SpecQualList) |
SpecQualQual TypeQual (Maybe SpecQualList) |

#### Instances

Instances details

Pretty SpecQualList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: SpecQualList -> Doc Source #

data StructDeclrList Source #

Constructors

StructDeclrBase StructDeclr |
StructDeclrCons StructDeclrList StructDeclr |

#### Instances

Instances details

Pretty StructDeclrList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructDeclrList -> Doc Source #

data StructDeclr Source #

Constructors

StructDeclr Declr |
StructDeclrBit (Maybe Declr) ConstExpr |

#### Instances

Instances details

Pretty StructDeclr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: StructDeclr -> Doc Source #

data EnumSpec Source #

Constructors

EnumSpec (Maybe Ident) EnumrList |
EnumSpecForw Ident |

#### Instances

Instances details

Pretty EnumSpec Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: EnumSpec -> Doc Source #

data EnumrList Source #

Constructors

EnumrBase Enumr |
EnumrCons EnumrList Enumr |

#### Instances

Instances details

Pretty EnumrList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: EnumrList -> Doc Source #

data Enumr Source #

Constructors

Enumr EnumConst |
EnumrInit EnumConst ConstExpr |

#### Instances

Instances details

Pretty Enumr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Enumr -> Doc Source #

data TypeQual Source #

Constructors

QConst |
QRestrict |
QVolatile |

#### Instances

Instances details

Pretty TypeQual Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TypeQual -> Doc Source #

data FunSpec Source #

Constructors

SpecInline |

#### Instances

Instances details

Pretty FunSpec Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: FunSpec -> Doc Source #

data Declr Source #

Constructors

Declr (Maybe Ptr) DirectDeclr |

#### Instances

Instances details

Pretty Declr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Declr -> Doc Source #

data DirectDeclr Source #

Constructors

DirectDeclrIdent Ident |
DirectDeclrDeclr Declr |
DirectDeclrArray1 DirectDeclr (Maybe TypeQualList) (Maybe AssignExpr) |
DirectDeclrArray2 DirectDeclr (Maybe TypeQualList) AssignExpr |
DirectDeclrArray3 DirectDeclr TypeQualList AssignExpr |
DirectDeclrArray4 DirectDeclr (Maybe TypeQualList) |
DirectDeclrFun1 DirectDeclr ParamTypeList |
DirectDeclrFun2 DirectDeclr (Maybe IdentList) |

#### Instances

Instances details

Pretty DirectDeclr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DirectDeclr -> Doc Source #

data Ptr Source #

Constructors

PtrBase (Maybe TypeQualList) |
PtrCons (Maybe TypeQualList) Ptr |

#### Instances

Instances details

Pretty Ptr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Ptr -> Doc Source #

data TypeQualList Source #

Constructors

TypeQualBase TypeQual |
TypeQualCons TypeQualList TypeQual |

#### Instances

Instances details

Pretty TypeQualList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TypeQualList -> Doc Source #

data ParamTypeList Source #

Constructors

ParamTypeList ParamList |
ParamTypeListVar ParamList |

#### Instances

Instances details

Pretty ParamTypeList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ParamTypeList -> Doc Source #

data ParamList Source #

Constructors

ParamBase ParamDecln |
ParamCons ParamList ParamDecln |

#### Instances

Instances details

Pretty ParamList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ParamList -> Doc Source #

data ParamDecln Source #

Constructors

ParamDecln DeclnSpecs Declr |
ParamDeclnAbstract DeclnSpecs (Maybe DirectAbstractDeclr) |

#### Instances

Instances details

Pretty ParamDecln Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ParamDecln -> Doc Source #

data IdentList Source #

Constructors

IdentListBase Ident |
IdentListCons IdentList Ident |

#### Instances

Instances details

Pretty IdentList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: IdentList -> Doc Source #

data TypeName Source #

Constructors

TypeName SpecQualList (Maybe AbstractDeclr) |

#### Instances

Instances details

Pretty TypeName Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TypeName -> Doc Source #

data AbstractDeclr Source #

Constructors

AbstractDeclr Ptr |
AbstractDeclrDirect (Maybe Ptr) DirectAbstractDeclr |

#### Instances

Instances details

Pretty AbstractDeclr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: AbstractDeclr -> Doc Source #

data DirectAbstractDeclr Source #

Constructors

DirectAbstractDeclr AbstractDeclr |
DirectAbstractDeclrArray1 (Maybe DirectAbstractDeclr) (Maybe TypeQualList) (Maybe AssignExpr) |
DirectAbstractDeclrArray2 (Maybe DirectAbstractDeclr) (Maybe TypeQualList) AssignExpr |
DirectAbstractDeclrArray3 (Maybe DirectAbstractDeclr) TypeQualList AssignExpr |
DirectAbstractDeclrArray4 (Maybe DirectAbstractDeclr) |
DirectAbstractDeclrFun (Maybe DirectAbstractDeclr) (Maybe ParamTypeList) |

#### Instances

Instances details

Pretty DirectAbstractDeclr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DirectAbstractDeclr -> Doc Source #

data TypedefName Source #

Constructors

TypedefName Ident |

#### Instances

Instances details

Pretty TypedefName Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TypedefName -> Doc Source #

data Init Source #

Constructors

InitExpr AssignExpr |
InitList InitList |

#### Instances

Instances details

Pretty Init Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Init -> Doc Source #

data InitList Source #

Constructors

InitBase (Maybe Design) Init |
InitCons InitList (Maybe Design) Init |

#### Instances

Instances details

Pretty InitList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: InitList -> Doc Source #

data Design Source #

Constructors

Design DesigrList |

#### Instances

Instances details

Pretty Design Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Design -> Doc Source #

data DesigrList Source #

Constructors

DesigrBase Desigr |
DesigrCons DesigrList Desigr |

#### Instances

Instances details

Pretty DesigrList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DesigrList -> Doc Source #

data Desigr Source #

Constructors

DesigrConst ConstExpr |
DesigrIdent Ident |

#### Instances

Instances details

Pretty Desigr Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Desigr -> Doc Source #

data Stmt Source #

Constructors

StmtLabeled LabeledStmt |
StmtCompound CompoundStmt |
StmtExpr ExprStmt |
StmtSelect SelectStmt |
StmtIter IterStmt |
StmtJump JumpStmt |

#### Instances

Instances details

Pretty Stmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: Stmt -> Doc Source #

data LabeledStmt Source #

Constructors

LabeledIdent Ident Stmt |
LabeledCase ConstExpr Stmt |
LabeledDefault Stmt |

#### Instances

Instances details

Pretty LabeledStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: LabeledStmt -> Doc Source #

data CompoundStmt Source #

Constructors

Compound (Maybe BlockItemList) |

#### Instances

Instances details

Pretty CompoundStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: CompoundStmt -> Doc Source #

data BlockItemList Source #

Constructors

BlockItemBase BlockItem |
BlockItemCons BlockItemList BlockItem |

#### Instances

Instances details

Pretty BlockItemList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: BlockItemList -> Doc Source #

data BlockItem Source #

Constructors

BlockItemDecln Decln |
BlockItemStmt Stmt |

#### Instances

Instances details

Pretty BlockItem Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: BlockItem -> Doc Source #

data ExprStmt Source #

Constructors

ExprStmt (Maybe Expr) |

#### Instances

Instances details

Pretty ExprStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ExprStmt -> Doc Source #

data SelectStmt Source #

Constructors

SelectIf Expr Stmt |
SelectIfElse Expr Stmt Stmt |
SelectSwitch Expr Stmt |

#### Instances

Instances details

Pretty SelectStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: SelectStmt -> Doc Source #

data IterStmt Source #

Constructors

IterWhile Expr Stmt |
IterDo Stmt Expr |
IterForUpdate (Maybe Expr) (Maybe Expr) (Maybe Expr) Stmt |
IterFor Decln (Maybe Expr) (Maybe Expr) Stmt |

#### Instances

Instances details

Pretty IterStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: IterStmt -> Doc Source #

data JumpStmt Source #

Constructors

JumpGoto Ident |
JumpContinue |
JumpBreak |
JumpReturn (Maybe Expr) |

#### Instances

Instances details

Pretty JumpStmt Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: JumpStmt -> Doc Source #

data TransUnit Source #

Constructors

TransUnitBase ExtDecln |
TransUnitCons TransUnit ExtDecln |

#### Instances

Instances details

Pretty TransUnit Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: TransUnit -> Doc Source #

data ExtDecln Source #

Constructors

ExtFun FunDef |
ExtDecln Decln |

#### Instances

Instances details

Pretty ExtDecln Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: ExtDecln -> Doc Source #

data FunDef Source #

Constructors

FunDef DeclnSpecs Declr (Maybe DeclnList) CompoundStmt |

#### Instances

Instances details

Pretty FunDef Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: FunDef -> Doc Source #

data DeclnList Source #

Constructors

DeclnBase Decln |
DeclnCons DeclnList Decln |

#### Instances

Instances details

Pretty DeclnList Source # |
Instance details Defined in Language.C99.Pretty Methods pretty :: DeclnList -> Doc Source #

data PreprocFile Source #

Constructors

PreprocFile (Maybe Group) |

data Group Source #

Constructors

GroupBase GroupPart |
GroupCons Group GroupPart |

data GroupPart Source #

Constructors

GroupIf IfSection |
GroupControl ControlLine |
GroupText TextLine |
GroupNonDirective NonDirective |

data IfSection Source #

Constructors

IfSection IfGroup (Maybe ElifGroups) (Maybe ElseGroup) EndIfLine |

data IfGroup Source #

Constructors

If ConstExpr NewLine (Maybe Group) |
IfDef Ident NewLine (Maybe Group) |
IfNDef Ident NewLine (Maybe Group) |

data ElifGroups Source #

Constructors

ElifBase ElifGroup |
ElifCons ElifGroups ElifGroup |

data ElifGroup Source #

Constructors

Elif ConstExpr NewLine (Maybe Group) |

data ElseGroup Source #

Constructors

Else NewLine (Maybe Group) |

data EndIfLine Source #

Constructors

EndIf NewLine |

data ControlLine Source #

Constructors

Include PPTokens NewLine |
Define1 Ident ReplaceList NewLine |
Define2 Ident LParen (Maybe IdentList) ReplaceList NewLine |
Define3 Ident LParen ReplaceList NewLine |
Define4 Ident LParen IdentList ReplaceList NewLine |
Undef Ident NewLine |
Line PPTokens NewLine |
Error (Maybe PPTokens) NewLine |
Pragma (Maybe PPTokens) NewLine |
Hash NewLine |

data TextLine Source #

Constructors

TextLine (Maybe PPTokens) NewLine |

data NonDirective Source #

Constructors

NonDirective PPTokens NewLine |

data LParen Source #

Constructors

LParen |

data ReplaceList Source #

Constructors

ReplaceList (Maybe PPTokens) |

data PPTokens Source #

Constructors

PPTokensBase PreprocToken |
PPTokensCons PPTokens PreprocToken |

data NewLine Source #

Constructors

NewLine |