编译原理课程设计——简单编译器
关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:
Char *rwtab[6] = {“int”, “if”, “then”, “else”,“while”, “do”, “read”,”write”};
图1.1
(2)程序中需要用到的主要变量为syn,token和sum
1.3.2 扫描子程序的算法思想:
首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。扫描子程序主要部分流程如图1.2所示。
–4–
编译原理课程设计——简单编译器
图 1.2
–5–
编译原理课程设计——简单编译器
1.3.3 词法分析程序的C语言程序源代码: 1.3.4 结果分析:
输入如下:
{
Int x,y; X:=2*y; If(x>5)
Then x:=2*x+2/3; }#
后经词法分析输出如下序列:({ 35} (int 1)(x 10)(, 33)(y 10)?? 如图1.3所示:
图1.3
–6–
(;26)(x 10) 编译原理课程设计——简单编译器
1.3.5 总结:
词法分析的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。通过本试验的完成,更加加深了对词法分析原理的理解。
–7–
相关推荐: