Token 的设计
学习目标
通过本集的学习,你将能够:
- 理解 Token 的种类
- 掌握 Token 的表示
- 区分关键字和标识符
1. Token 的种类
常见 Token 类型:
- KEYWORD: 关键字
- IDENTIFIER: 标识符
- NUMBER: 数字
- STRING: 字符串
- OPERATOR: 运算符
- PUNCTUATOR: 标点符号
- COMMENT: 注释(通常跳过)
- WHITESPACE: 空白(通常跳过)2. Token 的表示
2.1 枚举表示
Python 示例:
from enum import Enum
class TokenType(Enum):
KEYWORD = 1
IDENTIFIER = 2
NUMBER = 3
STRING = 4
PLUS = 5
MINUS = 6
# ... 更多
class Token:
def __init__(self, type, value=None):
self.type = type
self.value = value2.2 关键字表
关键字表:
keywords = {
'if': TokenType.IF,
'else': TokenType.ELSE,
'while': TokenType.WHILE,
'int': TokenType.INT,
# ... 更多
}3. 关键字 vs 标识符
识别流程:
1. 识别一个标识符
2. 检查是否在关键字表中
3. 如果是,返回关键字 Token
4. 否则,返回标识符 Token4. 自测问题
- Token 有哪些常见类型?
- 如何表示 Token?
- 如何区分关键字和标识符?
5. 下集预告
下一集我们将学习手写词法分析器(一)!
参考资料
- 《编译原理》(龙书)