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

📄 实验四3.cpp

📁 这是几个编译原理实验程序,有做实验的朋友可以用用!
💻 CPP
字号:

#include <stdio.h>

char sym[20];

struct table

 { int id;

   char name[20];

 }
  mt[10]={ {10,"i"},{19,"+"},{10,"i"},{20,"$"}};

 int p=-1;

 main()

 { printf("Begin!!\n");

   scaner();

   E();

   if(sym[0]=='$')

	 printf("Success!!\n");

   else  printf("Fail!!\n");

   getsym();

 }

 scaner()

 {p=p+1;

  strcpy(sym,mt[p].name);

 }

 e()

 {t();

  e1();

 }

 e1()

 { if(sym[0]=='+')

	{scaner();

	 t();	 e1();

	}

	 else if ( (sym[0]!=')') && (sym[0]!='$'))

	   error();

 }



 t()

 {f();

  t1();

 }



 t1()

 { if (sym[0]=='*')

   {scaner();

	f();t1();

   } else

	if(!follow(sym[0])) error();

 }

 f()

 {if(sym[0]=='i')

   scaner();

   else if(sym[0]=='(')

	{  scaner();

	   e();

	   if(sym[0]==')')

		 scaner();

		 else  error();

	} else error();

 }

 error()

 { printf("Error!!!\n");

 }

 follow(char  tm)

 {int i,k=0;

  char nn[10]={'$','+',')'};

  for(i=0;i<=2;i++)

   if (nn[i]==tm ) {k=1;break;}

  return( k);

 }

 

⌨️ 快捷键说明

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