下载此文档

正规文法-正规式.doc


文档分类:论文 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
该【正规文法-正规式 】是由【文艺人生】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【正规文法-正规式 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。正规文法-正规式
由正规文法构造正规式
年级_______
专业________
学号________
姓名__________
{
stringleft;//规则左部,因为输入的为2型文法,
stringright;//规则右部
};
structRuleData
{
stringleft;
vector<string>right;
};
classGrammar
{
private:
vector<Rule>grammar;//文法
Rulerule;//规则
vector<string>Dleft;
RuleDataruledata;
public:
Grammar(){}
~Grammar(){}
voidChangeInput(stringinput);//输入分析
voidShow();//
voidDataChange(intC);//存储结构转换
vector<RuleData>grammardata;
};
voidGrammar::ChangeInput(stringinput)//扫描字符串,遇到'-'停止,
{//并跳两格
inthelp1=0;
();
();
for(inti=0;i<int(());i++)
{
if(input[i]=='-')
{
help1=i;
break;
}
+=input[i];
}
if(help1!=1)
{
cout<<"不符合要求!!";
exit(0);
}
help1=help1+2;
for(intj=help1;j<int(());j++)
{
+=input[j];
}
(rule);
}
voidGrammar::DataChange(intC)
{
inti,j;
if(C==0)//简单->复杂
{
intl=0;
();
();
();
=grammar[0].left;
(grammar[0].right);
(ruledata);
for(i=1;i<int(());i++)//存储转换
{
for(j=0;j<int(());j++)
{
if(grammar[i].left==grammardata[j].left)
{
grammardata[j].(grammar[i].right);
l=1;
break;
}
}
if(l==0)
{
();
();
=grammar[i].left;
(grammar[i].right);
(ruledata);
}
l=0;
}
}
if(C==1)//复杂->简单
{
();
for(i=0;i<int(());i++)
{
();
();
=grammardata[i].left;
for(j=0;j<int(grammardata[i].());j++)
{
=grammardata[i].(j);
(rule);
}
}
}
}
voidGrammar::Show()
{
cout<<"输入的文法的正规式为:"<<endl;
for(inti=0;i<int(());i++)
cout<<grammar[i].left<<"="<<grammar[i].right<<endl;
}
classGenerateGtoE:publicGrammar//正规文法转正规式
{
private:
public:
GenerateGtoE(){}
~GenerateGtoE(){}
voidGenerating();
};
voidGenerateGtoE::Generating()
{
DataChange(0);
//STEP1
//将文法G的所有非终结符形如a1A|a2A|...的候选式
//归并为(a1|a2|...)A的侯选式,其中a∈Vt,A∈Vn
stringZ1="|";
stringZ2="(";
stringZ3=")";
stringZ4="*";

正规文法-正规式 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文艺人生
  • 文件大小1.82 MB
  • 时间2022-09-29
最近更新