词法分析器-设计思路.ppt

上传人:小飞机 文档编号:6607496 上传时间:2023-11-17 格式:PPT 页数:11 大小:270.16KB
返回 下载 相关 举报
词法分析器-设计思路.ppt_第1页
第1页 / 共11页
词法分析器-设计思路.ppt_第2页
第2页 / 共11页
词法分析器-设计思路.ppt_第3页
第3页 / 共11页
词法分析器-设计思路.ppt_第4页
第4页 / 共11页
词法分析器-设计思路.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《词法分析器-设计思路.ppt》由会员分享,可在线阅读,更多相关《词法分析器-设计思路.ppt(11页珍藏版)》请在三一办公上搜索。

1、词法分析器设计思路,实验内容,词法分析的主要任务是:从左到右逐个字符地扫描源程序,产生一个个单词(Token),同时检查源程序中的词法错误。,思路,1、因为要分离出一个个单词,所以必须先知道怎样的字符串才是单词。在本实验中,是对simple语言进行扫描,所以,必须先把simple语言的单词都先存放到内存里后,才能继续进行操作。,思路,将这些单词存入内存怎样实现呢?方法一:声明一个二维数组string A602;例如:A00=“and”;A01=“1”;A10=“array”;A11=“2”;,思路,将这些单词存入内存怎样实现呢?方法二:将每个单词声明成为一个结构类型的结点,每个单词的两个属性,

2、即(单词本身值,种别)作为这个节点的两个域的内容。struct nodestring word;string type;/这个type定义成为int类型也可以;node A60;A0.word=“and”;A0.type=“1”;,思路,2、要对源程序从左到右一个个进行扫描。这里涉及到几个问题:(1)源程序是放在一个txt文件里的,所以必须先打开该txt文件后,将里面的内容先读进来。ifstream infile;infile.open(“文件名.txt”,iso:in);/读文件infile.close();具体的文件操作代码详见C+课本第10章!,思路,例如:#include#includ

3、e#includevoid main()char s100;ifstream a;a.open(F:test.txt,ios:in);as;couts;这样做之后,文件test.txt里面的内容,就会存放在字符数组s里面了。,思路,2、要对源程序从左到右一个个进行扫描。这里涉及到几个问题:(2)当把txt的文件先已经读进来,放在字符数组a中之后,就要对这个数组里面的内容来逐个进行扫描,因为是从左到右扫描,所以是从数组的0号下标位置来扫描的。,思路,2、要对源程序从左到右一个个进行扫描。这里涉及到几个问题:(3)扫描的时候,怎样才能分隔出一个单词呢?空格,分号,回车符,逗号,冒号,/号,*号,号

4、等等。注意:要把所有可能的分隔符都找出来;分号,逗号等这些符号,自己本身就是单词。,program example2;var A,B,C:integer;X,Y:bool;begin/*this is an example*/A:=B*C+37;X:=ABCend.,思路,2、要对源程序从左到右一个个进行扫描。这里涉及到几个问题:(4)通过分隔符分隔出来一个个词之后,怎么知道这个词是不是就是simple语言的单词呢?答:就是跟那个单词表(也就是前面我们所创建的那个二维数组)来比较。比如,分离出来了and这个单词了,就去二维数组里面,从下标为0的地方开始,看看if(A00=“and”),如果是,表明这个就是单词了,那么就将A00和A01输出。即cout“(“A00“,”A01“)”;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号