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

  • 大小: 1.18MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-29
  • 語言: 其他
  • 標簽: 語法分析??

資源簡介

這是我自己寫的編譯原理賦值語句(語法語義分析)翻譯程序其中內含有詞法分析程序,經多次測試程序無誤。運行的方法是:在“test.txt"文本文檔中輸入你要測試的賦值表達式例子,其中文本文檔中有樣例,表達式要以“;”(分號結束)。 "lex.h"為詞法分析都文件,最后翻譯的結果是以逆波蘭式顯示在dos中的,其它的一些txt文本中保存著詞法分析的結果。希望對大家有所幫助!

資源截圖

代碼片段和文件信息

#include
#include
#include??
#include
#include
#include?????????????
using?namespace?std;
#include?“Lex.h“
int?ForecastTable[7][14]={{0000000100?0?0?00}
??????????????????????????{0000000200?0?0?0?0}
??{3300333330?4?5?0?0}
??{14150089710600000}
??{181920210000000000}
??{161616160000017001717}
??{13131313121100013001313}};
string?b[]={“+““-““*““/““(““)““=““#“};
int?xuNum(string?s)
{
for(int?i=0;i<8;i++)
{
if(s==b[i])
return?i;
}
return?-1;
}
int?Vntermi(string?s)
{
char?*Vn[7]={“S““A““B““E““F““T““P“};
for(int?i=0;i<7;i++)
{
if(Vn[i]==s)
return?i;
}
return?-1;
}
int?Vtermi(string?s)
{
char?*Vt[14]={“+““-““*““/““++““--““n““i““(““)““f““t““;““#“};??//
for(int?i=0;i<14;i++)
{
if(Vt[i]==s)
return?i;
}
return?-1;
}
int?main()
{
Lex?l;
l.Initial();
l.Handle();
stackAnalysis_Stack;?//定義的分析棧
Analysis_Stack.push(“#“);
Analysis_Stack.push(“S“);
bool?Hefa=true;
l.Limit_Queue.push(“#“);
l.Sequence_Queue.push(5);?//#當做界限符處理壓力隊列,隊列里存儲著剩余的輸入字符串
???cout<???cout<
while(Analysis_Stack.size()!=1&&l.Sequence_Queue.size()!=1)
{
//cout<<“yinfei“< string?S_Analysis;
S_Analysis=Analysis_Stack.top();
int?i_Analysis;
i_Analysis=Vntermi(S_Analysis);
if(i_Analysis==-1)??????????//分析棧里的首元素是終極符,應該匹配
{
if(S_Analysis==“+“||S_Analysis==“-“||S_Analysis==“*“||S_Analysis==“/“||
S_Analysis==“++“||S_Analysis==“--“||S_Analysis==“=“)//終結符為運算符
{
int?i_Sequence;
i_Sequence=l.Sequence_Queue.front();//將保存讀入字符類型號取出1為關鍵字;2為標識符
???????????????????????????????//3為運算符,4為double型的數,5為界限符,6為整數
if(i_Sequence!=3)
{
cout<<“運算符超出定義的范圍“< }
else
{
string?S_Operator;
S_Operator=l.Operator_Queue.front();//取出運算符隊列的首元素與分析棧的首元素比較
if(S_Operator!=S_Analysis)????//不相同顯示出錯
{cout<<“運算符出錯“< else??????????????????????????//相同則匹配,消去
{
l.Sequence_Queue.pop();??//類型號隊列首元素刪除
Analysis_Stack.pop();????//分析棧首元素刪除
l.Operator_Queue.pop();??//運算符隊列首元素刪除
}
}
}
else?if(S_Analysis==“(“||S_Analysis==“)“||S_Analysis==“;“)//終結符為界限符
{
int?i_Sequence;
i_Sequence=l.Sequence_Queue.front();
if(i_Sequence!=5)
{
cout<<“界限符不匹配“< }
else
{
string?S_Limit;
S_Limit=l.Limit_Queue.front();//取出界限符隊列的首元素與分析棧的首元素比較
if(S_Limit!=S_Analysis)????//不相同顯示出錯
{cout<<“界限符出錯“< else??????????????????????????//相同則匹配,消去
{
l.Sequence_Queue.pop();??//類型號隊列首元素刪除
Analysis_Stack.pop();????//分析棧首元素刪除
l.Limit_Queue.pop();??//界限符隊列首元素刪除
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????????25??2009-05-21?00:04??賦值語句的翻譯\Constant.txt

?????文件?????505841??2009-05-20?23:59??賦值語句的翻譯\Debug\Syntax_Semantic.obj

?????文件?????107520??2009-05-21?00:04??賦值語句的翻譯\Debug\vc60.idb

?????文件?????159744??2009-05-20?23:59??賦值語句的翻譯\Debug\vc60.pdb

?????文件?????651368??2009-05-20?23:59??賦值語句的翻譯\Debug\語法語義分析.exe

?????文件?????879376??2009-05-20?23:59??賦值語句的翻譯\Debug\語法語義分析.ilk

?????文件????3296520??2009-05-20?23:37??賦值語句的翻譯\Debug\語法語義分析.pch

?????文件????1238016??2009-05-20?23:59??賦值語句的翻譯\Debug\語法語義分析.pdb

?????文件??????????0??2009-05-21?00:04??賦值語句的翻譯\error.txt

?????文件?????????69??2009-05-21?00:04??賦值語句的翻譯\Identifier.txt

?????文件??????????0??2009-05-21?00:04??賦值語句的翻譯\KeyWord.txt

?????文件??????27025??2009-05-20?23:52??賦值語句的翻譯\Lex.h

?????文件?????????23??2009-05-21?00:04??賦值語句的翻譯\LimitSign.txt

?????文件?????????75??2009-05-21?00:04??賦值語句的翻譯\Operator.txt

?????文件???????9201??2009-05-20?23:59??賦值語句的翻譯\Syntax_Semantic.cpp

?????文件??????????9??2009-05-20?23:57??賦值語句的翻譯\test.txt

?????文件???????4417??2009-05-19?12:30??賦值語句的翻譯\語法語義分析.dsp

?????文件????????532??2009-05-19?12:26??賦值語句的翻譯\語法語義分析.dsw

?????文件??????66560??2009-05-21?00:05??賦值語句的翻譯\語法語義分析.ncb

?????文件??????48640??2009-05-21?00:05??賦值語句的翻譯\語法語義分析.opt

?????文件????????922??2009-05-20?23:59??賦值語句的翻譯\語法語義分析.plg

?????目錄??????????0??2009-05-20?23:59??賦值語句的翻譯\Debug

?????目錄??????????0??2009-05-21?00:05??賦值語句的翻譯

-----------?---------??----------?-----??----

??????????????6995883????????????????????23


評論

共有 條評論