| 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 |