| 标记符标识符 | ![]() |
![]() |
以下表格包含所有应被 C++ 词法分析器识别的标记符,该词法分析器将与Wave预处理引擎一起使用。标记符被分为几类,以简化一些内部逻辑以及最终的驱动程序。标记符标识符被定义为一个enum,并建议在您自己的词法分析器实现中重用此定义。
请注意,预处理引擎会进行一些标记符转换,因此并非此列表中所有标记符标识符都可能出现在预处理迭代器返回的标记符中。
| 字面量标记符 ID 列表 |
||
| 标记符标识符 |
标记符类别 |
标记符值 |
| T_CHARLITÂ |
CharacterLiteralTokenType |
|
| T_FLOATLIT |
FloatingLiteralTokenType |
-1.23456e78 |
| T_IDENTIFIER |
IdentifierTokenType |
C++ 标识符 |
| T_OCTALINT |
IntegerLiteralTokenType |
007 |
| T_DECIMALINT |
IntegerLiteralTokenType |
10 |
|
T_HEXAINT |
IntegerLiteralTokenType |
0x1234 |
| T_INTLIT |
IntegerLiteralTokenType |
T_OCTALINT, T_DECIMALINT 或 T_HEXAINT |
|
T_LONGINTLIT |
IntegerLiteralTokenType |
0x1234LL |
| T_STRINGLIT |
StringLiteralTokenType |
"abc" |
| T_FALSE |
BoolLiteralTokenType |
false |
| T_TRUE |
BoolLiteralTokenType |
true |
| 空白标记符 ID 列表 |
||
| 标记符标识符 |
标记符类别 |
标记符值 |
| T_ANY |
UnknownTokenType |
|
| T_CCOMMENT |
WhiteSpaceTokenType |
|
| T_CPPCOMMENT |
WhiteSpaceTokenType |
// ... \n |
| T_SPACE |
WhiteSpaceTokenType |
空格或 '\t' |
| T_SPACE2 |
WhiteSpaceTokenType |
'\v' 或 '\f' |
| T_EOF |
EOFTokenType |
输入结束 |
| T_CONTLINE |
EOLTokenType |
'\\' 后跟 '\n' |
| T_NEWLINE |
EOLTokenType |
'\n' |
| 关键字标记符 ID 列表 |
||
| 标记符标识符 |
标记符类别 |
标记符值 |
| T_ASM |
KeywordTokenType |
asm |
| T_AUTO |
KeywordTokenType |
auto |
| T_BOOL |
KeywordTokenType |
bool |
| T_BREAK |
KeywordTokenType |
break |
| T_CASE |
KeywordTokenType |
案例 |
| T_CATCH |
KeywordTokenType |
catch |
| T_CHAR |
KeywordTokenType |
char |
| T_CLASS |
KeywordTokenType |
类 |
| T_CONST |
KeywordTokenType |
const |
| T_CONSTCAST |
KeywordTokenType |
const_cast |
| T_CONTINUE |
KeywordTokenType |
continue |
| T_DEFAULT |
KeywordTokenType |
default |
| T_DELETE |
KeywordTokenType |
delete |
| T_DO |
KeywordTokenType |
do |
| T_DOUBLE |
KeywordTokenType |
double |
| T_DYNAMICCAST |
KeywordTokenType |
dynamic_cast |
| T_ELSE |
KeywordTokenType |
else |
| T_ENUM |
KeywordTokenType |
enum |
| T_EXPLICIT |
KeywordTokenType |
explicit |
| T_EXPORT |
KeywordTokenType |
export |
| T_EXTERN |
KeywordTokenType |
extern |
| T_FLOAT |
KeywordTokenType |
float |
| T_FOR |
KeywordTokenType |
for |
| T_FRIEND |
KeywordTokenType |
friend |
| T_GOTO |
KeywordTokenType |
goto |
| T_IF |
KeywordTokenType |
if |
| T_INLINE |
KeywordTokenType |
inline |
| T_INT |
KeywordTokenType |
int |
| T_LONG |
KeywordTokenType |
long |
| T_MUTABLE |
KeywordTokenType |
可变 |
| T_NAMESPACE |
KeywordTokenType |
namespace |
| T_NEW |
KeywordTokenType |
new |
| T_OPERATOR |
KeywordTokenType |
运算符 |
| T_PRIVATE |
KeywordTokenType |
private |
| T_PROTECTED |
KeywordTokenType |
protected |
| T_PUBLIC |
KeywordTokenType |
public |
| T_REGISTER |
KeywordTokenType |
register |
| T_REINTERPRETCAST |
KeywordTokenType |
reinterpret_cast |
| T_RETURN |
KeywordTokenType |
返回 |
| T_SHORT |
KeywordTokenType |
short |
| T_SIGNED |
KeywordTokenType |
有符号 |
| T_SIZEOF |
KeywordTokenType |
sizeof |
| T_STATIC |
KeywordTokenType |
静态 |
| T_STATICCAST |
KeywordTokenType |
static_cast |
| T_STRUCT |
KeywordTokenType |
struct |
| T_SWITCH |
KeywordTokenType |
switch |
| T_TEMPLATE |
KeywordTokenType |
template |
| T_THIS |
KeywordTokenType |
this |
| T_THROW |
KeywordTokenType |
throw |
| T_TRY |
KeywordTokenType |
try |
| T_TYPEDEF |
KeywordTokenType |
typedef |
| T_TYPEID |
KeywordTokenType |
typeid |
| T_TYPENAME |
KeywordTokenType |
typename |
| T_UNION |
KeywordTokenType |
联合 |
| T_UNSIGNED |
KeywordTokenType |
无符号 |
| T_USING |
KeywordTokenType |
使用 |
| T_VIRTUAL |
KeywordTokenType |
virtual |
| T_VOID |
KeywordTokenType |
void |
| T_VOLATILE |
KeywordTokenType |
volatile |
| T_WCHART |
KeywordTokenType |
wchar_t |
| T_WHILE |
KeywordTokenType |
while |
| 运算符标记符 ID 列表 |
||
| 标记符标识符 |
标记符类别 |
标记符值 |
| T_AND |
OperatorTokenType |
& |
| T_ANDAND |
OperatorTokenType |
&& |
| T_ASSIGN |
OperatorTokenType |
= |
| T_ANDASSIGN |
OperatorTokenType |
&= |
| T_OR |
OperatorTokenType |
| |
| T_ORASSIGN |
OperatorTokenType |
|= |
| T_XOR |
OperatorTokenType |
^ |
| T_XORASSIGN |
OperatorTokenType |
^= |
| T_COMMA |
OperatorTokenType |
, |
| T_COLON |
OperatorTokenType |
: |
| T_DIVIDE |
OperatorTokenType |
/ |
| T_DIVIDEASSIGN |
OperatorTokenType |
/= |
| T_DOT |
OperatorTokenType |
. |
| T_DOTSTAR |
OperatorTokenType |
.* |
| T_ELLIPSIS |
OperatorTokenType |
... |
| T_EQUAL |
OperatorTokenType |
== |
| T_GREATER |
OperatorTokenType |
> |
| T_GREATEREQUAL |
OperatorTokenType |
>= |
| T_LEFTBRACE |
OperatorTokenType |
{ |
| T_LESS |
OperatorTokenType |
< |
| T_LESSEQUAL |
OperatorTokenType |
<= |
| T_LEFTPAREN |
OperatorTokenType |
( |
| T_LEFTBRACKET |
OperatorTokenType |
[ |
| T_MINUS |
OperatorTokenType |
- |
| T_MINUSASSIGN |
OperatorTokenType |
-= |
| T_MINUSMINUS |
OperatorTokenType |
-- |
| T_PERCENT |
OperatorTokenType |
% |
| T_PERCENTASSIGN |
OperatorTokenType |
%= |
| T_NOT |
OperatorTokenType |
! |
| T_NOTEQUAL |
OperatorTokenType |
!= |
| T_OROR |
OperatorTokenType |
|| |
| T_PLUS |
OperatorTokenType |
+ |
| T_PLUSASSIGN |
OperatorTokenType |
+= |
| T_PLUSPLUS |
OperatorTokenType |
++ |
| T_ARROW |
OperatorTokenType |
-> |
| T_ARROWSTAR |
OperatorTokenType |
->* |
| T_QUESTION_MARK |
OperatorTokenType |
? |
| T_RIGHTBRACE |
OperatorTokenType |
} |
| T_RIGHTPAREN |
OperatorTokenType |
) |
| T_RIGHTBRACKET |
OperatorTokenType |
] |
| T_COLON_COLON |
OperatorTokenType |
:: |
| T_SEMICOLON |
OperatorTokenType |
; |
| T_SHIFTLEFT |
OperatorTokenType |
<< |
| T_SHIFTLEFTASSIGN |
OperatorTokenType |
<<= |
| T_SHIFTRIGHT |
OperatorTokenType |
>> |
| T_SHIFTRIGHTASSIGN |
OperatorTokenType |
>>= |
| T_STAR |
OperatorTokenType |
* |
| T_COMPL |
OperatorTokenType |
~ |
| T_STARASSIGN |
OperatorTokenType |
*= |
| T_POUND_POUND |
OperatorTokenType |
## |
| T_POUND |
OperatorTokenType |
# |
| T_AND_ALT |
OperatorTokenType | AltTokenType |
bitand |
| T_ANDASSIGN_ALT |
OperatorTokenType | AltTokenType |
and_eq |
| T_OR_ALT |
OperatorTokenType | AltTokenType |
或 |
| T_ORASSIGN_ALT |
OperatorTokenType | AltTokenType |
or_eq |
| T_XOR_ALT |
OperatorTokenType | AltTokenType |
xor |
| T_XORASSIGN_ALT |
OperatorTokenType | AltTokenType |
xor_eq |
| T_LEFTBRACE_ALT |
OperatorTokenType | AltTokenType |
<% |
| T_LEFTBRACKET_ALT |
OperatorTokenType | AltTokenType |
<: |
| T_NOT_ALT |
OperatorTokenType | AltTokenType |
不 |
| T_NOTEQUAL_ALT |
OperatorTokenType | AltTokenType |
not_eq |
| T_RIGHTBRACE_ALT |
OperatorTokenType | AltTokenType |
%> |
| T_RIGHTBRACKET_ALT |
OperatorTokenType | AltTokenType |
:> |
| T_COMPL_ALT |
OperatorTokenType | AltTokenType |
compl |
| T_POUND_POUND_ALT |
OperatorTokenType | AltTokenType |
%:%: |
| T_POUND_ALT |
OperatorTokenType | AltTokenType |
%: |
| T_OR_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??! |
| T_XOR_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??' |
| T_LEFTBRACE_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??< |
| T_LEFTBRACKET_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??( |
| T_RIGHTBRACE_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??> |
| T_RIGHTBRACKET_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??) |
| T_COMPL_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??- |
| T_POUND_POUND_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??=??= |
| T_POUND_TRIGRAPH |
OperatorTokenType | TriGraphTokenType |
??= |
下表列出的预处理器标记符仅由 C++ 词法分析器返回。预处理器自然会处理这些标记符,并且通过解引用预处理迭代器不会返回它们。
| 预处理器标记符 ID 列表 |
||
| 标记符标识符 |
标记符类别 |
标记符值 |
| T_PP_DEFINE |
PPTokenType |
#define |
| T_PP_IF |
PPTokenType |
#if |
| T_PP_IFDEF |
PPTokenType |
#ifdef |
| T_PP_IFNDEF |
PPTokenType |
#ifndef |
| T_PP_ELSE |
PPTokenType |
#else |
| T_PP_ELIF |
PPTokenType |
#elif |
| T_PP_ENDIF |
PPTokenType |
#endif |
| T_PP_ERROR |
PPTokenType |
#error |
| T_PP_LINE |
PPTokenType |
#line |
| T_PP_PRAGMA |
PPTokenType |
#pragma |
| T_PP_UNDEF |
PPTokenType |
#undef |
| T_PP_WARNING |
PPTokenType |
#warning |
| T_PP_INCLUDE |
PPTokenType |
#include "..." |
| T_PP_QHEADER |
PPTokenType |
#include <...> |
| T_PP_HHEADER |
PPTokenType |
#include ... |
![]() |
版权所有 © 2003-2011 Hartmut Kaiser
根据 Boost Software License, Version 1.0 分发。(参见附带的 LICENSE_1_0.txt 文件或访问 https://boost.ac.cn/LICENSE_1_0.txt 副本)
最后更新日期2008年1月18日,星期五 11:35