实现第42页表3.1所规定的单词的识别,每次调用返回单词种类(即助记符)和值。
时间: 2024-05-15 16:15:52 浏览: 140
以下是一个简单的实现,该实现假设输入的字符串已经被分割成了单词列表:
```
def get_token(word):
keywords = ["PROGRAM", "VAR", "INTEGER", "REAL", "BEGIN", "END", "IF", "THEN", "ELSE", "WHILE", "DO", "READ", "WRITE"]
symbols = [":=", "+", "-", "*", "/", "(", ")", ";", "<", ">", "=", "<=", ">=", "<>"]
if word in keywords:
return ("keyword", word)
elif word.isdigit():
if "." in word:
return ("real", float(word))
else:
return ("integer", int(word))
elif word in symbols:
return ("symbol", word)
else:
return ("identifier", word)
```
这个函数将单词作为参数,并根据它属于哪种种类返回一个元组,其中包含识别的种类(助记符)和单词的值。该函数首先检查单词是否是关键字。如果是,则返回种类“keyword”和单词本身。如果单词是一个数字,则检查它是否是实数或整数,并相应地返回“real”或“integer”的种类。如果单词是一个符号,则返回“symbol”种类。最后,如果单词不是关键字、数字或符号,则它被认为是标识符,并返回“identifier”种类。
阅读全文