start:

external-declaration

no references


token:

keyword identifier constant string-literal punctuator

no references


preprocessing-token:

header-name identifier . digit identifier-continue ' digit nondigit e E p P sign . character-constant string-literal punctuator each universal character name that cannot be one of the above each non-white-space character that cannot be one of the above

referenced by:


keyword:

alignas do int struct while alignof double long switch _Atomic auto else nullptr thread_local _BitInt bool enum register true _Complex break extern restrict typedef _Decimal128 case false return typeof _Decimal32 char float short typeof_unqual _Decimal64 const for signed union _Generic constexpr goto sizeof unsigned _Imaginary continue if static void _Noreturn default inline static_assert volatile

referenced by:


identifier:

identifier-start identifier-continue

referenced by:


identifier-start:

nondigit XID_Start character universal character name of class XID_Start

referenced by:


identifier-continue:

digit nondigit XID_Continue character universal character name of class XID_Continue

referenced by:


nondigit:

_ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

referenced by:


digit:

0 1 2 3 4 5 6 7 8 9

referenced by:


universal-character-name:

\u \U hex-quad hex-quad

referenced by:


hex-quad:

hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit

referenced by:


constant:

integer-constant floating-constant enumeration-constant character-constant predefined-constant

referenced by:


integer-constant:

nonzero-digit ' digit 0 ' octal-digit hexadecimal-constant binary-prefix binary-digit ' integer-suffix

referenced by:


hexadecimal-constant:

hexadecimal-prefix hexadecimal-digit-sequence

referenced by:


hexadecimal-prefix:

0x 0X

referenced by:


binary-prefix:

0b 0B

referenced by:


nonzero-digit:

1 2 3 4 5 6 7 8 9

referenced by:


octal-digit:

0 1 2 3 4 5 6 7

referenced by:


hexadecimal-digit-sequence:

hexadecimal-digit '

referenced by:


hexadecimal-digit:

0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

referenced by:


binary-digit:

0 1

referenced by:


integer-suffix:

unsigned-suffix long-suffix long-long-suffix bit-precise-int-suffix long-suffix long-long-suffix bit-precise-int-suffix unsigned-suffix

referenced by:


bit-precise-int-suffix:

wb WB

referenced by:


unsigned-suffix:

u U

referenced by:


long-suffix:

l L

referenced by:


long-long-suffix:

ll LL

referenced by:


floating-constant:

decimal-floating-constant hexadecimal-floating-constant

referenced by:


decimal-floating-constant:

fractional-constant exponent-part digit-sequence exponent-part floating-suffix

referenced by:


hexadecimal-floating-constant:

hexadecimal-prefix hexadecimal-fractional-constant hexadecimal-digit-sequence binary-exponent-part floating-suffix

referenced by:


fractional-constant:

digit-sequence . digit-sequence digit-sequence .

referenced by:


exponent-part:

e E sign digit-sequence

referenced by:


sign:

+ -

referenced by:


digit-sequence:

digit '

referenced by:


hexadecimal-fractional-constant:

hexadecimal-digit-sequence . hexadecimal-digit-sequence hexadecimal-digit-sequence .

referenced by:


binary-exponent-part:

p P sign digit-sequence

referenced by:


floating-suffix:

f l F L df dd dl DF DD DL

referenced by:


enumeration-constant:

identifier

referenced by:


character-constant:

encoding-prefix ' c-char '

referenced by:


encoding-prefix:

u8 u U L

referenced by:


c-char:

any member of the source character set except the single-quote ', backslash \, or new-line character escape-sequence

referenced by:


escape-sequence:

simple-escape-sequence octal-escape-sequence \x hexadecimal-digit universal-character-name

referenced by:


simple-escape-sequence:

\' \" \? \\ \a \b \f \n \r \t \v

referenced by:


octal-escape-sequence:

\ octal-digit octal-digit octal-digit

referenced by:


predefined-constant:

false true nullptr

referenced by:


string-literal:

encoding-prefix " s-char "

referenced by:


s-char:

any member of the source character set except the double-quote ", backslash \, or new-line character escape-sequence

referenced by:


punctuator:

[ ] ( ) { } . -> ++ -- & * + - ~ ! / % << >> < > <= >= == != ^ | && || ? : :: ; ... = *= /= %= += -= <<= >>= &= ^= |= , # ## <: :> <% %> %: %:%:

referenced by:


header-name:

< any member of the source character set except the new-line character and '>' > " any member of the source character set except the new-line character and " "

referenced by:


primary-expression:

identifier constant string-literal ( expression ) generic-selection

referenced by:


generic-selection:

_Generic ( assignment-expression , generic-association )

referenced by:


generic-association:

type-name default : assignment-expression

referenced by:


compound-literal:

( storage-class-specifier type-name ) braced-initializer

referenced by:


unary-expression:

++ -- sizeof primary-expression compound-literal [ expression ] ( assignment-expression , ) . -> identifier ++ -- unary-operator cast-expression sizeof alignof ( type-name )

referenced by:


unary-operator:

& * + - ~ !

referenced by:


cast-expression:

( type-name ) unary-expression

referenced by:


multiplicative-expression:

cast-expression * / %

referenced by:


additive-expression:

multiplicative-expression + -

referenced by:


shift-expression:

additive-expression << >>

referenced by:


relational-expression:

shift-expression < > <= >=

referenced by:


equality-expression:

relational-expression == !=

referenced by:


AND-expression:

equality-expression &

referenced by:


exclusive-OR-expression:

AND-expression ^

referenced by:


inclusive-OR-expression:

exclusive-OR-expression |

referenced by:


logical-AND-expression:

inclusive-OR-expression &&

referenced by:


logical-OR-expression:

logical-AND-expression ||

referenced by:


conditional-expression:

logical-OR-expression : expression ?

referenced by:


assignment-expression:

unary-expression assignment-operator conditional-expression

referenced by:


assignment-operator:

= *= /= %= += -= <<= >>= &= ^= |=

referenced by:


expression:

assignment-expression ,

referenced by:


constant-expression:

conditional-expression

referenced by:


declaration:

declaration-specifiers init-declarator-list attribute-specifier-sequence declaration-specifiers init-declarator-list ; static_assert-declaration attribute-declaration

referenced by:


declaration-specifiers:

declaration-specifier attribute-specifier-sequence

referenced by:


declaration-specifier:

storage-class-specifier type-specifier-qualifier function-specifier

referenced by:


init-declarator-list:

init-declarator ,

referenced by:


init-declarator:

declarator = initializer

referenced by:


attribute-declaration:

attribute-specifier-sequence ;

referenced by:


storage-class-specifier:

auto constexpr extern register static thread_local typedef

referenced by:


type-specifier:

void char short int long float double signed unsigned _BitInt ( constant-expression ) bool _Complex _Decimal32 _Decimal64 _Decimal128 atomic-type-specifier struct-or-union-specifier enum-specifier typedef-name typeof-specifier

referenced by:


struct-or-union-specifier:

struct-or-union attribute-specifier-sequence identifier { member-declaration } identifier

referenced by:


struct-or-union:

struct union

referenced by:


member-declaration:

attribute-specifier-sequence specifier-qualifier-list member-declarator , ; static_assert-declaration

referenced by:


specifier-qualifier-list:

type-specifier-qualifier attribute-specifier-sequence

referenced by:


type-specifier-qualifier:

type-specifier type-qualifier alignment-specifier

referenced by:


member-declarator:

declarator declarator : constant-expression

referenced by:


enum-specifier:

enum attribute-specifier-sequence identifier enum-type-specifier { enumerator , , } identifier enum-type-specifier

referenced by:


enumerator:

enumeration-constant attribute-specifier-sequence = constant-expression

referenced by:


enum-type-specifier:

: specifier-qualifier-list

referenced by:


atomic-type-specifier:

_Atomic ( type-name )

referenced by:


typeof-specifier:

typeof typeof_unqual ( typeof-specifier-argument )

referenced by:


typeof-specifier-argument:

expression type-name

referenced by:


type-qualifier:

const restrict volatile _Atomic

referenced by:


function-specifier:

inline _Noreturn

referenced by:


alignment-specifier:

alignas ( type-name constant-expression )

referenced by:


declarator:

pointer direct-declarator

referenced by:


direct-declarator:

identifier array-declarator function-declarator attribute-specifier-sequence ( declarator )

referenced by:


array-declarator:

direct-declarator [ type-qualifier-list assignment-expression * static type-qualifier-list type-qualifier-list static assignment-expression ]

referenced by:


function-declarator:

direct-declarator ( parameter-type-list )

referenced by:


pointer:

* attribute-specifier-sequence type-qualifier-list

referenced by:


type-qualifier-list:

type-qualifier

referenced by:


parameter-type-list:

parameter-declaration , , ... ...

referenced by:


parameter-declaration:

attribute-specifier-sequence declaration-specifiers declarator abstract-declarator

referenced by:


type-name:

specifier-qualifier-list abstract-declarator

referenced by:


abstract-declarator:

pointer pointer direct-abstract-declarator

referenced by:


direct-abstract-declarator:

( abstract-declarator ) array-abstract-declarator function-abstract-declarator attribute-specifier-sequence

referenced by:


array-abstract-declarator:

direct-abstract-declarator [ type-qualifier-list assignment-expression static type-qualifier-list type-qualifier-list static assignment-expression * ]

referenced by:


function-abstract-declarator:

direct-abstract-declarator ( parameter-type-list )

referenced by:


typedef-name:

identifier

referenced by:


braced-initializer:

{ designation initializer , , }

referenced by:


initializer:

assignment-expression braced-initializer

referenced by:


designation:

designator =

referenced by:


designator:

[ constant-expression ] . identifier

referenced by:


static_assert-declaration:

static_assert ( constant-expression , string-literal ) ;

referenced by:


attribute-specifier-sequence:

attribute-specifier

referenced by:


attribute-specifier:

[ [ attribute , ] ]

referenced by:


attribute:

attribute-token attribute-argument-clause

referenced by:


attribute-token:

standard-attribute attribute-prefixed-token

referenced by:


standard-attribute:

identifier

referenced by:


attribute-prefixed-token:

attribute-prefix :: identifier

referenced by:


attribute-prefix:

identifier

referenced by:


attribute-argument-clause:

( balanced-token-sequence )

referenced by:


balanced-token-sequence:

balanced-token

referenced by:


balanced-token:

( balanced-token-sequence ) [ balanced-token-sequence ] { balanced-token-sequence } any token other than a parenthesis, a bracket, or a brace

referenced by:


statement:

labeled-statement unlabeled-statement

referenced by:


unlabeled-statement:

expression-statement attribute-specifier-sequence primary-block jump-statement

referenced by:


primary-block:

compound-statement selection-statement iteration-statement

referenced by:


secondary-block:

statement

referenced by:


label:

attribute-specifier-sequence identifier case constant-expression default :

referenced by:


labeled-statement:

label statement

referenced by:


compound-statement:

{ block-item }

referenced by:


block-item:

declaration unlabeled-statement label

referenced by:


expression-statement:

attribute-specifier-sequence expression ;

referenced by:


selection-statement:

if ( expression ) secondary-block else switch ( expression ) secondary-block

referenced by:


iteration-statement:

while ( expression for ( expression ; declaration expression ; expression ) secondary-block do secondary-block while ( expression ) ;

referenced by:


jump-statement:

goto identifier continue break return expression ;

referenced by:


external-declaration:

function-definition declaration

referenced by:


function-definition:

attribute-specifier-sequence declaration-specifiers declarator function-body

referenced by:


function-body:

compound-statement

referenced by:


preprocessing-file:

group

no references


group:

group-part

referenced by:


group-part:

if-section control-line text-line # non-directive

referenced by:


if-section:

if-group elif-group else-group endif-line

referenced by:


if-group:

# if constant-expression ifdef ifndef identifier the new-line character group

referenced by:


elif-group:

# elif constant-expression elifdef elifndef identifier the new-line character group

referenced by:


else-group:

# else the new-line character group

referenced by:


endif-line:

# endif the new-line character

referenced by:


control-line:

# include embed line pp-tokens undef identifier error warning pragma pp-tokens define identifier a '(' character not immediately preceded by white space identifier-list identifier-list , ... ) replacement-list the new-line character

referenced by:


text-line:

pp-tokens the new-line character

referenced by:


non-directive:

pp-tokens the new-line character

referenced by:


replacement-list:

pp-tokens

referenced by:


pp-tokens:

preprocessing-token

referenced by:


identifier-list:

identifier ,

referenced by:


pp-parameter:

pp-parameter-name pp-parameter-clause

referenced by:


pp-parameter-name:

pp-standard-parameter pp-prefixed-parameter

referenced by:


pp-standard-parameter:

identifier

referenced by:


pp-prefixed-parameter:

identifier :: identifier

referenced by:


pp-parameter-clause:

( pp-balanced-token-sequence )

referenced by:


pp-balanced-token-sequence:

pp-balanced-token

referenced by:


pp-balanced-token:

( pp-balanced-token-sequence ) [ pp-balanced-token-sequence ] { pp-balanced-token-sequence } any pp-token other than a parenthesis, a bracket, or a brace

referenced by:


defined-macro-expression:

defined identifier ( identifier )

no references


h-preprocessing-token:

any preprocessing-token other than >

referenced by:


header-name-tokens:

< h-preprocessing-token h-preprocessing-token > string-literal

referenced by:


has-include-expression:

__has_include ( header-name header-name-tokens )

no references


has-embed-expression:

__has_embed ( header-name pp-parameter header-name-tokens pp-balanced-token-sequence )

no references


has-c-attribute-express:

__has_c_attribute ( pp-tokens )

no references


va-opt-replacement:

__VA_OPT__ ( pp-tokens )

no references


standard-pragma:

# pragma STDC FP_CONTRACT FENV_ACCESS CX_LIMITED_RANGE on-off-switch FENV_DEC_ROUND dec-direction FENV_ROUND direction

no references


on-off-switch:

ON OFF DEFAULT

referenced by:


direction:

FE_DOWNWARD FE_TONEAREST FE_TONEARESTFROMZERO FE_TOWARDZERO FE_UPWARD FE_DYNAMIC

referenced by:


dec-direction:

FE_DEC_DOWNWARD FE_DEC_TONEAREST FE_DEC_TONEARESTFROMZERO FE_DEC_TOWARDZERO FE_DEC_UPWARD FE_DEC_DYNAMIC

referenced by:


n-char-sequence:

digit nondigit

no references


n-wchar-sequence:

digit nondigit

no references


d-char-sequence:

digit nondigit

no references


d-wchar-sequence:

digit nondigit

no references



... generated by RR - Railroad Diagram Generator R R