資源簡介
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
評論
共有 條評論