




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言词法分析器设计与实现 C语言词法分析器的设计与实现一实验目的 1强化对系统软件综合工程实现能力、规划能力的训练; 2加强对词法分析原理、方法和基本实现技术的理解;二实验内容 用C语言(或 C+ )作为宿主语言完成:其中具体要求:1.使用DFA实现词法分析器的设计;2.实现对C源程序中注释的过滤;3.利用两对半缓冲区从文件中逐一读取单词;4.词法分析结果属性字流存放在独立文件中;5.统计源程序每行单词的个数和整个源文件单词个数;6.具有报告词法错误和出错位置(源程序行号和该行字符)的功能;7.屏幕输出属性字流,每次显示10行,按ESC可中途退出,每行有统计信息,最后有词法分析的全部信息,包括各种属性单词的个数。三实验验收与评分要求 1.编写C语言词法分析器的源程序并调试通过; 2.通过测试程序的验收 (测试程序名称:Test-Lexcial); 3.提交简明扼要的书面实验报告。内容包括:FA设计;源程序主要函数功能;主要数据结构设计。四. 验收测试用例 1. 测试用例一:统一验收测试用例;#include#includechar buf100,str15;int countdef=0;FILE *fpmiddle;struct define char with30; char des30; char filename15;def30;char* getFileName() int i=0,k=0; for(i=0;bufi!=&i&i=0) add(getFileName();else if(isin(#define)=0)processDefine(str);else fseek(fpt,comment(fpt),1);replace(str);writeline(); void add(char *filename) void replace(char*); FILE *fpp; if(fpp=fopen(filename,r)=NULL) printf(file %s not found or open error!,filename);exit(0); fseek(fpp,-readline(fpp),1); if(isin(#include)0&isin(#define)0) while(readline(fpp) fseek(fpp,comment(fpp),1);replace(filename);writeline(); elseincludeAndDefine(fpp); fclose(fpp);void replace(char *filename) int i=0,start=0; for(i=0;i=countdef|(start=isin(defi.des)=-1)return; else int lenOfWith=strlen(defi.with);int lenOfDes=strlen(defi.des);if(lenOfDes=lenOfWith) int k,j; for(k=start; kstart+lenOfWith; k+)bufk=defi.withk-start; for(j=(start+lenOfWith); jstart;k-)bufk=bufk-offset; for(j=start;jJava语言语法语义分析器设计与实现 Java语言子集语法、语义分析器一实验目的 1强化对系统软件综合工程实现能力、规划能力的训练; 2增强对语法分析器、语义分析及代码生成器基本实现技术的理解;二实验内容 用C语言(或 C+ )作为宿主语言完成:三实验要求与试验验收 1. 完成对附录一中文法描述的Java源代码的语法分析、语义分析及代码生成。代码生成的目标代码为MASM汇编代码; 2. 词法分析使用实验一完成的词法分析器(即与词法分析器有直接接口); 3. 课程考试前通过网络教室提交(包括源码和可执行文件的压缩文件),压缩文件命名:“学号-姓名-语法语义” 4. 通过测试用例的验收;附录一 Java语言子集文法- while(Er)S;- Vc Vc - 标识符= Ex; / 标识符使用词法分析识别结果- 标识符 | 整常数 / 标识符、整场数使用词法分析识别结果- Vc P Ex | Vc - +| -|*|/ / 运算符必须符合优先级和结合性Java语言词法分析器设计与实现 Java语言词法分析器的设计与实现一实验目的1强化对系统软件综合工程实现能力、规划能力的训练;2加强对词法分析原理、方法和基本实现技术的理解;二实验内容用C语言(或 C+ )作为宿主语言完成: 其中具体要求: 1.使用DFA实现词法分析器的设计; 2.实现对Java源程序中注释的过滤; 3.利用两对半缓冲区从文件中逐一读取单词; 4.词法分析结果属性字流存放在独立文件(文件名:scanner_output)中; 5.统计源程序每行单词的个数和整个源文件单词个数; 6.具有报告词法错误和出错位置(源程序行号和该行字符)的功 注: 附Java语言词法规则 (附件一);附Java语言词法分析器的属性字设计 (附件二)三实验验收与评分要求 1.编写Java语言词法分析器的源程序并调试通过; 2.通过测试程序的验收 (测试程序名称:Test-Lexcial); 3.提交简明扼要的书面实验报告。内容包括:FA设计;源程序主要函数功能;主要数据结构设计。附件一JAVA语言词法规则关键字:abstract boolean break byte case catch char classconst continue default do double else extends falsefinal finally float for goto if implements importinstanceof int interface long native new null packageprivate protected public return short static super switchsynchronized this throw throws transient true try voidvolatile while标识符:字母或美元符号“$”或下划线开头,连接字母或美元符号“$”或下划线或数字字符的串。常量:整 型 常 量: 123, 0, -456, 0123 , 0x123, -0X12,123L 实 型常 量: 1.23, 0.123, .123, 123., 123.0, 123e3, 123E3, 12.3F布 尔 常 量: true、 false字 符 串 常 量:This is a constant string.。字 符 常 量: a ,转义字符描述 ddd 1到3位8进制数据所表示的字符(ddd) uxxxx 1到4位16进制数所表示的字符(xxxx) 单引号字符 反斜杠字符 r 回车 n 换行 f 走纸换页 t 横向跳格 b 退格 界限符: 花括号用于定义类、方法和本地范围的代码块。它们也用于包含自动被初始化数组的值。 方括号用于声明数组类型。同时也用于废弃数组值。,逗号用于分隔变量声明中连续的标识符。它也用于连接语句。( )圆括号用于在方法定义和调用中包含参数列表。它们也用于定义表达式中的优先级,在控制语句中包含表达式,以及包含转换类型。.点号用于分隔包名和类名。同时也用于把变量或者方法与引用变量分隔开。;分号用于终止Java语句。 运算符:操作运算符操作运算符操作运算符加赋值+=大于乘积赋值*=加+大于等于=非!与赋值&=自增1+非赋值=赋值=左移位不等于!=按位与&左移位赋值=或赋值|=按位取反小于按位或|小于等于=按位异或逻辑与&短路与&条件运算符?:逻辑或|短路或|自减1-逻辑异或减赋值-=除赋值/=求模%减-除/模赋值%=零填充右移位等于=乘积*零填充右移位赋值=附件二JAVA词法分析器的属性字设计单词属性用十六进制表示:错误的单词 0x100注释0x101空格0x102关键字0x103标识符0x104布尔型0x105字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 1921-2025工业锅炉技术规范
- 汉字的由来和演变
- 云南省曲靖市民族中学2024-2025学年高一上学期期中检测化学试卷(含答案)
- 内蒙古鄂尔多斯市西四旗2024-2025学年高一下学期7月期末考试生物试卷(含答案)
- 福建省漳州第一中学2024-2025学年高二下学期期末考试化学试题(含答案)
- 年眼科护士工作总结
- 虚拟现实技术在娱乐产业的运用
- 餐饮连锁经营模式成功案例分享
- 2025年桥梁维护养护合同
- 2025餐馆股份转让协议合同样本
- 2025年三支扶陕西试题及答案
- 2025年行政执法证考试必刷题库与答案
- 基孔肯雅热防控知识考试试题含答案
- 低钾血症护理常规业务学习
- 2025年职业指导师(四级)考试模拟试题汇编与模拟试题解析
- 测听讲课的课件
- 乡镇物业安全管理制度
- 起重作业安全考核试题及答案
- 高等教育十五五发展规划
- 仓管员安全培训课件
- 2025年江西赣州市融资担保集团有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论