资源简介
参考C语言版本,用Java写的递归下降分析程序,能对词法分析程序所提供的单词序列进行语法检查和结构分析。被分析的语言应该是PL/0,语法表示如下:
(1)<程序>::=begin<语句串>end
(2)<语句串>::=<语句>{;<语句>}
(3)<语句>::=<赋值语句>
(4)<赋值语句>::=ID:=<表达式>
(5)<表达式>::=<项>{+<项> | —项>}
(6)<项>::=<因子>{*<因子> | /<因子>}
(7)<因子>::=ID | NUM | (<表达式>)
用Eclipse做的,有运行结果截图。
代码片段和文件信息
package org.test;
import org.test.WordAnalyzer;
public class RecursiveDescentAnalyzer {
WordAnalyzer wa = new WordAnalyzer();
boolean isError = false;
public void lrparser() {
if (wa.syn == 1) { //“begin”
wa.scaner();
yujuchuan();
if (wa.syn == 6) { //“end”
wa.scaner();
if (wa.syn == 0 && isError == false) //“end”之后是“#”并且没有出错,则分析成功
System.out.println(“语法分析成功!“);
} else {
if (isError == false) //之前分析都成功,但没有“end”
System.out.println(“语法分析出错!缺少“end”“);
isError = true;
}
} else {
System.out.println(“语法分析出错!缺少“begin”“);
isError = true;
}
}
/*
* 分析语句串
*/
public void yujuchuan() {
statement(); //分析第一条语句
while (wa.syn == 26) {// 为“;”时,分析下一条语句
wa.scaner();
if (wa.syn == 6) break;
statem
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2017-12-13 08:22 .classpath
文件 407 2017-12-13 08:22 .project
目录 0 2017-12-13 08:22 src\
目录 0 2017-12-13 08:22 src\org\
目录 0 2017-12-23 14:22 src\org\test\
文件 2908 2017-12-23 16:27 src\org\test\RecursiveDescentAnalyzer.java
文件 2289 2017-12-25 21:14 src\org\test\WordAnalyzer.java
文件 6542 2017-12-25 21:26 实验结果1.PNG
文件 6542 2017-12-25 21:27 实验结果2.PNG
- 上一篇:基于Java的图形界面的文档编辑器的设计与实现
- 下一篇:java 影碟出租管理系统
相关资源
- java编译器源代码
- java 实现的词法分析器
- 编译原理 语法分析
- PL/0语言编译器源程序山东大学编译原
- java版本词法、语法分析器以及三地址
- 编译原理--预测分析法 java
- 编译原理-简单计算器的设计1
- java 实现词法分析器以及语法分析器
- SeuLex SeuYacc编译原理课程设计,Java实
- 编译原理 first follow java版
- 编译原理课程设计 符号串的最左推导
- 使用javacc实现基于miniC的语法分析器完
- JAVA版编译原理大作业之可编程计算器
- 递归下降语法分析程序
- 编译原理--LR1分析表构造JAVA.rar
- 编译原理课程设计 java实现编译器
- [免费]现代编译原理-Java描述
评论
共有 条评论