编译原理实验一 词法分析设计 Java版

编译原理实验一 词法分析设计 Java版

一、实验目的

通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。

二、功能描述

  1. 在文件中写入多行并读入进行分析

  2. 统计行数和列数用于错误单词的定位

  3. 删除空格类字符,包括回车、制表符空格

  4. 按拼写单词(关键字、标识符、常数、运算符、关系运算符、分界符号),并用(内码,属性)二元式表示

  5. 如果发现错误则报告出错

  6. 根据需要是否填写标识符表供以后各阶段使用

三、程序结构描述

函数名称及调用格式返回类型参数含义返回值描述函数功能
void init() 得到相应的终结符集和非终结符集
String getAction(int topState, char in) 返回action表中相应的字符串Topstate是状态栈中的栈顶符号,in是当前输入符号通过栈顶状态和输入符号来查找相应的action表,得到表中对应操作
String getStateStack()状态栈里全部符号得到当前状态栈中的全部符号
String getCharStack()符号栈的全部符号得到符号栈的全部符号
int getGoto(int state, char c)Goto表中对应状态得到goto表中对应的状态
void analyze()根据action表和goto表的内容进行LR(1)分析
MyFrame(String title) 标题字符这是构造器,为了将输出界面化
void actionPerformed(ActionEvent actionEvent)响应事件主要为按钮绑定事件,进行语法分析
void main(String[] args)Main参数Main方法,执行入口

四、详细的算法描述

分析过程主要在startAnalysis()中进行实现,算法主要是依靠上表,对当前字符进行判断,字母,数字或者是其他三种类型然后再分别处理。

五、给出软件的测试方法和测试结果

在文件中进行读入,程序运行一次后退出。运行结果输出在控制台。

结果和源码
在这里插入图片描述
有用的话,请不要吝啬,动动小手点个赞把~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦中情几许

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值