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

  • 大小: 2KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2022-11-21
  • 語言: 其他
  • 標簽: 編譯原理??

資源簡介

實現算符優先分析算法,完成以下描述算術表達式的算符優先文法的算符優先分析過程。 G[E]:E→E+T∣E-T∣T T→T*F∣T/F∣F F→(E)∣i 說明:終結符號i為用戶定義的簡單變量,即標識符的定義。 要求: (1)構造該算符優先文法的優先關系矩陣或優先函數; (2)輸入串應是詞法分析的輸出二元式序列,即某算術表達式“實驗項目一”的輸出結果。輸出為輸入串是否為該文法定義的算術表達式的判斷結果。 (3)算符優先分析過程應能發現輸入串出錯。 (4)設計兩個測試用例(盡可能完備),并給出測試結果。

資源截圖

代碼片段和文件信息

#include“opp.h“
/********************************************
G[E]:E→E+T∣E-T∣
T→T*F∣T/F∣F
F→(E)∣i
/********************************************/
int?M[8][8];
int?buffer[20];
char?str[20];
int?S[30];
int?point;
int?cfw?=?0;
int?cbw?=?0;
void?initM(){
M[0][0]?=?FW;?M[0][1]?=?FW;?M[0][2]?=?FW;?M[0][3]?=?FW;?M[0][4]?=?FW;?M[0][5]?=?FW;?M[0][6]?=?EQ;
M[1][2]?=?BW;?M[1][3]?=?BW;?M[1][4]?=?BW;?M[1][5]?=?BW;?M[1][6]?=?BW;?M[1][7]?=?BW;?
M[2][0]?=?FW;?M[2][1]?=?FW;?M[2][2]?=?BW;?M[2][3]?=?BW;?M[2][4]?=?FW;?M[2][5]?=?FW;?M[2][6]?=?BW;?M[2][7]?=?BW;?
M[3][0]?=?FW;?M[3][1]?=?FW;?M[3][2]?=?BW;?M[3][3]?=?BW;?M[3][4]?=?FW;?M[3][5]?=?FW;?M[3][6]?=?BW;?M[3][7]?=?BW;?
M[4][0]?=?FW;?M[4][1]?=?FW;?M[4][2]?=?BW;?M[4][3]?=?BW;?M[4][4]?=?BW;?M[4][5]?=?BW;?M[4][6]?=?BW;?M[4][7]?=?BW;
M[5][0]?=?FW;?M[5][1]?=?FW;?M[5][2]?=?BW;?M[5][3]?=?BW;?M[5][4]?=?BW;?M[5][5]?=?BW;?M[5][6]?=?BW;?M[5][7]?=?BW;
M[6][2]?=?BW;?M[6][3]?=?BW;?M[6][4]?=?BW;?M[6][5]?=?BW;?M[6][6]?=?BW;?M[6][7]?=?BW;
M[7][0]?=?FW;?M[7][1]?=?FW;?M[7][2]?=?FW;?M[7][3]?=?FW;?M[7][4]?=?FW;?M[7][5]?=?FW;?M[7][7]?=?EQ;
}
int?mach(int?nowint?point){
switch(M[now][buffer[point]]){
case?FW:cfw++;return?1;
case?BW:
if(cbw cbw++;
return?2;
}
else{
printf?(“find?error?in?%c\n“str[point]);return?0;
}
case?EQ:return?0;
default:printf?(“find?error?in?%c\n“str[point]);return?0;
}
}
int?analysis(){
S[0]?=?SHARP?;
int?count?=?1;
int?spoint?=?0;
int?revalue;
int?now?=?S[spoint];
while(count!=0){
revalue?=?mach(nowpoint);
switch(revalue){
case?1:
S[count]?=?buffer[point];
spoint?=?count;
count++;point++;
now?=?S[spoint];
break;
case?2:
if(count==spoint+1){
spoint--;
now?=?S[spoint];
}
else{
count?=?count-2;
spoint=count-2>0?count-2:0;
now?=?S[spoint];
}
break;
default:?return?0;
}
}
return?0;
}
void?main(){
FILE?*input;
input?=?fopen(“test1.txt““rb“);
if?(!input){
cout?< }
else{
initM();
cout?< //cout?< int?i?=?0j?=?0;
point?=?0;
char?c;
while(!feof(input))
{
c?=?fgetc(input);
if(c==‘(‘){
c?=?fgetc(input);
buffer[i]?=?(int)c-48;
cout?< i++;
c?=?fgetc(input);
if(c==‘‘){
c?=?fgetc(input);
str[i-1]?=?c;
//cout?< }
}
}
analysis();
//cout?< if(point!=i-1){
printf(“\nDidn‘t?match?%s?\n“str);
}
else
printf(“\nmatch?%s?\n“str);
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????530??2012-04-19?09:12??opp.h
?????文件??????????30??2012-04-21?22:36??test1.txt
?????文件??????????35??2012-04-21?01:06??test2.txt
?????文件????????2642??2012-04-19?12:33??opp.cpp

評論

共有 條評論