栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

编译原理实验一PL/0词法分析器c++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译原理实验一PL/0词法分析器c++

实验目的

通过实现PL/0语言(一种示例小语言)的词法分析器,理解词法分析过程,掌握程序各部分之间的接口安排。

分析与设计

程序的输入直接使用经过预处理之后的程序,读取文件到数组buffer。(预处理程序在上一篇文章)

遍历buffer的每一行,对每一行进行提取子串,判断子串是否是关键字、标识符、常数、算符或者界符

对于关键字和标识符:将所有关键字存放于一个数组keyWords当中,当识别出一个由字母组成的字符串时,遍历keyWords数组,判断是否是关键字,如果不是就判定字符串为标识符。(关键字的种别设为A0-A10共十一个,标识符设为ID)

对于常数:将识别出来的由常数构成的字符串判定为常数(种别设为CONST)

对于算符和界符:没读取一个字符,先判断是否是算符或者界符(种别设为B0-B13,共十四个)

 

部分状态转换图

识别单词的关键代码
//对每一行进行词法分析  
	for(int i=0;i') cout<<"(B7,-)"< 

词法分析器的运行结果  

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835773.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号