资源简介
1. 设计扫描程序,将任何一种整数运算表达式(无变量,操作数为正整数,允许加减乘除四种运算,允许使用括号和多层括号)识别为单词,并能发现单词的拼写错误
2. 设计自底向上分析程序,在栈上实现对单词token串的自底向上分析
3. 根据算符优先文法的分析步骤,展示分析栈、token串的状态变化、相关量的优先级比较(算符优先分析表)结果输出 、判断当前是否进行规约或移进操作、(若须规约)显示当前应规约的串
4. 展示语法树
代码片段和文件信息
package compiler;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Calculate {
public int val;
public List table=null;//数据栈
public List Re=null;
private static int count=0;
public double [] T;
public Calculate(){
table=new ArrayList();
Re=new ArrayList();
}
public void calculate(String aString b){
int len=0;
Scanner s1=new Scanner(b);
Scanner s2=new Scanner(b);
while(s1.hasNext()==true){ //计算长度
s1.next();
len++;
}
ArrayList arr=new ArrayList();
for(int i=0;i if(s2.hasNext()==true)
arr.add(s2.next());
else
arr.add(“_“);
}
if(len==1){
TableElement V=new TableElement(countab);
this.table.add(V);
}else{
if(!arr.get(0).equals(“(“)){
if(Re.size()==0){
double n2=table.get(table.size()-1).val;
table.remove(table.size()-1);
double n1=table.get(table.size()-1).val;
table.remove(table.size()-1);
operation(an1arr.get(1)n2);
}
}
}
}
public String check(int noString b){ //查字符对应的值
Double r = null;
for(int i=0;i if(table.get(i).no==no && table.get(i).result.equals(b))
r=table.get(i).val;
System.out.println(b+“的值是:“+r);
return Double.toString(r);
}
public static boolean isNum(String str){ //判断是否为数字
return str.matches(“^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$“);
}
public void operation(String adouble xString opdouble y){
if(op.equals(“+“))
x=x+y;
else if(op.equals(“-“))
x=x-y;
else if(op.equals(“*“))
x=x*y;
else if(op.equals(“/“)){
if(y==0.0)
Re.add(“ERROR!“);
else
x=x/y;
}
else{
double sum=Math.pow(x y);
x=sum;
}
if(y!=0.0){
TableElement V=new TableElement(countaDouble.toString(x));
this.table.add(V);
count++;
}
}
public void show(){ //输出数据栈
String result=new String(“Result:“);
if(Re.size()==0){
result+=Double.toString(table.get(table.size()-1).val);
Mainframe.noticeTextField.setText(result);
}
else
System.out.println(“除数不能为零!“);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-07-04 17:33 Compiler\
文件 301 2012-07-04 17:31 Compiler\.classpath
文件 384 2012-07-05 00:26 Compiler\.project
目录 0 2012-07-04 17:31 Compiler\.settings\
文件 635 2012-07-04 17:31 Compiler\.settings\org.eclipse.jdt.core.prefs
目录 0 2012-07-05 00:26 Compiler\bin\
目录 0 2012-07-05 00:26 Compiler\bin\compiler\
文件 3857 2012-07-05 00:26 Compiler\bin\compiler\Calculate.class
文件 530 2012-07-05 00:26 Compiler\bin\compiler\GenerateTable$table_item.class
文件 2424 2012-07-05 00:26 Compiler\bin\compiler\GenerateTable.class
文件 9605 2012-07-05 00:26 Compiler\bin\compiler\Grammar.class
文件 4630 2012-07-05 00:26 Compiler\bin\compiler\Mainfr
文件 509 2012-07-05 00:26 Compiler\bin\compiler\Node.class
文件 3330 2012-07-05 00:26 Compiler\bin\compiler\Semantic.class
文件 1553 2012-07-05 00:26 Compiler\bin\compiler\TableElement.class
文件 4302 2012-07-05 00:26 Compiler\bin\compiler\Token.class
文件 771 2012-07-05 00:26 Compiler\bin\compiler\TokenItem.class
文件 746 2012-07-05 19:10 Compiler\res.txt
目录 0 2012-07-04 17:31 Compiler\src\
目录 0 2012-07-05 00:25 Compiler\src\compiler\
文件 2319 2012-07-05 00:24 Compiler\src\compiler\Calculate.java
文件 1729 2012-07-05 00:23 Compiler\src\compiler\GenerateTable.java
文件 9461 2012-07-05 00:25 Compiler\src\compiler\Grammar.java
文件 5280 2012-07-05 00:25 Compiler\src\compiler\Mainfr
文件 294 2012-07-05 00:23 Compiler\src\compiler\Node.java
文件 2033 2012-07-05 00:25 Compiler\src\compiler\Semantic.java
文件 884 2012-07-05 00:24 Compiler\src\compiler\TableElement.java
文件 4704 2012-07-05 00:24 Compiler\src\compiler\Token.java
文件 380 2012-07-05 00:24 Compiler\src\compiler\TokenItem.java
- 上一篇:servlet+jsp实现上课点名系统
- 下一篇:java笔试题库-选择题.rar
相关资源
- java笔试题库-选择题.rar
- java平台上的实现Diffle-Human的密钥交换
- 酒店预订系统的分析与设计
- java编写的LR语法分析器编译原理实验
- 基于Matlab神经网络工具包编译的jar包
- Java-JDK-11.0.8(Windows & Mac os)
- jdk8_64位安装版
- jdk-8u261-macosx-x64.dmg
- 4本高清中文版Java性能优化经典书籍
- Java语言规范 基于 Java SE 8 高清中文带
-
java解决hive快速导数据到Hba
se代码 - 基于MiniC的语义分析Javacc实现
- java web项目——BBS论坛程序源论坛
- TM00584-java教务管理系统源码.7z
- 算法第4版-谢路云译(Java描述)-完整
- Java安全编码标准-PDF版-有目录
- JAVA加密与解密的艺术第2版
- 基于java/jsp的个人博客系统的设计与实
- 基于jsp/java的新闻发布及管理系统的设
- 贪吃蛇Java源文件代码
- 4448_jsp网页调用摄像头读取二维码
- DSA签名算法的Java实现
- 黑马程序员_JavaWeb网上图书商城完整项
- 校园卡管理系统JAVA+SQL SERVER课程设计
- jtds-1.2.jar
- web大作业.zip
- Head First Java 第二版.中文高清完整版
- JAVA酒店管理系统.zip
- 值班 排班工具完整版含java源码,数据
- 基于JavaWeb的学生考勤请假系统项目源
评论
共有 条评论