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

  • 大小: 5KB
    文件類型: .cpp
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2021-10-21
  • 語言: C/C++
  • 標(biāo)簽:

資源簡介

已知文法G[S]: S->AT A->BU T->+AT|$ U->*BU|$ B->(S)|m 其中,$表示空串。對該文法構(gòu)造預(yù)測分析表,并手工構(gòu)造預(yù)測分析程序,對輸入串m+m*m#進(jìn)行語法分析,并根據(jù)棧的變化狀態(tài)輸出分析過程。

資源截圖

代碼片段和文件信息

#include?
#include?
using?namespace?std;
char?msg[50];
class?mystack{
public:
char?element[100];
int?size;
void?clear()
{
size=0;
}
int?length()
{
return?size;
}
char?top()
{
if(size>0)
return?element[size-1];
}

void?pop()
{
if(size>0)
{
size--;
element[size]=‘\0‘;
}
}

void?push(char?st)
{
element[size++]=st;
element[size]=‘\0‘;
}

mystack()
{
size=0;
}
};

mystack?sc;

//
void?printstack()
{
printf(“%s\t“sc.element);
}
//

char?s[80];//輸入的字符串
int?l;//輸入字符串的長度
struct?any
{
????char?a1[10];
????char?a2[10];
????char?a3[10];
????char?a4[10];
????char?a5[10];
????char?a6[10];
};
struct?any?S={“E““E““TA““TA““E““E“};
struct?any?A={“E““E““UB““UB““E““E“};
struct?any?B={“E““E““m““)s(““E““E“};
struct?any?U={“““UB*““TA““TA““E“““};
struct?any?T={“TA+““E““E““E““E“““};

////////////////////////////////////////////////////////

bool?comp(int&?b)
{
????char?d;
????//int?i;
????d=sc.top();
if(d==‘+‘||d==‘*‘||d==‘m‘||d==‘(‘||d==‘)‘)
{
if(s[b]==d)
{
msg[0]=s[b];
strcpy(msg+1“匹配“);
b++;
sc.pop();
return?true;
}
else
{
printf(“ERROR!“);
????????????return?false;
}
}
//----------------------------------------------
????else?if(d==‘S‘)
????{
??????if(s[b]==‘m‘)
??????{???
????strcpy(msg“S->AT“);
????????????sc.pop();
????????????for(int?i=0;i?????????????{
????????????????????sc.push(S.a3[i]);
?????????????}
//strcpy(msg“S->AT“);
return?true;
??????}
??????else?if(s[b]==‘(‘)
??????{
????strcpy(msg“S->AT“);
????????????sc.pop();
????????????for(int?i=0;i????????????{
????????????????????sc.push(S.a4[i]);
?????????????}
//strcpy(msg“S->AT“);
return?true;
??????}?
??????else
??????{
????????????printf(“ERROR!“);
????????????return?false;
??????}
????}
//---------------------------------------------
????else?if(d==‘A‘)
????{
??????if(s[b]==‘m‘)
??????{
????strcpy(msg“A->BU“);?
????????????sc.pop();
????????????for(int?i=0;i?????????????{
????????????????????sc.push(A.a3[i]);
?????????????}
//strcpy(msg“A->BU“);
return?true;
??????}
??????else?if(s[b]==‘(‘)
??????{
????strcpy(msg“A->BU“);????
????????????sc.pop();
????????????for(int?i=0;i????????????{
sc.push(A.a4[i]);
????????????}
//strcpy(msg“A->BU“);
return?true;
??????}?
??????else
??????{
????????????printf(“ERROR!“);
????????????return?false;
??????}
????}
//-------------------------------------------
????

評論

共有 條評論

相關(guān)資源