Dec Hex Lexeme Regular Expression Token Description Production
9 9 whitespace [\t ]+ whitespace
10 A newline \n newline
33 21 ! ! NOT logical NOT operator unary_operator
!= != NOTEQ inequality operator equality_expression
34 22 many \"([^\n"]|\\\n|\\.)*\" STRINGLIT string literal primary_expression
35 23 many #.* preprocessor directive
37 25 % % MOD integral modulus operator multiplicative_expression
%= %= MODASSIGN integral modulus and assignment operator assignment_operator
38 26 & & AMP address of variable operator unary_operator
bit AND operator and_expression
&& && AND logical AND operator logical_and_expression
&= &= BITANDASSIGN bit AND and assignment operator assignment_operator
39 27 many '([^\n']|\\.)' CHARLIT character literal constant
40 28 ( \( LPAREN function declarator direct_declarator
direct_abstract_declarator
selection statement selection_statement
iteration statement iteration_statement
type cast operator cast_expression
size-of operator unary_expression
function call operator postfix_expression
precedence operator primary_expression
41 29 ) \) RPAREN function declarator direct_declarator
direct_abstract_declarator
selection statement selection_statement
iteration statement iteration_statement
type cast operator cast_expression
size-of operator unary_expression
function call operator postfix_expression
precedence operator primary_expression
42 2A * \* ASTER pointer declarator pointer
pointer indirection operator unary_operator
multiplication operator multiplicative_expression
*= \*= MULTASSIGN multiplication and assignment operator assignment_operator
43 2B + \+ PLUS arithmetic identity operator unary_operator
addition operator additive_expression
++ \++ INC prefix integral increment operator unary_expression
postfix integral increment operator postfix_expression
+= \+= ADDASSIGN addition and assignment operator assignment_operator
44 2C , , COMMA declaration init_declarator_list
struct_declarator_list
enumerator_list
parameter_type_list
parameter_list
identifier_list
initializer initializer
initializer_list
sequence point operator expression
argument_expression_list
45 2D - - MINUS arithmetic negation operator unary_operator
subtraction operator additive_expression
-- -- DEC prefix integral decrement operator unary_expression
postfix integral decrement operator postfix_expression
-= -= SUBASSIGN subtraction and assignment operator assignment_operator
-> -> ARROW indirect object member operator postfix_expression
46 2E . \. DOT object member operator postfix_expression
... "..." ELLIPSIS declaration parameter_type_list
47 2F / \/ DIV division operator multiplicative_expression
/* "/*" begin block comment
10 A newline <BLOCK_COMMENT>\n block comment newline
42 2A */ <BLOCK_COMMENT>"*/" end block comment
0 0 many <BLOCK_COMMENT>. block comment
47 2F many "//".* line comment
/= \/= DIVASSIGN division and assignment operator assignment_operator
48 30 many [+|-]?[0-9]+ INTLIT integer literal constant
enumerator literal constant
[+|-]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+) FLOATLIT double precision floating-point number literal constant
58 3A : : COLON declaration struct_declarator
labeled statement labeled_statement
conditional expression operator conditional_expression
59 3B ; ; SEMICOLON statement terminator declaration
struct_declaration
expression_statement
iteration_statement
jump_statement
60 3C < \< LT less than operator relational_expression
<< \<< LSHIFT shift left operator shift_expression
<<= \<<= LSHIFTASSIGN shift left and assignment operator assignment_operator
<= \<= LTEQ less than or equal to operator relational_expression
61 3D = = ASSIGN declaration init_declarator
enumerator
assignment operator assignment_operator
== == EQ equality operator equality_expression
62 3E > > GT greater than operator relational_expression
>= >= GTEQ greater than or equal to operator relational_expression
>> >> RSHIFT shift right operator shift_expression
>>= >>= RSHIFTASSIGN shift right and assignment operator assignment_operator
63 3F ? \? COND conditional expression operator conditional_expression
91 5B [ \[ LBRACKET array declarator direct_declarator
direct_abstract_declarator
array element operator postfix_expression
93 5D ] ] RBRACKET array declarator direct_declarator
direct_abstract_declarator
array element operator postfix_expression
94 5E ^ \^ CARET bit XOR operator exclusive_or_expression
^= \^= BITXORASSIGN bit XOR and assignment operator assignment_operator
95 5F _Bool _Bool BOOL boolean type specifier type_specifier
97 61 auto auto AUTO auto storage class specifier storage_class_specifier
98 62 break break BREAK break jump statement jump_statement
99 63 case case CASE case labeled statement labeled_statement
char char CHAR character type specifier type_specifier
const const CONST constant type qualifier type_qualifier
continue continue CONTINUE continue jump statement jump_statement
100 64 default default DEFAULT default labeled statement labeled_statement
do do DO do-while iteration statement iteration_statement
double double DOUBLE double precision floating-point number type specifier type_specifier
101 65 else else ELSE else selection statement selection_statement
enum enum ENUM enumeration type specifier enum_specifier
extern extern EXTERN external storage class specifier storage_class_specifier
102 66 float float FLOAT single precision floating-point number type specifier type_specifier
for for FOR for iteration statement iteration_statement
103 67 goto goto GOTO goto jump statement jump_statement
105 69 if if IF if selection statement selection_statement
inline inline INLINE inline function specifier function_specifier
int int INT integer type specifier type_specifier
108 6C long long LONG long integer type specifier type_specifier
114 72 register register REGISTER register storage class specifier storage_class_specifier
restrict restrict RESTRICT restricted type qualifier type_qualifier
return return RETURN return jump statement jump_statement
115 73 short short SHORT short integer type specifier type_specifier
signed signed SIGNED signed integer type specifier type_specifier
sizeof sizeof SIZEOF size-of operator unary_expression
static static STATIC static storage class specifier storage_class_specifier
struct struct STRUCT structure type specifier struct_or_union
switch switch SWITCH switch selection statement selection_statement
116 74 typedef typedef TYPEDEF type definition specifier storage_class_specifier
117 75 union union UNION union type specifier struct_or_union
unsigned unsigned UNSIGNED unsigned integer type specifier type_specifier
118 76 void void VOID void type specifier type_specifier
volatile volatile VOLATILE volatile type qualifier type_qualifier
119 77 while while WHILE while iteration statement iteration_statement
65 41 many [A-Z_a-z][0-9A-Z_a-z]* IDENTIFIER declaration struct_or_union_specifier
enum_specifier
enumerator
direct_declarator
identifier_list
labeled statement labeled_statement
jump statement jump_statement
expression postfix_expression
identifier primary_expression
TYPEDEF_NAME type definition name type_specifier
ENUMLIT enumerator literal constant
123 7B { \{ LBRACE declaration struct_or_union_specifier
enum_specifier
initializer initializer
compound statement compound_statement
124 7C | \| BITOR bit OR operator inclusive_or_expression
|= \|= BITORASSIGN bit OR and assignment operator assignment_operator
|| "||" OR logical OR operator logical_or_expression
125 7D } \} RBRACE declaration struct_or_union_specifier
enum_specifier
initializer initializer
compound statement compound_statement
126 7E ~ ~ TILDE bit complement operator unary_operator
0 0 many . UNRECOGNIZED unrecognized lexeme