91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

實現一個關于表達式的LR語法分析程序 識別用戶輸入的包含變量與整數的混合算術表達式(不包含減法與除法運算) 文法如下: 0 S E 1 E E+E 2 E E E 3 E E 4 E i 編程運用上述LR分析表 識別從鍵盤輸入的算術表達式 ">實現一個關于表達式的LR語法分析程序 識別用戶輸入的包含變量與整數的混合算術表達式(不包含減法與除法運算) 文法如下: 0 S E 1 E E+E 2 E E E 3 E E 4 E i 編程運用上述LR分析表 識別從鍵盤輸入的算術表達 [更多]

資源截圖

代碼片段和文件信息

import?java.util.ArrayList;
import?java.util.Scanner;


public?class?test3?{

static?int?[][]?E_LR?=?{{-1-12-13-11}
?{45-1-1-10-1}
?{-1-12-13-16}
?{104104-1104-1104-1}
?{-1-12-13-17}
?{-1-12-13-18}
?{45-19-1-1-1}
?{1015-1101-1101-1}
?{102102-1102-1102-1}
?{103103-1103-1103-1}};
static?String?str?=?“+*()i#E“;
static?ArrayList?state?=?new?ArrayList();
static?ArrayList?fuhao?=?new?ArrayList();
static?ArrayList?data?=?new?ArrayList();
static?ArrayList?check?=?new?ArrayList();
static?int?max?=?data.size();
static?int?table?=?0;
static?String?dutou?=?““;
static?String?string?=?““;
static?int?n?=?0;
public?static?void?main(String[]?args)?{
Scanner?input?=?new?Scanner(System.in);
String?str?=?input.nextLine();
string?=?str;
str?+=?“?#“;
str?=?str.replace(“(“?“?(?“);
str?=?str.replace(“)“?“?)?“);
str?=?str.replace(“+“?“?+?“);
str?=?str.replace(“*“?“?*?“);
str?=?str.replace(“#“?“?#?“);
String?s?=?““;
for(int?i=0;i if(str.charAt(i)?!=?‘?‘){
s?+=?str.charAt(i);
}else{
data.add(s);
s=““;
continue;
}
}
deleteBlack(data);
for(int?i=0;i if(!data.get(i).equals(“(“)&&!data.get(i).equals(“)“)&&!data.get(i).equals(“+“)&&!data.get(i).equals(“*“)&&!data.get(i).equals(“#“)){
if(judge1(data.get(i))||judge2(data.get(i))){
data.set(i?“i“);
}else{
System.out.println(“標識符或數字“+data.get(i)+“有誤!“);
System.exit(0);
}
}
}
state.add(“0“);
fuhao.add(“#“);
dutou?=?data.get(n);?
if(!dutou.equals(“E“)&&!dutou.equals(“(“)&&!dutou.equals(“i“)){
System.out.println(“表達式無第一個操作數“);
System.exit(0);
}
while(true){
int?x?=?getindex1();//獲取state棧頂元素在表中位置
int?y?=?getindex2(dutou);//獲取讀頭在表中位置位置
table?=?E_LR[x][y];
if(table?==?0){
System.out.println(“表達式正確,分析成功“);
System.exit(0);
}else?if(table<100){
fuhao.add(dutou);
check.add(dutou);
state.add(String.valueOf(table));
n++;
dutou?=?data.get(n);?
switch(table){
case?0:
case?2:
case?4:
case?5:
if(!dutou.equals(“(“)&&!dutou.equals(“i“)&&!dutou.equals(“E“)){
System.out.println(“缺少操作數“);
System.exit(0);
}
break;
case?1:
if(!dutou.equals(“+“)&&!dutou.equals(“*“)&&!dutou.equals(“#“)){
System.out.println(“錯誤1“);
System.exit(0);
}
break;
case?6:
if(!dutou.equals(“+“)&&!dutou.equals(“*“)&&!dutou.equals(“)“)){
System.out.println(“錯誤6“);
System.exit(0);
}
break;
case?3:
case?7:
case?8:
case?9:
if(!dutou.equals(“+

評論

共有 條評論