




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理课 程 设 计 报 告题 目 词法分析器的设计 院 系 年级班级 学号 学生姓名 指导教师 2013年6月5日编译原理课程设计报告目录一、课程设计目的、任务及要求1二、需求分析2三、系统设计3四、系统实现4五、系统测试5六、课程设计小结6一、课程设计目的、任务及要求课程设计目的:1、 理解词法分析器的工作原理。2、 能够使用程序设计语言实现一个词法分析器。课程设计任务及要求: 1、课程设计任务:完成下述文法所描述的单词符号的词法分析程序。-|-|-+|-|*|/|;|(|)|=|=|-a|z|A|Z-0|9- 说明:1.假定该语言对字母的大小写不敏感,由指定文件读入预分析的源程序,分析结果再写入指定文件。2假定语言的关键字为if,else,then,for,while,do,and,not,or。3程序的功能描述从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。本程序规定输出用KeyWord代表关键字,Word代表普通标识符,Digit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法识别的字符。2、课程设计要求:每个学生应完成:课题的需求分析,词法分析器的设计及开发,撰写课程设计报告等。课程设计环境:本系统使用eclipse软件在JVM上开发即使用java语言在java的jdk开发环境中开发。二、需求分析本系统需要实现对-|-|-+|-|*|/|;|(|)|=|=|-a|z|A|Z-0|9-关键字为if,else,then,for,while,do,and,not,or。KeyWord代表关键字,Word代表普通标识符,Digit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法识别的字。其相应功能实现三、系统设计四、系统实现第 13 页import javax.swing.*;import java.awt.*;import java.io.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Compiler extends JFrame int row = 0;int line = 1;int begin = 0;int end = 0;JButton exit;JButton confirm;TextArea in = new TextArea(5,10);TextArea out = new TextArea(5,10);public Compiler() super(词法分析器);setSize(300,300);Container con=getContentPane();JPanel p = new JPanel();confirm = new JButton(确定);exit = new JButton(退出);exit.addActionListener(new Monitor();confirm.addActionListener(new Monitor();p.add(in);p.add(confirm);p.add(exit);p.add(out);con.add(p);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););pack();setVisible(true);public class Monitor implements ActionListener public void actionPerformed(ActionEvent e) if (e.getSource() = exit) System.exit(0);if (e.getSource() = confirm) out.setText();row = 0;line = 1;compile();public boolean isDigit(char c) return Character.isDigit(c);public boolean isLetter(char c) if (c = a & c = A & c = Z) | c = _) return true;return false;public int getLocation(int begin, String str) for(int i = begin; istr.length();i+) char c = str.charAt(i);if (c = n | c = , | c = | c = t | c = | c = | c = ( | c = ) | c = ; | c = =| c = + | c = - | c = * | c = /)return i;return -1;public boolean isKey(String str) if (str.equals(if) | str.equals(else) | str.equals(then)| str.equals(for) | str.equals(while)| str.equals(do) | str.equals(and) | str.equals(not)| str.equals(or)return true;return false;public void compile() String input = in.getText();if (input.equals() out.setText(请输入程序); else int i = 0;int length = input.length();int state = 0;for (i = 0; i ) state = 5; else if (c = = n); else i-;row-;state = 0;out.append(运算符 n);break;case 6:if (c = =) state = 0;out.append(运算符 = n); else i-;row-;state = 0;out.append(运算符 n);break;case 7:if (c = =) state = 0;out.append(运算符 = n); else i-;row-;state = 0;out.append(运算符 = n);break;case 8:if (c = =) state = 0;out.append(运算符 != n); else i-;row-;state = 0;out.append(运算符 ! n);break;case 9:line+;row = 0;state = 0;break;case 10:if (isDigit(c) | c = .) else if(isLetter(c) out.append(行 + line + 列 + row + error: + 数字格式不正确 n);int temp = i;i = getLocation(i,input)-1;row += i -temp;i-;row-;state = 0;break;case 11:if (isDigit(c) | isLetter(c) state = 11; else end = i;String s = input.substring(begin, end);if (isKey(s) out.append(关键字 + s + n); else out.append(标识符 + s + n);i-;row-;state = 0;break;case 12:if (c = &) out.append(逻辑and运算符 & n); else i-;row-;out.append(不明&运算符 n);sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无损检测资格证考试无损检测检测数据安全管理试卷
- 2025年评茶员(初级)茶叶行业案例分析考试试卷
- 2025年全国英语等级考试(PETS)四级试卷:英语写作与翻译解析试题
- 2025年少儿英语教师职业资格考试试卷:英语教学资源开发与利用
- 2025年通信工程师考试无线通信原理真题模拟试卷
- 2025年热处理工(操作工)热处理工艺设备远程监控考试试卷
- 2025年起重机械安装维修人员考试试卷:起重机械操作与维护保养
- 2025年美术教师招聘考试专业知识试卷(美术教育法规)
- 2025年涂装工(高级)职业技能鉴定试卷(涂装创新解决方案发展趋势)
- 2025年摩托车维修工(初级)考试试卷备考资料
- 河南省洛阳市宜阳县2024-2025学年七年级下学期期末考试数学试卷(含答案)
- 房产抵押合同范本标准模板
- 针刺伤的预防与处理
- 2025年中盐安徽红四方肥业股份有限公司招聘笔试参考题库附带答案详解
- GB/T 17642-2025土工合成材料非织造布复合土工膜
- ISO 37001-2025 反贿赂管理体系要求及使用指南(中文版-雷泽佳译-2025)
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 医院消毒供应中心外来器械管理流程教材44课件
- 污水处理厂运行成本分析
- 四川中小学生健康体检表
- 空压机验证方案(拟定)
评论
0/150
提交评论