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

📄 digui.c

📁 本程序是用c编写的词法分析器
💻 C
字号:
#include <stdio.h>
int E();
int E1();
int T();
int T1();
 int F();
 int k=0,error=0;
char str[100];

 int E()
 {if(str[k]=='('||str[k]=='i')
   {T(str[k]);
    E1(str[k]);
   }
  else
    {
	  printf("\nerror1");error=1;
    }
	return(k);
 }
 
 int E1()
 {
   if(str[k]=='+')
   {k++;
    T(str[k]);
	E1(str[k]);return(k);
   }
 else if(str[k]=='#'||str[k]==')')return(k);
 else 
    {
		printf("\nerror2");error=1;return(k);
	}
	
 }
  int T()
 {if(str[k]=='('||str[k]=='i')
     {F(str[k]);
      T1(str[k]);
     }
 else 
    {
		printf("\nerror3");error=1;
	}
	return(k);
 }
int T1()
 {if(str[k]=='*')
   {k++;
    F(str[k]);
	T1(str[k]); return(k);
   }
 else if(str[k]=='#'||str[k]=='+'||str[k]==')') return(k);
 else
     {
		 printf("\nerror%d",k+1);error=1; return(k);
	 }
	
 }
 int F()
 {if(str[k]=='(')
   {k++;
	E(str[k]);
	if(str[k]==')')
	k++;
    else 
	{printf("\nerror%d",k+1);error=1;}
   }
  else if(str[k]=='i')
   k++;
   
  else 
  {printf("\nerror%d",k+1);error=1;}
  return(k);
 }
   main()
 {
    int i,b;
    printf("\n请输入一条语句:");
   for(i=0;i<100;i++)
   {scanf("%c",&str[i]);
  if(str[i]=='#')

  break;
   } // b=i;printf("%d",b);
    //for(i=0;i<b;i++)
   //printf("\n%c",str[i]);
    E(str[k]);
	//printf("\n%d",k);
	if(str[k]=='#'&&error==0)
	printf("\nright!");
 }

⌨️ 快捷键说明

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