编译原理实验一 词法分析器
时间: 2023-12-05 13:05:12 浏览: 151
编译原理实验一是词法分析器,其主要目的是将源代码分解为各个单词,即基本保留字、标识符、常数、运算符和界符等。下面是一个简单的词法分析器的实现,可以读取一个txt文件并输出其中的单词:
```python
import re
# 定义保留字
reserved_words = ['if', 'else', 'while', 'for', 'int', 'float', 'double', 'char']
# 定义运算符和界符
operators = ['+', '-', '*', '/', '=', '>', '<', '>=', '<=', '==', '!=']
delimiters = ['(', ')', '{', '}', ',', ';']
# 读取txt文件
with open('source_code.txt', 'r') as f:
source_code = f.read()
# 正则表达式匹配单词
tokens = re.findall(r'[a-zA-Z_]\w*|0|[1-9]\d*|==|!=|>=|<=|[\+\-\*/=><\(\)\{\},;]', source_code)
# 输出单词
for token in tokens:
if token in reserved_words:
print('Reserved word:', token)
elif token in operators:
print('Operator:', token)
elif token in delimiters:
print('Delimiter:', token)
elif token.isdigit():
print('Number:', token)
else:
print('Identifier:', token)
```
该程序首先定义了保留字、运算符和界符等,然后使用正则表达式匹配单词,并根据单词的类型输出相应的信息。需要注意的是,该程序只是一个简单的词法分析器,实际应用中可能需要更加复杂的处理。
阅读全文