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

資源簡介

實驗要求: (1)要提供一個源程序編輯界面,讓用戶輸入文法規則(可保存、打開存有文法規則的文件) (2)檢查該文法是否存在著左遞歸,如果有,則消除該文法的左遞歸。因此需要提供窗口以便用戶可以查看消除左遞歸后的結果。 (3)檢查該文法是否存在著左公共因子,如果有,則消除該文法的左公共因子。因此需要提供窗口以便用戶可以查看消除左公共因子的結果。 (4)需要提供窗口以便用戶可以查看文法對應的LL(1)分析表,并報告該文法是否為LL(1)文法。 (5)需要提供窗口以便用戶輸入需要分析的句子。 (6)需要提供窗口以便用戶查看使用LL(1)分析該句子的過程。【可以使用表格的形式逐行顯示分析過程】 (7)應該書寫完善的軟件文檔

資源截圖

代碼片段和文件信息

#include?“ll.h“
#include
#include
#include?
#include
#include
#include“QDebug“
#include
#include
#include?“sstream“
#include?“fstream“

using?namespace?std;

//ll::ll()
//{

//}

bool?ll::isin(char?xint?type)
{
????if(type==1)
????{
????????for(int?i=0;i<=num1;i++)
????????{
????????????if(x==get1[i])
????????????????return?true;
????????}
????}
????else?if(type==2)
????{
????????for(int?i=0;i<=num2;i++)
????????{
????????????if(x==get2[i])
????????????????return?true;
????????}
????}
????return?false;
}

void?ll::readin(const?std::string?&pro)
{
????memset(table-1sizeof(table));
????string?ss;
????ss+=pro[0];
????if(!isin(pro[0]1))
????{
????????get1[num1]=pro[0];
????????num1++;
????}
????for(int?i=3;i????{
????????if(pro[i]==‘|‘)
????????{
?????????????proce.push_back(ss);
?????????????ss.clear();ss+=pro[0];
????????}
????????else
????????{
????????????ss+=pro[i];
????????}
????????if(pro[i]>=‘A‘&&pro[i]<=‘Z‘&&!isin(pro[i]1))
????????{
????????????get1[num1]=pro[i];
????????????num1++;
????????}
????????else?if(!(pro[i]>=‘A‘&&pro[i]<=‘Z‘)&&pro[i]!=‘|‘&&pro[i]!=‘@‘&&!isin(pro[i]2))
????????{
????????????get2[num2]=pro[i];
????????????num2++;
????????}
????}
????proce.push_back(ss);
}

void?ll::jiji()
{
????num2-=1;
????num1-=1;
????getnum[‘#‘]=0;
????getchar1[0]=‘#‘;
//cout<<“請輸入所有的終結符:“<????char?x;
????do
????{
????x=get2[num2];
????getnum[x]=++num;
????getchar1[num]=x;
????num2--;
????}while(num2>=0);
????numvt=++num;
????getnum[‘@‘]=numvt;????????//kong?zi
????getchar1[num]=(‘@‘);
????do
????{
????x=get1[num1];
????getnum[x]=++num;
????getchar1[num]=x;
????num1--;
????}while(num1>=0);
}

void?ll::jiaoji(string?&astring?b)
{
????std::setse;
????for(int?i=0;i???????se.insert(a[i]);
????for(int?i=0;i???????se.insert(b[i]);
????string?ans;
????std::set::iterator?it;
????for(it=se.begin();it!=se.end();it++)
????????ans+=*it;
????a=ans;
}

string?ll::get_f(int?vnint?&?has_0)
{
????if(vn==numvt)has_0=1;
????if(vn????string?ans;
????for(int?i=0;i????????{
???????????if(getnum[proce[i][0]]==vn)
?????????????ans+=get_f(getnum[proce[i][1]]has_0);
????????}
????return??ans;
}
void?ll::getfirst()
{
????for(int?i=1;i<=numvt;i++)?????//終結符,first集是其本身。
????{
?????????first[i]+=(‘0‘+i);
????}
????for(int?j=0;j????{
????????int?k=0;int?has_0=0;????????//k掃瞄該產生式
???????do{
????????????has_0=0;
????????????k++;
???????????if(k==proce[j].size())??//推到最后一個了,則附加空字
???????????{
???????????????first[getnum[proce[j][0]]]+=(‘0‘+numvt);
???????????????break;
??????????}?????????????????????//合并之
???????????jiaoji(first[getnum[proce[j][0]]]get_f(getnum[proce[j][k]]has_0));
?????????}
??????while(has_0);??//到無法推出空字為止
????}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-26?21:47??LL1_\
?????文件????????1095??2018-12-26?20:41??LL1_\LL1_.pro
?????文件???????23958??2018-12-26?20:41??LL1_\LL1_.pro.user
?????文件???????43553??2018-12-16?09:51??LL1_\LL1_.pro.user.cd10749
?????文件???????24118??2018-12-16?09:51??LL1_\LL1_.pro.user.d36f2ae
?????目錄???????????0??2018-12-26?21:47??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\
?????文件????????1033??2018-12-16?10:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\.qmake.stash
?????文件???????30226??2018-12-16?10:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\Makefile
?????文件???????47019??2018-12-16?10:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\Makefile.Debug
?????文件???????47109??2018-12-16?10:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\Makefile.Release
?????目錄???????????0??2018-12-26?21:47??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\
?????文件?????2002991??2018-12-16?14:39??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\LL1_.exe
?????文件??????516850??2018-12-16?14:39??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\ll.o
?????文件??????537540??2018-12-16?12:43??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\main.o
?????文件??????743658??2018-12-16?14:32??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\mainwindow.o
?????文件????????4574??2018-12-16?12:43??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\moc_mainwindow.cpp
?????文件??????453441??2018-12-16?12:43??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\moc_mainwindow.o
?????文件????????9895??2018-12-16?10:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\moc_predefs.h
?????目錄???????????0??2019-03-20?13:54??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\release\
?????文件????????6788??2018-12-16?11:18??LL1_\build-LL1_-Desktop_Qt_5_10_0_MinGW_32bit-Debug\ui_mainwindow.h
?????文件????????7612??2018-12-16?14:39??LL1_\ll.cpp
?????文件?????????948??2018-12-16?14:49??LL1_\ll.h
?????文件?????????183??2018-12-15?13:57??LL1_\main.cpp
?????文件????????3703??2018-12-26?20:54??LL1_\mainwindow.cpp
?????文件?????????618??2018-12-16?12:43??LL1_\mainwindow.h
?????文件????????3558??2018-12-26?20:51??LL1_\mainwindow.ui
?????文件????????5694??2018-12-05?12:31??LL1_\my.ico

評論

共有 條評論