实验一词法分析

上传人:桔**** 文档编号:509267868 上传时间:2023-11-13 格式:DOC 页数:8 大小:107.50KB
返回 下载 相关 举报
实验一词法分析_第1页
第1页 / 共8页
实验一词法分析_第2页
第2页 / 共8页
实验一词法分析_第3页
第3页 / 共8页
实验一词法分析_第4页
第4页 / 共8页
实验一词法分析_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《实验一词法分析》由会员分享,可在线阅读,更多相关《实验一词法分析(8页珍藏版)》请在金锄头文库上搜索。

1、实验名称:词法分析器设计专业:计算机科学与技术姓名:李玉坤学号:200911810编 译 原 理 实 验 报 告词法分析器设计一实验要求1、从源程序文件中读取有效字符和并将其转换成二元组机内表示形式输出。2、掌握词法分析的实现方法。二实验内容1、主程序设计要求:(1)主程序的说明部分为各种表格和变量安排空间(关键字和特殊符号表)。(2)id 和ci 数组分别存放标识符和常数;还有一些为造表填表设置的变量。(3)主程序的工作部分建议设计成便于调试的循环结构。每个循环处理一个单词;接收键盘上送来的一个单词;调用词法分析过程;输出每个单词的内部码。2、词法分析过程要求:该过程取名为 lexical,

2、它根据输入单词的第一个有效字符(有时还需读第二个字符),判断单词类,产生类号。对于标识符和常数,需分别与标识符表和常数表中已登记的元素相比较,如表中已有该元素,则记录其在表中的位置,如未出现过,将标识符按顺序填入数组 id 中,将常数存入数组中 ci 中,并记录其在表中的位置。注:所有识别出的单词都用二元组表示。第一个表示单词的种类。关键字的 t=1;标识符的 t=2;常数 t=3;运算符 t=4;界符 t=5。第二个为该单词在各自表中的指针或内部码值(常数表和标识符表是在编译过程中建立起来的。其 i 值是根据它们在源程序中出现的顺序确定的)。关键字和特殊符号表格如下:单词代 码1234567

3、8910名字intcharfloatvoidconstifelsedowhilescanf单词代 码11121314151617181920名字printfreturnmain+*/%=单词代 码21222324252627282930名字=a & m_ch=A & m_ch=0 & m_ch=9)return TRUE;return FALSE;/ /查找保留字表int CAnalysisWordsDlg:Reserve(void)for(int i=1;i41;i+)if(m_strToken = WordSheeti)return i;return 0;/ /得到字符void CAnal

4、ysisWordsDlg:Retract(void)/m_strToken= m_strToken.Left(m_strToken.GetLength()-1);m_nLocat-;m_ch = ;/ /将字符插入字符表int CAnalysisWordsDlg:InsertId(void)for(int i=1;im_nId+1;i+)if(IdSheeti = m_strToken)return i;m_nId+;IdSheetm_nId = m_strToken;return m_nId;/ /将数字插入数字表int CAnalysisWordsDlg:InsertConst(void)

5、for(int i=1;imessage = WM_KEYDOWN)if(pMsg-wParam = VK_RETURN )return FALSE;return CDialogEx:PreTranslateMessage(pMsg);3、主过程的实现(按钮对应的消息函数):void CAnalysisWordsDlg:OnBnClickedBtnStartAnaly()/ TODO: 在此添加控件通知处理程序代码UpdateData();m_nLocat = 0;/GetDlgItem(IDC_LIST_RESULT)-SetItemText(_T();int n = m_lstResult.GetCount();for(int i=0;i= 30&code =15 & code =39 & code=40)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号