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

  • 大小: 2.52MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-09-14
  • 語言: 其他
  • 標簽: 編譯原理??試卷??

資源簡介

編譯原理課程實驗(常州工學院),比較全的,編譯原理試卷

資源截圖

代碼片段和文件信息

#include?
#include?“LL1.H“
#include?“stack.h“

/*求first集*/
void?GetFirstSet();
/*求所有生成式的first集*/
void?GetExpFirstSet();
/*求某一表達式的部分文法符號串的first集*/
void?getPartexpFirstSet(int*expSet?&?head);
/*求Follow集*/
void?GetFollowSet();
/*初始化預測表*/
void?InitiPreTable();
/*讀取token*/
int?GetToken();
/*查找符號表,判斷表項是否為-1,若不是返回1,若是返回0*/
int?Match(int?vvint?tt);
/*錯誤信息提示*/
void?error();
/*將vvtt所對應的表達式壓入棧*/
void?PushStr(linkStack*sint?vvint?tt);
/*打印產生式*/
void?PrintStr(int?vv?int?tt);
/*語法分析器主程序*/
void?ParseLl1();
/*將宏轉化成字符串*/
char*?ConvertNumToString(int?num);
void?main()
{
GetFirstSet();
GetExpFirstSet();
GetFollowSet();
InitiPreTable();
ParseLl1();

};

/*判斷num是否在集head中,若存在返回1,若不存在返回0*/
int?IsNumIn(Set*headint?num)
{
int?num_in_value=0;
Set*?ptr=head->next;
// if(ptr==NULL&&num==EPS)
// {
// num_in_value=1;
// }
while?(ptr!=NULL)
{
if(ptr->TerValue==num)
{
num_in_value=1;
}
ptr=ptr->next;
}
return?num_in_value;
}

/*將souce中的元素無重復的加入dest中,第三個參數表示是否加入eps*/
int?add(Set*destSet*sourcebool?is_eps_in)
{
Set*ptr1;
Set*ptr2=source->next;
/*標識是否有新元素加入,0表示沒有新元素加入*/
int?is_added_value=0;
/*要求source中如果有eps,不加入dest中*/
if?(is_eps_in==false)
{
while?(ptr2!=NULL)
{
/*如果ptr2中無EpS,并且該值不在dest中,則將其元素加入dest*/
if?(ptr2->TerValue!=EPS&&?!IsNumIn(destptr2->TerValue))
{
ptr1=new?Set;
ptr1->next=dest->next;
dest->next=ptr1;
ptr1->TerValue=ptr2->TerValue;
is_added_value=1;
}
ptr2=ptr2->next;
}//end?of?while
}//end?of?if
else
{
while?(ptr2!=NULL)
{
/*該值不在dest中,則將其元素加入dest*/
if?(!IsNumIn(destptr2->TerValue))
{
ptr1=new?Set;
ptr1->next=dest->next;
dest->next=ptr1;
ptr1->TerValue=ptr2->TerValue;
is_added_value=1;
}
ptr2=ptr2->next;
}//end?of?while
}//end?of?if
return?is_added_value;
}
int?add(Set*destint?value)
{
Set*ptr1;
int?is_added_value=0;
if?(!IsNumIn(destvalue))
{
ptr1=new?Set;
ptr1->next=dest->next;
dest->next=ptr1;
ptr1->TerValue=value;
is_added_value=1;
}
return?is_added_value;
}

void?GetFirstSet()
{
//初始化非終結符和eps的first集
for?(int?t=TER_START;t {
FirstSet[t].next=new?Set;
FirstSet[t].next->next=NULL;
FirstSet[t].next->TerValue=t;

}

//初始化非終結符的first集??此處可考慮將A->eps加入即可
for(int?j=0;j {
Set*ptr=&FirstSet[j];
for?(int?k=0;k if?(express[k][0]==j&&express[k][1]>=TER_START)
{
ptr->next=new?Set;
ptr->next->next=NULL;
ptr->next->TerValue=express[k][1];
ptr=ptr->next;
}
}

//遞歸求非終結符的first集

int?change_flag=1;/*設置標志位,1表示first集有變動,0表示first集無變動*/

while?(change_flag==1)
{
change_flag=0;
for?(int?i=0;i {
int?k=1;
bool?keep_on=true;
int?destination=express[i][0];?/*非終結符*/
while?(keep_on?&&express[i][k]!=-1)
{
int?source=express[i][k];
int?if_added=add(&Fir

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-27?14:35??報告-編譯原理\
?????目錄???????????0??2013-02-19?13:18??報告-編譯原理\LL1Final\
?????目錄???????????0??2013-02-19?13:18??報告-編譯原理\LL1Final\Debug\
?????文件??????204898??2008-04-18?17:27??報告-編譯原理\LL1Final\Debug\LL1Final.exe
?????文件??????331124??2008-04-18?17:27??報告-編譯原理\LL1Final\Debug\LL1Final.ilk
?????文件???????36312??2008-04-18?17:26??報告-編譯原理\LL1Final\Debug\LL1Final.obj
?????文件??????223980??2008-04-18?17:06??報告-編譯原理\LL1Final\Debug\LL1Final.pch
?????文件??????517120??2008-04-18?17:27??報告-編譯原理\LL1Final\Debug\LL1Final.pdb
?????文件??????172125??2008-04-16?22:26??報告-編譯原理\LL1Final\Debug\stack.exe
?????文件??????173268??2008-04-16?22:26??報告-編譯原理\LL1Final\Debug\stack.ilk
?????文件????????5211??2008-04-17?22:52??報告-編譯原理\LL1Final\Debug\stack.obj
?????文件??????222652??2008-04-16?22:26??報告-編譯原理\LL1Final\Debug\stack.pch
?????文件??????345088??2008-04-16?22:26??報告-編譯原理\LL1Final\Debug\stack.pdb
?????文件???????50176??2008-04-18?17:27??報告-編譯原理\LL1Final\Debug\vc60.idb
?????文件???????53248??2008-04-18?17:26??報告-編譯原理\LL1Final\Debug\vc60.pdb
?????文件????????3145??2008-04-18?17:06??報告-編譯原理\LL1Final\LL1.H
?????文件???????10697??2008-04-18?17:26??報告-編譯原理\LL1Final\LL1Final.cpp
?????文件????????3605??2008-04-17?22:52??報告-編譯原理\LL1Final\LL1Final.dsp
?????文件?????????541??2008-04-16?21:28??報告-編譯原理\LL1Final\LL1Final.dsw
?????文件???????66560??2008-04-18?17:27??報告-編譯原理\LL1Final\LL1Final.ncb
?????文件???????54784??2008-04-18?17:27??報告-編譯原理\LL1Final\LL1Final.opt
?????文件?????????777??2008-04-18?17:27??報告-編譯原理\LL1Final\LL1Final.plg
?????文件?????????320??2008-04-16?18:19??報告-編譯原理\LL1Final\LL1文法二.txt
?????文件?????????480??2008-04-16?18:21??報告-編譯原理\LL1Final\LL1文法另1.txt
?????文件?????????594??2008-04-16?18:16??報告-編譯原理\LL1Final\ll1文法改進.txt
?????文件?????????107??2008-04-18?17:27??報告-編譯原理\LL1Final\output.txt
?????文件?????????784??2008-03-28?23:43??報告-編譯原理\LL1Final\stack.cpp
?????文件?????????571??2008-04-17?22:51??報告-編譯原理\LL1Final\stack.h
?????文件??????????55??2008-04-18?16:51??報告-編譯原理\LL1Final\tokens.txt
?????文件?????????480??2008-04-16?18:21??報告-編譯原理\LL1Final\復件?LL1文法另1改進.txt
?????目錄???????????0??2013-02-19?13:18??報告-編譯原理\LL1Final高級\
............此處省略167個文件信息

評論

共有 條評論