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

📄 yffx.c

📁 编译的关于LL(1)词法分析的小程序
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
status stack(sqstack &s,char &e)
  {s.top=s.top-1;
   e=*s.top;
   return;
   }
main()
{ 
	
char temp[20];
 char m[][][];
 char vn[]="EE'TT'F";
 char vt[]="i+*()#";
 char x,a;
 int flag;
 int i,j,l,af,xf,m,n;
 n=strlen(vn);
 m=strlen(vt);

 for(i=0;i<n;i++)
   for(j=0;j<m;j++)
     {strcpy(m[i][j],"\0");}
m[0][0]="TE'";
m[0][3]="TE'";
m[1][1]="+TE'";
m[1][4]=" ";
m[1][5]=" ";
m[2][0]="FT'";
m[2][3]="FT'";
m[3][1]="";
m[3][2]="*FT'";
m[3][4]=" ";
m[3][5]=" ";
m[4][0]="i";
m[4][3]="(E)";
 push(s,'#');
 push(s,'s');
 a=getchar();
 for(i=0,i<n,i++)
   {if(a==vt[i]) af=i;}
   flag= 1;
   while flag do{
   pop(stack,x);
   for(i=0;i<m;i++)
      {if(x==vn[i]) xf=i;}
   if(x=='#'&&a=='#')
   {flag= 0;
    printf("find");
	}
	else{for(i=0;i<n;i++)
	      {if(x==vt[i]&&x==a)
		   a=getchar();}
	}
		   for(i=0;i<n;i++)
		   {if (a==vt[i]) af=i;
            else for(i=0;i<m;i++)
			{
	    if(x==vn[i]&&m[i][af]!="\0")
		{strcpy(temp,m[xf][af]);
		 l=strlen(temp);break;
		 for(j=l;j<0;j--)
		    push(stack,temp[j]);
			break;
	}
	else printf("not found");	    

} 

⌨️ 快捷键说明

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