- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
合肥工业-大学编译原理实验
``
```
宣城校区
实 验 报 告
课 程 名 称 编译原理
专 业 班 级 计算机0001班
学生姓名及学号 赵保飞 2015216768
指 导 教 师 李芒宏
实 验 地 点 计算机中心楼第四机房
2017 ~ 2018 学年第 一 学期
《编译原理》课程实验报告
实验名称
词法分析设计
姓 名
赵保飞
系院专业
计算机科学与技术
班级
计算机01班
学号
2015216768
实验日期
2017.10.18
指导教师
李芒宏
成绩
一、实验目的和要求
通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设
计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的
理解,并能正确地、熟练地运用。
二、实验原理
(1)实验数据结构说明
K[]String数组-关键字表;s[]char数组—分界符;m[]char数组—算术运算符;r[]String数组—关系运算符;ArrayList型String数组ci—常数;ArrayList型String数组id—标识符
(2)实验算法描述
(3)算法流程图
三、源程序代码和测试结果
package lexicalAnalysis;
import java.util.*;
import java.io.*;
public class lexicalAnalysis {
static String k[]={for,main,if,while,void,public,static,printf,scanf,asm,do,return,typedef,auto,double,break,short,using,default,long};//关键字
static char s[]={,,;,(,),[,],{,}};//2分界符
static char m[]={+,-,*,/};//3算术运算符
static String r[]={,=,=,,=,};//4关系运算符
ArrayListString ci=new ArrayListString();//5常数
ArrayListString id=new ArrayListString();//6标识符
String tempToken=;//临时存放组成一个“词”单位串
int pint ,row = 1,line = 1;//当前指针指示,行数,列数
char ch;//存放最新读入源程序字符
String instring;//存放输入de源程序代码
public static void main(String[] args)throws Exception{
// TODO Auto-generated method stub
lexicalAnalysis one = new lexicalAnalysis();
System.out.println(单词+\t二元序列+\t类 型+\t位置(行,列));
one.readtext();
}
boolean isdigit(char c){//判断所读字符是否为数字,是则返回ture,否则返回false
if(c=48 c=57 )
return true;
else
return false;
}
boolean isletter(char c){//判断所读字符是否为字母,是则返回true,否则返回false
if((c64c91)||(c96c123))
return true;
else
return false;
}
boolean isline(char c){//判断字符c是否是下划线_
if(c==_)
return true;
else
return false;
}
boolean remove(){//用于在判断关系运算符时,判断是否是要再读一个字符
char b=instring.charAt(pint+1);//string类charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length()-1
if(b===||b==)//当其后的字符是=或时,要再读一个字符。否则不要再读。
return true;
else
return false;
}
void clearBlank(){//检查空白直到读入字符非空白
while(ch=
您可能关注的文档
- 电气-安装和接线规范.doc
- 电气-车间工作标准.doc
- 电气-单体调试作业指导书.doc
- 电气-阀门定位器 yt-1000系列 使用说明书.doc
- 电气-工程技术交底.doc
- 电气-工程监理实施细则.doc
- 电气-工程质量通病及防治手册.doc
- 电气-工程专业英语词汇汇总(综合版).doc
- 电气-接地施工方案.docx
- 电气-考试试卷-题库(带-答案)...doc
- Unit7Happy Birthday!单元语法精炼与写作专练(含答案)人教版(2024)英语七年级上册.docx
- 福建省泉州第一中学2025-2026学年九年级上学期第一次月考语文试题.docx
- 第8课《〈世说新语〉二则》同步练习(含答案) 2025-2026学年统编版语文七年级上册.docx
- 高速事故应急练习题库及答案.docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第1讲--词汇(含答案).docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第2讲--短语句型(含答案).docx
- 教版(2024)七年级下册Unit1单词巩固(一) 七上第一部分单词复习课件.pptx
- 人教版(2024)七年级下册Unit1单词巩固(二) 七上第二部分单词复习课件.pptx
- 译林版(2024)八年级上册Unit 1 Friendship周末练习作业(含答案).docx
- 化工防腐安全练习题库及答案.docx
文档评论(0)