1 实验目的

本实验的目的是在词法分析程序的基础上,运用LL(1)语法分析方法,手动构造LL(1) 分析构造标,程序实现对输入的语句进行分析,并输出推导过程。

2 内容描述

本实验主要采取自顶向下的语法分析方法,根据文法构造预测分析表,再根据预测分析表进行语法分析。程序由Java编写。程序读取一个java文件,运用词法分析程序得到TOKEN序列,根据token对其进行语法分析,最后输出产生式序列。

定义的具体文法有:

  • 形如id = 4*5+6的赋值语句,作为id,右为数学运算的式子。
  • if-else语句(必须有else且语句不能有大括号)
  • 包含比较符的条件判断语句,形如a > 5

3 思路方法

  • 自定义要分析的文法
  • 对文法进行预处理(消除左递归与二义性)
  • 构造预测分析表
  • 基于分析表进行语法分析
  • 语法分析模块:根据输入队列当前读头下的字符与状态栈的第一个元素进行分析,若是终结符则进行匹配,否则产生子项,循环至处理至输入队列最后一个字符

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1903.html

java实现语法分析实验报告_[源码和文档分享]基于JAVA实现的基于LL(1)语法分析构造表...相关推荐

  1. java远程监控系统代码_[源码和文档分享]基于JAVA的远程屏幕监控系统

    远程屏幕监控系统在生活中是很常见的,学校机房的机房管理系统.PC版QQ的远程演示功能等都属于远程屏幕监控系统.监控系统的原理是通过客户端不断的截取屏幕发送到服务器端,服务器端进而将画面呈现出来的过程. ...

  2. java飞机大战编程_[源码和文档分享]Java飞机大战游戏设计与实现

    1 概述 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库. ...

  3. java rpg对战_[源码和文档分享]基于java的RPG回合制游戏

    一.工作积累总结 该项目是一个回合制RPG游戏,讲述了动物主角对抗人类,自逃出动物园开始,一路与人类对抗,提升能力,并寻找新队友组成团体,逼得人类不得不与之谈判,最终与人类达成了和平协议的故事.玩家可 ...

  4. java记事本技术参数_[源码和文档分享]基于JAVA的记事本

    一.绪论 现如今,电脑已经成为了每家每户甚至是每个人手头都必有的一种实用性工具,它改变了人们的生活,大大提高了人们的工作效率.在此基础上,电脑端的记事本应用一直是每台电脑所必备的实用性应用,不管是在台 ...

  5. 和java通信_[源码和文档分享]基于JAVA的即时通信软件

    一.设计任务书 1.1 设计任务 本文设计的是一个简单的即时通信软件,利用 Java Socket 进行点到点通信,其工作机制模仿即时通信软件的基本功能,已实现的功能有:客户端登录 客户端退出 群组成 ...

  6. java 仿qq庅_[源码和文档分享]基于java 的仿QQ聊天工具

    一 需求分析 本系统是基于java开发的聊天室.有用户注册.用户登陆.修改密码.忘记密码.添加好友.用户聊天.群聊功能.如果服务器还没有启动,则客户端是不可以登陆.注册.忘记密码,如果在运行过程中,服 ...

  7. 设计散列表实现通讯录查找系统_[源码和文档分享]利用哈希表实现电话号码查询系统...

    第一章 需求分析 1.1 问题描述 设计一个电话号码查询系统,为来访的客⼈提供各种信息查询服务. 1.2 基本要求 设计每个记录有下列数据项:电话号码.用户名.地址 从键盘输入个记录,分别以电话号码和 ...

  8. c#养老院老人信息管理系统源码 论文_[源码和文档分享]基于JSP和MYSQL实现的学生信息管理系统...

    摘 要 进行学生信息管理是学校的重要工作之一.传统的学生信息管理由于是手工操作,工作量大且容易出错.随着计算机和网络技术的迅速发展,越来越多的院校都拥有了自己的学生信息管理系统,而采用B/S架构的学生 ...

  9. java lr分析表建立程序_[源码和文档分享]基于Java实现的LR(1)分析法语法分析程序...

    一 需求分析 自行定义文法, 运用语法分析方法对输入语句进行语法分析并输出结果,加深对语法分析过程的理解. 二 程序设计 2.1 总体思路 此次实验使用java编写.程序读取输入的token序列(如i ...

  10. 实验一基于 的词法分析实验_[源码和文档分享]基于JAVA实现的基于DFA的词法分析程序...

    1 实验目的 根据自己确定的正规表达式,编写.调试一个词法分析程序,对语句进行词法分析,从而更好理解词法分析原理. 2 内容描述 此程序用java编写.程序读取一个文本文件,并对其中的内容进行词法分析 ...

最新文章

  1. codeforces #310 div1 C
  2. 【基础知识】截长图的方法以及防止截图时下拉框自动收回的方法
  3. Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
  4. 从内核层说清GetMessage , DispatchMessage
  5. 合并区间—leetcode56
  6. TensorFlow Lite支持设备内置会话建模
  7. python字典合并几种方式对比,Python合并两个字典的常用方法与效率比较
  8. Android 获取触摸点坐标,判断滑动方向,滑动距离,滑动速度
  9. boost锁机制中Semaphores的介绍
  10. html九宫格抽奖视频,原生JS实现九宫格抽奖效果
  11. hive启动报错 java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7B
  12. 自定义 view 之薄荷 app 的卷尺效果
  13. 一个操作共享内存的类!可以方面的添加,删除数据,包括各种结构体!
  14. Terms of Service - Screen Capture
  15. python isupper_Python中用于检查英文字母大写的isupper()方法
  16. Calibre Web 中阅读 epub 电子书时的夜间模式解决方案
  17. “中国年龄最小的黑客”汪正扬资料介绍 写编程代码曾敲坏电脑
  18. Internet Download Manager(V6.37版本IDM)免费序列号密钥激活版使用过程中的一些常见问题
  19. Manjaro学习笔记
  20. 使用Python提取Excel中单元格中的某一段内容(包含某特定字符且前后以逗号作为分隔符的内容)

热门文章

  1. 开启关闭Centos的自动更新
  2. .NET Framework总三
  3. 26种土的掉渣的东西,看你有多少
  4. XML配置STS(编写Spring配置文件时,标签无自动提示符解决)
  5. INSTALL_FAILED_UID_CHANGED解决办法
  6. vue页面中样式修改子组件的样式
  7. php如何取屏幕大小,JavaScript_JS获取当前网页大小以及屏幕分辨率等,效果如下:代码如下:- phpStudy...
  8. java生成有理数_JAVA程序设计-有理数类的设计
  9. 请详细描述listview与gridview的异同点_专利和著作权有什么异同点,听听专业人士怎么说...
  10. iphone怎么长截屏_涨知识了!原来苹果手机也可以长截屏,还不知道的,快来学一学...