电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

词法分析报告程序+语法语义分析报告四元式生成+试验报告材料VIP免费

词法分析报告程序+语法语义分析报告四元式生成+试验报告材料_第1页
1/40
词法分析报告程序+语法语义分析报告四元式生成+试验报告材料_第2页
2/40
词法分析报告程序+语法语义分析报告四元式生成+试验报告材料_第3页
3/40
《编译原理》实验报告本文档集合了编译原理大作业的实验报告加代码实验主要内容为用C++实现了词法分析程序;语法语义以及四元式生成程序代码见附录,复制进VS后程序绝对可编译执行。文档代码为原创,谨慎使用(姚砺的大作业)实验设计一[一、实验名称]词法分析程序[二、实验目的](1)设计一个词法分析程序,每调用一次就从源程序文件中顺序识别出一个单词符号,并返回该单词符号的内部编码、单词符号自身、行列位置信息。(2)要能处理单行注释。[三、实验内容及要求]单词种类与识别规则(1)标识符:首字符为字母或下划线,其后由字母、数字或下划线组成、长度不超过255个字符;(2)整数:由1到8个数字组成。(3)小数:数字串1.数字串2,其中:数字串1由1-8个数字符组成;数字串2由0-8个数字符组成,即:数字串2可以为空。(4)字符串:由一对“”括起来的符号串,长度不超过255个字符;(5)保留字:if、else、while、do、integer、float、string、input、output、and、or、function、end、def、as、begin(6)数学运算符:+、-、*、/、=(7)比较运算符:<、<=、>、>=、<>、==(8)逻辑运算符:and、or(9)分隔符:{、}、(、)、;、,[四、实验环境]操作系统:Win7/其他编译工具:VC++6.0/CFree/VS2012[五、设计]1设计大体思路将读取的文件采用一遍扫描的方法,即从左到右只扫描一次源程序,将读取的数据存放在一个二维数组里。然后通过扫描函数scan,再从数组中一行一行的读取数据,每调用其依次返回一个单词的类型,同时单词本身以及行列号存放在全局变量中。而说词法分析作为语法分析的一个子程序,故在编写词法分析程序时,将会反复调用scan函数来获取一个个单词信息。3设计流程图4函数设计/*词法分析函数*/intscan(strings,intline)框架:{初始化工作是空格直接跳过,知直到读取到一个字符if(是字母){查表判断是否为关键字判断是否为逻辑运算符and或orElse则为标识符}elseif(是否为数字){判断是整数Else是小数}Else{其余情况判断是否为运算符,字符串等}elseif(getchar==’/’){if(content[line][i+1]=='/')//向前看一个,确定是否为行注释;如果是,则游标指向行末,跳过行注释if(content[line][i+1]=='/*')如果向前看一个发现时块注释则一直向前扫描直到出现“*/”停止,略过块注释如果都不是则Else判断为除号,返回运算符类型}}2对其中部分实现的说明(1)数字识别while(content[line][i]>='0'&&content[line][i]<='9')//判断是否为数字{text+=content[line][i];i++;flag=1;}if(flag==1){if(content[line][i]=='.'){text+=content[line][i];i++;while(content[line][i]>='0'&&content[line][i]<='9')//判断是否为数字{text+=content[line][i];i++;}return2;//整数}return3;//小数}每读入一个字符,判断是否数字,然后找小数点,找到即为小数(2)标识符处理while((content[line][i]>=65&&content[line][i]<=90)||(content[line][i]>=91&&content[line][i]<=122)||content[line][i]>='0'&&content[line][i]<='9')//判断是否为数字或者字母或者下划线{text+=content[line][i];i++;}for(j=0;j<=13;j++)if(text==key[j])//查表判断是否为保留字return5;检查到读取的字符为字母时,进行查表判断,找到即说明为关键字(3)空格,注释,行号的处理if(mode==0){if(i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

词法分析报告程序+语法语义分析报告四元式生成+试验报告材料

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群