推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

词法分析器实验报告.doc

   2023-06-25 网络整理佚名1180
核心提示:理解词法分析在编译程序过程中的作用;1.从文件中识别出各个单词,识别出所取的单词的类型,并且对代码中的词法错误进行提示。二、实验内容根据编译原理中的词法分析原理,利用Java语言针对C语言编写一个词法分析程序:输入:打开一个C语言程序的源代码文件,将其读入程序输入框。

1.实验目的 1.1总体目的 1.1.1掌握词法分析的基本原理; 1.1.2. 了解词法分析在程序编译过程中的作用; 1.1.3. 熟悉关键词列表、词分类方法等相关数据结构;1.1.4. 加深对编译原理的理解,掌握词法分析器的实现方法和技巧,同时将JAVA的理论知识与实践相结合,锻炼编程能力,强调良好的编程风格。 1.2 程序目的 用JAVA语言编写一个扫描一次的C语言编译程序。 从文件中识别每个单词,识别单词的类型,并提示代码中的词法错误。 2、实验内容 根据编译原理中的词法分析原理,用Java语言编写一个C语言的词法分析程序: 输入:打开一个C语言程序的源代码文件,读入程序输入框。 处理:对输入框中的代码进行词法分析,分隔关键字、标识符、值、运算符和分隔符。 输出:输出词法分析结果表中每个单词的行号、类型和编码。 其中,编码是用户自定义的,一种类型对应一组编码。 词法分析结果显示在词法分析错误信息栏中,提示错误数量、错误行号,并解释部分词法错误的原因。 3.实验要求对C语言程序代码进行词法分析,从指定文件中读取预分析的源程序,从左到右扫描源程序的字符串,根据词法规则一一识别正确(正则语法规则)单词,并将其转换成该单词对应的二进制公式(类别代码、属性值),以便以后进行语法分析时使用。

同时,根据给定的规则,识别文字符号作为输出,发现语法错误,并通过相应的功能模块对不同类型的字符进行分析和识别,使程序能够正确识别任意字符中的任意组合。语法规定的组织形式。 显示词法分析器中的所有分析状态。 最后在错误分析栏中显示文件中C语言代码中的词法错误数量、错误所在行以及错误原因。 4. 主要数据结构介绍 4.1 关键字编码 关键字编码 编码运算符编码 4244.6 全局变量含义: 发生语法错误的列数: 发生语法错误的行数: 语法错误的个数: 当前程序扫描的字符串中的起始位置:当前程序扫描字符串中的字符串结束位置 4.7 局部变量定义 inti:选择第 i 个字符进行检测:字型判断标志 intN:文件长度 charc:当前遍历的字符:输入字符串:退出flag 5. 主模块算法介绍 5.1 整体流程介绍:state 对于输入字符的状态标志,根据输入字符的不同类型选择不同的处理。

5.2 主分支选择算法介绍 5.2. 情况 算法文件是否加载 初始化 state=0 逐一遍历输入字符进入分支循环判断 根据 state 的值选择合适的处理 调用相关函数输出处理结果 图 5.1 整体程序流程图 5.2.2 Case 算法的前一个字符和单词的第一个字符是否为数字 是否为分隔符,对应那种分隔符代码 输出结果状态截取值 输出结果是否为单目算子状态进入对应的选择分支state=10,记录为字符开头state=11 词法错误输出错误原因及行列式图5.;.("\\t\t4010;.("\ \t\t402}else{)))//函数判断是否是一个值.("\t+"\t200"+.(begin,i-1).("\t \t\t403"+" \t+"+´\n´);//输出结果i --;row--;说明:输出运算符++、+=、+和的判断结果。 5.2..("\\t\.("\\t\.("\\t\{.("\\t\t406"+"\t-"+´\n´); i--;row--;}状态说明:对于运算符- -、-=、->、-,输出判断结果。

5.2.4case´=´).("\\t\{.("\\t\t408"+"\t*"+´\n´);i--;row-- ;}状态描述:输出运算符*=、*的判断结果。 5.2..(i);i++;};.("\t注释部分\t\t//0;.("\t运算符号\t\t4090;.(" \\t\t410"+"\t/"+´\n´);i--;row--;} 说明:对于注释,运算符/=、/,输出判断结果。 5.2.6case´= ´){.("\\t\t411"+"\t!="+´\n´);;i--;row--; .("\\t\t412 说明: 对于运算符 ! =、!,输出判断结果。 5.2.7case´=´){.("\\t\t413"+"\t >="+´\n´);state{.("\\t \t426"+"\t>>"+´\n´);state=0;}else{;i--; row--;.("\\t\t414 说明: 对于运算符 >=, > >、>,输出判断结果。 5.2.8case´=´){.("\\t \t415"+"\t

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON