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