資源簡介
從new.txt文件中讀入寫好的由正規表達式(a|b)*(aa|bb)(a|b)*所轉化的正規文法(右線性),自動構造項目集族,生成LR分析表,并對輸入的字符串通過LR分析表進行分析,輸出分析過程,指出錯誤

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?“ll1analysis.h“
#include?“Main.h“
struct?cstack?fhz;
char?row[4]?=?{‘S‘‘A‘‘B‘‘F‘};
char?col[3]?=?{‘a‘‘b‘‘#‘};
char?ll_wenfa[9][20]={“S->aA““S->bB““A->aF““A->bB““B->aA““B->bF““F->aF““F->bF““F->“};
int?ana_table[4][3]={
{01-1}
{23-1}
{45-1}
{678}
};
void?print_ll_stack()
{
int?i=0;
for(i=0;i {
printf(“%c“fhz.data[i]);
}
printf(“\t“);
}
void?init_stack()
{
fhz.top=0;
}
bool?pop_c_stack()
{
if(fhz.top<0)?return?false;
else
{
fhz.top--;
return?true;
}
}
bool?push_c_stack(char?c)
{
if(fhz.top>=50)
return?false;
else
{
fhz.data[fhz.top]=c;
fhz.top++;
return?true;
}
}
char?get_stack_top()
{
return?fhz.data[fhz.top-1];
}
void?print_ll_table()
{
for(int?i=0;i<4;i++)
{
for(int?j=0;j<3;j++)
{
if(ana_table[i][j]>=0)
printf(“%s\t“ll_wenfa[ana_table[i][j]]);
else
printf(“error\t“);
}
printf(“\n“);
}
}
void?ll1()
{
char?str[50];
char?st;
int?int_sint_tint_wwlength;
init_stack();
print_ll_table();
printf(“輸入一個字符串:“);
scanf(“%s“str);
getchar();
int?str_count?=?(int)strlen(str);
str[str_count]=‘#‘;
str_count++;
str[str_count]=‘\0‘;
push_c_stack(‘#‘);
push_c_stack(‘S‘);
for(int?i=0;i {
print_ll_stack();
printf(“%s\t“&str[i]);
t=str[i];
s=get_stack_top();
pop_c_stack();
if(s==‘#‘&&t==‘#‘)
{
printf(“succeed“);
}
else
{
if(s>=‘A‘&&s<=‘Z‘)
{
for(int_s=0;int_s<4;int_s++)
{
if(s==row[int_s])
break;
}
for(int_t=0;int_t<3;int_t++)
{
if(t==col[int_t])
break;
}
if(ana_table[int_s][int_t]>=0)
{
int_w?=?ana_table[int_s][int_t];
printf(“%s“ll_wenfa[int_w]);
wlength?=?(int)strlen(ll_wenfa[int_w]);
wlength--;
for(;ll_wenfa[int_w][wlength]!=‘>‘;wlength--)
{
push_c_stack(ll_wenfa[int_w][wlength]);
}
i--;
}
else
{
printf(“error\t“);
}
}
else
{
if(s==t)
{
printf(“\t\n“);
continue;
}
else
{
printf(“error\t“);
push_c_stack(s);
}
}
}
printf(“\n“);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-10?20:49??byylks\
?????目錄???????????0??2018-11-06?10:00??byylks\.vs\
?????目錄???????????0??2018-11-06?10:00??byylks\.vs\byylks\
?????目錄???????????0??2018-11-06?10:01??byylks\.vs\byylks\v15\
?????文件????????5120??2018-11-06?10:01??byylks\.vs\byylks\v15\.suo
?????文件?????1839104??2018-11-06?10:01??byylks\.vs\byylks\v15\Browse.VC.db
?????目錄???????????0??2018-11-06?10:00??byylks\.vs\byylks\v15\ipch\
?????目錄???????????0??2018-11-06?10:00??byylks\.vs\byylks\v15\ipch\AutoPCH\
?????目錄???????????0??2018-11-06?10:01??byylks\.vs\byylks\v15\ipch\AutoPCH\6688b59fc27e555\
?????文件?????2818048??2018-11-06?10:01??byylks\.vs\byylks\v15\ipch\AutoPCH\6688b59fc27e555\MAIN.ipch
?????目錄???????????0??2018-11-06?10:00??byylks\Backup\
?????文件????????4727??2018-11-07?20:56??byylks\byylks.dsp
?????文件?????????535??2018-11-07?15:16??byylks\byylks.dsw
?????文件???????66560??2018-11-10?20:49??byylks\byylks.ncb
?????文件???????51712??2018-11-10?20:49??byylks\byylks.opt
?????文件????????1407??2018-11-10?20:49??byylks\byylks.plg
?????文件????????6454??2018-11-06?10:00??byylks\byylks.vcxproj
?????文件????????1309??2018-11-06?10:00??byylks\byylks.vcxproj.filters
?????文件?????????165??2018-11-06?10:00??byylks\byylks.vcxproj.user
?????目錄???????????0??2018-11-10?20:49??byylks\Debug\
?????文件??????225329??2018-11-10?20:49??byylks\Debug\byylks.exe
?????文件??????296568??2018-11-10?20:49??byylks\Debug\byylks.ilk
?????文件?????????344??2018-11-06?10:00??byylks\Debug\byylks.log
?????文件?????3572840??2018-11-10?20:49??byylks\Debug\byylks.pch
?????文件??????582656??2018-11-10?20:49??byylks\Debug\byylks.pdb
?????文件???????17900??2018-11-07?21:56??byylks\Debug\ll1analysis.obj
?????文件???????48230??2018-11-10?20:49??byylks\Debug\LRanalysis.obj
?????文件???????15082??2018-11-10?20:49??byylks\Debug\Main.obj
?????文件???????20730??2018-11-09?14:16??byylks\Debug\syfbyyl.obj
?????文件??????156672??2018-11-10?20:49??byylks\Debug\vc60.idb
?????文件???????86016??2018-11-10?20:49??byylks\Debug\vc60.pdb
............此處省略12個文件信息
評論
共有 條評論