Copyright | (c) [1999..2007] Manuel M T Chakravarty (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | None |
Language | Haskell2010 |
Language.C.Syntax.AST
Description
Abstract syntax of C source and header files.
The tree structure is based on the grammar in Appendix A of K&R. The abstract syntax simplifies the concrete syntax by merging similar concrete constructs into a single type of abstract tree structure: declarations are merged with structure declarations, parameter declarations and type names, and declarators are merged with abstract declarators.
With K&R we refer to ``The C Programming Language'', second edition, Brain W. Kernighan and Dennis M. Ritchie, Prentice Hall, 1988. The AST supports all of C99 http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf and several GNU extensions http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html.
Synopsis
- type CTranslUnit = CTranslationUnit NodeInfo
- type CExtDecl = CExternalDeclaration NodeInfo
- data CTranslationUnit a = CTranslUnit [CExternalDeclaration a] a
- data CExternalDeclaration a
- = CDeclExt (CDeclaration a)
- | CFDefExt (CFunctionDef a)
- | CAsmExt (CStringLiteral a) a
- type CFunDef = CFunctionDef NodeInfo
- type CDecl = CDeclaration NodeInfo
- type CStructUnion = CStructureUnion NodeInfo
- type CEnum = CEnumeration NodeInfo
- data CFunctionDef a = CFunDef [CDeclarationSpecifier a] (CDeclarator a) [CDeclaration a] (CStatement a) a
- data CDeclaration a
- = CDecl [CDeclarationSpecifier a] [(Maybe (CDeclarator a), Maybe (CInitializer a), Maybe (CExpression a))] a
- | CStaticAssert (CExpression a) (CStringLiteral a) a
- data CStructTag
- data CStructureUnion a = CStruct CStructTag (Maybe Ident) (Maybe [CDeclaration a]) [CAttribute a] a
- data CEnumeration a = CEnum (Maybe Ident) (Maybe [(Ident, Maybe (CExpression a))]) [CAttribute a] a
- type CDeclSpec = CDeclarationSpecifier NodeInfo
- partitionDeclSpecs :: [CDeclarationSpecifier a] -> ([CStorageSpecifier a], [CAttribute a], [CTypeQualifier a], [CTypeSpecifier a], [CFunctionSpecifier a], [CAlignmentSpecifier a])
- type CStorageSpec = CStorageSpecifier NodeInfo
- type CTypeSpec = CTypeSpecifier NodeInfo
- isSUEDef :: CTypeSpecifier a -> Bool
- type CTypeQual = CTypeQualifier NodeInfo
- type CFunSpec = CFunctionSpecifier NodeInfo
- type CAlignSpec = CAlignmentSpecifier NodeInfo
- type CAttr = CAttribute NodeInfo
- data CFunctionSpecifier a
- = CInlineQual a
- | CNoreturnQual a
- data CDeclarationSpecifier a
- = CStorageSpec (CStorageSpecifier a)
- | CTypeSpec (CTypeSpecifier a)
- | CTypeQual (CTypeQualifier a)
- | CFunSpec (CFunctionSpecifier a)
- | CAlignSpec (CAlignmentSpecifier a)
- data CStorageSpecifier a
- data CTypeSpecifier a
- = CVoidType a
- | CCharType a
- | CShortType a
- | CIntType a
- | CLongType a
- | CFloatType a
- | CDoubleType a
- | CSignedType a
- | CUnsigType a
- | CBoolType a
- | CComplexType a
- | CInt128Type a
- | CUInt128Type a
- | CBFloat16Type a
- | CFloatNType Int Bool a
- | CSUType (CStructureUnion a) a
- | CEnumType (CEnumeration a) a
- | CTypeDef Ident a
- | CTypeOfExpr (CExpression a) a
- | CTypeOfType (CDeclaration a) a
- | CAtomicType (CDeclaration a) a
- data CAlignmentSpecifier a
- = CAlignAsType (CDeclaration a) a
- | CAlignAsExpr (CExpression a) a
- data CTypeQualifier a
- = CConstQual a
- | CVolatQual a
- | CRestrQual a
- | CAtomicQual a
- | CAttrQual (CAttribute a)
- | CNullableQual a
- | CNonnullQual a
- | CClRdOnlyQual a
- | CClWrOnlyQual a
- data CAttribute a = CAttr Ident [CExpression a] a
- type CDeclr = CDeclarator NodeInfo
- type CDerivedDeclr = CDerivedDeclarator NodeInfo
- type CArrSize = CArraySize NodeInfo
- data CDeclarator a = CDeclr (Maybe Ident) [CDerivedDeclarator a] (Maybe (CStringLiteral a)) [CAttribute a] a
- data CDerivedDeclarator a
- = CPtrDeclr [CTypeQualifier a] a
- | CArrDeclr [CTypeQualifier a] (CArraySize a) a
- | CFunDeclr (Either [Ident] ([CDeclaration a], Bool)) [CAttribute a] a
- data CArraySize a
- = CNoArrSize Bool
- | CArrSize Bool (CExpression a)
- type CInit = CInitializer NodeInfo
- type CInitList = CInitializerList NodeInfo
- type CDesignator = CPartDesignator NodeInfo
- data CInitializer a
- = CInitExpr (CExpression a) a
- | CInitList (CInitializerList a) a
- type CInitializerList a = [([CPartDesignator a], CInitializer a)]
- data CPartDesignator a
- = CArrDesig (CExpression a) a
- | CMemberDesig Ident a
- | CRangeDesig (CExpression a) (CExpression a) a
- type CStat = CStatement NodeInfo
- type CBlockItem = CCompoundBlockItem NodeInfo
- type CAsmStmt = CAssemblyStatement NodeInfo
- type CAsmOperand = CAssemblyOperand NodeInfo
- data CStatement a
- = CLabel Ident (CStatement a) [CAttribute a] a
- | CCase (CExpression a) (CStatement a) a
- | CCases (CExpression a) (CExpression a) (CStatement a) a
- | CDefault (CStatement a) a
- | CExpr (Maybe (CExpression a)) a
- | CCompound [Ident] [CCompoundBlockItem a] a
- | CIf (CExpression a) (CStatement a) (Maybe (CStatement a)) a
- | CSwitch (CExpression a) (CStatement a) a
- | CWhile (CExpression a) (CStatement a) Bool a
- | CFor (Either (Maybe (CExpression a)) (CDeclaration a)) (Maybe (CExpression a)) (Maybe (CExpression a)) (CStatement a) a
- | CGoto Ident a
- | CGotoPtr (CExpression a) a
- | CCont a
- | CBreak a
- | CReturn (Maybe (CExpression a)) a
- | CAsm (CAssemblyStatement a) a
- data CCompoundBlockItem a
- = CBlockStmt (CStatement a)
- | CBlockDecl (CDeclaration a)
- | CNestedFunDef (CFunctionDef a)
- data CAssemblyStatement a = CAsmStmt (Maybe (CTypeQualifier a)) (CStringLiteral a) [CAssemblyOperand a] [CAssemblyOperand a] [CStringLiteral a] a
- data CAssemblyOperand a = CAsmOperand (Maybe Ident) (CStringLiteral a) (CExpression a) a
- type CExpr = CExpression NodeInfo
- data CExpression a
- = CComma [CExpression a] a
- | CAssign CAssignOp (CExpression a) (CExpression a) a
- | CCond (CExpression a) (Maybe (CExpression a)) (CExpression a) a
- | CBinary CBinaryOp (CExpression a) (CExpression a) a
- | CCast (CDeclaration a) (CExpression a) a
- | CUnary CUnaryOp (CExpression a) a
- | CSizeofExpr (CExpression a) a
- | CSizeofType (CDeclaration a) a
- | CAlignofExpr (CExpression a) a
- | CAlignofType (CDeclaration a) a
- | CComplexReal (CExpression a) a
- | CComplexImag (CExpression a) a
- | CIndex (CExpression a) (CExpression a) a
- | CCall (CExpression a) [CExpression a] a
- | CMember (CExpression a) Ident Bool a
- | CVar Ident a
- | CConst (CConstant a)
- | CCompoundLit (CDeclaration a) (CInitializerList a) a
- | CGenericSelection (CExpression a) [(Maybe (CDeclaration a), CExpression a)] a
- | CStatExpr (CStatement a) a
- | CLabAddrExpr Ident a
- | CBuiltinExpr (CBuiltinThing a)
- data CAssignOp
- data CBinaryOp
- data CUnaryOp
- = CPreIncOp
- | CPreDecOp
- | CPostIncOp
- | CPostDecOp
- | CAdrOp
- | CIndOp
- | CPlusOp
- | CMinOp
- | CCompOp
- | CNegOp
- type CBuiltin = CBuiltinThing NodeInfo
- data CBuiltinThing a
- = CBuiltinVaArg (CExpression a) (CDeclaration a) a
- | CBuiltinOffsetOf (CDeclaration a) [CPartDesignator a] a
- | CBuiltinTypesCompatible (CDeclaration a) (CDeclaration a) a
- | CBuiltinConvertVector (CExpression a) (CDeclaration a) a
- | CBuiltinBitCast (CDeclaration a) (CExpression a) a
- type CConst = CConstant NodeInfo
- type CStrLit = CStringLiteral NodeInfo
- cstringOfLit :: CStringLiteral a -> CString
- liftStrLit :: CStringLiteral a -> CConstant a
- data CConstant a
- = CIntConst CInteger a
- | CCharConst CChar a
- | CFloatConst CFloat a
- | CStrConst CString a
- data CStringLiteral a = CStrLit CString a
- class Functor ast => Annotated (ast :: Type -> Type) where
- annotation :: ast a -> a
- amap :: (a -> a) -> ast a -> ast a
C translation units
type CTranslUnit = CTranslationUnit NodeInfo Source #
Complete C tranlsation unit (C99 6.9, K&R A10)
A complete C translation unit, for example representing a C header or source file. It consists of a list of external (i.e. toplevel) declarations.
type CExtDecl = CExternalDeclaration NodeInfo Source #
External C declaration (C99 6.9, K&R A10)
Either a toplevel declaration, function definition or external assembler.
data CTranslationUnit a Source #
Constructors
CTranslUnit [CExternalDeclaration a] a |
Instances
data CExternalDeclaration a Source #
Constructors
CDeclExt (CDeclaration a) | |
CFDefExt (CFunctionDef a) | |
CAsmExt (CStringLiteral a) a |
Instances
Functor CExternalDeclaration Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CExternalDeclaration a -> CExternalDeclaration b # (<$) :: a -> CExternalDeclaration b -> CExternalDeclaration a # | |||||
Pretty CExtDecl Source # | |||||
Annotated CExternalDeclaration Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CExternalDeclaration a -> a Source # amap :: (a -> a) -> CExternalDeclaration a -> CExternalDeclaration a Source # | |||||
Generic1 CExternalDeclaration Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CExternalDeclaration a -> Rep1 CExternalDeclaration a # to1 :: Rep1 CExternalDeclaration a -> CExternalDeclaration a # | |||||
Data a => Data (CExternalDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CExternalDeclaration a -> c (CExternalDeclaration a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CExternalDeclaration a) # toConstr :: CExternalDeclaration a -> Constr # dataTypeOf :: CExternalDeclaration a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CExternalDeclaration a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CExternalDeclaration a)) # gmapT :: (forall b. Data b => b -> b) -> CExternalDeclaration a -> CExternalDeclaration a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CExternalDeclaration a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CExternalDeclaration a -> r # gmapQ :: (forall d. Data d => d -> u) -> CExternalDeclaration a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CExternalDeclaration a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CExternalDeclaration a -> m (CExternalDeclaration a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CExternalDeclaration a -> m (CExternalDeclaration a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CExternalDeclaration a -> m (CExternalDeclaration a) # | |||||
Generic (CExternalDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CExternalDeclaration a -> Rep (CExternalDeclaration a) x # to :: Rep (CExternalDeclaration a) x -> CExternalDeclaration a # | |||||
Show a => Show (CExternalDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CExternalDeclaration a -> ShowS # show :: CExternalDeclaration a -> String # showList :: [CExternalDeclaration a] -> ShowS # | |||||
NFData a => NFData (CExternalDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CExternalDeclaration a -> () # | |||||
CNode t1 => CNode (CExternalDeclaration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CExternalDeclaration t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CExternalDeclaration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CExternalDeclaration t1 -> Position Source # | |||||
type Rep1 CExternalDeclaration Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CExternalDeclaration = D1 ('MetaData "CExternalDeclaration" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CDeclExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclaration)) :+: (C1 ('MetaCons "CFDefExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CFunctionDef)) :+: C1 ('MetaCons "CAsmExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStringLiteral) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
type Rep (CExternalDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CExternalDeclaration a) = D1 ('MetaData "CExternalDeclaration" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CDeclExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a))) :+: (C1 ('MetaCons "CFDefExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CFunctionDef a))) :+: C1 ('MetaCons "CAsmExt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStringLiteral a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
Declarations
type CFunDef = CFunctionDef NodeInfo Source #
C function definition (C99 6.9.1, K&R A10.1)
A function definition is of the form CFunDef specifiers declarator decllist? stmt
.
specifiers
are the type and storage-class specifiers of the function. The only storage-class specifiers allowed are extern and static.- The
declarator
must be such that the declared identifier has function type. The return type shall be void or an object type other than array type. - The optional declaration list
decllist
is for old-style function declarations. - The statement
stmt
is a compound statement.
type CDecl = CDeclaration NodeInfo Source #
C declarations (K&R A8, C99 6.7), including structure declarations, parameter declarations and type names.
A declaration is of the form CDecl specifiers init-declarator-list
, where the form of the declarator list's
elements depends on the kind of declaration:
1) Toplevel declarations (K&R A8, C99 6.7 declaration)
- C99 requires that there is at least one specifier, though this is merely a syntactic restriction
- at most one storage class specifier is allowed per declaration
- the elements of the non-empty
init-declarator-list
are of the form(Just declr, init?, Nothing)
. The declaratordeclr
has to be present and non-abstract and the initialization expression is optional.
2) Structure declarations (K&R A8.3, C99 6.7.2.1 struct-declaration)
Those are the declarations of a structure's members.
- do not allow storage specifiers
- in strict C99, the list of declarators has to be non-empty
- the elements of
init-declarator-list
are either of the form(Just declr, Nothing, size?)
, representing a member with optional bit-field size, or of the form(Nothing, Nothing, Just size)
, for unnamed bitfields.declr
has to be non-abstract. - no member of a structure shall have incomplete type
3) Parameter declarations (K&R A8.6.3, C99 6.7.5 parameter-declaration)
init-declarator-list
must contain at most one triple of the form(Just declr, Nothing, Nothing)
, i.e. consist of a single declarator, which is allowed to be abstract (i.e. unnamed).
4) Type names (A8.8, C99 6.7.6)
- do not allow storage specifiers
init-declarator-list
must contain at most one triple of the form(Just declr, Nothing, Nothing)
. wheredeclr
is an abstract declarator (i.e. doesn't contain a declared identifier)
type CStructUnion = CStructureUnion NodeInfo Source #
C structure or union specifiers (K&R A8.3, C99 6.7.2.1)
CStruct tag identifier struct-decls c-attrs
represents a struct or union specifier (depending on tag
).
- either
identifier
or the declaration liststruct-decls
(or both) have to be present.
Example: in struct foo x;
, the identifier is present, in struct { int y; } x
the declaration list, and
in struct foo { int y; } x;
both of them.
c-attrs
is a list ofattribute
annotations associated with the struct or union specifier
type CEnum = CEnumeration NodeInfo Source #
C enumeration specifier (K&R A8.4, C99 6.7.2.2)
CEnum identifier enumerator-list attrs
represent as enum specifier
- Either the identifier or the enumerator-list (or both) have to be present.
- If
enumerator-list
is present, it has to be non-empty. - The enumerator list is of the form
(enumeration-constant, enumeration-value?)
, where the latter is an optional constant integral expression. attrs
is a list ofattribute
annotations associated with the enumeration specifier
data CFunctionDef a Source #
Constructors
CFunDef [CDeclarationSpecifier a] (CDeclarator a) [CDeclaration a] (CStatement a) a |
Instances
Functor CFunctionDef Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CFunctionDef a -> CFunctionDef b # (<$) :: a -> CFunctionDef b -> CFunctionDef a # | |||||
Pretty CFunDef Source # | |||||
Annotated CFunctionDef Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CFunctionDef a -> a Source # amap :: (a -> a) -> CFunctionDef a -> CFunctionDef a Source # | |||||
Generic1 CFunctionDef Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CFunctionDef a -> Rep1 CFunctionDef a # to1 :: Rep1 CFunctionDef a -> CFunctionDef a # | |||||
Data a => Data (CFunctionDef a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CFunctionDef a -> c (CFunctionDef a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CFunctionDef a) # toConstr :: CFunctionDef a -> Constr # dataTypeOf :: CFunctionDef a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CFunctionDef a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CFunctionDef a)) # gmapT :: (forall b. Data b => b -> b) -> CFunctionDef a -> CFunctionDef a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CFunctionDef a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CFunctionDef a -> r # gmapQ :: (forall d. Data d => d -> u) -> CFunctionDef a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CFunctionDef a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CFunctionDef a -> m (CFunctionDef a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CFunctionDef a -> m (CFunctionDef a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CFunctionDef a -> m (CFunctionDef a) # | |||||
Generic (CFunctionDef a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CFunctionDef a -> Rep (CFunctionDef a) x # to :: Rep (CFunctionDef a) x -> CFunctionDef a # | |||||
Show a => Show (CFunctionDef a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CFunctionDef a -> ShowS # show :: CFunctionDef a -> String # showList :: [CFunctionDef a] -> ShowS # | |||||
NFData a => NFData (CFunctionDef a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CFunctionDef a -> () # | |||||
CNode t1 => CNode (CFunctionDef t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CFunctionDef t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CFunctionDef t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CFunctionDef t1 -> Position Source # | |||||
type Rep1 CFunctionDef Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CFunctionDef = D1 ('MetaData "CFunctionDef" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CFunDef" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CDeclarationSpecifier) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclarator)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CDeclaration) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStatement) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
type Rep (CFunctionDef a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CFunctionDef a) = D1 ('MetaData "CFunctionDef" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CFunDef" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CDeclarationSpecifier a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclarator a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CDeclaration a]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
data CDeclaration a Source #
Constructors
CDecl [CDeclarationSpecifier a] [(Maybe (CDeclarator a), Maybe (CInitializer a), Maybe (CExpression a))] a | |
CStaticAssert (CExpression a) (CStringLiteral a) a |
Instances
Functor CDeclaration Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CDeclaration a -> CDeclaration b # (<$) :: a -> CDeclaration b -> CDeclaration a # | |||||
Pretty CDecl Source # | |||||
Annotated CDeclaration Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CDeclaration a -> a Source # amap :: (a -> a) -> CDeclaration a -> CDeclaration a Source # | |||||
Data a => Data (CDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CDeclaration a -> c (CDeclaration a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CDeclaration a) # toConstr :: CDeclaration a -> Constr # dataTypeOf :: CDeclaration a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CDeclaration a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CDeclaration a)) # gmapT :: (forall b. Data b => b -> b) -> CDeclaration a -> CDeclaration a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CDeclaration a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CDeclaration a -> r # gmapQ :: (forall d. Data d => d -> u) -> CDeclaration a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CDeclaration a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CDeclaration a -> m (CDeclaration a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclaration a -> m (CDeclaration a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclaration a -> m (CDeclaration a) # | |||||
Generic (CDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CDeclaration a -> Rep (CDeclaration a) x # to :: Rep (CDeclaration a) x -> CDeclaration a # | |||||
Show a => Show (CDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CDeclaration a -> ShowS # show :: CDeclaration a -> String # showList :: [CDeclaration a] -> ShowS # | |||||
NFData a => NFData (CDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CDeclaration a -> () # | |||||
CNode t1 => CNode (CDeclaration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CDeclaration t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CDeclaration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CDeclaration t1 -> Position Source # | |||||
type Rep (CDeclaration a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CDeclaration a) = D1 ('MetaData "CDeclaration" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CDeclarationSpecifier a]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Maybe (CDeclarator a), Maybe (CInitializer a), Maybe (CExpression a))]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CStaticAssert" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStringLiteral a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
data CStructTag Source #
A tag to determine wheter we refer to a struct
or union
, see CStructUnion
.
Constructors
CStructTag | |
CUnionTag |
Instances
Data CStructTag Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CStructTag -> c CStructTag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CStructTag # toConstr :: CStructTag -> Constr # dataTypeOf :: CStructTag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CStructTag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CStructTag) # gmapT :: (forall b. Data b => b -> b) -> CStructTag -> CStructTag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CStructTag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CStructTag -> r # gmapQ :: (forall d. Data d => d -> u) -> CStructTag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CStructTag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CStructTag -> m CStructTag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CStructTag -> m CStructTag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CStructTag -> m CStructTag # | |||||
Generic CStructTag Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Show CStructTag Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CStructTag -> ShowS # show :: CStructTag -> String # showList :: [CStructTag] -> ShowS # | |||||
NFData CStructTag Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CStructTag -> () # | |||||
Eq CStructTag Source # | |||||
Defined in Language.C.Syntax.AST | |||||
Pretty CStructTag Source # | |||||
Defined in Language.C.Pretty | |||||
type Rep CStructTag Source # | |||||
data CStructureUnion a Source #
Constructors
CStruct CStructTag (Maybe Ident) (Maybe [CDeclaration a]) [CAttribute a] a |
Instances
Functor CStructureUnion Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CStructureUnion a -> CStructureUnion b # (<$) :: a -> CStructureUnion b -> CStructureUnion a # | |||||
Pretty CStructUnion Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CStructureUnion Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CStructureUnion a -> a Source # amap :: (a -> a) -> CStructureUnion a -> CStructureUnion a Source # | |||||
Generic1 CStructureUnion Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CStructureUnion a -> Rep1 CStructureUnion a # to1 :: Rep1 CStructureUnion a -> CStructureUnion a # | |||||
Data a => Data (CStructureUnion a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CStructureUnion a -> c (CStructureUnion a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CStructureUnion a) # toConstr :: CStructureUnion a -> Constr # dataTypeOf :: CStructureUnion a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CStructureUnion a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CStructureUnion a)) # gmapT :: (forall b. Data b => b -> b) -> CStructureUnion a -> CStructureUnion a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CStructureUnion a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CStructureUnion a -> r # gmapQ :: (forall d. Data d => d -> u) -> CStructureUnion a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CStructureUnion a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CStructureUnion a -> m (CStructureUnion a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CStructureUnion a -> m (CStructureUnion a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CStructureUnion a -> m (CStructureUnion a) # | |||||
Generic (CStructureUnion a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CStructureUnion a -> Rep (CStructureUnion a) x # to :: Rep (CStructureUnion a) x -> CStructureUnion a # | |||||
Show a => Show (CStructureUnion a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CStructureUnion a -> ShowS # show :: CStructureUnion a -> String # showList :: [CStructureUnion a] -> ShowS # | |||||
NFData a => NFData (CStructureUnion a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CStructureUnion a -> () # | |||||
CNode t1 => CNode (CStructureUnion t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CStructureUnion t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CStructureUnion t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CStructureUnion t1 -> Position Source # | |||||
type Rep1 CStructureUnion Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CStructureUnion = D1 ('MetaData "CStructureUnion" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CStruct" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CStructTag) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Maybe :.: ([] :.: Rec1 CDeclaration)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CAttribute) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
type Rep (CStructureUnion a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CStructureUnion a) = D1 ('MetaData "CStructureUnion" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CStruct" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CStructTag) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [CDeclaration a])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAttribute a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
data CEnumeration a Source #
Constructors
CEnum (Maybe Ident) (Maybe [(Ident, Maybe (CExpression a))]) [CAttribute a] a |
Instances
Functor CEnumeration Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CEnumeration a -> CEnumeration b # (<$) :: a -> CEnumeration b -> CEnumeration a # | |||||
Pretty CEnum Source # | |||||
Annotated CEnumeration Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CEnumeration a -> a Source # amap :: (a -> a) -> CEnumeration a -> CEnumeration a Source # | |||||
Generic1 CEnumeration Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CEnumeration a -> Rep1 CEnumeration a # to1 :: Rep1 CEnumeration a -> CEnumeration a # | |||||
Data a => Data (CEnumeration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CEnumeration a -> c (CEnumeration a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CEnumeration a) # toConstr :: CEnumeration a -> Constr # dataTypeOf :: CEnumeration a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CEnumeration a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CEnumeration a)) # gmapT :: (forall b. Data b => b -> b) -> CEnumeration a -> CEnumeration a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CEnumeration a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CEnumeration a -> r # gmapQ :: (forall d. Data d => d -> u) -> CEnumeration a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CEnumeration a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CEnumeration a -> m (CEnumeration a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CEnumeration a -> m (CEnumeration a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CEnumeration a -> m (CEnumeration a) # | |||||
Generic (CEnumeration a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CEnumeration a -> Rep (CEnumeration a) x # to :: Rep (CEnumeration a) x -> CEnumeration a # | |||||
Show a => Show (CEnumeration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CEnumeration a -> ShowS # show :: CEnumeration a -> String # showList :: [CEnumeration a] -> ShowS # | |||||
NFData a => NFData (CEnumeration a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CEnumeration a -> () # | |||||
CNode t1 => CNode (CEnumeration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CEnumeration t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CEnumeration t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CEnumeration t1 -> Position Source # | |||||
type Rep1 CEnumeration Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CEnumeration = D1 ('MetaData "CEnumeration" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CEnum" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Maybe :.: ([] :.: ((,) Ident :.: (Maybe :.: Rec1 CExpression))))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CAttribute) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
type Rep (CEnumeration a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CEnumeration a) = D1 ('MetaData "CEnumeration" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CEnum" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [(Ident, Maybe (CExpression a))]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAttribute a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
Declaration attributes
type CDeclSpec = CDeclarationSpecifier NodeInfo Source #
C declaration specifiers and qualifiers
Declaration specifiers include at most one storage-class specifier (C99 6.7.1), type specifiers (6.7.2) and type qualifiers (6.7.3).
partitionDeclSpecs :: [CDeclarationSpecifier a] -> ([CStorageSpecifier a], [CAttribute a], [CTypeQualifier a], [CTypeSpecifier a], [CFunctionSpecifier a], [CAlignmentSpecifier a]) Source #
Separate the declaration specifiers
attribute
of a declaration qualify declarations or declarators (but not types),
and are therefore separated as well.
type CStorageSpec = CStorageSpecifier NodeInfo Source #
C storage class specifier (and typedefs) (K&R A8.1, C99 6.7.1)
type CTypeSpec = CTypeSpecifier NodeInfo Source #
C type specifier (K&R A8.2, C99 6.7.2)
Type specifiers are either basic types such as char
or int
,
struct
, union
or enum
specifiers or typedef names.
As a GNU extension, a typeof
expression also is a type specifier.
isSUEDef :: CTypeSpecifier a -> Bool Source #
returns True
if the given typespec is a struct, union or enum definition
type CTypeQual = CTypeQualifier NodeInfo Source #
C type qualifiers (K&R A8.2, C99 6.7.3) and attributes.
const
, volatile
and restrict
type qualifiers
Additionally, attribute
annotations for declarations and declarators, and
function specifiers
type CFunSpec = CFunctionSpecifier NodeInfo Source #
C function specifiers (C99 6.7.4)
function specifiers inline
and _Noreturn
type CAlignSpec = CAlignmentSpecifier NodeInfo Source #
C alignment specifiers (C99 6.7.5)
type CAttr = CAttribute NodeInfo Source #
attribute
annotations
Those are of the form CAttr attribute-name attribute-parameters
,
and serve as generic properties of some syntax tree elements.
data CFunctionSpecifier a Source #
Constructors
CInlineQual a | |
CNoreturnQual a |
Instances
Functor CFunctionSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CFunctionSpecifier a -> CFunctionSpecifier b # (<$) :: a -> CFunctionSpecifier b -> CFunctionSpecifier a # | |||||
Pretty CFunSpec Source # | |||||
Annotated CFunctionSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CFunctionSpecifier a -> a Source # amap :: (a -> a) -> CFunctionSpecifier a -> CFunctionSpecifier a Source # | |||||
Generic1 CFunctionSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CFunctionSpecifier a -> Rep1 CFunctionSpecifier a # to1 :: Rep1 CFunctionSpecifier a -> CFunctionSpecifier a # | |||||
Data a => Data (CFunctionSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CFunctionSpecifier a -> c (CFunctionSpecifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CFunctionSpecifier a) # toConstr :: CFunctionSpecifier a -> Constr # dataTypeOf :: CFunctionSpecifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CFunctionSpecifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CFunctionSpecifier a)) # gmapT :: (forall b. Data b => b -> b) -> CFunctionSpecifier a -> CFunctionSpecifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CFunctionSpecifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CFunctionSpecifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CFunctionSpecifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CFunctionSpecifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CFunctionSpecifier a -> m (CFunctionSpecifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CFunctionSpecifier a -> m (CFunctionSpecifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CFunctionSpecifier a -> m (CFunctionSpecifier a) # | |||||
Generic (CFunctionSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CFunctionSpecifier a -> Rep (CFunctionSpecifier a) x # to :: Rep (CFunctionSpecifier a) x -> CFunctionSpecifier a # | |||||
Show a => Show (CFunctionSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CFunctionSpecifier a -> ShowS # show :: CFunctionSpecifier a -> String # showList :: [CFunctionSpecifier a] -> ShowS # | |||||
NFData a => NFData (CFunctionSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CFunctionSpecifier a -> () # | |||||
CNode t1 => CNode (CFunctionSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CFunctionSpecifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CFunctionSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CFunctionSpecifier t1 -> Position Source # | |||||
type Rep1 CFunctionSpecifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CFunctionSpecifier = D1 ('MetaData "CFunctionSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CInlineQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CNoreturnQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
type Rep (CFunctionSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CFunctionSpecifier a) = D1 ('MetaData "CFunctionSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CInlineQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CNoreturnQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) |
data CDeclarationSpecifier a Source #
Constructors
CStorageSpec (CStorageSpecifier a) | storage-class specifier or typedef |
CTypeSpec (CTypeSpecifier a) | type name |
CTypeQual (CTypeQualifier a) | type qualifier |
CFunSpec (CFunctionSpecifier a) | function specifier |
CAlignSpec (CAlignmentSpecifier a) | alignment specifier |
Instances
Functor CDeclarationSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CDeclarationSpecifier a -> CDeclarationSpecifier b # (<$) :: a -> CDeclarationSpecifier b -> CDeclarationSpecifier a # | |||||
Pretty CDeclSpec Source # | |||||
Annotated CDeclarationSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CDeclarationSpecifier a -> a Source # amap :: (a -> a) -> CDeclarationSpecifier a -> CDeclarationSpecifier a Source # | |||||
Generic1 CDeclarationSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CDeclarationSpecifier a -> Rep1 CDeclarationSpecifier a # to1 :: Rep1 CDeclarationSpecifier a -> CDeclarationSpecifier a # | |||||
Data a => Data (CDeclarationSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CDeclarationSpecifier a -> c (CDeclarationSpecifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CDeclarationSpecifier a) # toConstr :: CDeclarationSpecifier a -> Constr # dataTypeOf :: CDeclarationSpecifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CDeclarationSpecifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CDeclarationSpecifier a)) # gmapT :: (forall b. Data b => b -> b) -> CDeclarationSpecifier a -> CDeclarationSpecifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CDeclarationSpecifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CDeclarationSpecifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CDeclarationSpecifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CDeclarationSpecifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CDeclarationSpecifier a -> m (CDeclarationSpecifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclarationSpecifier a -> m (CDeclarationSpecifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclarationSpecifier a -> m (CDeclarationSpecifier a) # | |||||
Generic (CDeclarationSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CDeclarationSpecifier a -> Rep (CDeclarationSpecifier a) x # to :: Rep (CDeclarationSpecifier a) x -> CDeclarationSpecifier a # | |||||
Show a => Show (CDeclarationSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CDeclarationSpecifier a -> ShowS # show :: CDeclarationSpecifier a -> String # showList :: [CDeclarationSpecifier a] -> ShowS # | |||||
NFData a => NFData (CDeclarationSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CDeclarationSpecifier a -> () # | |||||
CNode t1 => CNode (CDeclarationSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CDeclarationSpecifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CDeclarationSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CDeclarationSpecifier t1 -> Position Source # | |||||
type Rep1 CDeclarationSpecifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CDeclarationSpecifier = D1 ('MetaData "CDeclarationSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((C1 ('MetaCons "CStorageSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStorageSpecifier)) :+: C1 ('MetaCons "CTypeSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CTypeSpecifier))) :+: (C1 ('MetaCons "CTypeQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CTypeQualifier)) :+: (C1 ('MetaCons "CFunSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CFunctionSpecifier)) :+: C1 ('MetaCons "CAlignSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CAlignmentSpecifier))))) | |||||
type Rep (CDeclarationSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CDeclarationSpecifier a) = D1 ('MetaData "CDeclarationSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((C1 ('MetaCons "CStorageSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStorageSpecifier a))) :+: C1 ('MetaCons "CTypeSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CTypeSpecifier a)))) :+: (C1 ('MetaCons "CTypeQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CTypeQualifier a))) :+: (C1 ('MetaCons "CFunSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CFunctionSpecifier a))) :+: C1 ('MetaCons "CAlignSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CAlignmentSpecifier a)))))) |
data CStorageSpecifier a Source #
Constructors
CAuto a | auto |
CRegister a | register |
CStatic a | static |
CExtern a | extern |
CTypedef a | typedef |
CThread a | C11/GNUC thread local storage |
CClKernel a | OpenCL kernel function |
CClGlobal a | OpenCL __global variable |
CClLocal a | OpenCL __local variable |
Instances
Functor CStorageSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CStorageSpecifier a -> CStorageSpecifier b # (<$) :: a -> CStorageSpecifier b -> CStorageSpecifier a # | |||||
Pretty CStorageSpec Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CStorageSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CStorageSpecifier a -> a Source # amap :: (a -> a) -> CStorageSpecifier a -> CStorageSpecifier a Source # | |||||
Generic1 CStorageSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CStorageSpecifier a -> Rep1 CStorageSpecifier a # to1 :: Rep1 CStorageSpecifier a -> CStorageSpecifier a # | |||||
Data a => Data (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CStorageSpecifier a -> c (CStorageSpecifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CStorageSpecifier a) # toConstr :: CStorageSpecifier a -> Constr # dataTypeOf :: CStorageSpecifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CStorageSpecifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CStorageSpecifier a)) # gmapT :: (forall b. Data b => b -> b) -> CStorageSpecifier a -> CStorageSpecifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CStorageSpecifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CStorageSpecifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CStorageSpecifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CStorageSpecifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CStorageSpecifier a -> m (CStorageSpecifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CStorageSpecifier a -> m (CStorageSpecifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CStorageSpecifier a -> m (CStorageSpecifier a) # | |||||
Generic (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CStorageSpecifier a -> Rep (CStorageSpecifier a) x # to :: Rep (CStorageSpecifier a) x -> CStorageSpecifier a # | |||||
Show a => Show (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CStorageSpecifier a -> ShowS # show :: CStorageSpecifier a -> String # showList :: [CStorageSpecifier a] -> ShowS # | |||||
NFData a => NFData (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CStorageSpecifier a -> () # | |||||
Eq a => Eq (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods (==) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # (/=) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # | |||||
Ord a => Ord (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods compare :: CStorageSpecifier a -> CStorageSpecifier a -> Ordering # (<) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # (<=) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # (>) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # (>=) :: CStorageSpecifier a -> CStorageSpecifier a -> Bool # max :: CStorageSpecifier a -> CStorageSpecifier a -> CStorageSpecifier a # min :: CStorageSpecifier a -> CStorageSpecifier a -> CStorageSpecifier a # | |||||
CNode t1 => CNode (CStorageSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CStorageSpecifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CStorageSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CStorageSpecifier t1 -> Position Source # | |||||
type Rep1 CStorageSpecifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CStorageSpecifier = D1 ('MetaData "CStorageSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CAuto" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CRegister" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CStatic" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CExtern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) :+: ((C1 ('MetaCons "CTypedef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CThread" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CClKernel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CClGlobal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CClLocal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
type Rep (CStorageSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CStorageSpecifier a) = D1 ('MetaData "CStorageSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CAuto" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CRegister" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CStatic" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CExtern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: ((C1 ('MetaCons "CTypedef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CThread" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CClKernel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CClGlobal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CClLocal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) |
data CTypeSpecifier a Source #
Constructors
CVoidType a | |
CCharType a | |
CShortType a | |
CIntType a | |
CLongType a | |
CFloatType a | |
CDoubleType a | |
CSignedType a | |
CUnsigType a | |
CBoolType a | |
CComplexType a | |
CInt128Type a | |
CUInt128Type a | |
CBFloat16Type a | |
CFloatNType Int Bool a | IEC 60227: width (32,64,128), extended flag |
CSUType (CStructureUnion a) a | Struct or Union specifier |
CEnumType (CEnumeration a) a | Enumeration specifier |
CTypeDef Ident a | Typedef name |
CTypeOfExpr (CExpression a) a | typeof(expr) |
CTypeOfType (CDeclaration a) a | typeof(type) |
CAtomicType (CDeclaration a) a | _Atomic(type) |
Instances
Functor CTypeSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CTypeSpecifier a -> CTypeSpecifier b # (<$) :: a -> CTypeSpecifier b -> CTypeSpecifier a # | |||||
Pretty CTypeSpec Source # | |||||
Annotated CTypeSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CTypeSpecifier a -> a Source # amap :: (a -> a) -> CTypeSpecifier a -> CTypeSpecifier a Source # | |||||
Generic1 CTypeSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CTypeSpecifier a -> Rep1 CTypeSpecifier a # to1 :: Rep1 CTypeSpecifier a -> CTypeSpecifier a # | |||||
Data a => Data (CTypeSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CTypeSpecifier a -> c (CTypeSpecifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CTypeSpecifier a) # toConstr :: CTypeSpecifier a -> Constr # dataTypeOf :: CTypeSpecifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CTypeSpecifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CTypeSpecifier a)) # gmapT :: (forall b. Data b => b -> b) -> CTypeSpecifier a -> CTypeSpecifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CTypeSpecifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CTypeSpecifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CTypeSpecifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CTypeSpecifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CTypeSpecifier a -> m (CTypeSpecifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CTypeSpecifier a -> m (CTypeSpecifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CTypeSpecifier a -> m (CTypeSpecifier a) # | |||||
Generic (CTypeSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CTypeSpecifier a -> Rep (CTypeSpecifier a) x # to :: Rep (CTypeSpecifier a) x -> CTypeSpecifier a # | |||||
Show a => Show (CTypeSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CTypeSpecifier a -> ShowS # show :: CTypeSpecifier a -> String # showList :: [CTypeSpecifier a] -> ShowS # | |||||
NFData a => NFData (CTypeSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CTypeSpecifier a -> () # | |||||
CNode t1 => CNode (CTypeSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CTypeSpecifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CTypeSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CTypeSpecifier t1 -> Position Source # | |||||
type Rep1 CTypeSpecifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CTypeSpecifier = D1 ('MetaData "CTypeSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((((C1 ('MetaCons "CVoidType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CCharType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CShortType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CIntType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CLongType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) :+: ((C1 ('MetaCons "CFloatType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CDoubleType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CSignedType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CUnsigType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CBoolType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) :+: (((C1 ('MetaCons "CComplexType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CInt128Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CUInt128Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CBFloat16Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CFloatNType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) :+: ((C1 ('MetaCons "CSUType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStructureUnion) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CEnumType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CEnumeration) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CTypeDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) :+: (C1 ('MetaCons "CTypeOfExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CTypeOfType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclaration) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CAtomicType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclaration) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))) | |||||
type Rep (CTypeSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CTypeSpecifier a) = D1 ('MetaData "CTypeSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((((C1 ('MetaCons "CVoidType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CCharType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CShortType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CIntType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CLongType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: ((C1 ('MetaCons "CFloatType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CDoubleType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CSignedType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CUnsigType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CBoolType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: (((C1 ('MetaCons "CComplexType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CInt128Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CUInt128Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CBFloat16Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CFloatNType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: ((C1 ('MetaCons "CSUType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStructureUnion a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CEnumType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CEnumeration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CTypeDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CTypeOfExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CTypeOfType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CAtomicType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))))) |
data CAlignmentSpecifier a Source #
Constructors
CAlignAsType (CDeclaration a) a | _Alignas(type) |
CAlignAsExpr (CExpression a) a | _Alignas(expr) |
Instances
Functor CAlignmentSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CAlignmentSpecifier a -> CAlignmentSpecifier b # (<$) :: a -> CAlignmentSpecifier b -> CAlignmentSpecifier a # | |||||
Pretty CAlignSpec Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CAlignmentSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CAlignmentSpecifier a -> a Source # amap :: (a -> a) -> CAlignmentSpecifier a -> CAlignmentSpecifier a Source # | |||||
Generic1 CAlignmentSpecifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CAlignmentSpecifier a -> Rep1 CAlignmentSpecifier a # to1 :: Rep1 CAlignmentSpecifier a -> CAlignmentSpecifier a # | |||||
Data a => Data (CAlignmentSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAlignmentSpecifier a -> c (CAlignmentSpecifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CAlignmentSpecifier a) # toConstr :: CAlignmentSpecifier a -> Constr # dataTypeOf :: CAlignmentSpecifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CAlignmentSpecifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CAlignmentSpecifier a)) # gmapT :: (forall b. Data b => b -> b) -> CAlignmentSpecifier a -> CAlignmentSpecifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAlignmentSpecifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAlignmentSpecifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CAlignmentSpecifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAlignmentSpecifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAlignmentSpecifier a -> m (CAlignmentSpecifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAlignmentSpecifier a -> m (CAlignmentSpecifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAlignmentSpecifier a -> m (CAlignmentSpecifier a) # | |||||
Generic (CAlignmentSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CAlignmentSpecifier a -> Rep (CAlignmentSpecifier a) x # to :: Rep (CAlignmentSpecifier a) x -> CAlignmentSpecifier a # | |||||
Show a => Show (CAlignmentSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CAlignmentSpecifier a -> ShowS # show :: CAlignmentSpecifier a -> String # showList :: [CAlignmentSpecifier a] -> ShowS # | |||||
NFData a => NFData (CAlignmentSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CAlignmentSpecifier a -> () # | |||||
CNode t1 => CNode (CAlignmentSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CAlignmentSpecifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CAlignmentSpecifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CAlignmentSpecifier t1 -> Position Source # | |||||
type Rep1 CAlignmentSpecifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CAlignmentSpecifier = D1 ('MetaData "CAlignmentSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAlignAsType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclaration) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CAlignAsExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
type Rep (CAlignmentSpecifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CAlignmentSpecifier a) = D1 ('MetaData "CAlignmentSpecifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAlignAsType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CAlignAsExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) |
data CTypeQualifier a Source #
Constructors
CConstQual a | |
CVolatQual a | |
CRestrQual a | |
CAtomicQual a | |
CAttrQual (CAttribute a) | |
CNullableQual a | |
CNonnullQual a | |
CClRdOnlyQual a | |
CClWrOnlyQual a |
Instances
Functor CTypeQualifier Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CTypeQualifier a -> CTypeQualifier b # (<$) :: a -> CTypeQualifier b -> CTypeQualifier a # | |||||
Pretty CTypeQual Source # | |||||
Annotated CTypeQualifier Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CTypeQualifier a -> a Source # amap :: (a -> a) -> CTypeQualifier a -> CTypeQualifier a Source # | |||||
Generic1 CTypeQualifier Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CTypeQualifier a -> Rep1 CTypeQualifier a # to1 :: Rep1 CTypeQualifier a -> CTypeQualifier a # | |||||
Data a => Data (CTypeQualifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CTypeQualifier a -> c (CTypeQualifier a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CTypeQualifier a) # toConstr :: CTypeQualifier a -> Constr # dataTypeOf :: CTypeQualifier a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CTypeQualifier a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CTypeQualifier a)) # gmapT :: (forall b. Data b => b -> b) -> CTypeQualifier a -> CTypeQualifier a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CTypeQualifier a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CTypeQualifier a -> r # gmapQ :: (forall d. Data d => d -> u) -> CTypeQualifier a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CTypeQualifier a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CTypeQualifier a -> m (CTypeQualifier a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CTypeQualifier a -> m (CTypeQualifier a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CTypeQualifier a -> m (CTypeQualifier a) # | |||||
Generic (CTypeQualifier a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CTypeQualifier a -> Rep (CTypeQualifier a) x # to :: Rep (CTypeQualifier a) x -> CTypeQualifier a # | |||||
Show a => Show (CTypeQualifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CTypeQualifier a -> ShowS # show :: CTypeQualifier a -> String # showList :: [CTypeQualifier a] -> ShowS # | |||||
NFData a => NFData (CTypeQualifier a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CTypeQualifier a -> () # | |||||
CNode t1 => CNode (CTypeQualifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CTypeQualifier t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CTypeQualifier t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CTypeQualifier t1 -> Position Source # | |||||
type Rep1 CTypeQualifier Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CTypeQualifier = D1 ('MetaData "CTypeQualifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CConstQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CVolatQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CRestrQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CAtomicQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) :+: ((C1 ('MetaCons "CAttrQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CAttribute)) :+: C1 ('MetaCons "CNullableQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CNonnullQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: (C1 ('MetaCons "CClRdOnlyQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CClWrOnlyQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
type Rep (CTypeQualifier a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CTypeQualifier a) = D1 ('MetaData "CTypeQualifier" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CConstQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CVolatQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CRestrQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CAtomicQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: ((C1 ('MetaCons "CAttrQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CAttribute a))) :+: C1 ('MetaCons "CNullableQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CNonnullQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CClRdOnlyQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CClWrOnlyQual" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) |
data CAttribute a Source #
Constructors
CAttr Ident [CExpression a] a |
Instances
Functor CAttribute Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CAttribute a -> CAttribute b # (<$) :: a -> CAttribute b -> CAttribute a # | |||||
Pretty CAttr Source # | |||||
Annotated CAttribute Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CAttribute a -> a Source # amap :: (a -> a) -> CAttribute a -> CAttribute a Source # | |||||
Generic1 CAttribute Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Data a => Data (CAttribute a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAttribute a -> c (CAttribute a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CAttribute a) # toConstr :: CAttribute a -> Constr # dataTypeOf :: CAttribute a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CAttribute a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CAttribute a)) # gmapT :: (forall b. Data b => b -> b) -> CAttribute a -> CAttribute a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAttribute a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAttribute a -> r # gmapQ :: (forall d. Data d => d -> u) -> CAttribute a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAttribute a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAttribute a -> m (CAttribute a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAttribute a -> m (CAttribute a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAttribute a -> m (CAttribute a) # | |||||
Generic (CAttribute a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Show a => Show (CAttribute a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CAttribute a -> ShowS # show :: CAttribute a -> String # showList :: [CAttribute a] -> ShowS # | |||||
NFData a => NFData (CAttribute a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CAttribute a -> () # | |||||
CNode t1 => CNode (CAttribute t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CAttribute t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CAttribute t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CAttribute t1 -> Position Source # | |||||
type Rep1 CAttribute Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CAttribute = D1 ('MetaData "CAttribute" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAttr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
type Rep (CAttribute a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CAttribute a) = D1 ('MetaData "CAttribute" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAttr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CExpression a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
Declarators
type CDeclr = CDeclarator NodeInfo Source #
C declarator (K&R A8.5, C99 6.7.5) and abstract declarator (K&R A8.8, C99 6.7.6)
A declarator declares a single object, function, or type. It is always associated with
a declaration (CDecl
), which specifies the declaration's type and the additional storage qualifiers and
attributes, which apply to the declared object.
A declarator is of the form CDeclr name? indirections asm-name? attrs _
, where
name
is the name of the declared object (missing for abstract declarators),
declquals
is a set of additional declaration specifiers,
asm-name
is the optional assembler name and attributes is a set of
attrs is a set of attribute
annotations for the declared object.
indirections
is a set of pointer, array and function declarators, which modify the type of the declared object as
described below. If the declaration specifies the non-derived type T
,
and we have indirections = [D1, D2, ..., Dn]
than the declared object has type
(D1
, whereindirect
(D2 indirect
... (Dn indirect
T)))
(CPtrDeclr attrs)
is attributed pointer to Tindirect
T(CFunDeclr attrs)
is attributed function returning Tindirect
T(CArrayDeclr attrs)
is attributed array of elemements of type Tindirect
T
Examples (simplified attributes):
- x is an int
int x; CDeclr "x" []
- x is a restrict pointer to a const pointer to int
const int * const * restrict x; CDeclr "x" [CPtrDeclr [restrict], CPtrDeclr [const]]
- f is an function return a constant pointer to int
int* const f(); CDeclr "f" [CFunDeclr [],CPtrDeclr [const]]
- f is a constant pointer to a function returning int
int (* const f)(); ==> CDeclr "f" [CPtrDeclr [const], CFunDeclr []]
type CDerivedDeclr = CDerivedDeclarator NodeInfo Source #
Derived declarators, see CDeclr
Indirections are qualified using type-qualifiers and generic attributes, and additionally
- The size of an array is either a constant expression, variable length (
*
) or missing; in the last case, the type of the array is incomplete. The qualifier static is allowed for function arguments only, indicating that the supplied argument is an array of at least the given size. - New style parameter lists have the form
Right (declarations, isVariadic)
, old style parameter lists have the formLeft (parameter-names)
type CArrSize = CArraySize NodeInfo Source #
Size of an array
data CDeclarator a Source #
Constructors
CDeclr (Maybe Ident) [CDerivedDeclarator a] (Maybe (CStringLiteral a)) [CAttribute a] a |
Instances
Functor CDeclarator Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CDeclarator a -> CDeclarator b # (<$) :: a -> CDeclarator b -> CDeclarator a # | |||||
Pretty CDeclr Source # | |||||
Annotated CDeclarator Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CDeclarator a -> a Source # amap :: (a -> a) -> CDeclarator a -> CDeclarator a Source # | |||||
Generic1 CDeclarator Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Data a => Data (CDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CDeclarator a -> c (CDeclarator a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CDeclarator a) # toConstr :: CDeclarator a -> Constr # dataTypeOf :: CDeclarator a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CDeclarator a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CDeclarator a)) # gmapT :: (forall b. Data b => b -> b) -> CDeclarator a -> CDeclarator a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CDeclarator a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CDeclarator a -> r # gmapQ :: (forall d. Data d => d -> u) -> CDeclarator a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CDeclarator a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CDeclarator a -> m (CDeclarator a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclarator a -> m (CDeclarator a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CDeclarator a -> m (CDeclarator a) # | |||||
Generic (CDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CDeclarator a -> Rep (CDeclarator a) x # to :: Rep (CDeclarator a) x -> CDeclarator a # | |||||
Show a => Show (CDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CDeclarator a -> ShowS # show :: CDeclarator a -> String # showList :: [CDeclarator a] -> ShowS # | |||||
NFData a => NFData (CDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CDeclarator a -> () # | |||||
CNode t1 => CNode (CDeclarator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CDeclarator t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CDeclarator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CDeclarator t1 -> Position Source # | |||||
type Rep1 CDeclarator Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CDeclarator = D1 ('MetaData "CDeclarator" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CDeclr" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CDerivedDeclarator)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Maybe :.: Rec1 CStringLiteral) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CAttribute) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
type Rep (CDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CDeclarator a) = D1 ('MetaData "CDeclarator" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CDeclr" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CDerivedDeclarator a])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CStringLiteral a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAttribute a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
data CDerivedDeclarator a Source #
Constructors
CPtrDeclr [CTypeQualifier a] a | Pointer declarator |
CArrDeclr [CTypeQualifier a] (CArraySize a) a | Array declarator |
CFunDeclr (Either [Ident] ([CDeclaration a], Bool)) [CAttribute a] a | Function declarator |
Instances
Functor CDerivedDeclarator Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CDerivedDeclarator a -> CDerivedDeclarator b # (<$) :: a -> CDerivedDeclarator b -> CDerivedDeclarator a # | |||||
Annotated CDerivedDeclarator Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CDerivedDeclarator a -> a Source # amap :: (a -> a) -> CDerivedDeclarator a -> CDerivedDeclarator a Source # | |||||
Data a => Data (CDerivedDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CDerivedDeclarator a -> c (CDerivedDeclarator a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CDerivedDeclarator a) # toConstr :: CDerivedDeclarator a -> Constr # dataTypeOf :: CDerivedDeclarator a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CDerivedDeclarator a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CDerivedDeclarator a)) # gmapT :: (forall b. Data b => b -> b) -> CDerivedDeclarator a -> CDerivedDeclarator a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CDerivedDeclarator a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CDerivedDeclarator a -> r # gmapQ :: (forall d. Data d => d -> u) -> CDerivedDeclarator a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CDerivedDeclarator a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CDerivedDeclarator a -> m (CDerivedDeclarator a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CDerivedDeclarator a -> m (CDerivedDeclarator a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CDerivedDeclarator a -> m (CDerivedDeclarator a) # | |||||
Generic (CDerivedDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CDerivedDeclarator a -> Rep (CDerivedDeclarator a) x # to :: Rep (CDerivedDeclarator a) x -> CDerivedDeclarator a # | |||||
Show a => Show (CDerivedDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CDerivedDeclarator a -> ShowS # show :: CDerivedDeclarator a -> String # showList :: [CDerivedDeclarator a] -> ShowS # | |||||
NFData a => NFData (CDerivedDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CDerivedDeclarator a -> () # | |||||
CNode t1 => CNode (CDerivedDeclarator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CDerivedDeclarator t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CDerivedDeclarator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CDerivedDeclarator t1 -> Position Source # | |||||
type Rep (CDerivedDeclarator a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CDerivedDeclarator a) = D1 ('MetaData "CDerivedDeclarator" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CPtrDeclr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CTypeQualifier a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CArrDeclr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CTypeQualifier a]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CArraySize a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CFunDeclr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either [Ident] ([CDeclaration a], Bool))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAttribute a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
data CArraySize a Source #
Constructors
CNoArrSize Bool | CUnknownSize isCompleteType |
CArrSize Bool (CExpression a) | CArrSize isStatic expr |
Instances
Functor CArraySize Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CArraySize a -> CArraySize b # (<$) :: a -> CArraySize b -> CArraySize a # | |||||
Pretty CArrSize Source # | |||||
Generic1 CArraySize Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Data a => Data (CArraySize a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CArraySize a -> c (CArraySize a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CArraySize a) # toConstr :: CArraySize a -> Constr # dataTypeOf :: CArraySize a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CArraySize a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CArraySize a)) # gmapT :: (forall b. Data b => b -> b) -> CArraySize a -> CArraySize a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CArraySize a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CArraySize a -> r # gmapQ :: (forall d. Data d => d -> u) -> CArraySize a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CArraySize a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CArraySize a -> m (CArraySize a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CArraySize a -> m (CArraySize a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CArraySize a -> m (CArraySize a) # | |||||
Generic (CArraySize a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Show a => Show (CArraySize a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CArraySize a -> ShowS # show :: CArraySize a -> String # showList :: [CArraySize a] -> ShowS # | |||||
NFData a => NFData (CArraySize a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CArraySize a -> () # | |||||
type Rep1 CArraySize Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CArraySize = D1 ('MetaData "CArraySize" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CNoArrSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :+: C1 ('MetaCons "CArrSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CExpression))) | |||||
type Rep (CArraySize a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CArraySize a) = D1 ('MetaData "CArraySize" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CNoArrSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :+: C1 ('MetaCons "CArrSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)))) |
Initialization
type CInit = CInitializer NodeInfo Source #
C initialization (K&R A8.7, C99 6.7.8)
Initializers are either assignment expressions or initializer lists (surrounded in curly braces), whose elements are themselves initializers, paired with an optional list of designators.
type CInitList = CInitializerList NodeInfo Source #
Initializer List
The members of an initializer list are of the form (designator-list,initializer)
.
The designator-list
specifies one member of the compound type which is initialized.
It is allowed to be empty - in this case the initializer refers to the
'next'
member of the compound type (see C99 6.7.8).
Examples (simplified expressions and identifiers):
-- int x[3][4] = { [0][3] = 4, [2] = 5, 8 }; -- corresponds to the assignments -- x[0][3] = 4; x[2][0] = 5; x[2][1] = 8; let init1 = ([CArrDesig 0, CArrDesig 3], CInitExpr 4) init2 = ([CArrDesig 2] , CInitExpr 5) init3 = ([] , CInitExpr 8) in CInitList [init1, init2, init3]
-- struct { struct { int a[2]; int b[2]; int c[2]; } s; } x = { .s = { {2,3} , .c[0] = 1 } }; -- corresponds to the assignments -- x.s.a[0] = 2; x.s.a[1] = 3; x.s.c[0] = 1; let init_s_0 = CInitList [ ([], CInitExpr 2), ([], CInitExpr 3)] init_s = CInitList [ ([], init_s_0), ([CMemberDesig "c", CArrDesig 0], CInitExpr 1) ] in CInitList [(CMemberDesig "s", init_s)]
type CDesignator = CPartDesignator NodeInfo Source #
Designators
A designator specifies a member of an object, either an element or range of an array, or the named member of a struct / union.
data CInitializer a Source #
Constructors
CInitExpr (CExpression a) a | assignment expression |
CInitList (CInitializerList a) a | initialization list (see |
Instances
Functor CInitializer Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CInitializer a -> CInitializer b # (<$) :: a -> CInitializer b -> CInitializer a # | |||||
Pretty CInit Source # | |||||
Annotated CInitializer Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CInitializer a -> a Source # amap :: (a -> a) -> CInitializer a -> CInitializer a Source # | |||||
Data a => Data (CInitializer a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CInitializer a -> c (CInitializer a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CInitializer a) # toConstr :: CInitializer a -> Constr # dataTypeOf :: CInitializer a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CInitializer a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CInitializer a)) # gmapT :: (forall b. Data b => b -> b) -> CInitializer a -> CInitializer a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CInitializer a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CInitializer a -> r # gmapQ :: (forall d. Data d => d -> u) -> CInitializer a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CInitializer a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CInitializer a -> m (CInitializer a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CInitializer a -> m (CInitializer a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CInitializer a -> m (CInitializer a) # | |||||
Generic (CInitializer a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CInitializer a -> Rep (CInitializer a) x # to :: Rep (CInitializer a) x -> CInitializer a # | |||||
Show a => Show (CInitializer a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CInitializer a -> ShowS # show :: CInitializer a -> String # showList :: [CInitializer a] -> ShowS # | |||||
NFData a => NFData (CInitializer a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CInitializer a -> () # | |||||
CNode t1 => CNode (CInitializer t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CInitializer t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CInitializer t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CInitializer t1 -> Position Source # | |||||
type Rep (CInitializer a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CInitializer a) = D1 ('MetaData "CInitializer" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CInitExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CInitList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CInitializerList a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) |
type CInitializerList a = [([CPartDesignator a], CInitializer a)] Source #
data CPartDesignator a Source #
Constructors
CArrDesig (CExpression a) a | array position designator |
CMemberDesig Ident a | member designator |
CRangeDesig (CExpression a) (CExpression a) a | array range designator |
Instances
Functor CPartDesignator Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CPartDesignator a -> CPartDesignator b # (<$) :: a -> CPartDesignator b -> CPartDesignator a # | |||||
Pretty CDesignator Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CPartDesignator Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CPartDesignator a -> a Source # amap :: (a -> a) -> CPartDesignator a -> CPartDesignator a Source # | |||||
Data a => Data (CPartDesignator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CPartDesignator a -> c (CPartDesignator a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CPartDesignator a) # toConstr :: CPartDesignator a -> Constr # dataTypeOf :: CPartDesignator a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CPartDesignator a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CPartDesignator a)) # gmapT :: (forall b. Data b => b -> b) -> CPartDesignator a -> CPartDesignator a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CPartDesignator a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CPartDesignator a -> r # gmapQ :: (forall d. Data d => d -> u) -> CPartDesignator a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CPartDesignator a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CPartDesignator a -> m (CPartDesignator a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CPartDesignator a -> m (CPartDesignator a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CPartDesignator a -> m (CPartDesignator a) # | |||||
Generic (CPartDesignator a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CPartDesignator a -> Rep (CPartDesignator a) x # to :: Rep (CPartDesignator a) x -> CPartDesignator a # | |||||
Show a => Show (CPartDesignator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CPartDesignator a -> ShowS # show :: CPartDesignator a -> String # showList :: [CPartDesignator a] -> ShowS # | |||||
NFData a => NFData (CPartDesignator a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CPartDesignator a -> () # | |||||
CNode t1 => CNode (CPartDesignator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CPartDesignator t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CPartDesignator t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CPartDesignator t1 -> Position Source # | |||||
type Rep (CPartDesignator a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CPartDesignator a) = D1 ('MetaData "CPartDesignator" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CArrDesig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CMemberDesig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CRangeDesig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
Statements
type CStat = CStatement NodeInfo Source #
C statement (K&R A9, C99 6.8)
type CBlockItem = CCompoundBlockItem NodeInfo Source #
C99 Block items
Things that may appear in compound statements: either statements, declarations or nested function definitions.
type CAsmStmt = CAssemblyStatement NodeInfo Source #
GNU Assembler statement
CAssemblyStatement type-qual? asm-expr out-ops in-ops clobbers _
is an inline assembler statement.
The only type-qualifier (if any) allowed is volatile.
asm-expr
is the actual assembler epxression (a string), out-ops
and in-ops
are the input
and output operands of the statement.
clobbers
is a list of registers which are clobbered when executing the assembler statement
type CAsmOperand = CAssemblyOperand NodeInfo Source #
Assembler operand
CAsmOperand argName? constraintExpr arg
specifies an operand for an assembler
statement.
data CStatement a Source #
Constructors
CLabel Ident (CStatement a) [CAttribute a] a | An (attributed) label followed by a statement |
CCase (CExpression a) (CStatement a) a | A statement of the form |
CCases (CExpression a) (CExpression a) (CStatement a) a | A case range of the form |
CDefault (CStatement a) a | The default case |
CExpr (Maybe (CExpression a)) a | A simple statement, that is in C: evaluating an expression with side-effects and discarding the result. |
CCompound [Ident] [CCompoundBlockItem a] a | compound statement |
CIf (CExpression a) (CStatement a) (Maybe (CStatement a)) a | conditional statement |
CSwitch (CExpression a) (CStatement a) a | switch statement |
CWhile (CExpression a) (CStatement a) Bool a | while or do-while statement |
CFor (Either (Maybe (CExpression a)) (CDeclaration a)) (Maybe (CExpression a)) (Maybe (CExpression a)) (CStatement a) a | for statement |
CGoto Ident a | goto statement |
CGotoPtr (CExpression a) a | computed goto |
CCont a | continue statement |
CBreak a | break statement |
CReturn (Maybe (CExpression a)) a | return statement |
CAsm (CAssemblyStatement a) a | assembly statement |
Instances
Functor CStatement Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CStatement a -> CStatement b # (<$) :: a -> CStatement b -> CStatement a # | |||||
Pretty CStat Source # | |||||
Annotated CStatement Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CStatement a -> a Source # amap :: (a -> a) -> CStatement a -> CStatement a Source # | |||||
Data a => Data (CStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CStatement a -> c (CStatement a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CStatement a) # toConstr :: CStatement a -> Constr # dataTypeOf :: CStatement a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CStatement a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CStatement a)) # gmapT :: (forall b. Data b => b -> b) -> CStatement a -> CStatement a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CStatement a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CStatement a -> r # gmapQ :: (forall d. Data d => d -> u) -> CStatement a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CStatement a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CStatement a -> m (CStatement a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CStatement a -> m (CStatement a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CStatement a -> m (CStatement a) # | |||||
Generic (CStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Show a => Show (CStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CStatement a -> ShowS # show :: CStatement a -> String # showList :: [CStatement a] -> ShowS # | |||||
NFData a => NFData (CStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CStatement a -> () # | |||||
CNode t1 => CNode (CStatement t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CStatement t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CStatement t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CStatement t1 -> Position Source # | |||||
type Rep (CStatement a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CStatement a) = D1 ('MetaData "CStatement" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((((C1 ('MetaCons "CLabel" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAttribute a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CCase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CCases" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CDefault" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: ((C1 ('MetaCons "CExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CExpression a))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CCompound" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Ident]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CCompoundBlockItem a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CIf" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CStatement a))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CSwitch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: (((C1 ('MetaCons "CWhile" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CFor" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (Maybe (CExpression a)) (CDeclaration a))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CExpression a)))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CExpression a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: (C1 ('MetaCons "CGoto" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CGotoPtr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: ((C1 ('MetaCons "CCont" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CBreak" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CReturn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CExpression a))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CAsm" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CAssemblyStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) |
data CCompoundBlockItem a Source #
Constructors
CBlockStmt (CStatement a) | A statement |
CBlockDecl (CDeclaration a) | A local declaration |
CNestedFunDef (CFunctionDef a) | A nested function (GNU C) |
Instances
Functor CCompoundBlockItem Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CCompoundBlockItem a -> CCompoundBlockItem b # (<$) :: a -> CCompoundBlockItem b -> CCompoundBlockItem a # | |||||
Pretty CBlockItem Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CCompoundBlockItem Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CCompoundBlockItem a -> a Source # amap :: (a -> a) -> CCompoundBlockItem a -> CCompoundBlockItem a Source # | |||||
Generic1 CCompoundBlockItem Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CCompoundBlockItem a -> Rep1 CCompoundBlockItem a # to1 :: Rep1 CCompoundBlockItem a -> CCompoundBlockItem a # | |||||
Data a => Data (CCompoundBlockItem a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CCompoundBlockItem a -> c (CCompoundBlockItem a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CCompoundBlockItem a) # toConstr :: CCompoundBlockItem a -> Constr # dataTypeOf :: CCompoundBlockItem a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CCompoundBlockItem a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CCompoundBlockItem a)) # gmapT :: (forall b. Data b => b -> b) -> CCompoundBlockItem a -> CCompoundBlockItem a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CCompoundBlockItem a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CCompoundBlockItem a -> r # gmapQ :: (forall d. Data d => d -> u) -> CCompoundBlockItem a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CCompoundBlockItem a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CCompoundBlockItem a -> m (CCompoundBlockItem a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CCompoundBlockItem a -> m (CCompoundBlockItem a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CCompoundBlockItem a -> m (CCompoundBlockItem a) # | |||||
Generic (CCompoundBlockItem a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CCompoundBlockItem a -> Rep (CCompoundBlockItem a) x # to :: Rep (CCompoundBlockItem a) x -> CCompoundBlockItem a # | |||||
Show a => Show (CCompoundBlockItem a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CCompoundBlockItem a -> ShowS # show :: CCompoundBlockItem a -> String # showList :: [CCompoundBlockItem a] -> ShowS # | |||||
NFData a => NFData (CCompoundBlockItem a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CCompoundBlockItem a -> () # | |||||
CNode t1 => CNode (CCompoundBlockItem t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CCompoundBlockItem t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CCompoundBlockItem t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CCompoundBlockItem t1 -> Position Source # | |||||
type Rep1 CCompoundBlockItem Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CCompoundBlockItem = D1 ('MetaData "CCompoundBlockItem" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CBlockStmt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStatement)) :+: (C1 ('MetaCons "CBlockDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CDeclaration)) :+: C1 ('MetaCons "CNestedFunDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CFunctionDef)))) | |||||
type Rep (CCompoundBlockItem a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CCompoundBlockItem a) = D1 ('MetaData "CCompoundBlockItem" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CBlockStmt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a))) :+: (C1 ('MetaCons "CBlockDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a))) :+: C1 ('MetaCons "CNestedFunDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CFunctionDef a))))) |
data CAssemblyStatement a Source #
Constructors
CAsmStmt (Maybe (CTypeQualifier a)) (CStringLiteral a) [CAssemblyOperand a] [CAssemblyOperand a] [CStringLiteral a] a |
Instances
Functor CAssemblyStatement Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CAssemblyStatement a -> CAssemblyStatement b # (<$) :: a -> CAssemblyStatement b -> CAssemblyStatement a # | |||||
Pretty CAsmStmt Source # | |||||
Annotated CAssemblyStatement Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CAssemblyStatement a -> a Source # amap :: (a -> a) -> CAssemblyStatement a -> CAssemblyStatement a Source # | |||||
Generic1 CAssemblyStatement Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CAssemblyStatement a -> Rep1 CAssemblyStatement a # to1 :: Rep1 CAssemblyStatement a -> CAssemblyStatement a # | |||||
Data a => Data (CAssemblyStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAssemblyStatement a -> c (CAssemblyStatement a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CAssemblyStatement a) # toConstr :: CAssemblyStatement a -> Constr # dataTypeOf :: CAssemblyStatement a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CAssemblyStatement a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CAssemblyStatement a)) # gmapT :: (forall b. Data b => b -> b) -> CAssemblyStatement a -> CAssemblyStatement a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAssemblyStatement a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAssemblyStatement a -> r # gmapQ :: (forall d. Data d => d -> u) -> CAssemblyStatement a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAssemblyStatement a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAssemblyStatement a -> m (CAssemblyStatement a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssemblyStatement a -> m (CAssemblyStatement a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssemblyStatement a -> m (CAssemblyStatement a) # | |||||
Generic (CAssemblyStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CAssemblyStatement a -> Rep (CAssemblyStatement a) x # to :: Rep (CAssemblyStatement a) x -> CAssemblyStatement a # | |||||
Show a => Show (CAssemblyStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CAssemblyStatement a -> ShowS # show :: CAssemblyStatement a -> String # showList :: [CAssemblyStatement a] -> ShowS # | |||||
NFData a => NFData (CAssemblyStatement a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CAssemblyStatement a -> () # | |||||
CNode t1 => CNode (CAssemblyStatement t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CAssemblyStatement t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CAssemblyStatement t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CAssemblyStatement t1 -> Position Source # | |||||
type Rep1 CAssemblyStatement Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CAssemblyStatement = D1 ('MetaData "CAssemblyStatement" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAsmStmt" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Maybe :.: Rec1 CTypeQualifier) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStringLiteral) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CAssemblyOperand))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CAssemblyOperand) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 CStringLiteral) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
type Rep (CAssemblyStatement a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CAssemblyStatement a) = D1 ('MetaData "CAssemblyStatement" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAsmStmt" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CTypeQualifier a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStringLiteral a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAssemblyOperand a]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CAssemblyOperand a]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CStringLiteral a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) |
data CAssemblyOperand a Source #
Constructors
CAsmOperand (Maybe Ident) (CStringLiteral a) (CExpression a) a |
Instances
Functor CAssemblyOperand Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CAssemblyOperand a -> CAssemblyOperand b # (<$) :: a -> CAssemblyOperand b -> CAssemblyOperand a # | |||||
Pretty CAsmOperand Source # | |||||
Defined in Language.C.Pretty | |||||
Annotated CAssemblyOperand Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CAssemblyOperand a -> a Source # amap :: (a -> a) -> CAssemblyOperand a -> CAssemblyOperand a Source # | |||||
Generic1 CAssemblyOperand Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CAssemblyOperand a -> Rep1 CAssemblyOperand a # to1 :: Rep1 CAssemblyOperand a -> CAssemblyOperand a # | |||||
Data a => Data (CAssemblyOperand a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAssemblyOperand a -> c (CAssemblyOperand a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CAssemblyOperand a) # toConstr :: CAssemblyOperand a -> Constr # dataTypeOf :: CAssemblyOperand a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CAssemblyOperand a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CAssemblyOperand a)) # gmapT :: (forall b. Data b => b -> b) -> CAssemblyOperand a -> CAssemblyOperand a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAssemblyOperand a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAssemblyOperand a -> r # gmapQ :: (forall d. Data d => d -> u) -> CAssemblyOperand a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAssemblyOperand a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAssemblyOperand a -> m (CAssemblyOperand a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssemblyOperand a -> m (CAssemblyOperand a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssemblyOperand a -> m (CAssemblyOperand a) # | |||||
Generic (CAssemblyOperand a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CAssemblyOperand a -> Rep (CAssemblyOperand a) x # to :: Rep (CAssemblyOperand a) x -> CAssemblyOperand a # | |||||
Show a => Show (CAssemblyOperand a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CAssemblyOperand a -> ShowS # show :: CAssemblyOperand a -> String # showList :: [CAssemblyOperand a] -> ShowS # | |||||
NFData a => NFData (CAssemblyOperand a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CAssemblyOperand a -> () # | |||||
CNode t1 => CNode (CAssemblyOperand t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CAssemblyOperand t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CAssemblyOperand t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CAssemblyOperand t1 -> Position Source # | |||||
type Rep1 CAssemblyOperand Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CAssemblyOperand = D1 ('MetaData "CAssemblyOperand" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAsmOperand" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CStringLiteral)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 CExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
type Rep (CAssemblyOperand a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CAssemblyOperand a) = D1 ('MetaData "CAssemblyOperand" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CAsmOperand" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStringLiteral a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
Expressions
type CExpr = CExpression NodeInfo Source #
C expression (K&R A7)
- these can be arbitrary expression, as the argument of
sizeof
can be arbitrary, even if appearing in a constant expression - GNU C extensions:
alignof
,__real
,__imag
,({ stmt-expr })
,&& label
and built-ins
data CExpression a Source #
Constructors
CComma [CExpression a] a | |
CAssign CAssignOp (CExpression a) (CExpression a) a | |
CCond (CExpression a) (Maybe (CExpression a)) (CExpression a) a | |
CBinary CBinaryOp (CExpression a) (CExpression a) a | |
CCast (CDeclaration a) (CExpression a) a | |
CUnary CUnaryOp (CExpression a) a | |
CSizeofExpr (CExpression a) a | |
CSizeofType (CDeclaration a) a | |
CAlignofExpr (CExpression a) a | |
CAlignofType (CDeclaration a) a | |
CComplexReal (CExpression a) a | |
CComplexImag (CExpression a) a | |
CIndex (CExpression a) (CExpression a) a | |
CCall (CExpression a) [CExpression a] a | |
CMember (CExpression a) Ident Bool a | |
CVar Ident a | |
CConst (CConstant a) | integer, character, floating point and string constants |
CCompoundLit (CDeclaration a) (CInitializerList a) a | C99 compound literal |
CGenericSelection (CExpression a) [(Maybe (CDeclaration a), CExpression a)] a | C11 generic selection |
CStatExpr (CStatement a) a | GNU C compound statement as expr |
CLabAddrExpr Ident a | GNU C address of label |
CBuiltinExpr (CBuiltinThing a) | builtin expressions, see |
Instances
Functor CExpression Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CExpression a -> CExpression b # (<$) :: a -> CExpression b -> CExpression a # | |||||
Pretty CExpr Source # | |||||
Annotated CExpression Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CExpression a -> a Source # amap :: (a -> a) -> CExpression a -> CExpression a Source # | |||||
Data a => Data (CExpression a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CExpression a -> c (CExpression a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CExpression a) # toConstr :: CExpression a -> Constr # dataTypeOf :: CExpression a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CExpression a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CExpression a)) # gmapT :: (forall b. Data b => b -> b) -> CExpression a -> CExpression a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CExpression a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CExpression a -> r # gmapQ :: (forall d. Data d => d -> u) -> CExpression a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CExpression a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CExpression a -> m (CExpression a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CExpression a -> m (CExpression a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CExpression a -> m (CExpression a) # | |||||
Generic (CExpression a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CExpression a -> Rep (CExpression a) x # to :: Rep (CExpression a) x -> CExpression a # | |||||
Show a => Show (CExpression a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CExpression a -> ShowS # show :: CExpression a -> String # showList :: [CExpression a] -> ShowS # | |||||
NFData a => NFData (CExpression a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CExpression a -> () # | |||||
CNode t1 => CNode (CExpression t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CExpression t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CExpression t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CExpression t1 -> Position Source # | |||||
type Rep (CExpression a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CExpression a) = D1 ('MetaData "CExpression" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((((C1 ('MetaCons "CComma" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CExpression a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CAssign" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CAssignOp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CCond" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (CExpression a)))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CBinary" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CBinaryOp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CCast" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: ((C1 ('MetaCons "CUnary" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CUnaryOp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CSizeofExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CSizeofType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CAlignofExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CAlignofType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CComplexReal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: (((C1 ('MetaCons "CComplexImag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CIndex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CCall" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CExpression a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CMember" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: ((C1 ('MetaCons "CConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CConstant a))) :+: (C1 ('MetaCons "CCompoundLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CInitializerList a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CGenericSelection" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Maybe (CDeclaration a), CExpression a)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: (C1 ('MetaCons "CStatExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CStatement a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "CLabAddrExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CBuiltinExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CBuiltinThing a)))))))) |
C assignment operators (K&R A7.17)
Constructors
CAssignOp | |
CMulAssOp | |
CDivAssOp | |
CRmdAssOp | remainder and assignment |
CAddAssOp | |
CSubAssOp | |
CShlAssOp | |
CShrAssOp | |
CAndAssOp | |
CXorAssOp | |
COrAssOp |
Instances
Data CAssignOp Source # | |||||
Defined in Language.C.Syntax.Ops Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAssignOp -> c CAssignOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CAssignOp # toConstr :: CAssignOp -> Constr # dataTypeOf :: CAssignOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CAssignOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CAssignOp) # gmapT :: (forall b. Data b => b -> b) -> CAssignOp -> CAssignOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAssignOp -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAssignOp -> r # gmapQ :: (forall d. Data d => d -> u) -> CAssignOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAssignOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp # | |||||
Generic CAssignOp Source # | |||||
Defined in Language.C.Syntax.Ops Associated Types
| |||||
Show CAssignOp Source # | |||||
NFData CAssignOp Source # | |||||
Defined in Language.C.Syntax.Ops | |||||
Eq CAssignOp Source # | |||||
Ord CAssignOp Source # | |||||
Pretty CAssignOp Source # | |||||
type Rep CAssignOp Source # | |||||
Defined in Language.C.Syntax.Ops type Rep CAssignOp = D1 ('MetaData "CAssignOp" "Language.C.Syntax.Ops" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CAssignOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMulAssOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CDivAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CRmdAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CAddAssOp" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CSubAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CShlAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CShrAssOp" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CAndAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CXorAssOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "COrAssOp" 'PrefixI 'False) (U1 :: Type -> Type))))) |
C binary operators (K&R A7.6-15)
Constructors
CMulOp | |
CDivOp | |
CRmdOp | remainder of division |
CAddOp | |
CSubOp | |
CShlOp | shift left |
CShrOp | shift right |
CLeOp | less |
CGrOp | greater |
CLeqOp | less or equal |
CGeqOp | greater or equal |
CEqOp | equal |
CNeqOp | not equal |
CAndOp | bitwise and |
CXorOp | exclusive bitwise or |
COrOp | inclusive bitwise or |
CLndOp | logical and |
CLorOp | logical or |
Instances
Data CBinaryOp Source # | |||||
Defined in Language.C.Syntax.Ops Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CBinaryOp -> c CBinaryOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CBinaryOp # toConstr :: CBinaryOp -> Constr # dataTypeOf :: CBinaryOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CBinaryOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CBinaryOp) # gmapT :: (forall b. Data b => b -> b) -> CBinaryOp -> CBinaryOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CBinaryOp -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CBinaryOp -> r # gmapQ :: (forall d. Data d => d -> u) -> CBinaryOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CBinaryOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CBinaryOp -> m CBinaryOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CBinaryOp -> m CBinaryOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CBinaryOp -> m CBinaryOp # | |||||
Generic CBinaryOp Source # | |||||
Defined in Language.C.Syntax.Ops Associated Types
| |||||
Show CBinaryOp Source # | |||||
NFData CBinaryOp Source # | |||||
Defined in Language.C.Syntax.Ops | |||||
Eq CBinaryOp Source # | |||||
Ord CBinaryOp Source # | |||||
Pretty CBinaryOp Source # | |||||
type Rep CBinaryOp Source # | |||||
Defined in Language.C.Syntax.Ops type Rep CBinaryOp = D1 ('MetaData "CBinaryOp" "Language.C.Syntax.Ops" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((((C1 ('MetaCons "CMulOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CDivOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CRmdOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CAddOp" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CSubOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CShlOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CShrOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CLeOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CGrOp" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CLeqOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CGeqOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CEqOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CNeqOp" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CAndOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CXorOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "COrOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CLndOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLorOp" 'PrefixI 'False) (U1 :: Type -> Type)))))) |
C unary operator (K&R A7.3-4)
Constructors
CPreIncOp | prefix increment operator |
CPreDecOp | prefix decrement operator |
CPostIncOp | postfix increment operator |
CPostDecOp | postfix decrement operator |
CAdrOp | address operator |
CIndOp | indirection operator |
CPlusOp | prefix plus |
CMinOp | prefix minus |
CCompOp | one's complement |
CNegOp | logical negation |
Instances
Data CUnaryOp Source # | |||||
Defined in Language.C.Syntax.Ops Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CUnaryOp -> c CUnaryOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CUnaryOp # toConstr :: CUnaryOp -> Constr # dataTypeOf :: CUnaryOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CUnaryOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CUnaryOp) # gmapT :: (forall b. Data b => b -> b) -> CUnaryOp -> CUnaryOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CUnaryOp -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CUnaryOp -> r # gmapQ :: (forall d. Data d => d -> u) -> CUnaryOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CUnaryOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp # | |||||
Generic CUnaryOp Source # | |||||
Defined in Language.C.Syntax.Ops Associated Types
| |||||
Show CUnaryOp Source # | |||||
NFData CUnaryOp Source # | |||||
Defined in Language.C.Syntax.Ops | |||||
Eq CUnaryOp Source # | |||||
Ord CUnaryOp Source # | |||||
Defined in Language.C.Syntax.Ops | |||||
Pretty CUnaryOp Source # | |||||
type Rep CUnaryOp Source # | |||||
Defined in Language.C.Syntax.Ops type Rep CUnaryOp = D1 ('MetaData "CUnaryOp" "Language.C.Syntax.Ops" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (((C1 ('MetaCons "CPreIncOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CPreDecOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CPostIncOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CPostDecOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CAdrOp" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CIndOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CPlusOp" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMinOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CCompOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CNegOp" 'PrefixI 'False) (U1 :: Type -> Type))))) |
type CBuiltin = CBuiltinThing NodeInfo Source #
GNU Builtins, which cannot be typed in C99
data CBuiltinThing a Source #
Constructors
CBuiltinVaArg (CExpression a) (CDeclaration a) a | (expr, type) |
CBuiltinOffsetOf (CDeclaration a) [CPartDesignator a] a | (type, designator-list) |
CBuiltinTypesCompatible (CDeclaration a) (CDeclaration a) a | (type,type) |
CBuiltinConvertVector (CExpression a) (CDeclaration a) a | (expr, type) |
CBuiltinBitCast (CDeclaration a) (CExpression a) a | (type, expr) |
Instances
Functor CBuiltinThing Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CBuiltinThing a -> CBuiltinThing b # (<$) :: a -> CBuiltinThing b -> CBuiltinThing a # | |||||
Pretty CBuiltin Source # | |||||
Annotated CBuiltinThing Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CBuiltinThing a -> a Source # amap :: (a -> a) -> CBuiltinThing a -> CBuiltinThing a Source # | |||||
Data a => Data (CBuiltinThing a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CBuiltinThing a -> c (CBuiltinThing a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CBuiltinThing a) # toConstr :: CBuiltinThing a -> Constr # dataTypeOf :: CBuiltinThing a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CBuiltinThing a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CBuiltinThing a)) # gmapT :: (forall b. Data b => b -> b) -> CBuiltinThing a -> CBuiltinThing a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CBuiltinThing a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CBuiltinThing a -> r # gmapQ :: (forall d. Data d => d -> u) -> CBuiltinThing a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CBuiltinThing a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CBuiltinThing a -> m (CBuiltinThing a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CBuiltinThing a -> m (CBuiltinThing a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CBuiltinThing a -> m (CBuiltinThing a) # | |||||
Generic (CBuiltinThing a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CBuiltinThing a -> Rep (CBuiltinThing a) x # to :: Rep (CBuiltinThing a) x -> CBuiltinThing a # | |||||
Show a => Show (CBuiltinThing a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CBuiltinThing a -> ShowS # show :: CBuiltinThing a -> String # showList :: [CBuiltinThing a] -> ShowS # | |||||
NFData a => NFData (CBuiltinThing a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CBuiltinThing a -> () # | |||||
CNode t1 => CNode (CBuiltinThing t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CBuiltinThing t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CBuiltinThing t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CBuiltinThing t1 -> Position Source # | |||||
type Rep (CBuiltinThing a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CBuiltinThing a) = D1 ('MetaData "CBuiltinThing" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((C1 ('MetaCons "CBuiltinVaArg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CBuiltinOffsetOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CPartDesignator a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "CBuiltinTypesCompatible" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CBuiltinConvertVector" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons "CBuiltinBitCast" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CDeclaration a)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CExpression a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) |
Constants
type CStrLit = CStringLiteral NodeInfo Source #
Attributed string literals
cstringOfLit :: CStringLiteral a -> CString Source #
liftStrLit :: CStringLiteral a -> CConstant a Source #
Lift a string literal to a C constant
Constructors
CIntConst CInteger a | |
CCharConst CChar a | |
CFloatConst CFloat a | |
CStrConst CString a |
Instances
Functor CConstant Source # | |||||
Pretty CConst Source # | |||||
Annotated CConstant Source # | |||||
Defined in Language.C.Syntax.AST | |||||
Generic1 CConstant Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Data a => Data (CConstant a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CConstant a -> c (CConstant a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CConstant a) # toConstr :: CConstant a -> Constr # dataTypeOf :: CConstant a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CConstant a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CConstant a)) # gmapT :: (forall b. Data b => b -> b) -> CConstant a -> CConstant a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CConstant a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CConstant a -> r # gmapQ :: (forall d. Data d => d -> u) -> CConstant a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CConstant a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CConstant a -> m (CConstant a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CConstant a -> m (CConstant a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CConstant a -> m (CConstant a) # | |||||
Generic (CConstant a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
| |||||
Show a => Show (CConstant a) Source # | |||||
NFData a => NFData (CConstant a) Source # | |||||
Defined in Language.C.Syntax.AST | |||||
CNode t1 => CNode (CConstant t1) Source # | |||||
CNode t1 => Pos (CConstant t1) Source # | |||||
type Rep1 CConstant Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CConstant = D1 ('MetaData "CConstant" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((C1 ('MetaCons "CIntConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInteger) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CCharConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CChar) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "CFloatConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFloat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "CStrConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
type Rep (CConstant a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CConstant a) = D1 ('MetaData "CConstant" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) ((C1 ('MetaCons "CIntConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInteger) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CCharConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CChar) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons "CFloatConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFloat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "CStrConst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
data CStringLiteral a Source #
Instances
Functor CStringLiteral Source # | |||||
Defined in Language.C.Syntax.AST Methods fmap :: (a -> b) -> CStringLiteral a -> CStringLiteral b # (<$) :: a -> CStringLiteral b -> CStringLiteral a # | |||||
Pretty CStrLit Source # | |||||
Annotated CStringLiteral Source # | |||||
Defined in Language.C.Syntax.AST Methods annotation :: CStringLiteral a -> a Source # amap :: (a -> a) -> CStringLiteral a -> CStringLiteral a Source # | |||||
Generic1 CStringLiteral Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from1 :: CStringLiteral a -> Rep1 CStringLiteral a # to1 :: Rep1 CStringLiteral a -> CStringLiteral a # | |||||
Data a => Data (CStringLiteral a) Source # | |||||
Defined in Language.C.Syntax.AST Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CStringLiteral a -> c (CStringLiteral a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CStringLiteral a) # toConstr :: CStringLiteral a -> Constr # dataTypeOf :: CStringLiteral a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (CStringLiteral a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (CStringLiteral a)) # gmapT :: (forall b. Data b => b -> b) -> CStringLiteral a -> CStringLiteral a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CStringLiteral a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CStringLiteral a -> r # gmapQ :: (forall d. Data d => d -> u) -> CStringLiteral a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CStringLiteral a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CStringLiteral a -> m (CStringLiteral a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CStringLiteral a -> m (CStringLiteral a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CStringLiteral a -> m (CStringLiteral a) # | |||||
Generic (CStringLiteral a) Source # | |||||
Defined in Language.C.Syntax.AST Associated Types
Methods from :: CStringLiteral a -> Rep (CStringLiteral a) x # to :: Rep (CStringLiteral a) x -> CStringLiteral a # | |||||
Show a => Show (CStringLiteral a) Source # | |||||
Defined in Language.C.Syntax.AST Methods showsPrec :: Int -> CStringLiteral a -> ShowS # show :: CStringLiteral a -> String # showList :: [CStringLiteral a] -> ShowS # | |||||
NFData a => NFData (CStringLiteral a) Source # | |||||
Defined in Language.C.Syntax.AST Methods rnf :: CStringLiteral a -> () # | |||||
CNode t1 => CNode (CStringLiteral t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods nodeInfo :: CStringLiteral t1 -> NodeInfo Source # | |||||
CNode t1 => Pos (CStringLiteral t1) Source # | |||||
Defined in Language.C.Syntax.AST Methods posOf :: CStringLiteral t1 -> Position Source # | |||||
type Rep1 CStringLiteral Source # | |||||
Defined in Language.C.Syntax.AST type Rep1 CStringLiteral = D1 ('MetaData "CStringLiteral" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CStrLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
type Rep (CStringLiteral a) Source # | |||||
Defined in Language.C.Syntax.AST type Rep (CStringLiteral a) = D1 ('MetaData "CStringLiteral" "Language.C.Syntax.AST" "language-c-0.10.0-8P6xYugyb1CAWKjlDiZidO" 'False) (C1 ('MetaCons "CStrLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) |
Annoated type class
class Functor ast => Annotated (ast :: Type -> Type) where Source #
All AST nodes are annotated. Inspired by the Annotated
class of Niklas Broberg's haskell-src-exts package.
In principle, we could have Copointed superclass instead
of ann
, for the price of another dependency.
Methods
annotation :: ast a -> a Source #
get the annotation of an AST node
amap :: (a -> a) -> ast a -> ast a Source #
change the annotation (non-recursively) of an AST node. Use fmap for recursively modifying the annotation.
Instances
Annotated CAlignmentSpecifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CAlignmentSpecifier a -> a Source # amap :: (a -> a) -> CAlignmentSpecifier a -> CAlignmentSpecifier a Source # | |
Annotated CAssemblyOperand Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CAssemblyOperand a -> a Source # amap :: (a -> a) -> CAssemblyOperand a -> CAssemblyOperand a Source # | |
Annotated CAssemblyStatement Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CAssemblyStatement a -> a Source # amap :: (a -> a) -> CAssemblyStatement a -> CAssemblyStatement a Source # | |
Annotated CAttribute Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CAttribute a -> a Source # amap :: (a -> a) -> CAttribute a -> CAttribute a Source # | |
Annotated CBuiltinThing Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CBuiltinThing a -> a Source # amap :: (a -> a) -> CBuiltinThing a -> CBuiltinThing a Source # | |
Annotated CCompoundBlockItem Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CCompoundBlockItem a -> a Source # amap :: (a -> a) -> CCompoundBlockItem a -> CCompoundBlockItem a Source # | |
Annotated CConstant Source # | |
Defined in Language.C.Syntax.AST | |
Annotated CDeclaration Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CDeclaration a -> a Source # amap :: (a -> a) -> CDeclaration a -> CDeclaration a Source # | |
Annotated CDeclarationSpecifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CDeclarationSpecifier a -> a Source # amap :: (a -> a) -> CDeclarationSpecifier a -> CDeclarationSpecifier a Source # | |
Annotated CDeclarator Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CDeclarator a -> a Source # amap :: (a -> a) -> CDeclarator a -> CDeclarator a Source # | |
Annotated CDerivedDeclarator Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CDerivedDeclarator a -> a Source # amap :: (a -> a) -> CDerivedDeclarator a -> CDerivedDeclarator a Source # | |
Annotated CEnumeration Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CEnumeration a -> a Source # amap :: (a -> a) -> CEnumeration a -> CEnumeration a Source # | |
Annotated CExpression Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CExpression a -> a Source # amap :: (a -> a) -> CExpression a -> CExpression a Source # | |
Annotated CExternalDeclaration Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CExternalDeclaration a -> a Source # amap :: (a -> a) -> CExternalDeclaration a -> CExternalDeclaration a Source # | |
Annotated CFunctionDef Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CFunctionDef a -> a Source # amap :: (a -> a) -> CFunctionDef a -> CFunctionDef a Source # | |
Annotated CFunctionSpecifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CFunctionSpecifier a -> a Source # amap :: (a -> a) -> CFunctionSpecifier a -> CFunctionSpecifier a Source # | |
Annotated CInitializer Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CInitializer a -> a Source # amap :: (a -> a) -> CInitializer a -> CInitializer a Source # | |
Annotated CPartDesignator Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CPartDesignator a -> a Source # amap :: (a -> a) -> CPartDesignator a -> CPartDesignator a Source # | |
Annotated CStatement Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CStatement a -> a Source # amap :: (a -> a) -> CStatement a -> CStatement a Source # | |
Annotated CStorageSpecifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CStorageSpecifier a -> a Source # amap :: (a -> a) -> CStorageSpecifier a -> CStorageSpecifier a Source # | |
Annotated CStringLiteral Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CStringLiteral a -> a Source # amap :: (a -> a) -> CStringLiteral a -> CStringLiteral a Source # | |
Annotated CStructureUnion Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CStructureUnion a -> a Source # amap :: (a -> a) -> CStructureUnion a -> CStructureUnion a Source # | |
Annotated CTranslationUnit Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CTranslationUnit a -> a Source # amap :: (a -> a) -> CTranslationUnit a -> CTranslationUnit a Source # | |
Annotated CTypeQualifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CTypeQualifier a -> a Source # amap :: (a -> a) -> CTypeQualifier a -> CTypeQualifier a Source # | |
Annotated CTypeSpecifier Source # | |
Defined in Language.C.Syntax.AST Methods annotation :: CTypeSpecifier a -> a Source # amap :: (a -> a) -> CTypeSpecifier a -> CTypeSpecifier a Source # |