⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wenfashibie.cpp

📁 编译原理课中的文法识别程序
💻 CPP
字号:
#include <iostream>
#include <cstdio>
using namespace std;
void main( )
{   int  count (char *str);
	char left[10][10],right[10][10] ;
    int l,r,j,t,i=9;
   cout<<"输入产生式个数"<<endl;
    cin>>j;
	for(t=0;t<j;t++)
    {
	cout<<"请输入产生式"<<t+1<<"的左端"<<endl;
	cin>>left[t];
	l=count(left[t]);
	 cout<<"请输入产生式"<<t+1<<"的右端"<<endl;
	cin>>right[t];
	r=count(right[t]);
	if(l==1&&r==2&&left[t][0]>='A'&&left[t][0]<='Z'&&right[t][0]>='a'&&right[t][0]<='z'&&right[t][1]>='A'&&right[t][1]<='Z')
	{  if(i>=3) i=3; }
	else if (l==1&&r==1&&left[t][0]>='A'&&left[t][0]<='Z'&&right[t][0]>='a'&&right[t][0]<='z')
	   {  if(i>=3)i=3; }
	else if(l==1&&r>=1&&left[t][0]>='A'&&left[t][0]<='Z') 
	   { if(i>=2)i=2;}
	else if(l<=r)
	{   if(i>=1) i=1;}
	else 
		cout<<"输入的产生式不属于辨别范围"<<endl;
	}
	 if(i!=9)
	 cout<<"此文法是"<<i<<"型文法!"<<endl;
	 else cout<<"此文法不属于辨别范围!"<<endl;

	
 }
int count (char *str)
{ int i,num=0;
  for (i=0;str[i];i++)
  {if ((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
    num++;
  } 
  return num;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -