LNORM Lexemes Specific to C and C++

The lexemes in the following table are specific to C and C++. The state stays in LNORM.

Lexeme

Representation

Language

AMPERSAND "&" C, C++
ANDAND "&&" C, C++
ANDassign "&=" C, C++
ARROW "->" C, C++
ASSIGNOP "=" C, C++
BRACKETS "[]" C, C++
CHAR char C, C++
CONST const C, C++
DECR "--" C, C++
DIVassign "/=" C, C++
DOUBLE double C, C++
ENUM enum C, C++
EQ "==" C, C++
ERassign "^=" C, C++
FLOAT float C, C++
FLOATINGconstant {DG}*"."{DG}*
{DG}*"."{DG}* {Whitespace}?{Exponent}
{DG}+{Whitespace}?{Exponent
}
C, C++
HAT "^" C, C++
IDENTIFIER, TYPEDEFname {LT}|{UCN})({LT}|{UCN}|{DG})* C, C++
INCR "++" C, C++
INT int C, C++
INTEGERconstant "0"{OC}+
"0"[xX]{HX}+
{DG
}+
C, C++
LBRACKET "[" C, C++
LONG long C, C++
LS "<<" C, C++
LSassign "<<=" C, C++
MINUS "-" C, C++
MINUSassign "-=" C, C++
MOD "%" C, C++
MODassign "%=" C, C++
MULTassign "*=" C, C++
NE "!=" C, C++
NOT "!" C, C++
OR "|" C, C++
ORassign "|=" C, C++
OROR "||" C, C++
PLUS "+" C, C++
PLUSassign "+=" C, C++
QUESTION "?" C, C++
RBRACKET "]" C, C++
RS ">>" C, C++
RSassign ">>=" C, C++
SHORT short C, C++
SIGNED signed C, C++
SIZEOF sizeof C, C++
STRUCT struct C, C++
TWIDDLE "~" C, C++
UNION union C, C++
UNSIGNED unsigned C, C++
VOID void C, C++
VOLATILE volatile C, C++

The lexemes in the following table are specific to C++. The state stays in LNORM.

Lexeme

Representation

Language

ARROWstar "->*" C++
CLASS class C++
CLCL "::" C++
DELETE delete C++
DOTstar ".*" C++
ELLIPSIS "..." C++
NEW new C++
OPERATOR operator C++
PARENS "()" C++
THIS this C++