[−][src]Module lang_c::ast
Abstract syntax tree
Types in this module represent various pieces a C program can contain after preprocessing phase. They mostly follow C11 grammar naming conventions.
References to C11 standard given in parenthesis refer to the ISO/IEC 9899:201x draft published on April 12, 2011.
A number of GNU extensions to the standard C are included here. Types, struct fields or enum variants specific to GNU are marked as "GNU extension" with a link to the relevant section of gcc documentation. Supported extensions are:
- attributes in various positions
- inline assembly statements and asm labels
- extensions to the initializer list syntax
- statement expressions
typeof
type specifiers
Structs
ArrayDeclarator | Array part of a declarator |
Attribute | Attributes |
AvailabilityAttribute | Platform availability attribute |
AvailabilityVersion | Platfrom version inside availability attribute |
BinaryOperatorExpression | Binary operators |
CallExpression | Function call expression |
CastExpression | Cast expression |
CompoundLiteral | Compound literal |
ConditionalExpression | Conditional operator |
Declaration | Variable, function or type declaration |
Declarator | Single item in a declaration |
DoWhileStatement | Do statement |
EnumType | Enumeration type specifier |
Enumerator | Single constant inside a |
Float | Floating point number literal |
FloatSuffix | Floating point number suffix |
ForStatement | For statement |
FunctionDeclarator | Function parameter part of a declarator |
FunctionDefinition | Function definition |
GenericAssociationType | Type match case in a generic selection expression |
GenericSelection | Generic selection expression |
GnuAsmOperand | Single input or output operand specifier for GNU extended asm statement |
GnuExtendedAsmStatement | Extended statement that has access to C variables |
Identifier | Variable, function and other names that are not type names |
IfStatement | If statement |
InitDeclarator | Defines a single name in a declaration |
InitializerListItem | Initializes one field or array element in a initializer list |
Integer | Integer number literal |
IntegerSuffix | Suffix of an integer literal |
LabeledStatement | Labeled statement |
MemberExpression | Structure and union members |
OffsetDesignator | Offset designator in a |
OffsetOfExpression | Member offset expression |
ParameterDeclaration | Complete parameter declaration in a function prototype or declaration |
RangeDesignator | Range array designator in an initializer |
StaticAssert | Static assertion |
StructDeclarator | Field declarator for a struct or a union |
StructField | Struct field declaration |
StructType | Structure or union type specifier |
SwitchStatement | Switch statement |
TS18661FloatType | Floating point type with guaranteed width and format |
TranslationUnit | Entire C source file after preprocessing |
TypeName | References to types outside of declarations |
UnaryOperatorExpression | Unary operator expression |
VaArgExpression | Variable argument list access |
WhileStatement | While statement |
Enums
AlignmentSpecifier | Alignment specifier |
ArraySize | Size of an array in a declaration |
AsmStatement | Inline assembler |
AvailabilityClause | Platfrom availability attribute clause |
BinaryOperator | All operators with two operands |
BlockItem | Element of a compound statement |
Constant | Constant literals |
DeclarationSpecifier | Common part of a declaration |
DeclaratorKind | Name of a declarator |
DerivedDeclarator | Modifies declarator type |
Designator | Single element of an designation in an initializer |
Ellipsis | Whether function signature ends with a |
Expression | Expressions |
Extension | Extended vendor-specific syntax that does not fit elsewhere |
ExternalDeclaration | Top-level elements of a C program |
FloatBase | Floating point number base |
FloatFormat | Floating point literal format specified by the suffix |
ForInitializer | First element of a |
FunctionSpecifier | Function specifier |
GenericAssociation | Single element of a generic selection expression |
Initializer | Value that is assigned immediately in a declaration |
IntegerBase | Base of the integer literal |
IntegerSize | Size part of a integer literal suffix |
Label | Statement labels for |
MemberOperator | Struct or union member access |
OffsetMember | Single element of an offset designator |
PointerQualifier | List of qualifiers that can follow a |
SpecifierQualifier | Type and qualifiers for a struct declaration |
Statement | Element of a function body |
StorageClassSpecifier | Storage class |
StructDeclaration | Single declaration in a struct or a union |
StructKind | The only difference between a |
TS18661FloatFormat | Floating point formats |
TypeOf | Type of an expression or type |
TypeQualifier | Type qualifier |
TypeSpecifier | Type specifier |
UnaryOperator | All operators with one operand |
Type Definitions
StringLiteral | String literal |