编译原理词法分析实验报告 下载本文

case '*': syn=15; token[m++]=ch; break; case '/': syn=16; token[m++]=ch; break; case '(': syn=27; token[m++]=ch; case '}': syn=6; token[m++]=ch; break; case ';': syn=26; token[m++]=ch; break; case '\\\ token[m++]=ch; break; case '#': syn=0;

break; case ')': syn=28; token[m++]=ch; break; case '{': syn=5; token[m++]=ch; break;

token[m++]=ch; break; case ':':syn=17; token[m++]=ch; break; default: syn=-1; break; }

token[m++]='\\0'; }

五、结果分析:

输入begin y:=8: if x>=8 then x:=2*(1+1/3); end # 经词法分析输出如下序列: 如图所示:

六、总结:

虽然编译这门课很难,很多时候听都听不懂,但是做词法分析器还是比较有趣的。尽管这个程序不是100%由我所编写的,仍然花了我一些心思,这个程序是由我和同学共同编写、调试的,期间也有不少的磨合。也许,编译课上我并没有学到太多关于本学科的知识,但我从教员那里了解了、收获了很多书本上没有的东西,丰富了我的阅历,拓宽了视野,也学会了很多做人的道理。