编译原理实验词法分析器的设计(共10页).doc
《编译原理实验词法分析器的设计(共10页).doc》由会员分享,可在线阅读,更多相关《编译原理实验词法分析器的设计(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上集美大学计算机工程学院实验报告课程名称:编译原理班级:指导教师: 姓名: 实验项目编号:实验一学号:实验项目名称:词法分析器的设计实验成绩:一、实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。二、实验内容编写一个词法分析器,从输入的源程序(编写的语言为C语言的一个子集)中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 三、实验
2、要求 1、 词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。单词示例单词种别码要求保留字if、else、int、while、do每个保留字的单词种别都单独为一种标识符以字母开头且包含字母和数字的字符串标识符作为一种常数(只识别无符号整数)123、343无符号整数作为一种运算符+、-、*、/、=、= = 、!=、 、=、 、4分隔符,、;、(、)5本实验所使用的开发语言是C语言,在Test2类中定义了以下几个函数: 开始2.程序流程图:读入文件,把内容存入string中,m=0,check=ture
3、,error=falsech是分隔符?check=false?error=ture?check=false?输出str,标识为标示符check=ture输出str,标识为运算符从string中读出一个字符放入ch中结束ch是最后一个字符? Ych是运算符? N Y Nerror=ture? N输出str,标识为无法识别的串check=ture,error=false Y Y N输出str,标识为无法识别的串check=ture,error=false Y N Y Y 输出str,标识为标示符check=ture 输出str,标识为分隔符 N Nch是数字? NCh是字母?check=ture?
4、check=ture? Y Y N N N打印出错清空str,ch加到str中,check=falsech加到str中清空str,ch加到str中,check=false Y Ych加到str中ch是关键字?ch是数字? Y 输出str,标识为关键字,check=true N Y Nch加到str中,error=true3、实验程序#include#include#include#include/判断读入的字符是否为字母bool isLetter(char c)if(c = a & c = A & c =0 & c = 9)return true;elsereturn false;/判断是否为
5、关键字bool isKey(char *string) if(!strcmp(string,void) | !strcmp(string,if)| !strcmp(string,for)| !strcmp(string,while) | !strcmp(string,do)| !strcmp(string,return)| !strcmp(string,break)| !strcmp(string,main)| !strcmp(string,int)| !strcmp(string,float)| !strcmp(string,char)| !strcmp(string,double)| !s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 实验 词法 分析器 设计 10
限制150内