Expand description
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§
- Alignment of a type
- Array part of a declarator
- Attributes
- Platform availability attribute
- Platfrom version inside availability attribute
- Binary operators
- Function call expression
- Case range expression
- Cast expression
- Compound literal
- Conditional operator
- Variable, function or type declaration
- Single item in a declaration
- Do statement
- Enumeration type specifier
- Single constant inside a
enum
definition - Floating point number literal
- Floating point number suffix
- For statement
- Function parameter part of a declarator
- Function definition
- Type match case in a generic selection expression
- Generic selection expression
- Single input or output operand specifier for GNU extended asm statement
- Extended statement that has access to C variables
- Variable, function and other names that are not type names
- If statement
- Defines a single name in a declaration
- Initializes one field or array element in a initializer list
- Integer number literal
- Suffix of an integer literal
- Labeled statement
- Structure and union members
- Offset designator in a
offsetof
macro expansion - Member offset expression
- Complete parameter declaration in a function prototype or declaration
- Range array designator in an initializer
- SizeOf a type
- Size of an unary expression
- Static assertion
- Field declarator for a struct or a union
- Struct field declaration
- Structure or union type specifier
- Switch statement
- Floating point type with guaranteed width and format
- Entire C source file after preprocessing
- References to types outside of declarations
- Unary operator expression
- Variable argument list access
- While statement
Enums§
- Alignment specifier
- Size of an array in a declaration
- Inline assembler
- Platfrom availability attribute clause
- All operators with two operands
- Element of a compound statement
- Constant literals
- Common part of a declaration
- Name of a declarator
- Modifies declarator type
- Single element of an designation in an initializer
- Whether function signature ends with a
...
- Expressions
- Extended vendor-specific syntax that does not fit elsewhere
- Top-level elements of a C program
- Floating point number base
- Floating point literal format specified by the suffix
- First element of a
for
statement - Function specifier
- Single element of a generic selection expression
- Value that is assigned immediately in a declaration
- Base of the integer literal
- Size part of a integer literal suffix
- Statement labels for
goto
andswitch
- Struct or union member access
- Single element of an offset designator
- List of qualifiers that can follow a
*
in a declaration - Type and qualifiers for a struct declaration
- Element of a function body
- Storage class
- Single declaration in a struct or a union
- The only difference between a
struct
and aunion
- Floating point formats
- Type of an expression or type
- Type qualifier
- Type specifier
- All operators with one operand
Type Aliases§
- String literal