编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。
时间: 2023-04-21 15:01:44 浏览: 74
读单词过程的步骤如下:
1. 读入源程序,逐个字符进行扫描。
2. 对于每个字符,判断其是否为字母或下划线,如果是,则表示可能是标识符或关键字的开头。
3. 继续读入字符,直到不是字母、数字或下划线为止,此时得到一个完整的单词。
4. 判断该单词是否为关键字或保留字,如果是,则输出内部编码和单词符号自身值。
5. 如果不是关键字或保留字,则判断该单词是否为常数,如果是,则输出内部编码和单词符号自身值。
6. 如果既不是关键字或保留字,也不是常数,则判断该单词是否为运算符或分隔符,如果是,则输出内部编码和单词符号自身值。
7. 如果以上都不是,则该单词为非法单词,输出错误信息。
8. 重复以上步骤,直到扫描完整个源程序。
例如,对于以下源程序:
int main()
{
int a = 10;
int b = 20;
int c = a + b;
return 0;
}
读单词过程的输出结果如下:
关键字 int 内部编码 1 单词符号自身值 int
标识符 main 内部编码 2 单词符号自身值 main
分隔符 ( 内部编码 3 单词符号自身值 (
分隔符 ) 内部编码 4 单词符号自身值 )
分隔符 { 内部编码 5 单词符号自身值 {
关键字 int 内部编码 1 单词符号自身值 int
标识符 a 内部编码 2 单词符号自身值 a
运算符 = 内部编码 6 单词符号自身值 =
常数 10 内部编码 7 单词符号自身值 10
分隔符 ; 内部编码 8 单词符号自身值 ;
关键字 int 内部编码 1 单词符号自身值 int
标识符 b 内部编码 2 单词符号自身值 b
运算符 = 内部编码 6 单词符号自身值 =
常数 20 内部编码 7 单词符号自身值 20
分隔符 ; 内部编码 8 单词符号自身值 ;
关键字 int 内部编码 1 单词符号自身值 int
标识符 c 内部编码 2 单词符号自身值 c
运算符 = 内部编码 6 单词符号自身值 =
标识符 a 内部编码 2 单词符号自身值 a
运算符 + 内部编码 9 单词符号自身值 +
标识符 b 内部编码 2 单词符号自身值 b
分隔符 ; 内部编码 8 单词符号自身值 ;
关键字 return 内部编码 10 单词符号自身值 return
常数 0 内部编码 7 单词符号自身值 0
分隔符 ; 内部编码 8 单词符号自身值 ;
分隔符 } 内部编码 11 单词符号自身值 }
阅读全文