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