std-c17:

preprocessing-file external-declaration

no references


token:

keyword identifier constant string-literal punctuator

no references


preprocessing-token:

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

referenced by:


keyword:

auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while _Alignas _Alignof _Atomic _Bool _Complex _Generic _Imaginary _Noreturn _Static_assert _Thread_local

referenced by:


identifier:

identifier-nondigit identifier-nondigit digit

referenced by:


identifier-nondigit:

nondigit universal-character-name { other implementation-defined characters }

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

referenced by:


integer-constant:

nonzero-digit digit octal-constant hexadecimal-prefix hexadecimal-digit integer-suffix

referenced by:


octal-constant:

0 octal-constant octal-digit

referenced by:


hexadecimal-prefix:

0x 0X

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:

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

referenced by:


integer-suffix:

unsigned-suffix long-suffix long-long-suffix long-suffix long-long-suffix unsigned-suffix

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 .

referenced by:


binary-exponent-part:

p P sign digit-sequence

referenced by:


hexadecimal-digit-sequence:

hexadecimal-digit

referenced by:


floating-suffix:

fl FL

referenced by:


enumeration-constant:

identifier

referenced by:


character-constant:

' L' u' U' c-char '

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:


string-literal:

" L" s-char " encoding-prefix s-char-sequence?

referenced by:


encoding-prefix:

u8 u U L

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:


unary-expression:

++ -- sizeof primary-expression ( type-name ) { initializer-list , } [ 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 , ; static_assert-declaration

referenced by:


declaration-specifiers:

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

referenced by:


init-declarator:

declarator = initializer

referenced by:


storage-class-specifier:

typedef extern static _Thread_local auto register

referenced by:


type-specifier:

void char short int long float double signed unsigned _Bool _Complex atomic-type-specifier struct-or-union-specifier ∗ enum-specifier typedef-name

referenced by:


struct-or-union-specifier:

struct-or-union identifier { struct-declaration } identifier

referenced by:


struct-or-union:

struct union

referenced by:


struct-declaration:

specifier-qualifier-list struct-declarator , ; static_assert-declaration

referenced by:


specifier-qualifier-list:

type-specifier type-qualifier alignment-specifier

referenced by:


struct-declarator:

declarator declarator : constant-expression

referenced by:


enum-specifier:

enum identifier { enumerator , , } identifier

referenced by:


enumerator:

enumeration-constant = constant-expression

referenced by:


atomic-type-specifier:

_Atomic ( 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 identifier ( declarator ) [ type-qualifier-list assignment-expression * static type-qualifier-list type-qualifier-list static assignment-expression ] ( parameter-type-list identifier-list )

referenced by:


pointer:

* type-qualifier-list

referenced by:


type-qualifier-list:

type-qualifier

referenced by:


parameter-type-list:

parameter-declaration , , ...

referenced by:


parameter-declaration:

declaration-specifiers declarator abstract-declarator

referenced by:


identifier-list:

identifier ,

referenced by:


type-name:

specifier-qualifier-list abstract-declarator

referenced by:


abstract-declarator:

pointer pointer ( abstract-declarator parameter-type-list ) [ type-qualifier-list assignment-expression static type-qualifier-list type-qualifier-list static assignment-expression * ] [ type-qualifier-list assignment-expression static type-qualifier-list type-qualifier-list static assignment-expression * ] ( parameter-type-list )

referenced by:


typedef-name:

identifier

referenced by:


initializer:

assignment-expression { initializer-list , }

referenced by:


initializer-list:

designation initializer ,

referenced by:


designation:

designator =

referenced by:


designator:

[ constant-expression ] . identifier

referenced by:


static_assert-declaration:

_Static_assert ( constant-expression , string-literal ) ;

referenced by:


statement:

labeled-statement compound-statement expression-statement selection-statement iteration-statement jump-statement

referenced by:


labeled-statement:

identifier case constant-expression default : statement

referenced by:


compound-statement:

{ block-item }

referenced by:


block-item:

declaration statement

referenced by:


expression-statement:

expression ;

referenced by:


selection-statement:

if ( expression ) statement else switch ( expression ) statement

referenced by:


iteration-statement:

while ( expression for ( expression ; declaration expression ; expression ) statement do statement while ( expression ) ;

referenced by:


jump-statement:

goto identifier continue break return expression ;

referenced by:


external-declaration:

function-definition declaration

referenced by:


function-definition:

declaration-specifiers declarator declaration compound-statement

referenced by:


preprocessing-file:

group

referenced by:


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 { 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 line pp-tokens undef identifier error 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:


on-off-switch:

ON OFF DEFAULT

no references


n-char-sequence:

digit nondigit

no references


n-wchar-sequence:

digit nondigit

no references



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