下载此文档

由正规文法构造正规(则)式.docx


文档分类:论文 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
编译原理实验报告
实验名称 由正规(则)文法构造正规(则)式
实验时间
院系 计算机科学与技术学院
班级
学号
姓名

输入:任意的正规文法。
输出:相应的正规式。

(一)3型文return 0;
break;
}
}
if(i==n)return 1;//如果每个产生时都能找到非终结符
}
bool First(CSS *p,int n) //判断 1 型文法
{
int i;
if(Zero(p,n)) //先判断是否是0型文法
{
for(i=0;i<n;i++)
{
if((p[i].()>p[i].())&&p[i].()!=NULL) // 判断产生式左部长度是否大于右部
break;
}
if(i==n)return 1;
else{
cout<<"该文法是0型文法"<<endl;
return 0;
}
else
return 0;
}
bool Second(CSS *p,int n) 〃判断 2 型文法
{
int i;
if(First(p,n)) 〃同上,先判断低级文法是否成立
{
for(i=0;i<n;i++) //同上,遍历所有文法产生式
{
if((p[i].()!=1)
|| !(p[i].left[0]>='A'&&p[i].left[0]<='Z')) //判断产生式左部长度是否为一,左 部第一个是否是非终结符
break;
}
if(i==n)return 1;
else{
cout<<"该文法是1型文法"<<endl;
return 0;
}
}
else
return 0;
}
void Third(CSS *p,int n) //判断 3 型文法
{
int i;
if(Second(p,n)) //同上,先判断是否是2型文法
{
for(i=0;i<n;i++) 〃同上,遍历文法所有的产生式
{
if((p[i].()=0)||(p[i].()>=3)||(p[i].right[0]>='A'& &p[i].right[0]<='Z')) 〃判断产生式右部字符个数是否在12之间,判断右部第一个字 符是否是非终结符
break;
}
if(i==n)
for(i=0;i<n;i++)
{
if(p[i].()==2)
{
if(!(p[i].right[1]>='A'&&p[i].right[1]<='Z'))break;
}
}
if(i==n)
{
cout<<"该文法属于3型文法"<<endl;
}
else
cout<<"该文法属于2型文法“<<endl;
}
else cout<<"该文法属于2型文法“<<endl;
}
else
cout<<"结束"<<endl;
}
〃正规文法转换为正规式
void transfer(CSS *p,int n)
{
int i,j,m,flag;
〃合并产生式
for (i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if((p[i].left=p[j].left)&&(p[i].right[1]=p[j].right[1]))
{
if(p[i].right[1]=p[j].right[1]&&p[i].left[0]=p[j].right[1])// 合并形如
A->aA,A->bA的产生式为A->aA|bA的形式
{
p[i].right=p[i].right+"|"+p[j].right;
p[j].left="";
p[j].right="”;
}
else
if(p[i].right[1]=p[j].right[1]&&p[i].left[0]!=p[j].right[1])
〃合并形如S->aA,S->bA的产生式为S->aA|bA的形式
p[i].right=p[i].right+"|"+p[j].right;
p[j].left="";
p[j].right="”;
}
}
/*
if(p[i].left=p[j].left&&p[j].()=1&&p[i].left[0]!=p[i].right[1
])//合并形如S->aA,S->a的产生式为S->aA|a的形式
{
p[i].right=p[i].right+"|"+p[j].right;

由正规文法构造正规(则)式 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人shugezhang1
  • 文件大小78 KB
  • 时间2022-08-06
最近更新