如何统计空白词法单元(Token)?代码Token计数疑问求解
Token计数争议解答
你的计数肯定是错误的,核心问题在于你把多个独立的语法Token合并成了一个——Token是编程语言中最小的、不可分割的语法单元,标识符、运算符、字面量、标点符号都是单独的Token,不能合并计数。
你的代码Token拆分(空白为分隔符,不算Token)
先把你给出的代码:
x=0; while (x < 10) { x++; }
拆分为单个Token:
x(标识符)
=(赋值运算符)
0(数字字面量)
;(语句终止符)
while(关键字)
((左括号)
x(标识符)
<(比较运算符)
10(数字字面量)
)(右括号)
{(左大括号)
x(标识符)
++(自增运算符)
;(语句终止符)
}(右大括号)
这一共是15个有效Token。
关于课程所说的9个Token
大概率是你误解了课程内容,可能的原因包括:
- 课程中的示例代码和你写的版本不同(比如省略了部分标点、代码结构简化);
- 课程对Token的定义有特殊说明(比如把复合表达式算作单个Token,或者忽略了标点类Token);
- 你看错了课程给出的计数数字。
建议你回去核对课程里的代码原文和Token定义说明,确认是否存在理解偏差。
内容的提问来源于stack exchange,提问作者ignorant student
相关产品推荐
相关产品推荐

