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

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 1 次
    發布日期: 2021-07-11
  • 語言: C/C++
  • 標簽: 編譯原理??c++??

資源簡介

編寫一通用的預測法分析程序,要求有一定的錯誤處理能力,出錯后能夠使程序繼續運行下去,直到分析過程結束。可通過不同的文法(通過數據表現)進行測試。 給定算術表達式文法,編寫程序。測試數據:1.算術表達式文法 E→TE’ E’ → +TE’|- TE’|ε T→FT’ T’ →*FT’ |/ FT’ |%FT’|ε

資源截圖

代碼片段和文件信息

#include
#include?
#include?
char?cch;
FILE?*fp;
char?GetC(?)//取下一個字符
{
???char?t;
???t=getc(fp);
???if(t==‘\t‘||t==‘\n‘||t==‘\r‘)?t=‘?‘;
???return?t;
}
char?Vt[10]={‘+‘‘-‘‘*‘‘/‘‘%‘‘(‘‘)‘‘i‘‘n‘‘#‘};//終結符
char?Vn[5]={‘E‘‘M‘‘T‘‘N‘‘F‘};//非終結符
char?*Fa[12]={“TM““+TM““-TM““““FN““*FN““/FN““%FN““““(E)““i““n“};//產生式
int?analysis_table[5][10]={-1-1-1-1-10-200-2
12-1-1-1-13-1-13
-2-2-1-1-14-244-2
88567-18-1-18
-2-2-2-2-29-21011-2};//預測分析表
#define?maxsize??1024
typedef?struct//結構棧
{char?data[maxsize];
int?top;
}seqstack;
seqstack?*init_seqstack()//棧初始化
{
seqstack?*s;
s=new?seqstack;
if(!s)
{cout<<““< return?NULL;
}
else
{s->top=-1;
return?s;
}
}
void?push_seqstack(seqstack?*schar?x)//入棧
{
if(s->top==maxsize-1)
cout<<“棧滿!操作不成功!“< else
{s->top++;
s->data[s->top]=x;
}
}
void?pop_seqstack(seqstack?*schar?x)//出棧
{
if(s->top==-1)
cout<<“棧空操作不成功!“< else
{x=s->data[s->top];
s->top--;
}
}
char?top_seqstack(seqstack?*s)//取棧頂元素
{ if(s->top==-1)
return?0;
else
return?s->data[s->top];
}
int?compare(char?wchar?x[])//查找位置
{ for(int?i=0;i<10;i++)
{
if(w==x[i])
return?i;
}
return?-9;
}
void?analysis()
{
seqstack?*s;???char?topdate;
s=init_seqstack();
push_seqstack(s?‘#‘);
push_seqstack(sVn[0]);
cch=GetC(); //讀入一個字符
topdate=top_seqstack(s); //取棧定元素
cout<<“棧頂元素“<<“????????當前單詞“<<“?

評論

共有 條評論